From 92f0f44a2f287ed59aaf5893e063ac8dc58e26f8 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 25 Sep 2011 05:47:26 +0100 Subject: [PATCH] Added vec4 operators tests --- test/core/core_type_vec3.cpp | 2 +- test/core/core_type_vec4.cpp | 128 +++++++++++++++++++++++++++++++++-- 2 files changed, 124 insertions(+), 6 deletions(-) diff --git a/test/core/core_type_vec3.cpp b/test/core/core_type_vec3.cpp index 625a7786..dd2cb63a 100644 --- a/test/core/core_type_vec3.cpp +++ b/test/core/core_type_vec3.cpp @@ -9,7 +9,7 @@ #include -static int test_vec3_operators() +int test_vec3_operators() { int Error = 0; diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp index 23933b18..fda101d3 100644 --- a/test/core/core_type_vec4.cpp +++ b/test/core/core_type_vec4.cpp @@ -43,12 +43,130 @@ int test_hvec4() int test_vec4_operators() { - glm::vec4 A(1.0f); - glm::vec4 B(1.0f); - bool R = A != B; - bool S = A == B; + int Error = 0; + + { + glm::vec4 A(1.0f); + glm::vec4 B(1.0f); + bool R = A != B; + bool S = A == B; + + Error += (S && !R) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f); + + glm::vec4 C = A + B; + Error += C == glm::vec4(5, 7, 9, 11) ? 0 : 1; + + glm::vec4 D = B - A; + Error += D == glm::vec4(3, 3, 3, 3) ? 0 : 1; + + glm::vec4 E = A * B; + Error += E == glm::vec4(4, 10, 18, 28) ? 0 : 1; + + glm::vec4 F = B / A; + Error += F == glm::vec4(4, 2.5, 2, 7.0f / 4.0f) ? 0 : 1; + + glm::vec4 G = A + 1.0f; + Error += G == glm::vec4(2, 3, 4, 5) ? 0 : 1; + + glm::vec4 H = B - 1.0f; + Error += H == glm::vec4(3, 4, 5, 6) ? 0 : 1; + + glm::vec4 I = A * 2.0f; + Error += I == glm::vec4(2, 4, 6, 8) ? 0 : 1; + + glm::vec4 J = B / 2.0f; + Error += J == glm::vec4(2, 2.5, 3, 3.5) ? 0 : 1; + + glm::vec4 K = 1.0f + A; + Error += K == glm::vec4(2, 3, 4, 5) ? 0 : 1; + + glm::vec4 L = 1.0f - B; + Error += L == glm::vec4(-3, -4, -5, -6) ? 0 : 1; + + glm::vec4 M = 2.0f * A; + Error += M == glm::vec4(2, 4, 6, 8) ? 0 : 1; + + glm::vec4 N = 2.0f / B; + Error += N == glm::vec4(0.5, 2.0 / 5.0, 2.0 / 6.0, 2.0 / 7.0) ? 0 : 1; + } - return (S && !R) ? 0 : 1; + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f); + + A += B; + Error += A == glm::vec4(5, 7, 9, 11) ? 0 : 1; + + A += 1.0f; + Error += A == glm::vec4(6, 8, 10, 12) ? 0 : 1; + } + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f); + + B -= A; + Error += B == glm::vec4(3, 3, 3, 3) ? 0 : 1; + + B -= 1.0f; + Error += B == glm::vec4(2, 2, 2, 2) ? 0 : 1; + } + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f); + + A *= B; + Error += A == glm::vec4(4, 10, 18, 28) ? 0 : 1; + + A *= 2.0f; + Error += A == glm::vec4(8, 20, 36, 56) ? 0 : 1; + } + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B(4.0f, 5.0f, 6.0f, 7.0f); + + B /= A; + Error += B == glm::vec4(4, 2.5, 2, 7.0f / 4.0f) ? 0 : 1; + + B /= 2.0f; + Error += B == glm::vec4(2, 1.25, 1, 7.0f / 4.0f / 2.0f) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B = -A; + Error += B == glm::vec4(-1.0f, -2.0f, -3.0f, -4.0f) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B = --A; + Error += B == glm::vec4(0.0f, 1.0f, 2.0f, 3.0f) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B = A--; + Error += B == glm::vec4(0.0f, 1.0f, 2.0f, 3.0f) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B = ++A; + Error += B == glm::vec4(2.0f, 3.0f, 4.0f, 5.0f) ? 0 : 1; + } + + { + glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); + glm::vec4 B = A++; + Error += B == glm::vec4(2.0f, 3.0f, 4.0f, 5.0f) ? 0 : 1; + } + + return Error; } int test_vec4_size()