From d95c44fcc824cf46a41918877025f7fa546b26e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 30 Mar 2013 19:24:17 +0100 Subject: [PATCH] Math: test that trigonometric functions work with Unit base class. The test fails. --- src/Math/Test/FunctionsTest.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Math/Test/FunctionsTest.cpp b/src/Math/Test/FunctionsTest.cpp index 6fd0b63d7..898df5ef8 100644 --- a/src/Math/Test/FunctionsTest.cpp +++ b/src/Math/Test/FunctionsTest.cpp @@ -52,6 +52,7 @@ class FunctionsTest: public Corrade::TestSuite::Tester { void log(); void log2(); void trigonometric(); + void trigonometricWithBase(); }; typedef Math::Constants Constants; @@ -81,7 +82,8 @@ FunctionsTest::FunctionsTest() { &FunctionsTest::pow, &FunctionsTest::log, &FunctionsTest::log2, - &FunctionsTest::trigonometric}); + &FunctionsTest::trigonometric, + &FunctionsTest::trigonometricWithBase}); } void FunctionsTest::min() { @@ -296,6 +298,21 @@ void FunctionsTest::trigonometric() { CORRADE_COMPARE_AS(Math::atan(1.0f), Deg(45.0f), Deg); } +void FunctionsTest::trigonometricWithBase() { + /* Verify that the functions can be called with Unit and Unit */ + CORRADE_VERIFY((std::is_same>::value)); + CORRADE_VERIFY((std::is_same>::value)); + + CORRADE_COMPARE(Math::sin(2*Deg(15.0f)), 0.5f); + CORRADE_COMPARE(Math::sin(2*Rad(Constants::pi()/12)), 0.5f); + + CORRADE_COMPARE(Math::cos(2*Deg(30.0f)), 0.5f); + CORRADE_COMPARE(Math::cos(2*Rad(Constants::pi()/6)), 0.5f); + + CORRADE_COMPARE(Math::tan(2*Deg(22.5f)), 1.0f); + CORRADE_COMPARE(Math::tan(2*Rad(Constants::pi()/8)), 1.0f); +} + }}} CORRADE_TEST_MAIN(Magnum::Math::Test::FunctionsTest)