Browse Source

Math: test that implicit conversion vector <-> complex/quat can't compile.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
32d03530e1
  1. 4
      src/Math/Test/ComplexTest.cpp
  2. 3
      src/Math/Test/DualComplexTest.cpp
  3. 3
      src/Math/Test/DualQuaternionTest.cpp
  4. 3
      src/Math/Test/QuaternionTest.cpp

4
src/Math/Test/ComplexTest.cpp

@ -126,6 +126,10 @@ void ComplexTest::constructFromVector() {
constexpr Vector2 b(a);
CORRADE_COMPARE(b, vec);
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector2, Complex>::value));
CORRADE_VERIFY(!(std::is_convertible<Complex, Vector2>::value));
}
void ComplexTest::constructCopy() {

3
src/Math/Test/DualComplexTest.cpp

@ -121,6 +121,9 @@ void DualComplexTest::constructDefault() {
void DualComplexTest::constructFromVector() {
constexpr DualComplex a(Vector2(1.5f, -3.0f));
CORRADE_COMPARE(a, DualComplex({1.0f, 0.0f}, {1.5f, -3.0f}));
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector2, DualComplex>::value));
}
void DualComplexTest::constructCopy() {

3
src/Math/Test/DualQuaternionTest.cpp

@ -119,6 +119,9 @@ void DualQuaternionTest::constructDefault() {
void DualQuaternionTest::constructFromVector() {
constexpr DualQuaternion a(Vector3(1.0f, 2.0f, 3.0f));
CORRADE_COMPARE(a, DualQuaternion({{0.0f, 0.0f, 0.0f}, 1.0f}, {{1.0f, 2.0f, 3.0f}, 0.0f}));
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector3, DualQuaternion>::value));
}
void DualQuaternionTest::constructCopy() {

3
src/Math/Test/QuaternionTest.cpp

@ -128,6 +128,9 @@ void QuaternionTest::constructDefault() {
void QuaternionTest::constructFromVector() {
constexpr Quaternion a(Vector3(1.0f, 2.0f, 3.0f));
CORRADE_COMPARE(a, Quaternion({1.0f, 2.0f, 3.0f}, 0.0f));
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector3, Quaternion>::value));
}
void QuaternionTest::constructCopy() {

Loading…
Cancel
Save