如何从 BOOST_TEST(相对容差)转换为等效的 GTest EXPECT_NEAR(绝对容差)?

问题描述 投票:0回答:1

我的任务是将一些 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
的正确方法是什么?

c++ testing googletest boost-test
1个回答
0
投票

你可能是说

const auto tolerance = tt::tolerance(1.0e-10);
BOOST_TEST(value, expectedValue, tolerance);

你可以做这样的

EXPECT_NEAR(expectedValue, (expectedValue ? expectedValue : value) * tolerance)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.