mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
Added tests for 2D affine post transformations (translate, rotate, scale)
This commit is contained in:
104
test/src/test_affine2d_post.h
Normal file
104
test/src/test_affine2d_post.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (c), Recep Aslantas.
|
||||
*
|
||||
* MIT License (MIT), http://opensource.org/licenses/MIT
|
||||
* Full license can be found in the LICENSE file
|
||||
*/
|
||||
|
||||
#include "test_common.h"
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, translated2d) {
|
||||
mat3 m1, m2, tmp;
|
||||
vec2 v = { 1.2f, 3.4f };
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(translated2d)(m2, v);
|
||||
|
||||
glm_translate2d_make(tmp, v);
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, translated2d_x) {
|
||||
mat3 m1, m2, tmp;
|
||||
float x = test_rand();
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(translated2d_x)(m2, x);
|
||||
|
||||
glm_translate2d_make(tmp, (vec2) { x, 0.0f });
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, translated2d_y) {
|
||||
mat3 m1, m2, tmp;
|
||||
float y = test_rand();
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(translated2d_y)(m2, y);
|
||||
|
||||
glm_translate2d_make(tmp, (vec2) { 0.0f, y });
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, rotated2d) {
|
||||
mat3 m1, m2, tmp;
|
||||
float a = test_rand();
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(rotated2d)(m2, a);
|
||||
|
||||
glm_rotate2d_make(tmp, a);
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scaled2d) {
|
||||
mat3 m1, m2, tmp;
|
||||
vec2 v = { test_rand(), test_rand() };
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(scaled2d)(m2, v);
|
||||
|
||||
glm_scale2d_make(tmp, v);
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
|
||||
TEST_IMPL(GLM_PREFIX, scaled2d_uni) {
|
||||
mat3 m1, m2, tmp;
|
||||
float s = test_rand();
|
||||
|
||||
test_rand_transform2d(m1);
|
||||
glm_mat3_copy(m1, m2);
|
||||
GLM(scaled2d_uni)(m2, s);
|
||||
|
||||
glm_scale2d_make(tmp, (vec2) { s, s });
|
||||
glm_mat3_mul(tmp, m1, m1);
|
||||
|
||||
test_assert_mat3_eq(m1, m2);
|
||||
|
||||
TEST_SUCCESS
|
||||
}
|
||||
Reference in New Issue
Block a user