mirror of
https://github.com/recp/cglm.git
synced 2025-12-24 20:34:58 +00:00
tests: add more tests for vec4
This commit is contained in:
@@ -1011,11 +1011,11 @@ TEST_IMPL(GLM_PREFIX, vec3_proj) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec3_center) {
|
||||
vec3 v1 = {30.0f, 0.0f, 0.0f},
|
||||
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},
|
||||
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);
|
||||
@@ -1030,10 +1030,10 @@ TEST_IMPL(GLM_PREFIX, vec3_center) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec3_distance2) {
|
||||
vec3 v1 = {30.0f, 0.0f, 0.0f},
|
||||
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};
|
||||
v3 = {3.0f, 10.0f, 120.0f},
|
||||
v4 = {0.46f, 4.0f, 14.0f};
|
||||
float d;
|
||||
|
||||
d = GLM(vec3_distance2)(v1, v2);
|
||||
@@ -1048,10 +1048,10 @@ TEST_IMPL(GLM_PREFIX, vec3_distance2) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec3_distance) {
|
||||
vec3 v1 = {30.0f, 0.0f, 0.0f},
|
||||
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};
|
||||
v3 = {3.0f, 10.0f, 120.0f},
|
||||
v4 = {0.46f, 4.0f, 14.0f};
|
||||
float d;
|
||||
|
||||
d = GLM(vec3_distance)(v1, v2);
|
||||
|
||||
@@ -229,8 +229,8 @@ TEST_IMPL(GLM_PREFIX, vec4_one) {
|
||||
GLM(vec4_one)(v1);
|
||||
GLM(vec4_one)(v2);
|
||||
|
||||
ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC4_ONE))
|
||||
ASSERTIFY(test_assert_vec3_eq(v1, GLM_VEC4_ONE))
|
||||
ASSERTIFY(test_assert_vec4_eq(v1, GLM_VEC4_ONE))
|
||||
ASSERTIFY(test_assert_vec4_eq(v1, GLM_VEC4_ONE))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
@@ -261,11 +261,11 @@ TEST_IMPL(GLM_PREFIX, vec4_norm2) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_norm) {
|
||||
vec3 a = {10.0f, 9.0f, 8.0f};
|
||||
vec4 a = {10.0f, 9.0f, 8.0f, 78.0f};
|
||||
float n1, n2;
|
||||
|
||||
n1 = GLM(vec3_norm)(a);
|
||||
n2 = sqrtf(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);
|
||||
n1 = GLM(vec4_norm)(a);
|
||||
n2 = sqrtf(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3]);
|
||||
|
||||
ASSERT(test_eq(n1, n2))
|
||||
|
||||
@@ -658,3 +658,124 @@ TEST_IMPL(GLM_PREFIX, vec4_normalize_to) {
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_distance2) {
|
||||
vec4 v1 = {30.0f, 0.0f, 0.0f, 0.0f},
|
||||
v2 = {0.0f, 0.0f, 0.0f, 0.0f},
|
||||
v3 = {3.0f, 10.0f, 120.0f, 140.0f},
|
||||
v4 = {0.46f, 4.0f, 14.0f, 10.0f};
|
||||
float d;
|
||||
|
||||
d = GLM(vec4_distance2)(v1, v2);
|
||||
ASSERT(test_eq(d, 30.0f * 30.0f))
|
||||
|
||||
d = GLM(vec4_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)
|
||||
+ powf(v3[3] - v4[3], 2.0f), d))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_distance) {
|
||||
vec4 v1 = {30.0f, 0.0f, 0.0f, 0.0f},
|
||||
v2 = {0.0f, 0.0f, 0.0f, 0.0f},
|
||||
v3 = {3.0f, 10.0f, 120.0f, 140.0f},
|
||||
v4 = {0.46f, 4.0f, 14.0f, 10.0f};
|
||||
float d;
|
||||
|
||||
d = GLM(vec4_distance)(v1, v2);
|
||||
ASSERT(test_eq(d, 30.0f))
|
||||
|
||||
d = GLM(vec4_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)
|
||||
+ powf(v3[3] - v4[3], 2.0f)), d))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_maxv) {
|
||||
vec4 v1, v2, v3;
|
||||
vec4 v5 = {-1.456f, -1.456f, 241.456f, 10.0f};
|
||||
vec4 v6 = {11.0f, 11.0f, 11.0f, 90.0f};
|
||||
vec4 v7 = {78.0f, -78.0f, 7.0f, 5.0f};
|
||||
|
||||
GLM(vec4_maxv)(v5, v6, v1);
|
||||
GLM(vec4_maxv)(v5, v7, v2);
|
||||
GLM(vec4_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(v1[3], 90.0f))
|
||||
|
||||
ASSERT(test_eq(v2[0], 78.0f))
|
||||
ASSERT(test_eq(v2[1], -1.456f))
|
||||
ASSERT(test_eq(v2[2], 241.456f))
|
||||
ASSERT(test_eq(v2[3], 10.0f))
|
||||
|
||||
ASSERT(test_eq(v3[0], 78.0f))
|
||||
ASSERT(test_eq(v3[1], 11.0f))
|
||||
ASSERT(test_eq(v3[2], 11.0f))
|
||||
ASSERT(test_eq(v3[3], 90.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_minv) {
|
||||
vec4 v1, v2, v3;
|
||||
vec4 v5 = {-1.456f, -1.456f, 241.456f, 10.0f};
|
||||
vec4 v6 = {11.0f, 11.0f, 11.0f, 90.0f};
|
||||
vec4 v7 = {78.0f, -78.0f, 7.0f, 5.0f};
|
||||
|
||||
GLM(vec4_minv)(v5, v6, v1);
|
||||
GLM(vec4_minv)(v5, v7, v2);
|
||||
GLM(vec4_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(v1[3], 10.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(v2[3], 5.0f))
|
||||
|
||||
ASSERT(test_eq(v3[0], 11.0f))
|
||||
ASSERT(test_eq(v3[1], -78.0f))
|
||||
ASSERT(test_eq(v3[2], 7.0f))
|
||||
ASSERT(test_eq(v3[3], 5.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, vec4_clamp) {
|
||||
vec4 v1 = {-1.456f, -11.456f, 31.456f, 67.04f};
|
||||
vec4 v2 = {0.110f, 111.0f, 11.0f, 90.0f};
|
||||
vec4 v3 = {78.0f, 32.0f, -78.0f, 3.0f};
|
||||
|
||||
GLM(vec4_clamp)(v1, -1.03f, 30.0f);
|
||||
GLM(vec4_clamp)(v2, 0.11f, 111.0f);
|
||||
GLM(vec4_clamp)(v3, -88.0f, 70.0f);
|
||||
|
||||
ASSERT(test_eq(v1[0], -1.03f))
|
||||
ASSERT(test_eq(v1[1], -1.03f))
|
||||
ASSERT(test_eq(v1[2], 30.0f))
|
||||
ASSERT(test_eq(v1[3], 30.0f))
|
||||
|
||||
ASSERT(test_eq(v2[0], 0.11f))
|
||||
ASSERT(test_eq(v2[1], 111.0f))
|
||||
ASSERT(test_eq(v2[2], 11.0f))
|
||||
ASSERT(test_eq(v2[3], 90.0f))
|
||||
|
||||
ASSERT(test_eq(v3[0], 70.0f))
|
||||
ASSERT(test_eq(v3[1], 32.0f))
|
||||
ASSERT(test_eq(v3[2], -78.0f))
|
||||
ASSERT(test_eq(v3[3], 3.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
20
test/tests.h
20
test/tests.h
@@ -342,6 +342,11 @@ TEST_DECLARE(glm_vec4_negate_to)
|
||||
TEST_DECLARE(glm_vec4_negate)
|
||||
TEST_DECLARE(glm_vec4_normalize)
|
||||
TEST_DECLARE(glm_vec4_normalize_to)
|
||||
TEST_DECLARE(glm_vec4_distance2)
|
||||
TEST_DECLARE(glm_vec4_distance)
|
||||
TEST_DECLARE(glm_vec4_maxv)
|
||||
TEST_DECLARE(glm_vec4_minv)
|
||||
TEST_DECLARE(glm_vec4_clamp)
|
||||
|
||||
TEST_DECLARE(glmc_vec4)
|
||||
TEST_DECLARE(glmc_vec4_copy3)
|
||||
@@ -373,6 +378,11 @@ TEST_DECLARE(glmc_vec4_negate_to)
|
||||
TEST_DECLARE(glmc_vec4_negate)
|
||||
TEST_DECLARE(glmc_vec4_normalize)
|
||||
TEST_DECLARE(glmc_vec4_normalize_to)
|
||||
TEST_DECLARE(glmc_vec4_distance2)
|
||||
TEST_DECLARE(glmc_vec4_distance)
|
||||
TEST_DECLARE(glmc_vec4_maxv)
|
||||
TEST_DECLARE(glmc_vec4_minv)
|
||||
TEST_DECLARE(glmc_vec4_clamp)
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -706,6 +716,11 @@ TEST_LIST {
|
||||
TEST_ENTRY(glm_vec4_negate)
|
||||
TEST_ENTRY(glm_vec4_normalize)
|
||||
TEST_ENTRY(glm_vec4_normalize_to)
|
||||
TEST_ENTRY(glm_vec4_distance2)
|
||||
TEST_ENTRY(glm_vec4_distance)
|
||||
TEST_ENTRY(glm_vec4_maxv)
|
||||
TEST_ENTRY(glm_vec4_minv)
|
||||
TEST_ENTRY(glm_vec4_clamp)
|
||||
|
||||
TEST_ENTRY(glmc_vec4)
|
||||
TEST_ENTRY(glmc_vec4_copy3)
|
||||
@@ -737,6 +752,11 @@ TEST_LIST {
|
||||
TEST_ENTRY(glmc_vec4_negate)
|
||||
TEST_ENTRY(glmc_vec4_normalize)
|
||||
TEST_ENTRY(glmc_vec4_normalize_to)
|
||||
TEST_ENTRY(glmc_vec4_distance2)
|
||||
TEST_ENTRY(glmc_vec4_distance)
|
||||
TEST_ENTRY(glmc_vec4_maxv)
|
||||
TEST_ENTRY(glmc_vec4_minv)
|
||||
TEST_ENTRY(glmc_vec4_clamp)
|
||||
};
|
||||
|
||||
#endif /* tests_h */
|
||||
|
||||
Reference in New Issue
Block a user