summaryrefslogtreecommitdiffstats
path: root/tests/core/math/test_vector2.h
diff options
context:
space:
mode:
authorHaoyu Qiu <timothyqiu32@gmail.com>2022-08-11 16:12:27 +0800
committerHaoyu Qiu <timothyqiu32@gmail.com>2022-10-08 13:25:08 +0800
commit5da515773d8edec988b7523ea97cdfd54c3fd16c (patch)
tree1107edc8f9bcff011b9bf789cf0e54bc9d46c28d /tests/core/math/test_vector2.h
parent18177828ad97286ca88cbdcfb763c967858d051b (diff)
downloadredot-engine-5da515773d8edec988b7523ea97cdfd54c3fd16c.tar.gz
Add `is_finite` method for checking built-in types
Diffstat (limited to 'tests/core/math/test_vector2.h')
-rw-r--r--tests/core/math/test_vector2.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/core/math/test_vector2.h b/tests/core/math/test_vector2.h
index 0d7f1163e4..a87b9ffc02 100644
--- a/tests/core/math/test_vector2.h
+++ b/tests/core/math/test_vector2.h
@@ -465,6 +465,32 @@ TEST_CASE("[Vector2] Linear algebra methods") {
Math::is_equal_approx(Vector2(-a.x, a.y).dot(Vector2(b.x, -b.y)), (real_t)-57.3),
"Vector2 dot should return expected value.");
}
+
+TEST_CASE("[Vector2] Finite number checks") {
+ const double infinite[] = { NAN, INFINITY, -INFINITY };
+
+ CHECK_MESSAGE(
+ Vector2(0, 1).is_finite(),
+ "Vector2(0, 1) should be finite");
+
+ for (double x : infinite) {
+ CHECK_FALSE_MESSAGE(
+ Vector2(x, 1).is_finite(),
+ "Vector2 with one component infinite should not be finite.");
+ CHECK_FALSE_MESSAGE(
+ Vector2(0, x).is_finite(),
+ "Vector2 with one component infinite should not be finite.");
+ }
+
+ for (double x : infinite) {
+ for (double y : infinite) {
+ CHECK_FALSE_MESSAGE(
+ Vector2(x, y).is_finite(),
+ "Vector2 with two components infinite should not be finite.");
+ }
+ }
+}
+
} // namespace TestVector2
#endif // TEST_VECTOR2_H