From e7a0906bc2454d7c2128c897645fc92e111b5f8c Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Fri, 21 Feb 2020 11:48:25 +0300 Subject: [PATCH] quat: add tests for quat_rotate --- test/src/test_quat.h | 43 +++++++++++++++++++++++++++++++++++++++++++ test/tests.h | 4 ++++ 2 files changed, 47 insertions(+) diff --git a/test/src/test_quat.h b/test/src/test_quat.h index 21ead20..8037b7d 100644 --- a/test/src/test_quat.h +++ b/test/src/test_quat.h @@ -878,6 +878,49 @@ TEST_IMPL(GLM_PREFIX, quat_rotatev) { } TEST_IMPL(GLM_PREFIX, quat_rotate) { + mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2; + versor q1; + vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f}; + + /* rotate X around Y = -Z */ + glm_quatv(q1, GLM_PI_2f, GLM_YUP); + GLM(quat_rotate)(m1, q1, m1); + glm_rotate_make(m2, GLM_PI_2f, GLM_YUP); + ASSERTIFY(test_assert_mat4_eq(m1, m2)) + glm_mat4_mulv(m1, v1, v1); + + ASSERT(test_eq(v1[0], 0.0f)) + ASSERT(test_eq(v1[1], 0.0f)) + ASSERT(test_eq(v1[2], -1.0f)) + + glm_mat4_identity(m1); + glm_mat4_identity(m2); + + /* rotate -Z around X = Y */ + glm_quatv(q1, GLM_PI_2f, GLM_XUP); + GLM(quat_rotate)(m1, q1, m1); + glm_rotate(m2, GLM_PI_2f, GLM_XUP); + ASSERTIFY(test_assert_mat4_eq(m1, m2)) + glm_mat4_mulv(m1, v1, v1); + + ASSERT(test_eq(v1[0], 0.0f)) + ASSERT(test_eq(v1[1], 1.0f)) + ASSERT(test_eq(v1[2], 0.0f)) + + glm_mat4_identity(m1); + glm_mat4_identity(m2); + + /* rotate Y around X = +Z */ + glm_quatv(q1, GLM_PI_2f, GLM_XUP); + GLM(quat_rotate)(m1, q1, m1); + glm_rotate(m2, GLM_PI_2f, GLM_XUP); + ASSERTIFY(test_assert_mat4_eq(m1, m2)) + glm_mat4_mulv(m1, v1, v1); + + ASSERT(test_eq(v1[0], 0.0f)) + ASSERT(test_eq(v1[1], 0.0f)) + ASSERT(test_eq(v1[2], 1.0f)) + TEST_SUCCESS } diff --git a/test/tests.h b/test/tests.h index 2e9d8a3..f7d957b 100644 --- a/test/tests.h +++ b/test/tests.h @@ -166,6 +166,7 @@ TEST_DECLARE(glm_quat_look) TEST_DECLARE(glm_quat_for) TEST_DECLARE(glm_quat_forp) TEST_DECLARE(glm_quat_rotatev) +TEST_DECLARE(glm_quat_rotate) TEST_DECLARE(glmc_quat_identity) TEST_DECLARE(glmc_quat_identity_array) @@ -199,6 +200,7 @@ TEST_DECLARE(glmc_quat_look) TEST_DECLARE(glmc_quat_for) TEST_DECLARE(glmc_quat_forp) TEST_DECLARE(glmc_quat_rotatev) +TEST_DECLARE(glmc_quat_rotate) /* bezier */ TEST_DECLARE(bezier) @@ -680,6 +682,7 @@ TEST_LIST { TEST_ENTRY(glm_quat_for) TEST_ENTRY(glm_quat_forp) TEST_ENTRY(glm_quat_rotatev) + TEST_ENTRY(glm_quat_rotate) TEST_ENTRY(glmc_quat_identity) TEST_ENTRY(glmc_quat_identity_array) @@ -713,6 +716,7 @@ TEST_LIST { TEST_ENTRY(glmc_quat_for) TEST_ENTRY(glmc_quat_forp) TEST_ENTRY(glmc_quat_rotatev) + TEST_ENTRY(glmc_quat_rotate) /* bezier */ TEST_ENTRY(bezier)