diff --git a/test/src/test_vec2.h b/test/src/test_vec2.h index 0c59db2..92ab8a2 100644 --- a/test/src/test_vec2.h +++ b/test/src/test_vec2.h @@ -365,6 +365,90 @@ TEST_IMPL(GLM_PREFIX, vec2_minadd) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec2_subsub) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {-3.0f, 4.0f}, + v3 = {1.0f, 2.0f}, + v4 = {1.0f, 2.0f}; + + GLM(vec2_subsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] - v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] - v2[1], v4[1])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec2_addsub) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {-3.0f, 4.0f}, + v3 = {1.0f, 2.0f}, + v4 = {1.0f, 2.0f}; + + GLM(vec2_addsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] + v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] + v2[1], v4[1])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec2_mulsub) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {-3.0f, 4.0f}, + v3 = {1.0f, 2.0f}, + v4 = {1.0f, 2.0f}; + + GLM(vec2_mulsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] * v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] * v2[1], v4[1])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec2_mulsubs) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {1.0f, 2.0f}, + v3 = {1.0f, 2.0f}; + float s = 9.0f; + + GLM(vec2_mulsubs)(v1, s, v3); + + ASSERT(test_eq(v2[0] - v1[0] * s, v3[0])) + ASSERT(test_eq(v2[1] - v1[1] * s, v3[1])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec2_maxsub) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {-3.0f, 4.0f}, + v3 = {1.0f, 2.0f}, + v4 = {1.0f, 2.0f}; + + GLM(vec2_maxsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_max(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_max(v1[1], v2[1]), v4[1])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec2_minsub) { + vec2 v1 = {2.0f, -3.0f}, + v2 = {-3.0f, 4.0f}, + v3 = {1.0f, 2.0f}, + v4 = {1.0f, 2.0f}; + + GLM(vec2_minsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_min(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_min(v1[1], v2[1]), v4[1])) + + TEST_SUCCESS +} + TEST_IMPL(GLM_PREFIX, vec2_negate_to) { vec2 v1 = {2.0f, -3.0f}, v2 = {-3.0f, 4.0f}, diff --git a/test/src/test_vec3.h b/test/src/test_vec3.h index bc908cd..800f8c9 100644 --- a/test/src/test_vec3.h +++ b/test/src/test_vec3.h @@ -567,6 +567,96 @@ TEST_IMPL(GLM_PREFIX, vec3_minadd) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec3_subsub) { + 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_subsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] - v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] - v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] - v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_addsub) { + 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_addsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] + v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] + v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] + v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_mulsub) { + 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_mulsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] * v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] * v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] * v2[2], v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_mulsubs) { + 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_mulsubs)(v1, s, v3); + + ASSERT(test_eq(v2[0] - v1[0] * s, v3[0])) + ASSERT(test_eq(v2[1] - v1[1] * s, v3[1])) + ASSERT(test_eq(v2[2] - v1[2] * s, v3[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_maxsub) { + 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_maxsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_max(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_max(v1[1], v2[1]), v4[1])) + ASSERT(test_eq(v3[2] - glm_max(v1[2], v2[2]), v4[2])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec3_minsub) { + 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_minsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_min(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_min(v1[1], v2[1]), v4[1])) + ASSERT(test_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}, diff --git a/test/src/test_vec4.h b/test/src/test_vec4.h index 5684e2d..3573baf 100644 --- a/test/src/test_vec4.h +++ b/test/src/test_vec4.h @@ -554,6 +554,102 @@ TEST_IMPL(GLM_PREFIX, vec4_minadd) { TEST_SUCCESS } +TEST_IMPL(GLM_PREFIX, vec4_subsub) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {1.0f, 2.0f, 3.0f, 130.0f}, + v4 = {1.0f, 2.0f, 3.0f, 130.0f}; + + GLM(vec4_subsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] - v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] - v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] - v2[2], v4[2])) + ASSERT(test_eq(v3[3] - v1[3] - v2[3], v4[3])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec4_addsub) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {1.0f, 2.0f, 3.0f, 130.0f}, + v4 = {1.0f, 2.0f, 3.0f, 130.0f}; + + GLM(vec4_addsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] + v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] + v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] + v2[2], v4[2])) + ASSERT(test_eq(v3[3] - v1[3] + v2[3], v4[3])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec4_mulsub) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {1.0f, 2.0f, 3.0f, 130.0f}, + v4 = {1.0f, 2.0f, 3.0f, 130.0f}; + + GLM(vec4_mulsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - v1[0] * v2[0], v4[0])) + ASSERT(test_eq(v3[1] - v1[1] * v2[1], v4[1])) + ASSERT(test_eq(v3[2] - v1[2] * v2[2], v4[2])) + ASSERT(test_eq(v3[3] - v1[3] * v2[3], v4[3])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec4_mulsubs) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {-3.0f, 4.0f, -5.0f, 20.0f}; + float s = 9.0f; + + GLM(vec4_mulsubs)(v1, s, v3); + + ASSERT(test_eq(v2[0] - v1[0] * s, v3[0])) + ASSERT(test_eq(v2[1] - v1[1] * s, v3[1])) + ASSERT(test_eq(v2[2] - v1[2] * s, v3[2])) + ASSERT(test_eq(v2[3] - v1[3] * s, v3[3])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec4_maxsub) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {1.0f, 2.0f, 3.0f, 130.0f}, + v4 = {1.0f, 2.0f, 3.0f, 130.0f}; + + GLM(vec4_maxsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_max(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_max(v1[1], v2[1]), v4[1])) + ASSERT(test_eq(v3[2] - glm_max(v1[2], v2[2]), v4[2])) + ASSERT(test_eq(v3[3] - glm_max(v1[3], v2[3]), v4[3])) + + TEST_SUCCESS +} + +TEST_IMPL(GLM_PREFIX, vec4_minsub) { + vec4 v1 = {2.0f, -3.0f, 4.0f, 4.0f}, + v2 = {-3.0f, 4.0f, -5.0f, 20.0f}, + v3 = {1.0f, 2.0f, 3.0f, 130.0f}, + v4 = {1.0f, 2.0f, 3.0f, 130.0f}; + + GLM(vec4_minsub)(v1, v2, v4); + + ASSERT(test_eq(v3[0] - glm_min(v1[0], v2[0]), v4[0])) + ASSERT(test_eq(v3[1] - glm_min(v1[1], v2[1]), v4[1])) + ASSERT(test_eq(v3[2] - glm_min(v1[2], v2[2]), v4[2])) + ASSERT(test_eq(v3[3] - glm_min(v1[3], v2[3]), v4[3])) + + TEST_SUCCESS +} + TEST_IMPL(GLM_PREFIX, vec4_negate_to) { vec4 v1 = {2.0f, -3.0f, 4.0f, 60.0f}, v2 = {-3.0f, 4.0f, -5.0f, 34.0f}, diff --git a/test/tests.h b/test/tests.h index d32ec40..56723b1 100644 --- a/test/tests.h +++ b/test/tests.h @@ -480,6 +480,12 @@ TEST_DECLARE(glm_vec2_muladd) TEST_DECLARE(glm_vec2_muladds) TEST_DECLARE(glm_vec2_maxadd) TEST_DECLARE(glm_vec2_minadd) +TEST_DECLARE(glm_vec2_subsub) +TEST_DECLARE(glm_vec2_addsub) +TEST_DECLARE(glm_vec2_mulsub) +TEST_DECLARE(glm_vec2_mulsubs) +TEST_DECLARE(glm_vec2_maxsub) +TEST_DECLARE(glm_vec2_minsub) TEST_DECLARE(glm_vec2_negate_to) TEST_DECLARE(glm_vec2_negate) TEST_DECLARE(glm_vec2_normalize) @@ -584,6 +590,12 @@ TEST_DECLARE(glm_vec3_muladd) TEST_DECLARE(glm_vec3_muladds) TEST_DECLARE(glm_vec3_maxadd) TEST_DECLARE(glm_vec3_minadd) +TEST_DECLARE(glm_vec3_subsub) +TEST_DECLARE(glm_vec3_addsub) +TEST_DECLARE(glm_vec3_mulsub) +TEST_DECLARE(glm_vec3_mulsubs) +TEST_DECLARE(glm_vec3_maxsub) +TEST_DECLARE(glm_vec3_minsub) TEST_DECLARE(glm_vec3_negate_to) TEST_DECLARE(glm_vec3_negate) TEST_DECLARE(glm_vec3_normalize) @@ -745,6 +757,12 @@ TEST_DECLARE(glm_vec4_muladd) TEST_DECLARE(glm_vec4_muladds) TEST_DECLARE(glm_vec4_maxadd) TEST_DECLARE(glm_vec4_minadd) +TEST_DECLARE(glm_vec4_subsub) +TEST_DECLARE(glm_vec4_addsub) +TEST_DECLARE(glm_vec4_mulsub) +TEST_DECLARE(glm_vec4_mulsubs) +TEST_DECLARE(glm_vec4_maxsub) +TEST_DECLARE(glm_vec4_minsub) TEST_DECLARE(glm_vec4_negate_to) TEST_DECLARE(glm_vec4_negate) TEST_DECLARE(glm_vec4_normalize)