If gradient2 or gradient1 are zero, then BOOST_REQUIRE_CLOSE will fail, so use

BOOST_REQUIRE_SMALL in those situations.
This commit is contained in:
Ryan Curtin
2014-11-10 16:56:39 +00:00
parent 8da5cc01b1
commit 4ff522b053
+9 -2
View File
@@ -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);
}
}
}