2012-10-13 51 views
4

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

回答

1

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

8

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

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