2013-02-21 65 views
1

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

使用例如自己编写这些文件是非常微不足道的。 BOOST_CHECK_SMALL,但我右侧宏的详细输出会使错误更容易追踪。

回答

4

TBH,我不明白与BOOST_CHECK_SMALL问题:

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

但是,如果它看起来更像CHECK_CLOSE,你必须推出自己的宏观刺激的方式不 - 只是挖到相应的标题中。您可能需要添加自己的检查类型枚举值,创建一个谓词并在宏中使用它。

或使用BOOST_CHECK_PREDICATE诚实地看起来比CHECK_SMALL丑得多,但有区别。 或者简单地使用BOOST_CHECK和一个返回谓词的自定义函数 - 但我认为这是过度杀伤。