diff --git a/src/mlpack/tests/regularized_svd_test.cpp b/src/mlpack/tests/regularized_svd_test.cpp index 3d35c76259..7b03466de9 100644 --- a/src/mlpack/tests/regularized_svd_test.cpp +++ b/src/mlpack/tests/regularized_svd_test.cpp @@ -176,8 +176,15 @@ BOOST_AUTO_TEST_CASE(RegularizedSVDFunctionGradient) parameters(i, j) += epsilon; // Compare numerical and backpropagation gradient values. - BOOST_REQUIRE_CLOSE(numGradient1, gradient1(i, j), 1e-2); - BOOST_REQUIRE_CLOSE(numGradient2, gradient2(i, j), 1e-2); + if (gradient1(i, j) == 0.0) + BOOST_REQUIRE_SMALL(numGradient1, 1e-5); + else + BOOST_REQUIRE_CLOSE(numGradient1, gradient1(i, j), 1e-2); + + if (graident2(i, j) == 0.0) + BOOST_REQUIRE_SMALL(numGradient2, 1e-5); + else + BOOST_REQUIRE_CLOSE(numGradient2, gradient2(i, j), 1e-2); } } }