]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright (c) 2015 Boost.Test team |
2 | // Distributed under the Boost Software License, Version 1.0. | |
3 | // (See accompanying file LICENSE_1_0.txt or copy at | |
4 | // http://www.boost.org/LICENSE_1_0.txt) | |
5 | ||
6 | // See http://www.boost.org/libs/test for the library home page. | |
7 | ||
8 | //[example_code | |
9 | #define BOOST_TEST_MODULE tolerance_04 | |
10 | #include <boost/test/included/unit_test.hpp> | |
11 | #include <boost/rational.hpp> | |
12 | namespace utf = boost::unit_test; | |
13 | namespace tt = boost::test_tools; | |
14 | ||
15 | namespace boost { namespace math { namespace fpc { | |
16 | ||
17 | template <typename I> | |
18 | struct tolerance_based< rational<I> > : boost::true_type{}; | |
19 | ||
20 | } } } | |
21 | ||
22 | typedef boost::rational<int> ratio; | |
23 | ||
24 | BOOST_AUTO_TEST_CASE(test1, * utf::tolerance(ratio(1, 1000))) | |
25 | { | |
26 | ratio x (1002, 100); // 10.02 | |
27 | ratio y (1001, 100); // 10.01 | |
28 | ratio z (1000, 100); // 10.00 | |
29 | ||
30 | BOOST_TEST(x == y); // irrelevant diff by default | |
31 | BOOST_TEST(x == y, tt::tolerance(ratio(1, 2000))); | |
32 | ||
33 | BOOST_TEST(x != z); // relevant diff by default | |
34 | BOOST_TEST(x != z, tt::tolerance(ratio(2, 1000))); | |
35 | } | |
36 | //] |