繁体   English   中英

涉及随机数的单元测试算法

[英]Unit testing algorithms that involve random numbers

我正在写一些关于分形和随机地形生成的代码。 具体来说,我现在使用的是Diamond-Square算法。 对于那些不知道的人,它基本上获得了四个值的平均值,并且每一步都添加一个随机数。 我将如何测试结果? 我应该使用已知种子并手动计算平均值加上随机值,或者是什么? 相反,我应该使用随机数计算代码中的结果吗? 或者还有另一种方式吗? 此外,一些关于反向过程的想法(也就是TDD,代码前的写入测试)将非常感激。

您可以使用模拟框架来模拟随机数生成。 这样,您可以从结果中删除随机性,并且能够使用一组静态的预定义测试用例来测试您的代码。

在所有情况下,您不是测试随机数生成,而是测试您正在进行的计算。 如果你有一个错误,你真的需要知道用于重现故障的随机数。

只需为某些迭代选择种子和数字(也就是在实际使用它之前调用该PRNG的次数),并在主代码和单元测试中使用这些相同的数据(种子和迭代)。 这些数据可以在配置文件中,可以由主代码和单元测试访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM