我的任务是将一些 Boost 测试更改为 GTest。我有一堆以下形式的测试:
const double tolerance = 1.0e-10;
BOOST_TEST(value, expectedValue, tolerance);
等效的 GTest 是什么?我试过:
// Extra 100 factor to convert from BOOST_TEST's assuming the tolerance is a percentage
EXPECT_NEAR(value, expectedValue, expectedValue * tolerance * 100.0);
但是当
expectedValue
为零时,总体容差值为零,并且当 value
不完全为零时,它会失败。
将这个
BOOST_TEST
调整为EXPECT_NEAR
的正确方法是什么?
你可能是说
const auto tolerance = tt::tolerance(1.0e-10);
BOOST_TEST(value, expectedValue, tolerance);
你可以做这样的
EXPECT_NEAR(expectedValue, (expectedValue ? expectedValue : value) * tolerance)