diff options
Diffstat (limited to 'tests/core/math/test_math_funcs.h')
-rw-r--r-- | tests/core/math/test_math_funcs.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/core/math/test_math_funcs.h b/tests/core/math/test_math_funcs.h index b6cb9620f1..e3504ef1e5 100644 --- a/tests/core/math/test_math_funcs.h +++ b/tests/core/math/test_math_funcs.h @@ -175,6 +175,37 @@ TEST_CASE_TEMPLATE("[Math] asin/acos/atan", T, float, double) { CHECK(Math::atan((T)450.0) == doctest::Approx((T)1.5685741082)); } +TEST_CASE_TEMPLATE("[Math] asinh/acosh/atanh", T, float, double) { + CHECK(Math::asinh((T)-2.0) == doctest::Approx((T)-1.4436354751)); + CHECK(Math::asinh((T)-0.1) == doctest::Approx((T)-0.0998340788)); + CHECK(Math::asinh((T)0.1) == doctest::Approx((T)0.0998340788)); + CHECK(Math::asinh((T)0.5) == doctest::Approx((T)0.4812118250)); + CHECK(Math::asinh((T)1.0) == doctest::Approx((T)0.8813735870)); + CHECK(Math::asinh((T)2.0) == doctest::Approx((T)1.4436354751)); + + CHECK(Math::acosh((T)-2.0) == doctest::Approx((T)0.0)); + CHECK(Math::acosh((T)-0.1) == doctest::Approx((T)0.0)); + CHECK(Math::acosh((T)0.1) == doctest::Approx((T)0.0)); + CHECK(Math::acosh((T)0.5) == doctest::Approx((T)0.0)); + CHECK(Math::acosh((T)1.0) == doctest::Approx((T)0.0)); + CHECK(Math::acosh((T)2.0) == doctest::Approx((T)1.3169578969)); + CHECK(Math::acosh((T)450.0) == doctest::Approx((T)6.8023935287)); + + CHECK(Math::is_inf(Math::atanh((T)-2.0))); + CHECK(Math::atanh((T)-2.0) < (T)0.0); + CHECK(Math::is_inf(Math::atanh((T)-1.0))); + CHECK(Math::atanh((T)-1.0) < (T)0.0); + CHECK(Math::atanh((T)-0.1) == doctest::Approx((T)-0.1003353477)); + CHECK(Math::atanh((T)0.1) == doctest::Approx((T)0.1003353477)); + CHECK(Math::atanh((T)0.5) == doctest::Approx((T)0.5493061443)); + CHECK(Math::is_inf(Math::atanh((T)1.0))); + CHECK(Math::atanh((T)1.0) > (T)0.0); + CHECK(Math::is_inf(Math::atanh((T)1.5))); + CHECK(Math::atanh((T)1.5) > (T)0.0); + CHECK(Math::is_inf(Math::atanh((T)450.0))); + CHECK(Math::atanh((T)450.0) > (T)0.0); +} + TEST_CASE_TEMPLATE("[Math] sinc/sincn/atan2", T, float, double) { CHECK(Math::sinc((T)-0.1) == doctest::Approx((T)0.9983341665)); CHECK(Math::sinc((T)0.1) == doctest::Approx((T)0.9983341665)); |