diff --git a/src/Magnum/Math/Test/ColorTest.cpp b/src/Magnum/Math/Test/ColorTest.cpp index 8ba0f607e..e7b7d3155 100644 --- a/src/Magnum/Math/Test/ColorTest.cpp +++ b/src/Magnum/Math/Test/ColorTest.cpp @@ -203,11 +203,17 @@ void ColorTest::constructNormalization() { void ColorTest::constructCopy() { constexpr Math::Vector<3, Float> a(1.0f, 0.5f, 0.75f); - constexpr Color3 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Color3 b(a); CORRADE_COMPARE(b, Color3(1.0f, 0.5f, 0.75f)); constexpr Math::Vector<4, Float> c(1.0f, 0.5f, 0.75f, 0.25f); - constexpr Color4 d(c); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Color4 d(c); CORRADE_COMPARE(d, Color4(1.0f, 0.5f, 0.75f, 0.25f)); } diff --git a/src/Magnum/Math/Test/ComplexTest.cpp b/src/Magnum/Math/Test/ComplexTest.cpp index 3d53b2c0d..53653f8d9 100644 --- a/src/Magnum/Math/Test/ComplexTest.cpp +++ b/src/Magnum/Math/Test/ComplexTest.cpp @@ -196,7 +196,10 @@ void ComplexTest::convert() { Complex c(a); CORRADE_COMPARE(c, b); - constexpr Cmpl d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Cmpl d(b); CORRADE_COMPARE(d.re, a.re); CORRADE_COMPARE(d.im, a.im); diff --git a/src/Magnum/Math/Test/DualComplexTest.cpp b/src/Magnum/Math/Test/DualComplexTest.cpp index 8e8da9a22..d7cb899fb 100644 --- a/src/Magnum/Math/Test/DualComplexTest.cpp +++ b/src/Magnum/Math/Test/DualComplexTest.cpp @@ -171,7 +171,10 @@ void DualComplexTest::constructFromVector() { void DualComplexTest::constructCopy() { constexpr Math::Dual a({-1.0f, 2.5f}, {3.0f, -7.5f}); - constexpr DualComplex b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + DualComplex b(a); CORRADE_COMPARE(b, DualComplex({-1.0f, 2.5f}, {3.0f, -7.5f})); } @@ -190,7 +193,10 @@ void DualComplexTest::convert() { DualComplex c{a}; CORRADE_COMPARE(c, b); - constexpr DualCmpl d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + DualCmpl d(b); CORRADE_COMPARE(d.re, a.re); CORRADE_COMPARE(d.im, a.im); CORRADE_COMPARE(d.x, a.x); diff --git a/src/Magnum/Math/Test/DualQuaternionTest.cpp b/src/Magnum/Math/Test/DualQuaternionTest.cpp index 9c637abf0..69a54ea61 100644 --- a/src/Magnum/Math/Test/DualQuaternionTest.cpp +++ b/src/Magnum/Math/Test/DualQuaternionTest.cpp @@ -172,7 +172,10 @@ void DualQuaternionTest::constructFromVector() { void DualQuaternionTest::constructCopy() { constexpr Math::Dual a({{1.0f, 2.0f, -3.0f}, -3.5f}, {{4.5f, -7.0f, 2.0f}, 1.0f}); - constexpr DualQuaternion b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + DualQuaternion b(a); CORRADE_COMPARE(b, DualQuaternion({{1.0f, 2.0f, -3.0f}, -3.5f}, {{4.5f, -7.0f, 2.0f}, 1.0f})); } @@ -191,7 +194,10 @@ void DualQuaternionTest::convert() { DualQuaternion c{a}; CORRADE_COMPARE(c, b); - constexpr DualQuat d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + DualQuat d(b); CORRADE_COMPARE(d.re.x, a.re.x); CORRADE_COMPARE(d.re.y, a.re.y); CORRADE_COMPARE(d.re.z, a.re.z); diff --git a/src/Magnum/Math/Test/Matrix3Test.cpp b/src/Magnum/Math/Test/Matrix3Test.cpp index c58e59bff..9d8249f27 100644 --- a/src/Magnum/Math/Test/Matrix3Test.cpp +++ b/src/Magnum/Math/Test/Matrix3Test.cpp @@ -190,7 +190,10 @@ void Matrix3Test::constructCopy() { constexpr RectangularMatrix<3, 3, Float> a(Vector<3, Float>(3.0f, 5.0f, 8.0f), Vector<3, Float>(4.5f, 4.0f, 7.0f), Vector<3, Float>(7.9f, -1.0f, 8.0f)); - constexpr Matrix3 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Matrix3 b(a); CORRADE_COMPARE(b, Matrix3({3.0f, 5.0f, 8.0f}, {4.5f, 4.0f, 7.0f}, {7.9f, -1.0f, 8.0f})); @@ -207,7 +210,10 @@ void Matrix3Test::convert() { constexpr Matrix3 c(b); CORRADE_COMPARE(c, b); - constexpr Mat3 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Mat3 d(b); for(std::size_t i = 0; i != 9; ++i) CORRADE_COMPARE(d.a[0], a.a[0]); @@ -301,7 +307,10 @@ void Matrix3Test::fromParts() { constexpr Matrix2x2 rotationScaling(Vector2(3.0f, 5.0f), Vector2(4.0f, 4.0f)); constexpr Vector2 translation(7.0f, -1.0f); - constexpr Matrix3 a = Matrix3::from(rotationScaling, translation); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Matrix3 a = Matrix3::from(rotationScaling, translation); CORRADE_COMPARE(a, Matrix3({3.0f, 5.0f, 0.0f}, {4.0f, 4.0f, 0.0f}, @@ -312,7 +321,10 @@ void Matrix3Test::rotationScalingPart() { constexpr Matrix3 a({3.0f, 5.0f, 8.0f}, {4.0f, 4.0f, 7.0f}, {7.0f, -1.0f, 8.0f}); - constexpr Matrix2x2 b = a.rotationScaling(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Matrix2x2 b = a.rotationScaling(); CORRADE_COMPARE(b, Matrix2x2(Vector2(3.0f, 5.0f), Vector2(4.0f, 4.0f))); @@ -380,9 +392,18 @@ void Matrix3Test::vectorParts() { constexpr Matrix3 a({15.0f, 0.0f, 0.0f}, { 0.0f, -3.0f, 0.0f}, {-5.0f, 12.0f, 1.0f}); - constexpr Vector2 right = a.right(); - constexpr Vector2 up = a.up(); - constexpr Vector2 translation = a.translation(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector2 right = a.right(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector2 up = a.up(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector2 translation = a.translation(); CORRADE_COMPARE(right, Vector2::xAxis(15.0f)); CORRADE_COMPARE(up, Vector2::yAxis(-3.0f)); diff --git a/src/Magnum/Math/Test/Matrix4Test.cpp b/src/Magnum/Math/Test/Matrix4Test.cpp index 361066673..9ebd4b2ac 100644 --- a/src/Magnum/Math/Test/Matrix4Test.cpp +++ b/src/Magnum/Math/Test/Matrix4Test.cpp @@ -219,7 +219,10 @@ void Matrix4Test::constructCopy() { Vector<4, Float>(4.5f, 4.0f, 7.0f, 2.0f), Vector<4, Float>(1.0f, 2.0f, 3.0f, -1.0f), Vector<4, Float>(7.9f, -1.0f, 8.0f, -1.5f)); - constexpr Matrix4 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Matrix4 b(a); CORRADE_COMPARE(b, Matrix4({3.0f, 5.0f, 8.0f, -3.0f}, {4.5f, 4.0f, 7.0f, 2.0f}, {1.0f, 2.0f, 3.0f, -1.0f}, @@ -239,7 +242,10 @@ void Matrix4Test::convert() { constexpr Matrix4 c(b); CORRADE_COMPARE(c, b); - constexpr Mat4 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Mat4 d(b); for(std::size_t i = 0; i != 16; ++i) CORRADE_COMPARE(d.a[i], a.a[i]); @@ -400,7 +406,10 @@ void Matrix4Test::fromParts() { Vector3(4.0f, 4.0f, 7.0f), Vector3(7.0f, -1.0f, 8.0f)); constexpr Vector3 translation(9.0f, 4.0f, 5.0f); - constexpr Matrix4 a = Matrix4::from(rotationScaling, translation); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Matrix4 a = Matrix4::from(rotationScaling, translation); CORRADE_COMPARE(a, Matrix4({3.0f, 5.0f, 8.0f, 0.0f}, {4.0f, 4.0f, 7.0f, 0.0f}, @@ -413,7 +422,10 @@ void Matrix4Test::rotationScalingPart() { {4.0f, 4.0f, 7.0f, 3.0f}, {7.0f, -1.0f, 8.0f, 0.0f}, {9.0f, 4.0f, 5.0f, 9.0f}); - constexpr Matrix3x3 b = a.rotationScaling(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Matrix3x3 b = a.rotationScaling(); CORRADE_COMPARE(b, Matrix3x3(Vector3(3.0f, 5.0f, 8.0f), Vector3(4.0f, 4.0f, 7.0f), @@ -486,10 +498,22 @@ void Matrix4Test::vectorParts() { { 0.0f, 12.0f, 0.0f, 0.0f}, { 0.0f, 0.0f, 35.0f, 0.0f}, {-5.0f, 12.0f, 0.5f, 1.0f}); - constexpr Vector3 right = a.right(); - constexpr Vector3 up = a.up(); - constexpr Vector3 backward = a.backward(); - constexpr Vector3 translation = a.translation(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 right = a.right(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 up = a.up(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 backward = a.backward(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 translation = a.translation(); CORRADE_COMPARE(right, Vector3::xAxis(-1.0f)); CORRADE_COMPARE(up, Vector3::yAxis(12.0f)); diff --git a/src/Magnum/Math/Test/MatrixTest.cpp b/src/Magnum/Math/Test/MatrixTest.cpp index 8fdadce37..3cb3f894b 100644 --- a/src/Magnum/Math/Test/MatrixTest.cpp +++ b/src/Magnum/Math/Test/MatrixTest.cpp @@ -185,7 +185,10 @@ void MatrixTest::constructCopy() { Vector4(4.5f, 4.0f, 7.0f, 2.0f), Vector4(1.0f, 2.0f, 3.0f, -1.0f), Vector4(7.9f, -1.0f, 8.0f, -1.5f)); - constexpr Matrix4x4 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Matrix4x4 b(a); CORRADE_COMPARE(b, Matrix4x4(Vector4(3.0f, 5.0f, 8.0f, -3.0f), Vector4(4.5f, 4.0f, 7.0f, 2.0f), Vector4(1.0f, 2.0f, 3.0f, -1.0f), @@ -203,7 +206,10 @@ void MatrixTest::convert() { constexpr Matrix3x3 c(b); CORRADE_COMPARE(c, b); - constexpr Mat3 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Mat3 d(b); for(std::size_t i = 0; i != 9; ++i) CORRADE_COMPARE(d.a[i], a.a[i]); diff --git a/src/Magnum/Math/Test/QuaternionTest.cpp b/src/Magnum/Math/Test/QuaternionTest.cpp index 398efbf04..fefb37ac3 100644 --- a/src/Magnum/Math/Test/QuaternionTest.cpp +++ b/src/Magnum/Math/Test/QuaternionTest.cpp @@ -197,7 +197,10 @@ void QuaternionTest::convert() { Quaternion c{a}; CORRADE_COMPARE(c, b); - constexpr Quat d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Quat d(b); CORRADE_COMPARE(d.x, a.x); CORRADE_COMPARE(d.y, a.y); CORRADE_COMPARE(d.z, a.z); diff --git a/src/Magnum/Math/Test/RangeTest.cpp b/src/Magnum/Math/Test/RangeTest.cpp index e0565663e..d882cef88 100644 --- a/src/Magnum/Math/Test/RangeTest.cpp +++ b/src/Magnum/Math/Test/RangeTest.cpp @@ -284,17 +284,26 @@ void RangeTest::convert() { CORRADE_COMPARE(i, e); CORRADE_COMPARE(j, f); - constexpr Dim k(d); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Dim k(d); CORRADE_COMPARE(k.offset, a.offset); CORRADE_COMPARE(k.size, a.size); - constexpr Rect l(e); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Rect l(e); CORRADE_COMPARE(l.x, b.x); CORRADE_COMPARE(l.y, b.y); CORRADE_COMPARE(l.w, b.w); CORRADE_COMPARE(l.h, b.h); - constexpr Box m(f); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Box m(f); CORRADE_COMPARE(m.x, c.x); CORRADE_COMPARE(m.y, c.y); CORRADE_COMPARE(m.z, c.z); diff --git a/src/Magnum/Math/Test/RectangularMatrixTest.cpp b/src/Magnum/Math/Test/RectangularMatrixTest.cpp index 5a1c673b6..b5ff25758 100644 --- a/src/Magnum/Math/Test/RectangularMatrixTest.cpp +++ b/src/Magnum/Math/Test/RectangularMatrixTest.cpp @@ -246,7 +246,10 @@ void RectangularMatrixTest::convert() { Matrix2x3 c{a}; CORRADE_COMPARE(c, b); - constexpr Mat2x3 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Mat2x3 d(b); for(std::size_t i = 0; i != 5; ++i) CORRADE_COMPARE(d.a[i], a.a[i]); @@ -275,7 +278,10 @@ void RectangularMatrixTest::data() { constexpr Matrix3x4 a(Vector4(3.0f, 5.0f, 8.0f, 4.0f), Vector4(4.5f, 4.0f, 7.0f, 3.0f), Vector4(7.0f, -1.7f, 8.0f, 0.0f)); - constexpr Vector4 b = a[2]; + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector4 b = a[2]; constexpr Float c = a[1][2]; constexpr Float d = *a.data(); CORRADE_COMPARE(b, Vector4(7.0f, -1.7f, 8.0f, 0.0f)); @@ -416,13 +422,19 @@ void RectangularMatrixTest::diagonal() { Vector3( 4.0f, 5.0f, 7.0f), Vector3( 8.0f, 9.0f, 11.0f), Vector3(12.0f, 13.0f, 15.0f)); - constexpr Vector3 aDiagonal = a.diagonal(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 aDiagonal = a.diagonal(); CORRADE_COMPARE(aDiagonal, diagonal); constexpr Matrix3x4 b(Vector4(-1.0f, 4.0f, 8.0f, 12.0f), Vector4( 1.0f, 5.0f, 9.0f, 13.0f), Vector4( 3.0f, 7.0f, 11.0f, 15.0f)); - constexpr Vector3 bDiagonal = b.diagonal(); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector3 bDiagonal = b.diagonal(); CORRADE_COMPARE(bDiagonal, diagonal); } diff --git a/src/Magnum/Math/Test/Vector2Test.cpp b/src/Magnum/Math/Test/Vector2Test.cpp index 514f788da..a8cfdd448 100644 --- a/src/Magnum/Math/Test/Vector2Test.cpp +++ b/src/Magnum/Math/Test/Vector2Test.cpp @@ -138,7 +138,10 @@ void Vector2Test::constructConversion() { void Vector2Test::constructCopy() { constexpr Vector<2, Float> a(1.5f, 2.5f); - constexpr Vector2 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Vector2 b(a); CORRADE_COMPARE(b, Vector2(1.5f, 2.5f)); } @@ -149,7 +152,10 @@ void Vector2Test::convert() { constexpr Vector2 c(a); CORRADE_COMPARE(c, b); - constexpr Vec2 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Vec2 d(b); CORRADE_COMPARE(d.x, a.x); CORRADE_COMPARE(d.y, a.y); diff --git a/src/Magnum/Math/Test/Vector3Test.cpp b/src/Magnum/Math/Test/Vector3Test.cpp index 763447019..af2719585 100644 --- a/src/Magnum/Math/Test/Vector3Test.cpp +++ b/src/Magnum/Math/Test/Vector3Test.cpp @@ -142,7 +142,10 @@ void Vector3Test::constructConversion() { void Vector3Test::constructCopy() { constexpr Vector<3, Float> a(1.0f, 2.5f, -3.0f); - constexpr Vector3 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Vector3 b(a); CORRADE_COMPARE(b, Vector3(1.0f, 2.5f, -3.0f)); } @@ -153,7 +156,10 @@ void Vector3Test::convert() { constexpr Vector3 c(a); CORRADE_COMPARE(c, b); - constexpr Vec3 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Vec3 d(b); CORRADE_COMPARE(d.x, a.x); CORRADE_COMPARE(d.y, a.y); CORRADE_COMPARE(d.z, a.z); diff --git a/src/Magnum/Math/Test/Vector4Test.cpp b/src/Magnum/Math/Test/Vector4Test.cpp index dc706c1a7..1fb0d4b8d 100644 --- a/src/Magnum/Math/Test/Vector4Test.cpp +++ b/src/Magnum/Math/Test/Vector4Test.cpp @@ -105,8 +105,14 @@ void Vector4Test::construct() { void Vector4Test::constructPad() { constexpr Vector<2, Float> a{3.0f, -1.0f}; - constexpr Vector4 b = Vector4::pad(a); - constexpr Vector4 c = Vector4::pad(a, 5.0f); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector4 b = Vector4::pad(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vector4 c = Vector4::pad(a, 5.0f); constexpr Vector4 d = Vector4::pad(a, 5.0f, 1.0f); CORRADE_COMPARE(b, Vector4(3.0f, -1.0f, 0.0f, 0.0f)); CORRADE_COMPARE(c, Vector4(3.0f, -1.0f, 5.0f, 5.0f)); @@ -151,7 +157,10 @@ void Vector4Test::constructConversion() { void Vector4Test::constructCopy() { constexpr Vector<4, Float> a(1.0f, -2.5f, 3.0f, 4.1f); - constexpr Vector4 b(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be copy constexpr? */ + constexpr + #endif + Vector4 b(a); CORRADE_COMPARE(b, Vector4(1.0f, -2.5f, 3.0f, 4.1f)); } @@ -162,7 +171,10 @@ void Vector4Test::convert() { constexpr Vector4 c(a); CORRADE_COMPARE(c, b); - constexpr Vec4 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Vec4 d(b); CORRADE_COMPARE(d.x, a.x); CORRADE_COMPARE(d.y, a.y); CORRADE_COMPARE(d.z, a.z); diff --git a/src/Magnum/Math/Test/VectorTest.cpp b/src/Magnum/Math/Test/VectorTest.cpp index 7c026b3ec..ad0f6d964 100644 --- a/src/Magnum/Math/Test/VectorTest.cpp +++ b/src/Magnum/Math/Test/VectorTest.cpp @@ -256,7 +256,10 @@ void VectorTest::convert() { Vector3 c{a}; CORRADE_COMPARE(c, b); - constexpr Vec3 d(b); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Why can't be conversion constexpr? */ + constexpr + #endif + Vec3 d(b); CORRADE_COMPARE(d.x, a.x); CORRADE_COMPARE(d.y, a.y); CORRADE_COMPARE(d.z, a.z); @@ -567,8 +570,14 @@ void VectorTest::subclass() { { constexpr Vector<1, Float> a = 5.0f; - constexpr Vec2 b = Vec2::pad(a); - constexpr Vec2 c = Vec2::pad(a, -1.0f); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vec2 b = Vec2::pad(a); + #ifndef CORRADE_MSVC2015_COMPATIBILITY /* Probably because copy is not constexpr */ + constexpr + #endif + Vec2 c = Vec2::pad(a, -1.0f); CORRADE_COMPARE(b, Vec2(5.0f, 0.0f)); CORRADE_COMPARE(c, Vec2(5.0f, -1.0f)); }