From 6b32b5dc35e6d1cf24c6f5b49c50918c7406994f Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Fri, 21 Feb 2020 16:57:09 +0300 Subject: [PATCH] tests: add tests for affine scales --- test/src/test_affine.h | 86 ++++++++++++++++++++++++++++++++++++++++++ test/tests.h | 16 ++++++++ 2 files changed, 102 insertions(+) diff --git a/test/src/test_affine.h b/test/src/test_affine.h index 7a846db..d01777f 100644 --- a/test/src/test_affine.h +++ b/test/src/test_affine.h @@ -164,18 +164,104 @@ TEST_IMPL(GLM_PREFIX, translate_make) { } TEST_IMPL(GLM_PREFIX, scale_to) { + mat4 t1, t2, t3, t4, t5; + mat4 m1, m2; + vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2; + + glm_mat4_identity(m1); + GLM(scale_to)(m1, (vec3){13.0f, 11.0f, 7.0f}, m2); + glm_mat4_mulv(m2, v1, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], 22.0f)) + ASSERT(test_eq(v2[2], 21.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + + glm_mat4_identity(m1); + GLM(scale_to)(m1, (vec3){1.0f, -1.0f, -5.0f}, m2); + glm_mat4_mulv(m2, v2, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], -22.0f)) + ASSERT(test_eq(v2[2], -105.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + TEST_SUCCESS } TEST_IMPL(GLM_PREFIX, scale_make) { + mat4 t1, t2, t3, t4, t5; + mat4 m1; + vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2; + + GLM(scale_make)(m1, (vec3){13.0f, 11.0f, 7.0f}); + glm_mat4_mulv(m1, v1, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], 22.0f)) + ASSERT(test_eq(v2[2], 21.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + + GLM(scale_make)(m1, (vec3){1.0f, -1.0f, -5.0f}); + glm_mat4_mulv(m1, v2, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], -22.0f)) + ASSERT(test_eq(v2[2], -105.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + TEST_SUCCESS } TEST_IMPL(GLM_PREFIX, scale) { + mat4 t1, t2, t3, t4, t5; + mat4 m1; + vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2; + + glm_mat4_identity(m1); + GLM(scale)(m1, (vec3){13.0f, 11.0f, 7.0f}); + glm_mat4_mulv(m1, v1, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], 22.0f)) + ASSERT(test_eq(v2[2], 21.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + + glm_mat4_identity(m1); + GLM(scale)(m1, (vec3){1.0f, -1.0f, -5.0f}); + glm_mat4_mulv(m1, v2, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], -22.0f)) + ASSERT(test_eq(v2[2], -105.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + TEST_SUCCESS } TEST_IMPL(GLM_PREFIX, scale_uni) { + mat4 t1, t2, t3, t4, t5; + mat4 m1; + vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2; + + glm_mat4_identity(m1); + GLM(scale_uni)(m1, 13.0f); + glm_mat4_mulv(m1, v1, v2); + + ASSERT(test_eq(v2[0], 13.0f)) + ASSERT(test_eq(v2[1], 26.0f)) + ASSERT(test_eq(v2[2], 39.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + + glm_mat4_identity(m1); + GLM(scale_uni)(m1, -5.0f); + glm_mat4_mulv(m1, v2, v2); + + ASSERT(test_eq(v2[0], -65.0f)) + ASSERT(test_eq(v2[1], -130.0f)) + ASSERT(test_eq(v2[2], -195.0f)) + ASSERT(test_eq(v2[3], 1.0f)) + TEST_SUCCESS } diff --git a/test/tests.h b/test/tests.h index 0add347..dd7b2a0 100644 --- a/test/tests.h +++ b/test/tests.h @@ -23,6 +23,10 @@ TEST_DECLARE(glm_translate_x) TEST_DECLARE(glm_translate_y) TEST_DECLARE(glm_translate_z) TEST_DECLARE(glm_translate_make) +TEST_DECLARE(glm_scale_to) +TEST_DECLARE(glm_scale_make) +TEST_DECLARE(glm_scale) +TEST_DECLARE(glm_scale_uni) TEST_DECLARE(glmc_translate) TEST_DECLARE(glmc_translate_to) @@ -30,6 +34,10 @@ TEST_DECLARE(glmc_translate_x) TEST_DECLARE(glmc_translate_y) TEST_DECLARE(glmc_translate_z) TEST_DECLARE(glmc_translate_make) +TEST_DECLARE(glmc_scale_to) +TEST_DECLARE(glmc_scale_make) +TEST_DECLARE(glmc_scale) +TEST_DECLARE(glmc_scale_uni) /* mat4 */ TEST_DECLARE(glm_mat4_ucopy) @@ -558,6 +566,10 @@ TEST_LIST { TEST_ENTRY(glm_translate_y) TEST_ENTRY(glm_translate_z) TEST_ENTRY(glm_translate_make) + TEST_ENTRY(glm_scale_to) + TEST_ENTRY(glm_scale_make) + TEST_ENTRY(glm_scale) + TEST_ENTRY(glm_scale_uni) TEST_ENTRY(glmc_translate) TEST_ENTRY(glmc_translate_to) @@ -565,6 +577,10 @@ TEST_LIST { TEST_ENTRY(glmc_translate_y) TEST_ENTRY(glmc_translate_z) TEST_ENTRY(glmc_translate_make) + TEST_ENTRY(glmc_scale_to) + TEST_ENTRY(glmc_scale_make) + TEST_ENTRY(glmc_scale) + TEST_ENTRY(glmc_scale_uni) /* mat4 */ TEST_ENTRY(glm_mat4_ucopy)