From 32e7d5cceb3477df62c0dd7a8a9961eee7433e65 Mon Sep 17 00:00:00 2001 From: Marcin Date: Sat, 18 Jan 2025 16:52:23 +0000 Subject: [PATCH] mods test --- test/src/test_vec2.h | 22 ++++++++++++++++++++++ test/src/test_vec3.h | 23 +++++++++++++++++++++++ test/src/test_vec4.h | 25 +++++++++++++++++++++++++ test/tests.h | 12 ++++++++++++ 4 files changed, 82 insertions(+) diff --git a/test/src/test_vec2.h b/test/src/test_vec2.h index f94fab3..949e30e 100644 --- a/test/src/test_vec2.h +++ b/test/src/test_vec2.h @@ -714,6 +714,28 @@ TEST_IMPL(GLM_PREFIX, vec2_floor) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec2_mods) { + vec2 v1 = {2.104f, 3.012f}, v2 = {12.35f, 31.140f}, v3, v4; + vec2 v5 = {0.104f, 0.012f}, v6 = {0.35f, 0.140f}; + + /* Mod 1 - leaves just the fractional part */ + GLM(vec2_mods)(v1, 1.0f, v3); + GLM(vec2_mods)(v2, 1.0f, v4); + + ASSERTIFY(test_assert_vec2_eq(v3, v5)) + ASSERTIFY(test_assert_vec2_eq(v4, v6)) + + /* Mod 2 - parity + fractional part */ + GLM(vec2_mods)(v1, 2.0f, v3); + GLM(vec2_mods)(v2, 2.0f, v4); + + vec2 v7 = {0.104f, 1.012f}, v8 = {0.35f, 1.140f}; + + ASSERTIFY(test_assert_vec2_eq(v3, v7)) + ASSERTIFY(test_assert_vec2_eq(v4, v8)) + + TEST_SUCCESS +} TEST_IMPL(GLM_PREFIX, vec2_lerp) { vec2 v1 = {-100.0f, -200.0f}; diff --git a/test/src/test_vec3.h b/test/src/test_vec3.h index b3fdb51..ac25c33 100644 --- a/test/src/test_vec3.h +++ b/test/src/test_vec3.h @@ -1839,6 +1839,29 @@ TEST_IMPL(GLM_PREFIX, vec3_floor) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec3_mods) { + vec3 v1 = {2.104f, 3.012f, 4.10f}, v2 = {12.35f, 31.140f, 43.502f}, v3, v4; + vec3 v5 = {0.104f, 0.012f, 0.10f}, v6 = {0.35f, 0.140f, 0.502f}; + + /* Mod 1 - leaves just the fractional part */ + GLM(vec3_mods)(v1, 1.0f, v3); + GLM(vec3_mods)(v2, 1.0f, v4); + + ASSERTIFY(test_assert_vec3_eq(v3, v5)) + ASSERTIFY(test_assert_vec3_eq(v4, v6)) + + /* Mod 2 - parity + fractional part */ + GLM(vec3_mods)(v1, 2.0f, v3); + GLM(vec3_mods)(v2, 2.0f, v4); + + vec3 v7 = {0.104f, 1.012f, 0.10f}, v8 = {0.35f, 1.140f, 1.502f}; + + ASSERTIFY(test_assert_vec3_eq(v3, v7)) + ASSERTIFY(test_assert_vec3_eq(v4, v8)) + + TEST_SUCCESS +} + TEST_IMPL(GLM_PREFIX, vec3_hadd) { vec3 v1 = {2.0f, 3.0f, 4.0f}, v2 = {12.0f, 31.0f, 43.0f}; float r1, r2, r3, r4; diff --git a/test/src/test_vec4.h b/test/src/test_vec4.h index e7ad793..ce4b1a4 100644 --- a/test/src/test_vec4.h +++ b/test/src/test_vec4.h @@ -1506,6 +1506,31 @@ TEST_IMPL(GLM_PREFIX, vec4_floor) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec4_mods) { + vec4 v1 = {2.104f, 3.012f, 4.10f, 5.78f}, v2 = {12.35f, 31.140f, 43.502f, 198.999f}; + vec4 v3, v4; + vec4 v5 = {0.104f, 0.012f, 0.10f, 0.78f}, v6 = {0.35f, 0.140f, 0.502f, 0.999f}; + + /* Mod 1 - leaves just the fractional part */ + GLM(vec4_mods)(v1, 1.0f, v3); + GLM(vec4_mods)(v2, 1.0f, v4); + + ASSERTIFY(test_assert_vec4_eq(v3, v5)) + ASSERTIFY(test_assert_vec4_eq(v4, v6)) + + /* Mod 2 - parity + fractional part */ + GLM(vec4_mods)(v1, 2.0f, v3); + GLM(vec4_mods)(v2, 2.0f, v4); + + vec4 v7 = {0.104f, 1.012f, 0.10f, 1.78f}, v8 = {0.35f, 1.140f, 1.502f, 0.999f}; + + ASSERTIFY(test_assert_vec4_eq(v3, v7)) + ASSERTIFY(test_assert_vec4_eq(v4, v8)) + + TEST_SUCCESS +} + + TEST_IMPL(GLM_PREFIX, vec4_hadd) { vec4 v1 = {2.0f, 3.0f, 4.0f, 4.0f}, v2 = {12.0f, 31.0f, 43.0f, 43.0f}; float r1, r2, r3, r4; diff --git a/test/tests.h b/test/tests.h index e9bf439..9106ba6 100644 --- a/test/tests.h +++ b/test/tests.h @@ -541,6 +541,7 @@ TEST_DECLARE(glm_vec2_clamp) TEST_DECLARE(glm_vec2_abs) TEST_DECLARE(glm_vec2_fract) TEST_DECLARE(glm_vec2_floor) +TEST_DECLARE(glm_vec2_mods) TEST_DECLARE(glm_vec2_lerp) TEST_DECLARE(glm_vec2_complex_mul) TEST_DECLARE(glm_vec2_complex_div) @@ -591,6 +592,7 @@ TEST_DECLARE(glmc_vec2_clamp) TEST_DECLARE(glmc_vec2_abs) TEST_DECLARE(glmc_vec2_fract) TEST_DECLARE(glmc_vec2_floor) +TEST_DECLARE(glmc_vec2_mods) TEST_DECLARE(glmc_vec2_lerp) TEST_DECLARE(glmc_vec2_complex_mul) TEST_DECLARE(glmc_vec2_complex_div) @@ -697,6 +699,7 @@ TEST_DECLARE(glm_vec3_sign) TEST_DECLARE(glm_vec3_abs) TEST_DECLARE(glm_vec3_fract) TEST_DECLARE(glm_vec3_floor) +TEST_DECLARE(glm_vec3_mods) TEST_DECLARE(glm_vec3_hadd) TEST_DECLARE(glm_vec3_sqrt) TEST_DECLARE(glm_vec3_make) @@ -776,6 +779,7 @@ TEST_DECLARE(glmc_vec3_isvalid) TEST_DECLARE(glmc_vec3_sign) TEST_DECLARE(glmc_vec3_abs) TEST_DECLARE(glmc_vec3_fract) +TEST_DECLARE(glmc_vec3_mods) TEST_DECLARE(glmc_vec3_hadd) TEST_DECLARE(glmc_vec3_sqrt) TEST_DECLARE(glmc_vec3_make) @@ -868,6 +872,7 @@ TEST_DECLARE(glm_vec4_sign) TEST_DECLARE(glm_vec4_abs) TEST_DECLARE(glm_vec4_fract) TEST_DECLARE(glm_vec4_floor) +TEST_DECLARE(glm_vec4_mods) TEST_DECLARE(glm_vec4_hadd) TEST_DECLARE(glm_vec4_sqrt) TEST_DECLARE(glm_vec4_make) @@ -943,6 +948,7 @@ TEST_DECLARE(glmc_vec4_sign) TEST_DECLARE(glmc_vec4_abs) TEST_DECLARE(glmc_vec4_fract) TEST_DECLARE(glmc_vec4_floor) +TEST_DECLARE(glmc_vec4_mods) TEST_DECLARE(glmc_vec4_hadd) TEST_DECLARE(glmc_vec4_sqrt) TEST_DECLARE(glmc_vec4_make) @@ -1734,6 +1740,7 @@ TEST_LIST { TEST_ENTRY(glm_vec2_abs) TEST_ENTRY(glm_vec2_fract) TEST_ENTRY(glm_vec2_floor) + TEST_ENTRY(glm_vec2_mods) TEST_ENTRY(glm_vec2_lerp) TEST_ENTRY(glm_vec2_complex_mul) TEST_ENTRY(glm_vec2_complex_div) @@ -1784,6 +1791,7 @@ TEST_LIST { TEST_ENTRY(glmc_vec2_abs) TEST_ENTRY(glmc_vec2_fract) TEST_ENTRY(glmc_vec2_floor) + TEST_ENTRY(glmc_vec2_mods) TEST_ENTRY(glmc_vec2_lerp) TEST_ENTRY(glmc_vec2_complex_mul) TEST_ENTRY(glmc_vec2_complex_div) @@ -1889,6 +1897,7 @@ TEST_LIST { TEST_ENTRY(glm_vec3_abs) TEST_ENTRY(glm_vec3_fract) TEST_ENTRY(glm_vec3_floor) + TEST_ENTRY(glm_vec3_mods) TEST_ENTRY(glm_vec3_hadd) TEST_ENTRY(glm_vec3_sqrt) TEST_ENTRY(glm_vec3_make) @@ -1968,6 +1977,7 @@ TEST_LIST { TEST_ENTRY(glmc_vec3_sign) TEST_ENTRY(glmc_vec3_abs) TEST_ENTRY(glmc_vec3_fract) + TEST_ENTRY(glmc_vec3_mods) TEST_ENTRY(glmc_vec3_hadd) TEST_ENTRY(glmc_vec3_sqrt) TEST_ENTRY(glmc_vec3_make) @@ -2060,6 +2070,7 @@ TEST_LIST { TEST_ENTRY(glm_vec4_abs) TEST_ENTRY(glm_vec4_fract) TEST_ENTRY(glm_vec4_floor) + TEST_ENTRY(glm_vec4_mods) TEST_ENTRY(glm_vec4_hadd) TEST_ENTRY(glm_vec4_sqrt) TEST_ENTRY(glm_vec4_make) @@ -2135,6 +2146,7 @@ TEST_LIST { TEST_ENTRY(glmc_vec4_abs) TEST_ENTRY(glmc_vec4_fract) TEST_ENTRY(glmc_vec4_floor) + TEST_ENTRY(glmc_vec4_mods) TEST_ENTRY(glmc_vec4_hadd) TEST_ENTRY(glmc_vec4_sqrt) TEST_ENTRY(glmc_vec4_make)