我正在寫一些關於分形和隨機地形生成的代碼。具體來說,我現在正在使用Diamond-Square算法。對於那些不瞭解的人,它基本上獲得四個值的平均值,並且每一步都添加一個隨機數。我將如何去測試結果?我是否應該使用已知的種子並手動計算平均值加上隨機值,或者是什麼?相反,我應該使用隨機數來計算代碼中的結果嗎?還是有另一種方式?另外,對逆向過程(a.k.a. TDD,代碼之前的寫作測試)的一些想法將非常感激)。涉及隨機數的單元測試算法
4
A
回答
1
只需爲某個迭代選擇一個種子和一個數字(也就是說,在實際使用它的值之前,您稱之爲PRNG多少次),並在主代碼和單元中使用這些相同的數據(種子&迭代)試驗。這些數據可以在主代碼和單元測試都可以訪問的配置文件中。
8
您可以使用模擬框架來模擬您的隨機數生成。通過這種方式,您可以從結果中刪除隨機性,並且可以使用一組靜態的預定義測試用例來測試您的代碼。
在所有情況下,您並未測試隨機數生成,而是測試您正在進行的計算。如果你有一個錯誤,你真的需要知道用來重現錯誤的隨機數。
相關問題
- 1. 單元測試涉及數據庫
- 2. 單元測試涉及DOM的Javascript
- 3. 測試涉及數據庫
- 4. 單元測試隨機數java
- 5. 如何對涉及IO的c函數進行單元測試?
- 6. 你如何編寫涉及數據庫的單元測試?
- 7. 涉及隨機訪問字符串的重要算法?
- 8. 隨機過程的單元測試?
- 9. 涉及Mknetworkkit的iOS寫入單元測試
- 10. 如何在c#中創建涉及集合的單元測試?
- 11. 對涉及火力點調用的redux進行單元測試
- 12. 涉及多個類的單元測試邏輯
- 13. 如何進行涉及CLBeacons的單元測試邏輯?
- 14. 創建涉及I/O的單元測試?
- 15. 測試C#方法,涉及SQL
- 16. 隨機單元測試失敗
- 17. 爲單元測試隨機生成樹
- 18. 摩卡單元測試涉及knex交易
- 19. 編寫涉及隨機性的Perl測試時,最佳實踐是什麼?
- 20. 算法,涉及舍入和倍數
- 21. python單元測試測試MongoDB隨機失敗
- 22. 生成排序的隨機數而不涉及指數?
- 23. 隨機數算法
- 24. 單元測試的內部隨機函數。 Javascript
- 25. 在單元測試中運行每個斷言的隨機數
- 26. 如何測試涉及SynchronizationContext的代碼?
- 27. 涉及時間的Golang測試程序
- 28. django的測試涉及到在test_date_length
- 29. 隨機數的算法
- 30. 隨機數據測試