X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=tst%2Frand%2FStabilityTest.cpp;h=4aab3eba000b55ccd2a5c89bfefc8773c8ce2d19;hb=29e8cfd4a72c248583ea9482864c016bb20f40f8;hp=579433752bfc779f03512248e02deb15c5bd8062;hpb=f1f8941a3f682fb589cf3c620fc7e7602cfc0f7f;p=blank.git diff --git a/tst/rand/StabilityTest.cpp b/tst/rand/StabilityTest.cpp index 5794337..4aab3eb 100644 --- a/tst/rand/StabilityTest.cpp +++ b/tst/rand/StabilityTest.cpp @@ -2,6 +2,7 @@ #include "rand/GaloisLFSR.hpp" #include "rand/SimplexNoise.hpp" +#include "rand/WorleyNoise.hpp" #include #include @@ -251,6 +252,27 @@ void StabilityTest::testSimplex() { Assert(noise, glm::vec3(-1.0f, -1.0f, -1.0f), 0.0f); } +void StabilityTest::testWorley() { + WorleyNoise noise(0); + + Assert(noise, glm::vec3(0.0f, 0.0f, 0.0f), -0.117765009403229f); + Assert(noise, glm::vec3(0.0f, 0.0f, 1.0f), -0.209876894950867f); + Assert(noise, glm::vec3(0.0f, 1.0f, 0.0f), -0.290086328983307f); + Assert(noise, glm::vec3(0.0f, 1.0f, 1.0f), -0.332393705844879f); + Assert(noise, glm::vec3(1.0f, 0.0f, 0.0f), -0.621925830841064f); + Assert(noise, glm::vec3(1.0f, 0.0f, 1.0f), -0.338455379009247f); + Assert(noise, glm::vec3(1.0f, 1.0f, 0.0f), -0.386664032936096f); + Assert(noise, glm::vec3(1.0f, 1.0f, 1.0f), -0.533940434455872f); + + Assert(noise, glm::vec3( 0.0f, 0.0f, -1.0f), -0.425480604171753f); + Assert(noise, glm::vec3( 0.0f, -1.0f, 0.0f), -0.189745843410492f); + Assert(noise, glm::vec3( 0.0f, -1.0f, -1.0f), -0.30408102273941f); + Assert(noise, glm::vec3(-1.0f, 0.0f, 0.0f), -0.618566155433655f); + Assert(noise, glm::vec3(-1.0f, 0.0f, -1.0f), -0.060045599937439f); + Assert(noise, glm::vec3(-1.0f, -1.0f, 0.0f), -0.366827547550201f); + Assert(noise, glm::vec3(-1.0f, -1.0f, -1.0f), -0.575981974601746f); +} + void StabilityTest::Assert( const SimplexNoise &noise, const glm::vec3 &position, @@ -264,5 +286,18 @@ void StabilityTest::Assert( ); } +void StabilityTest::Assert( + const WorleyNoise &noise, + const glm::vec3 &position, + float expected +) { + stringstream msg; + msg << "unexpected worley noise value at " << position; + CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( + msg.str(), + expected, noise(position), numeric_limits::epsilon() + ); +} + } }