diff --git a/test/src/test_quat.h b/test/src/test_quat.h index 5302664..90e4bb6 100644 --- a/test/src/test_quat.h +++ b/test/src/test_quat.h @@ -655,3 +655,55 @@ TEST_IMPL(GLM_PREFIX, quat_mat3t) { TEST_SUCCESS } + +TEST_IMPL(GLM_PREFIX, quat_lerp) { + versor v1 = {-100.0f, -200.0f, -10.0f, -10.0f}; + versor v2 = {100.0f, 200.0f, 10.0f, 10.0f}; + versor v3; + + GLM(vec4_lerp)(v1, v2, 0.5f, v3); + ASSERT(test_eq(v3[0], 0.0f)) + ASSERT(test_eq(v3[1], 0.0f)) + ASSERT(test_eq(v3[2], 0.0f)) + ASSERT(test_eq(v3[3], 0.0f)) + + GLM(vec4_lerp)(v1, v2, 0.75f, v3); + ASSERT(test_eq(v3[0], 50.0f)) + ASSERT(test_eq(v3[1], 100.0f)) + ASSERT(test_eq(v3[2], 5.0f)) + ASSERT(test_eq(v3[3], 5.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, quat_lerpc) { + versor v1 = {-100.0f, -200.0f, -10.0f, -10.0f}; + versor v2 = {100.0f, 200.0f, 10.0f, 10.0f}; + versor v3; + + GLM(vec4_lerpc)(v1, v2, 0.5f, v3); + ASSERT(test_eq(v3[0], 0.0f)) + ASSERT(test_eq(v3[1], 0.0f)) + ASSERT(test_eq(v3[2], 0.0f)) + ASSERT(test_eq(v3[3], 0.0f)) + + GLM(vec4_lerpc)(v1, v2, 0.75f, v3); + ASSERT(test_eq(v3[0], 50.0f)) + ASSERT(test_eq(v3[1], 100.0f)) + ASSERT(test_eq(v3[2], 5.0f)) + ASSERT(test_eq(v3[3], 5.0f)) + + GLM(vec4_lerpc)(v1, v2, -1.75f, v3); + ASSERT(test_eq(v3[0], -100.0f)) + ASSERT(test_eq(v3[1], -200.0f)) + ASSERT(test_eq(v3[2], -10.0f)) + ASSERT(test_eq(v3[3], -10.0f)) + + GLM(vec4_lerpc)(v1, v2, 1.75f, v3); + ASSERT(test_eq(v3[0], 100.0f)) + ASSERT(test_eq(v3[1], 200.0f)) + ASSERT(test_eq(v3[2], 10.0f)) + ASSERT(test_eq(v3[3], 10.0f)) + + TEST_SUCCESS +} diff --git a/test/tests.h b/test/tests.h index ebc48f6..570e6a6 100644 --- a/test/tests.h +++ b/test/tests.h @@ -156,6 +156,8 @@ TEST_DECLARE(glm_quat_mat4) TEST_DECLARE(glm_quat_mat4t) TEST_DECLARE(glm_quat_mat3) TEST_DECLARE(glm_quat_mat3t) +TEST_DECLARE(glm_quat_lerp) +TEST_DECLARE(glm_quat_lerpc) TEST_DECLARE(glmc_quat_identity) TEST_DECLARE(glmc_quat_identity_array) @@ -182,6 +184,8 @@ TEST_DECLARE(glmc_quat_mat4) TEST_DECLARE(glmc_quat_mat4t) TEST_DECLARE(glmc_quat_mat3) TEST_DECLARE(glmc_quat_mat3t) +TEST_DECLARE(glmc_quat_lerp) +TEST_DECLARE(glmc_quat_lerpc) /* bezier */ TEST_DECLARE(bezier) @@ -639,6 +643,8 @@ TEST_LIST { TEST_ENTRY(glm_quat_mat4t) TEST_ENTRY(glm_quat_mat3) TEST_ENTRY(glm_quat_mat3t) + TEST_ENTRY(glm_quat_lerp) + TEST_ENTRY(glm_quat_lerpc) TEST_ENTRY(glmc_quat_identity) TEST_ENTRY(glmc_quat_identity_array) @@ -665,6 +671,8 @@ TEST_LIST { TEST_ENTRY(glmc_quat_mat4t) TEST_ENTRY(glmc_quat_mat3) TEST_ENTRY(glmc_quat_mat3t) + TEST_ENTRY(glmc_quat_lerp) + TEST_ENTRY(glmc_quat_lerpc) /* bezier */ TEST_ENTRY(bezier)