Browse Source

Math: properly test Quaternion comparison.

pull/7/head
Vladimír Vondruš 13 years ago
parent
commit
5d6b2b4ecd
  1. 9
      src/Math/Test/QuaternionTest.cpp

9
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<float>::epsilon()/2, 2.0f, 3.0f}, -4.0f) == Quaternion({1.0f, 2.0f, 3.0f}, -4.0f));
CORRADE_VERIFY(Quaternion({1.0f+MathTypeTraits<float>::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<float>::epsilon()/2) == Quaternion({4.0f, 2.0f, 3.0f}, -1.0f));
CORRADE_VERIFY(Quaternion({4.0f, 2.0f, 3.0f}, -1.0f+MathTypeTraits<float>::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);

Loading…
Cancel
Save