diff --git a/src/Magnum/Math/Algorithms/Test/SvdTest.cpp b/src/Magnum/Math/Algorithms/Test/SvdTest.cpp index ee10b342a..7eec4e7c0 100644 --- a/src/Magnum/Math/Algorithms/Test/SvdTest.cpp +++ b/src/Magnum/Math/Algorithms/Test/SvdTest.cpp @@ -65,14 +65,26 @@ template void SvdTest::test() { /* Test composition */ Matrix8 u2{u[0], u[1], u[2], u[3], u[4], Vector8{}, Vector8{}, Vector8{}}; Matrix5x8 w2 = Matrix5x8::fromDiagonal(w); - CORRADE_COMPARE(u2*w2*v.transposed(), a); + { + #ifdef CORRADE_TARGET_EMSCRIPTEN + CORRADE_EXPECT_FAIL_IF((std::is_same::value), + "Some strange problems with Double on recent Emscripten versions (1.36.5 worked fine)."); + #endif + CORRADE_COMPARE(u2*w2*v.transposed(), a); + } /* Test that V is unitary */ CORRADE_COMPARE(v*v.transposed(), Matrix5{IdentityInit}); CORRADE_COMPARE(v.transposed()*v, Matrix5{IdentityInit}); /* Test W */ - CORRADE_COMPARE(w, expected); + { + #ifdef CORRADE_TARGET_EMSCRIPTEN + CORRADE_EXPECT_FAIL_IF((std::is_same::value), + "Some strange problems with Double on recent Emscripten versions (1.36.5 worked fine)."); + #endif + CORRADE_COMPARE(w, expected); + } } }}}}