diff --git a/src/Math/Test/QuaternionTest.cpp b/src/Math/Test/QuaternionTest.cpp index b2c25688e..cfd6686eb 100644 --- a/src/Math/Test/QuaternionTest.cpp +++ b/src/Math/Test/QuaternionTest.cpp @@ -29,6 +29,7 @@ class QuaternionTest: public Corrade::TestSuite::Tester { void construct(); void constructDefault(); void constructFromVector(); + void compare(); void addSubtract(); void negated(); @@ -62,6 +63,7 @@ QuaternionTest::QuaternionTest() { addTests(&QuaternionTest::construct, &QuaternionTest::constructDefault, &QuaternionTest::constructFromVector, + &QuaternionTest::compare, &QuaternionTest::addSubtract, &QuaternionTest::negated, @@ -102,6 +104,13 @@ void QuaternionTest::constructFromVector() { CORRADE_COMPARE(Quaternion({1.0f, 2.0f, 3.0f}), Quaternion({1.0f, 2.0f, 3.0f}, 0.0f)); } +void QuaternionTest::compare() { + CORRADE_VERIFY(Quaternion({1.0f+MathTypeTraits::epsilon()/2, 2.0f, 3.0f}, -4.0f) == Quaternion({1.0f, 2.0f, 3.0f}, -4.0f)); + CORRADE_VERIFY(Quaternion({1.0f+MathTypeTraits::epsilon()*2, 2.0f, 3.0f}, -4.0f) != Quaternion({1.0f, 2.0f, 3.0f}, -4.0f)); + CORRADE_VERIFY(Quaternion({4.0f, 2.0f, 3.0f}, -1.0f+MathTypeTraits::epsilon()/2) == Quaternion({4.0f, 2.0f, 3.0f}, -1.0f)); + CORRADE_VERIFY(Quaternion({4.0f, 2.0f, 3.0f}, -1.0f+MathTypeTraits::epsilon()*2) != Quaternion({4.0f, 2.0f, 3.0f}, -1.0f)); +} + void QuaternionTest::addSubtract() { Quaternion a({ 1.0f, 3.0f, -2.0f}, -4.0f); Quaternion b({-0.5f, 1.4f, 3.0f}, 12.0f);