![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
tolerance (decorator)Boost , Boost.Test , Reference API for writing tests
|
Код |
---|
<#defineBOOST_TEST_MODULEdecorator_13 #include<boost/test/included/unit_test.hpp> namespaceutf=boost::unit_test; namespacefpc=boost::test_tools::fpc; BOOST_AUTO_TEST_CASE(test1,*utf::tolerance(0.0005)) { BOOST_TEST(0.001==0.000); BOOST_TEST(1.100==1.101); } BOOST_AUTO_TEST_CASE(test2,*utf::tolerance(0.005)) { BOOST_TEST(0.001==0.000); BOOST_TEST(1.100==1.101); } BOOST_AUTO_TEST_CASE(test3,*utf::tolerance(0.05F)) { BOOST_TEST(0.001==0.000); BOOST_TEST(1.100==1.101); } BOOST_AUTO_TEST_CASE(test4, *utf::tolerance(fpc::percent_tolerance(0.05))) { BOOST_TEST(0.001==0.000); BOOST_TEST(1.100==1.101); } BOOST_AUTO_TEST_CASE(test5, *utf::tolerance(fpc::percent_tolerance(0.5))) { BOOST_TEST(0.001==0.000); BOOST_TEST(1.100==1.101); }> |
выход |
---|
<>decorator_13 Running5testcases... test.cpp(9):error:in"test1":check0.001==0.000hasfailed[0.001!=0].Absolutevalueexceedstolerance[|0.001|>0.0005] test.cpp(10):error:in"test1":check1.100==1.101hasfailed[1.1000000000000001!=1.101].Relativedifferenceexceedstolerance[0.000908265>0.0005] test.cpp(21):error:in"test3":check0.001==0.000hasfailed[0.001!=0].Absolutevalueexceedstolerance[|0.001|>0] test.cpp(22):error:in"test3":check1.100==1.101hasfailed[1.1000000000000001!=1.101] test.cpp(28):error:in"test4":check0.001==0.000hasfailed[0.001!=0].Absolutevalueexceedstolerance[|0.001|>0.0005] test.cpp(29):error:in"test4":check1.100==1.101hasfailed[1.1000000000000001!=1.101].Relativedifferenceexceedstolerance[0.000908265>0.0005] ***6failuresaredetectedinthetestmodule"decorator_13"> |
В приведенном выше примере в<test1
>проверка на<double
>терпит неудачу, потому что они отличаются больше тем, что указывает толерантность к<double
>. В<test2
>терпимость к<double
>s больше, и поэтому проверки успешны. В<test3
>мы указываем только допуск по типу<float
>, а поскольку при проверках используется тип<double
>, указанный допуск не применяется. Толерантность в<test4
>эквивалентна таковой в<test1
>, поэтому ее проверки также терпят неудачу. Толерантность в<test5
>эквивалентна таковой в<test2
>, поэтому ее проверки также успешны.
Статья tolerance (decorator) раздела Boost.Test Reference API for writing tests может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Reference API for writing tests ::
реклама |