#define BOOST_TEST_MODULE example#include <boost/test/included/unit_test.hpp>// boost::unit_test::tolerance uses relative difference and hence this test will pass;// is there anything I can use here to indicate absolute difference?BOOST_AUTO_TEST_CASE(my_test, * boost::unit_test::tolerance(0.1) ){BOOST_TEST(10.1 == 10.3);}
What you want to do is discussed here in the doc:
http://www.boost.org/doc/libs/1_66_0/libs/test/doc/html/boost_test/testing_tools/extended_comparison/floating_point/floating_points_comparison_impl.html
You may just use
BOOST_TEST(left - right == .0, boost::unit_test::tolerance(0.1));
and I think it should use absolute tolerance on the absolute value of
left-right.
If nothing works, there is always the good old comparison:
BOOST_TEST((std::abs(left - right) < 0.1))
Note the double parenthesis, in this case BOOST_TEST will see only the
evaluation of the expression inside, which is cast to bool (less
elegant, but should work as last resort).
Raffi
_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users
Apart from creating a collection of differences that you compare with a
collection of zeros (that can be wrap up in helper functions), I do not
see a way to use this facility as is. Looping over the elements would
certainly be the most maintainable and easy to understand choice.
Regards,
Georgios