4

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

4

2 回答 2

8

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

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

于 2012-10-13T22:56:50.100 回答
1

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

于 2012-10-13T22:09:12.677 回答