From ba694f4aecabde7d99ef3e42b6b66a8d317138fb Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Thu, 19 Sep 2019 16:12:27 +0300 Subject: [PATCH] tests: add some tests for vec3 --- test/include/common.h | 11 +- test/src/test_vec3.c | 112 +------ test/src/test_vec3.h | 581 ++++++++++++++++++++++++++++++++++ test/src/tests-test_mat4.gcno | Bin 83560 -> 0 bytes test/tests.h | 152 ++++++++- 5 files changed, 749 insertions(+), 107 deletions(-) create mode 100644 test/src/test_vec3.h delete mode 100644 test/src/tests-test_mat4.gcno diff --git a/test/include/common.h b/test/include/common.h index d3d03a9..ac7059a 100644 --- a/test/include/common.h +++ b/test/include/common.h @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -102,13 +103,13 @@ typedef struct test_entry_t { } while(0); #if defined(_WIN32) -# define drand48() ((float)(rand() / (RAND_MAX + 1.0))) -# define OK_TEXT "ok:" -# define FAIL_TEXT "fail:" +# define drand48() ((float)(rand() / (RAND_MAX + 1.0))) +# define OK_TEXT "ok:" +# define FAIL_TEXT "fail:" # define FINAL_TEXT "^_^" #else -# define OK_TEXT "✔︎" -# define FAIL_TEXT "𐄂" +# define OK_TEXT "✔︎" +# define FAIL_TEXT "𐄂" # define FINAL_TEXT "🎉" #endif diff --git a/test/src/test_vec3.c b/test/src/test_vec3.c index 5db3b32..318d306 100644 --- a/test/src/test_vec3.c +++ b/test/src/test_vec3.c @@ -5,110 +5,22 @@ * Full license can be found in the LICENSE file */ -#include "test_common.h" +/* test inline mat3 */ -TEST_IMPL(vec3) { - mat3 rot1m3; - mat4 rot1; - vec3 v, v1, v2; - vec3s vs1, vs2, vs3, vs4; +#define GLM_PREFIX glm_ +#define GLM(X) (glm_ ## X) - /* test zero */ - glm_vec3_zero(v); - ASSERTIFY(test_assert_vec3_eq(GLM_VEC3_ZERO, v)) +#include "test_vec3.h" - /* test one */ - glm_vec3_one(v); - ASSERTIFY(test_assert_vec3_eq(GLM_VEC3_ONE, v)) +#undef GLM +#undef GLM_PREFIX - /* adds, subs, div, divs, mul */ - glm_vec3_add(v, GLM_VEC3_ONE, v); - ASSERT(glmc_vec3_eq_eps(v, 2)) +/* test pre-compiled mat3 */ - glm_vec3_adds(v, 10, v); - ASSERT(glmc_vec3_eq_eps(v, 12)) +#define GLM_PREFIX glmc_ +#define GLM(X) (glmc_ ## X) - glm_vec3_sub(v, GLM_VEC3_ONE, v); - ASSERT(glmc_vec3_eq_eps(v, 11)) +#include "test_vec3.h" - glm_vec3_subs(v, 1, v); - ASSERT(glmc_vec3_eq_eps(v, 10)) - - glm_vec3_broadcast(2, v1); - glm_vec3_div(v, v1, v); - ASSERT(glmc_vec3_eq_eps(v, 5)) - - glm_vec3_divs(v, 0.5, v); - ASSERT(glmc_vec3_eq_eps(v, 10)) - - glm_vec3_mul(v, v1, v); - ASSERT(glmc_vec3_eq_eps(v, 20)) - - glm_vec3_scale(v, 0.5, v); - ASSERT(glmc_vec3_eq_eps(v, 10)) - - glm_vec3_normalize_to(v, v1); - glm_vec3_scale(v1, 0.8f, v1); - glm_vec3_scale_as(v, 0.8f, v); - ASSERTIFY(test_assert_vec3_eq(v1, v)) - - /* addadd, subadd, muladd */ - glm_vec3_one(v); - - glm_vec3_addadd(GLM_VEC3_ONE, GLM_VEC3_ONE, v); - ASSERT(glmc_vec3_eq_eps(v, 3)) - - glm_vec3_subadd(GLM_VEC3_ONE, GLM_VEC3_ZERO, v); - ASSERT(glmc_vec3_eq_eps(v, 4)) - - glm_vec3_broadcast(2, v1); - glm_vec3_broadcast(3, v2); - glm_vec3_muladd(v1, v2, v); - ASSERT(glmc_vec3_eq_eps(v, 10)) - - /* rotate */ - glm_vec3_copy(GLM_YUP, v); - glm_rotate_make(rot1, glm_rad(90), GLM_XUP); - glm_vec3_rotate_m4(rot1, v, v1); - glm_mat4_pick3(rot1, rot1m3); - glm_vec3_rotate_m3(rot1m3, v, v2); - - ASSERTIFY(test_assert_vec3_eq(v1, v2)) - ASSERTIFY(test_assert_vec3_eq(v1, GLM_ZUP)) - - /* structs */ - vs1 = test_rand_vec3s(); - vs2 = test_rand_vec3s(); - - vs3 = glms_vec3_add(vs1, vs2); - vs4 = glms_vec3_maxv(vs1, vs3); - ASSERTIFY(test_assert_vec3s_eq(vs3, vs4)) - - /* swizzle */ - - /* ZYX */ - v1[0] = 1; - v1[1] = 2; - v1[2] = 3; - glm_vec3_swizzle(v1, GLM_ZYX, v1); - ASSERTIFY(test_assert_vec3_eq(v1, (vec3){3, 2, 1})) - - glm_vec3_swizzle(v1, GLM_XXX, v1); - ASSERTIFY(test_assert_vec3_eq(v1, (vec3){3, 3, 3})) - - v1[0] = 1; - v1[1] = 2; - v1[2] = 3; - - glm_vec3_swizzle(v1, GLM_YYY, v1); - ASSERTIFY(test_assert_vec3_eq(v1, (vec3){2, 2, 2})) - - v1[0] = 1; - v1[1] = 2; - v1[2] = 3; - - glm_vec3_swizzle(v1, GLM_ZZZ, v1); - ASSERTIFY(test_assert_vec3_eq(v1, (vec3){3, 3, 3})) - - TEST_SUCCESS -} +#undef GLM +#undef GLM_PREFIX diff --git a/test/src/test_vec3.h b/test/src/test_vec3.h new file mode 100644 index 0000000..ff60497 --- /dev/null +++ b/test/src/test_vec3.h @@ -0,0 +1,581 @@ +/* + * 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" + +#define TEST_GLM_SHUFFLE3(z, y, x) (((z) << 4) | ((y) << 2) | (x)) + +#ifndef CGLM_TEST_VEC3_ONCE +#define CGLM_TEST_VEC3_ONCE + +/* Macros */ + +TEST_IMPL(MACRO_GLM_VEC3_ONE_INIT) { + vec3 v = GLM_VEC3_ONE_INIT; + + ASSERT(glm_eq(v[0], 1.0f)) + ASSERT(glm_eq(v[1], 1.0f)) + ASSERT(glm_eq(v[2], 1.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_VEC3_ZERO_INIT) { + vec3 v = GLM_VEC3_ZERO_INIT; + + ASSERT(glm_eq(v[0], 0.0f)) + ASSERT(glm_eq(v[1], 0.0f)) + ASSERT(glm_eq(v[2], 0.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_VEC3_ONE) { + vec3 v = GLM_VEC3_ONE; + + ASSERT(glm_eq(v[0], 1.0f)) + ASSERT(glm_eq(v[1], 1.0f)) + ASSERT(glm_eq(v[2], 1.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_VEC3_ZERO) { + vec3 v = GLM_VEC3_ZERO; + + ASSERT(glm_eq(v[0], 0.0f)) + ASSERT(glm_eq(v[1], 0.0f)) + ASSERT(glm_eq(v[2], 0.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_YUP) { + vec3 v = GLM_YUP; + + ASSERT(glm_eq(v[0], 0.0f)) + ASSERT(glm_eq(v[1], 1.0f)) + ASSERT(glm_eq(v[2], 0.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_ZUP) { + vec3 v = GLM_ZUP; + + ASSERT(glm_eq(v[0], 0.0f)) + ASSERT(glm_eq(v[1], 0.0f)) + ASSERT(glm_eq(v[2], 1.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_XUP) { + vec3 v = GLM_XUP; + + ASSERT(glm_eq(v[0], 1.0f)) + ASSERT(glm_eq(v[1], 0.0f)) + ASSERT(glm_eq(v[2], 0.0f)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_SHUFFLE3) { + ASSERT(TEST_GLM_SHUFFLE3(1, 0, 0) == GLM_SHUFFLE3(1, 0, 0)) + ASSERT(TEST_GLM_SHUFFLE3(0, 1, 0) == GLM_SHUFFLE3(0, 1, 0)) + ASSERT(TEST_GLM_SHUFFLE3(0, 0, 1) == GLM_SHUFFLE3(0, 0, 1)) + ASSERT(TEST_GLM_SHUFFLE3(1, 0, 0) == GLM_SHUFFLE3(1, 0, 0)) + ASSERT(TEST_GLM_SHUFFLE3(1, 0, 1) == GLM_SHUFFLE3(1, 0, 1)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_XXX) { + ASSERT(TEST_GLM_SHUFFLE3(0, 0, 0) == GLM_XXX) + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_YYY) { + ASSERT(TEST_GLM_SHUFFLE3(1, 1, 1) == GLM_YYY) + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_ZZZ) { + ASSERT(TEST_GLM_SHUFFLE3(2, 2, 2) == GLM_ZZZ) + TEST_SUCCESS +} + +TEST_IMPL(MACRO_GLM_ZYX) { + ASSERT(TEST_GLM_SHUFFLE3(0, 1, 2) == GLM_ZYX) + TEST_SUCCESS +} + +/* Deprecated */ + +TEST_IMPL(MACRO_glm_vec3_dup) { + vec3 v1 = {13.0f, 12.0f, 11.0f}, v2; + + glm_vec3_dup(v1, v2); + + ASSERTIFY(test_assert_vec3_eq(v1, v2)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_glm_vec3_flipsign) { + vec3 v1 = {13.0f, -12.0f, 11.0f}, + v2 = {-13.0f, 12.0f, -11.0f}; + + glm_vec3_flipsign(v1); + + ASSERTIFY(test_assert_vec3_eq(v1, v2)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_glm_vec3_flipsign_to) { + vec3 v1 = {13.0f, -12.0f, 11.0f}, + v2 = {-13.0f, 12.0f, -11.0f}, + v3; + + glm_vec3_flipsign_to(v1, v3); + + ASSERTIFY(test_assert_vec3_eq(v2, v3)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_glm_vec3_inv) { + vec3 v1 = {13.0f, -12.0f, 11.0f}, + v2 = {-13.0f, 12.0f, -11.0f}; + + glm_vec3_inv(v1); + + ASSERTIFY(test_assert_vec3_eq(v1, v2)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_glm_vec3_inv_to) { + vec3 v1 = {13.0f, -12.0f, 11.0f}, + v2 = {-13.0f, 12.0f, -11.0f}, + v3; + + glm_vec3_inv_to(v1, v3); + + ASSERTIFY(test_assert_vec3_eq(v2, v3)) + + TEST_SUCCESS +} + +TEST_IMPL(MACRO_glm_vec3_mulv) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3; + + glm_vec3_mulv(v1, v2, v3); + + ASSERT(glm_eq(v1[0] * v2[0], v3[0])) + ASSERT(glm_eq(v1[1] * v2[1], v3[1])) + ASSERT(glm_eq(v1[2] * v2[2], v3[2])) + + TEST_SUCCESS +} + +#endif /* CGLM_TEST_VEC3_ONCE */ + +/* --- */ + +TEST_IMPL(GLM_PREFIX, vec3) { + vec4 v4 = {10.0f, 9.0f, 8.0f, 7.0f}; + vec3 v3; + + GLM(vec3)(v4, v3); + + ASSERT(glm_eq(v3[0], v4[0])) + ASSERT(glm_eq(v3[1], v4[1])) + ASSERT(glm_eq(v3[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_copy) { + vec3 v1 = {10.0f, 9.0f, 8.0f}; + vec3 v2 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_copy)(v1, v2); + + ASSERTIFY(test_assert_vec3_eq(v1, v2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_zero) { + vec3 v1 = {10.0f, 9.0f, 8.0f}; + vec3 v2 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_zero)(v1); + GLM(vec3_zero)(v2); + + ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC3_ZERO)) + ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC3_ZERO)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_one) { + vec3 v1 = {10.0f, 9.0f, 8.0f}; + vec3 v2 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_one)(v1); + GLM(vec3_one)(v2); + + ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC3_ONE)) + ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC3_ONE)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_dot) { + vec3 a = {10.0f, 9.0f, 8.0f}; + vec3 b = {1.0f, 2.0f, 3.0f}; + float dot1, dot2; + + dot1 = GLM(vec3_dot)(a, b); + dot2 = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + + ASSERT(glm_eq(dot1, dot2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_norm2) { + vec3 a = {10.0f, 9.0f, 8.0f}; + float n1, n2; + + n1 = GLM(vec3_norm2)(a); + n2 = a[0] * a[0] + a[1] * a[1] + a[2] * a[2]; + + ASSERT(glm_eq(n1, n2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_norm) { + vec3 a = {10.0f, 9.0f, 8.0f}; + float n1, n2; + + n1 = GLM(vec3_norm)(a); + n2 = sqrtf(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]); + + ASSERT(glm_eq(n1, n2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_norm_one) { + vec3 a = {-10.0f, 9.0f, -8.0f}; + float n1, n2; + + n1 = GLM(vec3_norm_one)(a); + n2 = fabsf(a[0]) + fabsf(a[1]) + fabsf(a[2]); + + ASSERT(glm_eq(n1, n2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_norm_inf) { + vec3 a = {-10.0f, 9.0f, -8.0f}; + float n1, n2; + + n1 = GLM(vec3_norm_inf)(a); + n2 = fabsf(a[0]); + + if (fabsf(a[0]) < fabsf(a[1])) + n2 = fabsf(a[1]); + + if (fabsf(a[1]) < fabsf(a[2])) + n2 = fabsf(a[2]); + + ASSERT(glm_eq(n1, n2)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_add) { + vec4 a = {-10.0f, 9.0f, -8.0f}; + vec4 b = {12.0f, 19.0f, -18.0f}; + vec4 c, d; + + c[0] = a[0] + b[0]; + c[1] = a[1] + b[1]; + c[2] = a[2] + b[2]; + + GLM(vec3_add)(a, b, d); + + ASSERTIFY(test_assert_vec3_eq(c, d)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_adds) { + vec4 a = {-10.0f, 9.0f, -8.0f}; + vec4 c, d; + float s = 7.0f; + + c[0] = a[0] + s; + c[1] = a[1] + s; + c[2] = a[2] + s; + + GLM(vec3_adds)(a, s, d); + + ASSERTIFY(test_assert_vec3_eq(c, d)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_sub) { + vec4 a = {-10.0f, 9.0f, -8.0f}; + vec4 b = {12.0f, 19.0f, -18.0f}; + vec4 c, d; + + c[0] = a[0] - b[0]; + c[1] = a[1] - b[1]; + c[2] = a[2] - b[2]; + + GLM(vec3_sub)(a, b, d); + + ASSERTIFY(test_assert_vec3_eq(c, d)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_subs) { + vec4 a = {-10.0f, 9.0f, -8.0f}; + vec4 c, d; + float s = 7.0f; + + c[0] = a[0] - s; + c[1] = a[1] - s; + c[2] = a[2] - s; + + GLM(vec3_subs)(a, s, d); + + ASSERTIFY(test_assert_vec3_eq(c, d)) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_mul) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3; + + GLM(vec3_mul)(v1, v2, v3); + + ASSERT(glm_eq(v1[0] * v2[0], v3[0])) + ASSERT(glm_eq(v1[1] * v2[1], v3[1])) + ASSERT(glm_eq(v1[2] * v2[2], v3[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_scale) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, v2; + float s = 7.0f; + + GLM(vec3_scale)(v1, s, v2); + + ASSERT(glm_eq(v1[0] * s, v2[0])) + ASSERT(glm_eq(v1[1] * s, v2[1])) + ASSERT(glm_eq(v1[2] * s, v2[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_scale_as) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, v2; + float s = 7.0f; + float norm; + + GLM(vec3_scale_as)(v1, s, v2); + + norm = sqrtf(v1[0] * v1[0] + v1[1] * v1[1] + v1[2] * v1[2]); + if (norm == 0.0f) { + ASSERT(glm_eq(v1[0], 0.0f)) + ASSERT(glm_eq(v1[1], 0.0f)) + ASSERT(glm_eq(v1[2], 0.0f)) + + TEST_SUCCESS + } + + norm = s / norm; + + ASSERT(glm_eq(v1[0] * norm, v2[0])) + ASSERT(glm_eq(v1[1] * norm, v2[1])) + ASSERT(glm_eq(v1[2] * norm, v2[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_div) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3; + + GLM(vec3_div)(v1, v2, v3); + + ASSERT(glm_eq(v1[0] / v2[0], v3[0])) + ASSERT(glm_eq(v1[1] / v2[1], v3[1])) + ASSERT(glm_eq(v1[2] / v2[2], v3[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_divs) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, v2; + float s = 7.0f; + + GLM(vec3_divs)(v1, s, v2); + + ASSERT(glm_eq(v1[0] / s, v2[0])) + ASSERT(glm_eq(v1[1] / s, v2[1])) + ASSERT(glm_eq(v1[2] / s, v2[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_addadd) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {1.0f, 2.0f, 3.0f}, + v4 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_addadd)(v1, v2, v4); + + ASSERT(glm_eq(v3[0] + v1[0] + v2[0], v4[0])) + ASSERT(glm_eq(v3[1] + v1[1] + v2[1], v4[1])) + ASSERT(glm_eq(v3[2] + v1[2] + v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_subadd) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {1.0f, 2.0f, 3.0f}, + v4 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_subadd)(v1, v2, v4); + + ASSERT(glm_eq(v3[0] + v1[0] - v2[0], v4[0])) + ASSERT(glm_eq(v3[1] + v1[1] - v2[1], v4[1])) + ASSERT(glm_eq(v3[2] + v1[2] - v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_muladd) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {1.0f, 2.0f, 3.0f}, + v4 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_muladd)(v1, v2, v4); + + ASSERT(glm_eq(v3[0] + v1[0] * v2[0], v4[0])) + ASSERT(glm_eq(v3[1] + v1[1] * v2[1], v4[1])) + ASSERT(glm_eq(v3[2] + v1[2] * v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_muladds) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {1.0f, 2.0f, 3.0f}, + v3 = {1.0f, 2.0f, 3.0f}; + float s = 9.0f; + + GLM(vec3_muladds)(v1, s, v3); + + ASSERT(glm_eq(v2[0] + v1[0] * s, v3[0])) + ASSERT(glm_eq(v2[1] + v1[1] * s, v3[1])) + ASSERT(glm_eq(v2[2] + v1[2] * s, v3[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_maxadd) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {1.0f, 2.0f, 3.0f}, + v4 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_maxadd)(v1, v2, v4); + + ASSERT(glm_eq(v3[0] + glm_max(v1[0], v2[0]), v4[0])) + ASSERT(glm_eq(v3[1] + glm_max(v1[1], v2[1]), v4[1])) + ASSERT(glm_eq(v3[2] + glm_max(v1[2], v2[2]), v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_minadd) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {1.0f, 2.0f, 3.0f}, + v4 = {1.0f, 2.0f, 3.0f}; + + GLM(vec3_minadd)(v1, v2, v4); + + ASSERT(glm_eq(v3[0] + glm_min(v1[0], v2[0]), v4[0])) + ASSERT(glm_eq(v3[1] + glm_min(v1[1], v2[1]), v4[1])) + ASSERT(glm_eq(v3[2] + glm_min(v1[2], v2[2]), v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_negate_to) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3, v4; + + GLM(vec3_negate_to)(v1, v3); + GLM(vec3_negate_to)(v2, v4); + + ASSERT(glm_eq(-v1[0], v3[0])) + ASSERT(glm_eq(-v1[1], v3[1])) + ASSERT(glm_eq(-v1[2], v3[2])) + + ASSERT(glm_eq(-v2[0], v4[0])) + ASSERT(glm_eq(-v2[1], v4[1])) + ASSERT(glm_eq(-v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_negate) { + vec3 v1 = {2.0f, -3.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f}, + v3 = {2.0f, -3.0f, 4.0f}, + v4 = {-3.0f, 4.0f, -5.0f}; + + GLM(vec3_negate)(v1); + GLM(vec3_negate)(v2); + + ASSERT(glm_eq(-v1[0], v3[0])) + ASSERT(glm_eq(-v1[1], v3[1])) + ASSERT(glm_eq(-v1[2], v3[2])) + + ASSERT(glm_eq(-v2[0], v4[0])) + ASSERT(glm_eq(-v2[1], v4[1])) + ASSERT(glm_eq(-v2[2], v4[2])) + + TEST_SUCCESS +} + diff --git a/test/src/tests-test_mat4.gcno b/test/src/tests-test_mat4.gcno deleted file mode 100644 index d58d103ca57c26e8a784b0d9657f55792bd47ed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83560 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 diff --git a/test/tests.h b/test/tests.h index a3bf582..1cded8e 100644 --- a/test/tests.h +++ b/test/tests.h @@ -127,7 +127,79 @@ TEST_DECLARE(quat) TEST_DECLARE(bezier) /* vec3 */ -TEST_DECLARE(vec3) +TEST_DECLARE(MACRO_GLM_VEC3_ONE_INIT) +TEST_DECLARE(MACRO_GLM_VEC3_ZERO_INIT) +TEST_DECLARE(MACRO_GLM_VEC3_ONE) +TEST_DECLARE(MACRO_GLM_VEC3_ZERO) +TEST_DECLARE(MACRO_GLM_YUP) +TEST_DECLARE(MACRO_GLM_ZUP) +TEST_DECLARE(MACRO_GLM_XUP) +TEST_DECLARE(MACRO_GLM_SHUFFLE3) +TEST_DECLARE(MACRO_GLM_XXX) +TEST_DECLARE(MACRO_GLM_YYY) +TEST_DECLARE(MACRO_GLM_ZZZ) +TEST_DECLARE(MACRO_GLM_ZYX) + +TEST_DECLARE(MACRO_glm_vec3_dup) +TEST_DECLARE(MACRO_glm_vec3_flipsign) +TEST_DECLARE(MACRO_glm_vec3_flipsign_to) +TEST_DECLARE(MACRO_glm_vec3_inv) +TEST_DECLARE(MACRO_glm_vec3_inv_to) +TEST_DECLARE(MACRO_glm_vec3_mulv) + +TEST_DECLARE(glm_vec3) +TEST_DECLARE(glm_vec3_copy) +TEST_DECLARE(glm_vec3_zero) +TEST_DECLARE(glm_vec3_one) +TEST_DECLARE(glm_vec3_dot) +TEST_DECLARE(glm_vec3_norm2) +TEST_DECLARE(glm_vec3_norm) +TEST_DECLARE(glm_vec3_norm_one) +TEST_DECLARE(glm_vec3_norm_inf) +TEST_DECLARE(glm_vec3_add) +TEST_DECLARE(glm_vec3_adds) +TEST_DECLARE(glm_vec3_sub) +TEST_DECLARE(glm_vec3_subs) +TEST_DECLARE(glm_vec3_mul) +TEST_DECLARE(glm_vec3_scale) +TEST_DECLARE(glm_vec3_scale_as) +TEST_DECLARE(glm_vec3_div) +TEST_DECLARE(glm_vec3_divs) +TEST_DECLARE(glm_vec3_addadd) +TEST_DECLARE(glm_vec3_subadd) +TEST_DECLARE(glm_vec3_muladd) +TEST_DECLARE(glm_vec3_muladds) +TEST_DECLARE(glm_vec3_maxadd) +TEST_DECLARE(glm_vec3_minadd) +TEST_DECLARE(glm_vec3_negate_to) +TEST_DECLARE(glm_vec3_negate) + +TEST_DECLARE(glmc_vec3) +TEST_DECLARE(glmc_vec3_copy) +TEST_DECLARE(glmc_vec3_zero) +TEST_DECLARE(glmc_vec3_one) +TEST_DECLARE(glmc_vec3_dot) +TEST_DECLARE(glmc_vec3_norm2) +TEST_DECLARE(glmc_vec3_norm) +TEST_DECLARE(glmc_vec3_norm_one) +TEST_DECLARE(glmc_vec3_norm_inf) +TEST_DECLARE(glmc_vec3_add) +TEST_DECLARE(glmc_vec3_adds) +TEST_DECLARE(glmc_vec3_sub) +TEST_DECLARE(glmc_vec3_subs) +TEST_DECLARE(glmc_vec3_mul) +TEST_DECLARE(glmc_vec3_scale) +TEST_DECLARE(glmc_vec3_scale_as) +TEST_DECLARE(glmc_vec3_div) +TEST_DECLARE(glmc_vec3_divs) +TEST_DECLARE(glmc_vec3_addadd) +TEST_DECLARE(glmc_vec3_subadd) +TEST_DECLARE(glmc_vec3_muladd) +TEST_DECLARE(glmc_vec3_muladds) +TEST_DECLARE(glmc_vec3_maxadd) +TEST_DECLARE(glmc_vec3_minadd) +TEST_DECLARE(glmc_vec3_negate_to) +TEST_DECLARE(glmc_vec3_negate) /* vec4 */ TEST_DECLARE(vec4) @@ -246,8 +318,84 @@ TEST_LIST { TEST_ENTRY(bezier) /* vec3 */ - TEST_ENTRY(vec3) + /* Macros */ + + TEST_ENTRY(MACRO_GLM_VEC3_ONE_INIT) + TEST_ENTRY(MACRO_GLM_VEC3_ZERO_INIT) + TEST_ENTRY(MACRO_GLM_VEC3_ONE) + TEST_ENTRY(MACRO_GLM_VEC3_ZERO) + TEST_ENTRY(MACRO_GLM_YUP) + TEST_ENTRY(MACRO_GLM_ZUP) + TEST_ENTRY(MACRO_GLM_XUP) + TEST_ENTRY(MACRO_GLM_SHUFFLE3) + TEST_ENTRY(MACRO_GLM_XXX) + TEST_ENTRY(MACRO_GLM_YYY) + TEST_ENTRY(MACRO_GLM_ZZZ) + TEST_ENTRY(MACRO_GLM_ZYX) + + TEST_ENTRY(MACRO_glm_vec3_dup) + TEST_ENTRY(MACRO_glm_vec3_flipsign) + TEST_ENTRY(MACRO_glm_vec3_flipsign_to) + TEST_ENTRY(MACRO_glm_vec3_inv) + TEST_ENTRY(MACRO_glm_vec3_inv_to) + TEST_ENTRY(MACRO_glm_vec3_mulv) + + TEST_ENTRY(glm_vec3) + TEST_ENTRY(glm_vec3_copy) + TEST_ENTRY(glm_vec3_zero) + TEST_ENTRY(glm_vec3_one) + TEST_ENTRY(glm_vec3_dot) + TEST_ENTRY(glm_vec3_norm2) + TEST_ENTRY(glm_vec3_norm) + TEST_ENTRY(glm_vec3_norm_one) + TEST_ENTRY(glm_vec3_norm_inf) + TEST_ENTRY(glm_vec3_add) + TEST_ENTRY(glm_vec3_adds) + TEST_ENTRY(glm_vec3_sub) + TEST_ENTRY(glm_vec3_subs) + TEST_ENTRY(glm_vec3_mul) + TEST_ENTRY(glm_vec3_scale) + TEST_ENTRY(glm_vec3_scale_as) + TEST_ENTRY(glm_vec3_div) + TEST_ENTRY(glm_vec3_divs) + TEST_ENTRY(glm_vec3_addadd) + TEST_ENTRY(glm_vec3_subadd) + TEST_ENTRY(glm_vec3_muladd) + TEST_ENTRY(glm_vec3_muladds) + TEST_ENTRY(glm_vec3_maxadd) + TEST_ENTRY(glm_vec3_minadd) + TEST_ENTRY(glm_vec3_negate_to) + TEST_ENTRY(glm_vec3_negate) + + + TEST_ENTRY(glmc_vec3) + TEST_ENTRY(glmc_vec3_copy) + TEST_ENTRY(glmc_vec3_zero) + TEST_ENTRY(glmc_vec3_one) + TEST_ENTRY(glmc_vec3_dot) + TEST_ENTRY(glmc_vec3_norm2) + TEST_ENTRY(glmc_vec3_norm) + TEST_ENTRY(glmc_vec3_norm_one) + TEST_ENTRY(glmc_vec3_norm_inf) + TEST_ENTRY(glmc_vec3_add) + TEST_ENTRY(glmc_vec3_adds) + TEST_ENTRY(glmc_vec3_sub) + TEST_ENTRY(glmc_vec3_subs) + TEST_ENTRY(glmc_vec3_mul) + TEST_ENTRY(glmc_vec3_scale) + TEST_ENTRY(glmc_vec3_scale_as) + TEST_ENTRY(glmc_vec3_div) + TEST_ENTRY(glmc_vec3_divs) + TEST_ENTRY(glmc_vec3_addadd) + TEST_ENTRY(glmc_vec3_subadd) + TEST_ENTRY(glmc_vec3_muladd) + TEST_ENTRY(glmc_vec3_muladds) + TEST_ENTRY(glmc_vec3_maxadd) + TEST_ENTRY(glmc_vec3_minadd) + TEST_ENTRY(glmc_vec3_negate_to) + TEST_ENTRY(glmc_vec3_negate) + /* vec4 */ TEST_ENTRY(vec4) };