gpt4 book ai didi

c++ - 如何在 C++ 的谷歌测试中匹配双 vector 的元素?

转载 作者:行者123 更新时间:2023-11-30 05:02:57 26 4
gpt4 key购买 nike

在 Google 测试框架中断言两个 double 相等我们可以使用:

ASSERT_DOUBLE_EQ(val1, val2);

代替

ASSERT_EQ(val1, val2);

避免精度问题。为了比较 vector 的元素,Google mock frame work 有一个很好的宏,叫做 ElementsAre,下面是一个例子:

std::vector<double> vec{0.1,0.2};
ASSERT_THAT(vec, ElementsAre(0.1, 0.2));

有没有办法使用类似于 ASSERT_DOUBLE_EQ 的匹配器来避免在使用 ASSERT_THAT 时出现与精度相关的问题?

最佳答案

Google mock 有多个 floating point matchers用于 double 比较,包括 DoubleEqDoubleNear。您可以像这样在数组匹配器中使用它们:

ASSERT_THAT(vec, ElementsAre(DoubleEq(0.1), DoubleEq(0.2)));

关于c++ - 如何在 C++ 的谷歌测试中匹配双 vector 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49599749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com