2015-08-15 88 views
1

我目前正在使用Perlin噪聲的一個現有實現,它與我正在清理的一堆代碼捆綁在一起。有問題的代碼嚴重缺乏測試,並且我想確保每個組件都接受適當的測試,以防有任何隱藏的錯誤。如何爲Perlin噪聲庫編寫單元測試?

但是,我不確定在這種情況下如何測試Perlin噪聲實現的正確性。我歡迎所有的建議。

回答

1

這是一個棘手的問題&可能沒有一個最佳的解決方案。

對於某些圖像屬性,您可能可以使用Computer Vision技術執行自動測試。 I.E.如果您的Perlin噪聲輸出應該是可平鋪的,則邊緣檢測濾波器可能會遇到問題。我在使用基於perlin噪聲的木紋紋理的圖像分類器時,使用FFT濾波器的效果也很好。根據我的經驗,執行此類測試可能需要更多時間才能構建正在測試的代碼。爲了最小化,我會堅持使用像OpenCV,Octave等庫。此外,這種方法依賴於已知的良好輸出,以建立您的測試。

從某個角度來看,柏林噪聲是一種隨機數發生器。爲此,您可以使用RNG test suites,如NIST Statistical Test SuiteDiehard tests。這種方法取決於已知的良好輸出以建立您的測試。

最後,您可以構建將結果輸出到文件&的測試,然後針對預期結果執行手動確認。爲方便起見,您可以通過網頁加載圖像集合,甚至可以集成報告複選框以收集測試人員的通過/失敗響應。這個解決方案是我用來測試難以量化,不可能或不可行的屬性的最佳解決方案。 I.E.當我看到它時,我只知道我的粒子效應是正確的。