【问题标题】:A version of BOOST_CHECK_CLOSE that deals with absolute differences处理绝对差异的 BOOST_CHECK_CLOSE 版本
【发布时间】:2013-02-21 14:43:03
【问题描述】:

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

使用例如自己编写其中一个是相当微不足道的。 BOOST_CHECK_SMALL,但我右宏的详细输出会使错误更容易追踪。

【问题讨论】:

    标签: c++ unit-testing boost-test


    【解决方案1】:

    TBH,我不明白 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 与返回谓词的自定义函数一起使用——但我认为这太过分了。

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 2012-10-29
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多