mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 01:00:46 +00:00
tests: add tests for affine scales
This commit is contained in:
@@ -164,18 +164,104 @@ TEST_IMPL(GLM_PREFIX, translate_make) {
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scale_to) {
|
||||
mat4 t1, t2, t3, t4, t5;
|
||||
mat4 m1, m2;
|
||||
vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2;
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale_to)(m1, (vec3){13.0f, 11.0f, 7.0f}, m2);
|
||||
glm_mat4_mulv(m2, v1, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], 22.0f))
|
||||
ASSERT(test_eq(v2[2], 21.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale_to)(m1, (vec3){1.0f, -1.0f, -5.0f}, m2);
|
||||
glm_mat4_mulv(m2, v2, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], -22.0f))
|
||||
ASSERT(test_eq(v2[2], -105.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scale_make) {
|
||||
mat4 t1, t2, t3, t4, t5;
|
||||
mat4 m1;
|
||||
vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2;
|
||||
|
||||
GLM(scale_make)(m1, (vec3){13.0f, 11.0f, 7.0f});
|
||||
glm_mat4_mulv(m1, v1, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], 22.0f))
|
||||
ASSERT(test_eq(v2[2], 21.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
GLM(scale_make)(m1, (vec3){1.0f, -1.0f, -5.0f});
|
||||
glm_mat4_mulv(m1, v2, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], -22.0f))
|
||||
ASSERT(test_eq(v2[2], -105.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scale) {
|
||||
mat4 t1, t2, t3, t4, t5;
|
||||
mat4 m1;
|
||||
vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2;
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale)(m1, (vec3){13.0f, 11.0f, 7.0f});
|
||||
glm_mat4_mulv(m1, v1, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], 22.0f))
|
||||
ASSERT(test_eq(v2[2], 21.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale)(m1, (vec3){1.0f, -1.0f, -5.0f});
|
||||
glm_mat4_mulv(m1, v2, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], -22.0f))
|
||||
ASSERT(test_eq(v2[2], -105.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scale_uni) {
|
||||
mat4 t1, t2, t3, t4, t5;
|
||||
mat4 m1;
|
||||
vec4 v1 = {1.0f, 2.0f, 3.0f, 1.0f}, v2;
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale_uni)(m1, 13.0f);
|
||||
glm_mat4_mulv(m1, v1, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], 13.0f))
|
||||
ASSERT(test_eq(v2[1], 26.0f))
|
||||
ASSERT(test_eq(v2[2], 39.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
glm_mat4_identity(m1);
|
||||
GLM(scale_uni)(m1, -5.0f);
|
||||
glm_mat4_mulv(m1, v2, v2);
|
||||
|
||||
ASSERT(test_eq(v2[0], -65.0f))
|
||||
ASSERT(test_eq(v2[1], -130.0f))
|
||||
ASSERT(test_eq(v2[2], -195.0f))
|
||||
ASSERT(test_eq(v2[3], 1.0f))
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
|
16
test/tests.h
16
test/tests.h
@@ -23,6 +23,10 @@ TEST_DECLARE(glm_translate_x)
|
||||
TEST_DECLARE(glm_translate_y)
|
||||
TEST_DECLARE(glm_translate_z)
|
||||
TEST_DECLARE(glm_translate_make)
|
||||
TEST_DECLARE(glm_scale_to)
|
||||
TEST_DECLARE(glm_scale_make)
|
||||
TEST_DECLARE(glm_scale)
|
||||
TEST_DECLARE(glm_scale_uni)
|
||||
|
||||
TEST_DECLARE(glmc_translate)
|
||||
TEST_DECLARE(glmc_translate_to)
|
||||
@@ -30,6 +34,10 @@ TEST_DECLARE(glmc_translate_x)
|
||||
TEST_DECLARE(glmc_translate_y)
|
||||
TEST_DECLARE(glmc_translate_z)
|
||||
TEST_DECLARE(glmc_translate_make)
|
||||
TEST_DECLARE(glmc_scale_to)
|
||||
TEST_DECLARE(glmc_scale_make)
|
||||
TEST_DECLARE(glmc_scale)
|
||||
TEST_DECLARE(glmc_scale_uni)
|
||||
|
||||
/* mat4 */
|
||||
TEST_DECLARE(glm_mat4_ucopy)
|
||||
@@ -558,6 +566,10 @@ TEST_LIST {
|
||||
TEST_ENTRY(glm_translate_y)
|
||||
TEST_ENTRY(glm_translate_z)
|
||||
TEST_ENTRY(glm_translate_make)
|
||||
TEST_ENTRY(glm_scale_to)
|
||||
TEST_ENTRY(glm_scale_make)
|
||||
TEST_ENTRY(glm_scale)
|
||||
TEST_ENTRY(glm_scale_uni)
|
||||
|
||||
TEST_ENTRY(glmc_translate)
|
||||
TEST_ENTRY(glmc_translate_to)
|
||||
@@ -565,6 +577,10 @@ TEST_LIST {
|
||||
TEST_ENTRY(glmc_translate_y)
|
||||
TEST_ENTRY(glmc_translate_z)
|
||||
TEST_ENTRY(glmc_translate_make)
|
||||
TEST_ENTRY(glmc_scale_to)
|
||||
TEST_ENTRY(glmc_scale_make)
|
||||
TEST_ENTRY(glmc_scale)
|
||||
TEST_ENTRY(glmc_scale_uni)
|
||||
|
||||
/* mat4 */
|
||||
TEST_ENTRY(glm_mat4_ucopy)
|
||||
|
Reference in New Issue
Block a user