如何为Perlin噪声库编写单元测试?

时间:2015-08-15 09:03:59

标签: testing perlin-noise

我目前正在使用Perlin噪声的现有实现,它捆绑了一堆我想要清理的代码。有问题的代码严重不足,我想确保每个组件都有适当的测试,以防有任何隐藏的错误。

但是,在这种情况下,我不确定如何测试Perlin噪声实现的正确性。我欢迎所有的建议。

1 个答案:

答案 0 :(得分:1)

这是一个棘手的问题&可能没有一个最好的解决方案。

对于某些图片属性,您可以使用Computer Vision技术执行自动化测试。 I.E.如果您的Perlin噪声输出应该是可平铺的,则边缘检测滤波器可能能够捕获问题。当我使用基于perlin噪声的木纹纹理的图像分类器时,我还使用FFT滤镜获得了一些好的结果。根据我的经验,实现此类测试可以轻松地花费更多时间来构建测试代码。为了尽量减少这种情况,我会坚持使用OpenCVOctave等库。此外,这种方法取决于已知良好的输出以构建测试。

从某个角度来看,Perlin噪声是一种随机数发生器。为此,您可以像RNG test suitesNIST Statistical Test Suite一样使用Diehard tests。这种方法取决于已知良好的输出以构建测试。

最后,您可以构建测试,将结果输出到文件&然后对每个预期结果进行手动确认。为方便起见,您可以通过网页加载图像集。甚至可以集成报告复选框来收集测试人员的通过/失败响应。这个解决方案是我用来测试难以量化,不可能或无法量化的属性的最佳解决方案。 I.E.我只知道当我看到它时,我的粒子效果是正确的。