C++ BOOST_CHECK_CLOSE的一个版本,处理绝对差异
是否有一个版本的BOOST_CHECK_CLOSE可以处理绝对差异而不是百分比?在某些情况下,绝对差异更有意义,例如,当我们处理金钱时(是的,我知道double不是最好的类型),我们可能会检查答案是否精确到最接近的便士。还有许多其他的例子C++ BOOST_CHECK_CLOSE的一个版本,处理绝对差异,c++,unit-testing,boost-test,C++,Unit Testing,Boost Test,是否有一个版本的BOOST_CHECK_CLOSE可以处理绝对差异而不是百分比?在某些情况下,绝对差异更有意义,例如,当我们处理金钱时(是的,我知道double不是最好的类型),我们可能会检查答案是否精确到最接近的便士。还有许多其他的例子 使用BOOST\u CHECK\u SMALL之类的工具自己编写其中一个是相当简单的,但我认为正确的宏的详细输出会使错误更容易跟踪。TBH,我不理解BOOST\u CHECK\u SMALL的问题: double val = func(); //should
使用BOOST\u CHECK\u SMALL之类的工具自己编写其中一个是相当简单的,但我认为正确的宏的详细输出会使错误更容易跟踪。TBH,我不理解BOOST\u CHECK\u SMALL的问题:
double val = func(); //should be between 95 and 105
BOOST_CHECK_SMALL(val - 100, 5);
但是,如果它看起来更像CHECK_CLOSE,那么您必须像boost那样滚动自己的宏-只需深入到相应的标题中即可。您可能需要添加自己的检查类型枚举值,创建一个谓词并在宏中使用它
或者使用那些看起来确实比“检查”要丑陋得多的东西。
或者简单地使用BOOST_CHECK和一个返回谓词的自定义函数——但我认为这太过分了