2012-10-13 54 views
4

我正在寫一些關於分形和隨機地形生成的代碼。具體來說,我現在正在使用Diamond-Square算法。對於那些不瞭解的人,它基本上獲得四個值的平均值,並且每一步都添加一個隨機數。我將如何去測試結果?我是否應該使用已知的種子並手動計算平均值加上隨機值,或者是什麼?相反,我應該使用隨機數來計算代碼中的結果嗎?還是有另一種方式?另外,對逆向過程(a.k.a. TDD,代碼之前的寫作測試)的一些想法將非常感激)。涉及隨機數的單元測試算法

回答

1

只需爲某個迭代選擇一個種子和一個數字(也就是說,在實際使用它的值之前,您稱之爲PRNG多少次),並在主代碼和單元中使用這些相同的數據(種子&迭代)試驗。這些數據可以在主代碼和單元測試都可以訪問的配置文件中。

8

您可以使用模擬框架來模擬您的隨機數生成。通過這種方式,您可以從結果中刪除隨機性,並且可以使用一組靜態的預定義測試用例來測試您的代碼。

在所有情況下,您並未測試隨機數生成,而是測試您正在進行的計算。如果你有一個錯誤,你真的需要知道用來重現錯誤的隨機數。