tests: add more tests for vec3

This commit is contained in:
Recep Aslantas
2019-09-22 23:25:54 +03:00
parent 7b25cbb9cb
commit 378e26140e
2 changed files with 166 additions and 0 deletions

View File

@@ -664,6 +664,30 @@ TEST_IMPL(GLM_PREFIX, vec3_crossn) {
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_angle) {
vec3 v1 = {1.0f, 0.0f, 0.0f},
v2 = {1.0f, 0.0f, 1.0f},
v3 = {0.0f, 1.0f, 0.0f};
float a;
a = GLM(vec3_angle)(v1, v1);
ASSERT(!isinf(a))
ASSERT(!isnan(a))
ASSERT(test_eq(a, 0.0f))
a = GLM(vec3_angle)(v1, v2);
ASSERT(!isinf(a))
ASSERT(!isnan(a))
ASSERT(test_eq(a, GLM_PI_4))
a = GLM(vec3_angle)(v1, v3);
ASSERT(!isinf(a))
ASSERT(!isnan(a))
ASSERT(test_eq(a, GLM_PI_2))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_rotate) {
vec3 v1 = {1.0f, 0.0f, 0.0f}, v2 = {1.0f, 1.0f, 1.0f};
@@ -866,6 +890,128 @@ TEST_IMPL(GLM_PREFIX, vec3_rotate_m3) {
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_proj) {
vec3 v1 = {3.0f, 4.0f, 0.0f},
v2 = {10.0f, 0.0f, 0.0f},
v3 = {0.0f, 10.0f, 0.0f},
v4 = {3.0f, 0.0f, 0.0f},
v5 = {0.0f, 4.0f, 0.0f},
v6;
GLM(vec3_proj)(v1, v2, v6);
ASSERTIFY(test_assert_vec3_eq(v4, v6))
GLM(vec3_proj)(v1, v3, v6);
ASSERTIFY(test_assert_vec3_eq(v5, v6))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_center) {
vec3 v1 = {30.0f, 0.0f, 0.0f},
v2 = {0.0f, 0.0f, 0.0f},
v3 = {15.0f, 0.0f, 0.0f},
v4 = {3.0f, 10.0f, 120.0f},
v5 = {0.46f, 4.0f, 14.0f},
v6;
GLM(vec3_center)(v1, v2, v6);
ASSERTIFY(test_assert_vec3_eq(v3, v6))
GLM(vec3_center)(v4, v5, v6);
ASSERT(test_eq((v4[0] + v5[0]) * 0.5f, v6[0]))
ASSERT(test_eq((v4[1] + v5[1]) * 0.5f, v6[1]))
ASSERT(test_eq((v4[2] + v5[2]) * 0.5f, v6[2]))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_distance2) {
vec3 v1 = {30.0f, 0.0f, 0.0f},
v2 = {0.0f, 0.0f, 0.0f},
v3 = {3.0f, 10.0f, 120.0f},
v4 = {0.46f, 4.0f, 14.0f};
float d;
d = GLM(vec3_distance2)(v1, v2);
ASSERT(test_eq(d, 30.0f))
d = GLM(vec3_distance2)(v3, v4);
ASSERT(test_eq(powf(v3[0] - v4[0], 2.0f)
+ powf(v3[1] - v4[1], 2.0f)
+ powf(v3[2] - v4[2], 2.0f), d))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_distance) {
vec3 v1 = {30.0f, 0.0f, 0.0f},
v2 = {0.0f, 0.0f, 0.0f},
v3 = {3.0f, 10.0f, 120.0f},
v4 = {0.46f, 4.0f, 14.0f};
float d;
d = GLM(vec3_distance)(v1, v2);
ASSERT(test_eq(d, 30.0f))
d = GLM(vec3_distance)(v3, v4);
ASSERT(test_eq(sqrtf(powf(v3[0] - v4[0], 2.0f)
+ powf(v3[1] - v4[1], 2.0f)
+ powf(v3[2] - v4[2], 2.0f)), d))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_maxv) {
vec3 v1, v2, v3;
vec3 v5 = {-1.456f, -1.456f, 241.456f};
vec3 v6 = {11.0f, 11.0f, 11.0f};
vec3 v7 = {78.0f, -78.0f, 7.0f};
GLM(vec3_maxv)(v5, v6, v1);
GLM(vec3_maxv)(v5, v7, v2);
GLM(vec3_maxv)(v6, v7, v3);
ASSERT(test_eq(v1[0], 11.0f))
ASSERT(test_eq(v1[1], 11.0f))
ASSERT(test_eq(v1[2], 241.456f))
ASSERT(test_eq(v2[0], 78.0f))
ASSERT(test_eq(v2[1], -1.456f))
ASSERT(test_eq(v2[2], 241.456f))
ASSERT(test_eq(v3[0], 78.0f))
ASSERT(test_eq(v3[1], 11.0f))
ASSERT(test_eq(v3[2], 11.0f))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_minv) {
vec3 v1, v2, v3;
vec3 v5 = {-1.456f, -1.456f, 241.456f};
vec3 v6 = {11.0f, 11.0f, 11.0f};
vec3 v7 = {78.0f, -78.0f, 7.0f};
GLM(vec3_minv)(v5, v6, v1);
GLM(vec3_minv)(v5, v7, v2);
GLM(vec3_minv)(v6, v7, v3);
ASSERT(test_eq(v1[0], -1.456f))
ASSERT(test_eq(v1[1], -1.456f))
ASSERT(test_eq(v1[2], 11.0f))
ASSERT(test_eq(v2[0], -1.456f))
ASSERT(test_eq(v2[1], -78.0f))
ASSERT(test_eq(v2[2], 7.0f))
ASSERT(test_eq(v3[0], 11.0f))
ASSERT(test_eq(v3[1], -78.0f))
ASSERT(test_eq(v3[2], 7.0f))
TEST_SUCCESS
}
TEST_IMPL(GLM_PREFIX, vec3_broadcast) {
vec3 v1, v2, v3;
vec3 v5 = {-1.456f, -1.456f, -1.456f};

View File

@@ -183,9 +183,14 @@ TEST_DECLARE(glm_vec3_normalize)
TEST_DECLARE(glm_vec3_normalize_to)
TEST_DECLARE(glm_vec3_cross)
TEST_DECLARE(glm_vec3_crossn)
TEST_DECLARE(glm_vec3_angle)
TEST_DECLARE(glm_vec3_rotate)
TEST_DECLARE(glm_vec3_rotate_m4)
TEST_DECLARE(glm_vec3_rotate_m3)
TEST_DECLARE(glm_vec3_proj)
TEST_DECLARE(glm_vec3_center)
TEST_DECLARE(glm_vec3_maxv)
TEST_DECLARE(glm_vec3_minv)
TEST_DECLARE(glm_vec3_broadcast)
TEST_DECLARE(glm_vec3_fill)
@@ -235,9 +240,14 @@ TEST_DECLARE(glmc_vec3_normalize)
TEST_DECLARE(glmc_vec3_normalize_to)
TEST_DECLARE(glmc_vec3_cross)
TEST_DECLARE(glmc_vec3_crossn)
TEST_DECLARE(glmc_vec3_angle)
TEST_DECLARE(glmc_vec3_rotate)
TEST_DECLARE(glmc_vec3_rotate_m4)
TEST_DECLARE(glmc_vec3_rotate_m3)
TEST_DECLARE(glmc_vec3_proj)
TEST_DECLARE(glmc_vec3_center)
TEST_DECLARE(glmc_vec3_maxv)
TEST_DECLARE(glmc_vec3_minv)
TEST_DECLARE(glmc_vec3_broadcast)
TEST_DECLARE(glmc_vec3_fill)
@@ -433,9 +443,14 @@ TEST_LIST {
TEST_ENTRY(glm_vec3_normalize_to)
TEST_ENTRY(glm_vec3_cross)
TEST_ENTRY(glm_vec3_crossn)
TEST_ENTRY(glm_vec3_angle)
TEST_ENTRY(glm_vec3_rotate)
TEST_ENTRY(glm_vec3_rotate_m4)
TEST_ENTRY(glm_vec3_rotate_m3)
TEST_ENTRY(glm_vec3_proj)
TEST_ENTRY(glm_vec3_center)
TEST_ENTRY(glm_vec3_maxv)
TEST_ENTRY(glm_vec3_minv)
TEST_ENTRY(glm_vec3_broadcast)
TEST_ENTRY(glm_vec3_fill)
@@ -485,9 +500,14 @@ TEST_LIST {
TEST_ENTRY(glmc_vec3_normalize_to)
TEST_ENTRY(glmc_vec3_cross)
TEST_ENTRY(glmc_vec3_crossn)
TEST_ENTRY(glmc_vec3_angle)
TEST_ENTRY(glmc_vec3_rotate)
TEST_ENTRY(glmc_vec3_rotate_m4)
TEST_ENTRY(glmc_vec3_rotate_m3)
TEST_ENTRY(glmc_vec3_proj)
TEST_ENTRY(glmc_vec3_center)
TEST_ENTRY(glmc_vec3_maxv)
TEST_ENTRY(glmc_vec3_minv)
TEST_ENTRY(glmc_vec3_broadcast)
TEST_ENTRY(glmc_vec3_fill)