我正在写一些关于分形和随机地形生成的代码。具体来说,我现在正在使用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. 随机数据测试