tests: tests for remaining rotations

This commit is contained in:
Recep Aslantas
2020-02-22 00:58:04 +03:00
parent 3fca734c30
commit 0822d46cd9
3 changed files with 111 additions and 3 deletions

View File

@@ -383,14 +383,112 @@ TEST_IMPL(GLM_PREFIX, rotate_make) {
}
TEST_IMPL(GLM_PREFIX, rotate) {
mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2 = GLM_MAT4_IDENTITY_INIT;
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
/* 360 deg */
glm_rotate(m1, GLM_PI_2f, GLM_YUP);
glm_rotate(m1, GLM_PI_2f, GLM_YUP);
glm_rotate(m1, GLM_PI_2f, GLM_YUP);
glm_rotate(m1, GLM_PI_2f, GLM_YUP);
ASSERTIFY(test_assert_mat4_eq(m1, m2))
/* rotate X around Y = -Z */
GLM(rotate)(m1, GLM_PI_2f, GLM_YUP);
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);
/* rotate -Z around X = Y */
GLM(rotate)(m1, GLM_PI_2f, GLM_XUP);
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);
/* rotate Y around X = +Z */
GLM(rotate)(m1, GLM_PI_2f, GLM_XUP);
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
}
TEST_IMPL(GLM_PREFIX, rotate_at) {
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
GLM(rotate_at)(m1, (vec3){0.5f, 0.0f, 0.0f}, GLM_PI_2f, GLM_YUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 0.5f))
ASSERT(test_eq(v1[1], 0.0f))
ASSERT(test_eq(v1[2], -0.5f))
glm_mat4_identity(m1);
GLM(rotate_at)(m1, GLM_VEC3_ZERO, GLM_PI_2f, GLM_ZUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 0.0f))
ASSERT(test_eq(v1[1], 0.5f))
ASSERT(test_eq(v1[2], -0.5f))
glm_mat4_identity(m1);
v1[0] = 1.0f;
v1[1] = 1.0f;
v1[2] = 1.0f;
GLM(rotate_at)(m1, GLM_VEC3_ZERO, GLM_PI_2f, GLM_XUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 1.0f))
ASSERT(test_eq(v1[1], -1.0f))
ASSERT(test_eq(v1[2], 1.0f))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, rotate_atm) {
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
GLM(rotate_atm)(m1, (vec3){0.5f, 0.0f, 0.0f}, GLM_PI_2f, GLM_YUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 0.5f))
ASSERT(test_eq(v1[1], 0.0f))
ASSERT(test_eq(v1[2], -0.5f))
GLM(rotate_atm)(m1, GLM_VEC3_ZERO, GLM_PI_2f, GLM_ZUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 0.0f))
ASSERT(test_eq(v1[1], 0.5f))
ASSERT(test_eq(v1[2], -0.5f))
v1[0] = 1.0f;
v1[1] = 1.0f;
v1[2] = 1.0f;
GLM(rotate_atm)(m1, GLM_VEC3_ZERO, GLM_PI_2f, GLM_XUP);
glm_mat4_mulv(m1, v1, v1);
ASSERT(test_eq(v1[0], 1.0f))
ASSERT(test_eq(v1[1], -1.0f))
ASSERT(test_eq(v1[2], 1.0f))
TEST_SUCCESS
}

View File

@@ -925,7 +925,7 @@ TEST_IMPL(GLM_PREFIX, quat_rotate) {
}
TEST_IMPL(GLM_PREFIX, quat_rotate_at) {
mat4 m1 = GLM_MAT4_IDENTITY_INIT, m2;
mat4 m1 = GLM_MAT4_IDENTITY_INIT;
versor q1;
vec4 v1 = {1.0f, 0.0f, 0.0f, 1.0f};
@@ -938,7 +938,6 @@ TEST_IMPL(GLM_PREFIX, quat_rotate_at) {
ASSERT(test_eq(v1[2], -0.5f))
glm_mat4_identity(m1);
glm_mat4_identity(m2);
glm_quatv(q1, GLM_PI_2f, GLM_ZUP);
GLM(quat_rotate_at)(m1, q1, (vec3){0.0f, 0.0f, 0.0f});
@@ -949,7 +948,6 @@ TEST_IMPL(GLM_PREFIX, quat_rotate_at) {
ASSERT(test_eq(v1[2], -0.5f))
glm_mat4_identity(m1);
glm_mat4_identity(m2);
v1[0] = 1.0f;
v1[1] = 1.0f;

View File

@@ -31,6 +31,9 @@ TEST_DECLARE(glm_rotate_x)
TEST_DECLARE(glm_rotate_y)
TEST_DECLARE(glm_rotate_z)
TEST_DECLARE(glm_rotate_make)
TEST_DECLARE(glm_rotate)
TEST_DECLARE(glm_rotate_at)
TEST_DECLARE(glm_rotate_atm)
TEST_DECLARE(glmc_translate)
TEST_DECLARE(glmc_translate_to)
@@ -46,6 +49,9 @@ TEST_DECLARE(glmc_rotate_x)
TEST_DECLARE(glmc_rotate_y)
TEST_DECLARE(glmc_rotate_z)
TEST_DECLARE(glmc_rotate_make)
TEST_DECLARE(glmc_rotate)
TEST_DECLARE(glmc_rotate_at)
TEST_DECLARE(glmc_rotate_atm)
/* mat4 */
TEST_DECLARE(glm_mat4_ucopy)
@@ -582,6 +588,9 @@ TEST_LIST {
TEST_ENTRY(glm_rotate_y)
TEST_ENTRY(glm_rotate_z)
TEST_ENTRY(glm_rotate_make)
TEST_ENTRY(glm_rotate)
TEST_ENTRY(glm_rotate_at)
TEST_ENTRY(glm_rotate_atm)
TEST_ENTRY(glmc_translate)
TEST_ENTRY(glmc_translate_to)
@@ -597,6 +606,9 @@ TEST_LIST {
TEST_ENTRY(glmc_rotate_y)
TEST_ENTRY(glmc_rotate_z)
TEST_ENTRY(glmc_rotate_make)
TEST_ENTRY(glmc_rotate)
TEST_ENTRY(glmc_rotate_at)
TEST_ENTRY(glmc_rotate_atm)
/* mat4 */
TEST_ENTRY(glm_mat4_ucopy)