【问题标题】:Unit testing algorithms that involve random numbers涉及随机数的单元测试算法
【发布时间】:2012-10-13 21:40:54
【问题描述】:

我正在编写一些关于分形和随机地形生成的代码。具体来说,我现在使用的是 Diamond-Square 算法。不知道的小伙伴,基本都是取四个值的平均值,每一步加一个随机数。我将如何测试结果?我应该使用已知种子并手动计算平均值加上随机值,还是什么?相反,我应该使用随机数计算代码中的结果吗?还是有其他方法?此外,非常感谢您对反向过程(也称为 TDD,在代码之前编写测试)的一些想法)。

【问题讨论】:

    标签: unit-testing testing random tdd fractals


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-05-27
        • 1970-01-01
        • 2019-05-02
        • 1970-01-01
        • 1970-01-01
        • 2014-02-08
        • 1970-01-01
        • 1970-01-01
        • 2019-06-03
        相关资源
        最近更新 更多