summaryrefslogtreecommitdiff
path: root/libs/cglm/test/src/test_cam_rh_no.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/cglm/test/src/test_cam_rh_no.c')
-rw-r--r--libs/cglm/test/src/test_cam_rh_no.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/libs/cglm/test/src/test_cam_rh_no.c b/libs/cglm/test/src/test_cam_rh_no.c
new file mode 100644
index 0000000..2bcadcd
--- /dev/null
+++ b/libs/cglm/test/src/test_cam_rh_no.c
@@ -0,0 +1,36 @@
+/*
+ * 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(perspective_rh_no) {
+ mat4 dst;
+ const float fovy = glm_rad(45.0f);
+ const float aspect = 640/480.0f;
+ const float zNearVal = 0.1f;
+ const float zFarVal = 100.0f;
+
+ glm_perspective_rh_no(fovy, aspect, zNearVal, zFarVal, dst);
+
+ /* Sanity mk. I: longhand version */
+ ASSERT(test_eq(dst[0][0], 1.0f / (tanf(fovy / 2) * aspect)))
+ ASSERT(test_eq(dst[1][1], 1.0f / tanf(fovy / 2)))
+ ASSERT(test_eq(dst[2][2], -1.0f * (zFarVal + zNearVal) / (zFarVal - zNearVal)))
+ ASSERT(test_eq(dst[2][3], -1.0f))
+ ASSERT(test_eq(dst[3][2], -2 * zFarVal * zNearVal / (zFarVal - zNearVal)))
+
+ /* Sanity mk. II */
+ /*reference test data for glm_perspective_rh_no*/
+ mat4 cmp = {0};
+ cmp[0][0] = 1.8106601f;
+ cmp[1][1] = 2.4142134f;
+ cmp[2][2] = -1.0020020f;
+ cmp[2][3] = -1.0000000f;
+ cmp[3][2] = -0.2002002f;
+
+ return test_assert_mat4_eq(dst, cmp);
+}