gpt4 book ai didi

c++ - 处理绝对差异的 BOOST_CHECK_CLOSE 版本

转载 作者:行者123 更新时间:2023-11-30 01:23:27 26 4
gpt4 key购买 nike

是否有 BOOST_CHECK_CLOSE 版本适用于绝对差异而不是百分比?在某些情况下,绝对差异更有意义,例如当我们处理金钱时(是的,我知道 double 不是最好的类型),我们可能会检查答案是否准确到最接近的一分钱。还有很多其他的例子。

自己编写其中一个是相当简单的,例如使用BOOST_CHECK_SMALL,但我认为 right 宏的详细输出会使错误更容易追踪。

最佳答案

老实说,我不明白 BOOST_CHECK_SMALL 的问题:

double val = func(); //should be between 95 and 105
BOOST_CHECK_SMALL(val - 100, 5);

但是,如果它必须看起来更像 CHECK_CLOSE,您将不得不像 boost 那样滚动您自己的宏 - 只需深入研究相应的标题即可。您可能必须添加自己的检查类型枚举值、创建谓词并在宏中使用它。

或者使用BOOST_CHECK_PREDICATE老实说,它看起来比 CHECK_SMALL 难看得多,但有所不同。或者简单地将 BOOST_CHECK 与返回谓词的自定义函数一起使用 - 但我认为这太过分了。

关于c++ - 处理绝对差异的 BOOST_CHECK_CLOSE 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15005052/

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