From 48977a012bcf439212f6790575cbfe55618d282f Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Wed, 12 Jul 2017 20:46:05 +0300 Subject: [PATCH] test: add some tests for mat4 --- test/src/test_common.c | 2 +- test/src/test_mat4.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/test/src/test_common.c b/test/src/test_common.c index 43aa423..7afd42f 100644 --- a/test/src/test_common.c +++ b/test/src/test_common.c @@ -27,7 +27,7 @@ test_assert_mat4_eq(mat4 m1, mat4 m2) { for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { for (k = 0; k < m; k++) - assert_true(fabsf(m1[i][j] - m2[i][j]) <= FLT_EPSILON); + assert_true(fabsf(m1[i][j] - m2[i][j]) <= 0.0001); } } #undef m diff --git a/test/src/test_mat4.c b/test/src/test_mat4.c index a026058..ff4764e 100644 --- a/test/src/test_mat4.c +++ b/test/src/test_mat4.c @@ -16,6 +16,7 @@ test_mat4(void **state) { mat4 m2 = GLM_MAT4_IDENTITY_INIT; mat4 m3; mat4 m4 = GLM_MAT4_ZERO_INIT; + mat4 m5; int i, j, k; /* test identity matrix multiplication */ @@ -48,4 +49,32 @@ test_mat4(void **state) { /* test pre compiled */ glmc_mat4_mul(m1, m2, m3); test_assert_mat4_eq(m3, m4); + + /* test inverse precise */ + glm_mat4_inv_precise(m3, m4); + glm_mat4_inv_precise(m4, m5); + test_assert_mat4_eq(m3, m5); + + glmc_mat4_inv_precise(m3, m4); + glmc_mat4_inv_precise(m4, m5); + test_assert_mat4_eq(m3, m5); + + /* test inverse rcp */ + glm_mat4_inv(m3, m4); + glm_mat4_inv(m4, m5); + test_assert_mat4_eq(m3, m5); + + glmc_mat4_inv(m3, m4); + glmc_mat4_inv(m4, m5); + test_assert_mat4_eq(m3, m5); + + /* print */ + glm_mat4_print(m3, stderr); + glm_mat4_print(m4, stderr); + + /* test determinant */ + assert_int_equal(glm_mat4_det(m1), glmc_mat4_det(m1)); +#if defined( __SSE2__ ) + assert_int_equal(glmc_mat4_det(m1), glm_mat4_det_sse2(m1)); +#endif }