mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
119 lines
2.3 KiB
C
119 lines
2.3 KiB
C
/*
|
|
* Copyright (c), Recep Aslantas.
|
|
*
|
|
* MIT License (MIT), http://opensource.org/licenses/MIT
|
|
* Full license can be found in the LICENSE file
|
|
*/
|
|
|
|
#include "test_common.h"
|
|
|
|
TEST_IMPL(GLM_PREFIX, perlin_vec4) {
|
|
vec4 p1[] = {
|
|
{0.1f, 0.2f, 0.3f, 0.4f},
|
|
{0.2f, 0.3f, 0.4f, 0.5f},
|
|
{0.3f, 0.4f, 0.5f, 0.6f},
|
|
{0.4f, 0.5f, 0.6f, 0.7f},
|
|
{0.5f, 0.6f, 0.7f, 0.8f},
|
|
{0.6f, 0.7f, 0.8f, 0.9f},
|
|
{0.7f, 0.8f, 0.9f, 1.0f},
|
|
{0.8f, 0.9f, 1.0f, 1.1f},
|
|
{0.9f, 1.0f, 1.1f, 1.2f},
|
|
{1.0f, 1.1f, 1.2f, 1.3f},
|
|
};
|
|
|
|
/* expected values calculated by glm::perlin */
|
|
float e[] = {
|
|
-0.5091819763183594f,
|
|
-0.4375732541084290f,
|
|
-0.3212279379367828f,
|
|
-0.2279999703168869f,
|
|
-0.1577337533235550f,
|
|
-0.0445968918502331f,
|
|
0.1069696992635727f,
|
|
0.2067739963531494f,
|
|
0.2106968611478806f,
|
|
0.1397782564163208f
|
|
};
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
ASSERT(test_eq(GLM(perlin_vec4)(p1[i]), e[i]));
|
|
}
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
TEST_IMPL(GLM_PREFIX, perlin_vec3) {
|
|
vec3 p1[] = {
|
|
{0.1f, 0.2f, 0.3f},
|
|
{0.2f, 0.3f, 0.4f},
|
|
{0.3f, 0.4f, 0.5f},
|
|
{0.4f, 0.5f, 0.6f},
|
|
{0.5f, 0.6f, 0.7f},
|
|
{0.6f, 0.7f, 0.8f},
|
|
{0.7f, 0.8f, 0.9f},
|
|
{0.8f, 0.9f, 1.0f},
|
|
{0.9f, 1.0f, 1.1f},
|
|
{1.0f, 1.1f, 1.2f},
|
|
};
|
|
|
|
/* expected values calculated by glm::perlin */
|
|
float e[] = {
|
|
-0.2909241318702698f,
|
|
-0.4667602181434631f,
|
|
-0.4679279625415802f,
|
|
-0.2616460621356964f,
|
|
0.0562822706997395f,
|
|
0.3178773224353790f,
|
|
0.3981811404228210f,
|
|
0.3011017739772797f,
|
|
0.1263920217752457f,
|
|
-0.0602480024099350f
|
|
};
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
ASSERT(test_eq(GLM(perlin_vec3)(p1[i]), e[i]));
|
|
}
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
|
|
TEST_IMPL(GLM_PREFIX, perlin_vec2) {
|
|
vec2 p1[] = {
|
|
{0.1f, 0.2f},
|
|
{0.2f, 0.3f},
|
|
{0.3f, 0.4f},
|
|
{0.4f, 0.5f},
|
|
{0.5f, 0.6f},
|
|
{0.6f, 0.7f},
|
|
{0.7f, 0.8f},
|
|
{0.8f, 0.9f},
|
|
{0.9f, 1.0f},
|
|
{1.0f, 1.1f},
|
|
};
|
|
|
|
/* expected values calculated by glm::perlin */
|
|
float e[] = {
|
|
0.2841092348098755f,
|
|
0.2328013032674789f,
|
|
-0.0017980185803026f,
|
|
-0.3300299644470215f,
|
|
-0.5998955368995667f,
|
|
-0.6914522647857666f,
|
|
-0.5896517634391785f,
|
|
-0.3778679668903351f,
|
|
-0.1557840555906296f,
|
|
0.0453133136034012f
|
|
};
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
ASSERT(test_eq(GLM(perlin_vec2)(p1[i]), e[i]));
|
|
}
|
|
|
|
TEST_SUCCESS
|
|
}
|
|
|
|
|
|
|
|
|