gpt4 book ai didi

c++ - GTest Floats less 或 close with absolute error

转载 作者:行者123 更新时间:2023-11-30 05:23:17 25 4
gpt4 key购买 nike

googletest 的断言宏非常棒,因为它们在失败时提供了很好的消息。我正在寻找一个更复杂的 float 比较的好可能性:“小于或接近后者的给定精度”所以根据Advanced Guide on github这至少是可能的,而无需给出 float 的接近程度的最大绝对误差:

EXPECT_PRED_FORMAT2(::testing::FloatLE, val1, val2);

就在上面,他们说“关闭给定错误”是如何工作的:

EXPECT_NEAR(val1, val2, abs_error);

所以我认为组合也一定有效。查看源代码,EXPECT_NEAR 是如何扩展的,我看到有像这样的高阶宏

EXPECT_PRED_FORMAT3

再次接受另一个值。但是,我无法让这种组合以直接的方式发挥作用。

所以问题是:这是否可能以及如何实现?

当然可以做一个解决方法,编码比较并只比较一个 bool 值。但是,这在失败的情况下缺少很好的 gtest 输出。

最佳答案

您可以使用 EXPECT_PRED3(pred, val1, val2, val3) 但您必须编写自己的 pred 函数,该函数接受 3 个参数并返回 truefalse

如果您想要漂亮的消息,您应该编写自己的函数,它接受 3 个参数并返回 ::testing::AssertionResult,如 Google 测试文档中所述,Using a Function That Returns an AssertionResult .然后,您可以将该函数与 EXPECT_TRUE 一起使用。

关于c++ - GTest Floats less 或 close with absolute error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39276232/

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