1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2 | // Copyright 2013 John Maddock. Distributed under the Boost
|
---|
3 | // Software License, Version 1.0. (See accompanying file
|
---|
4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
---|
5 |
|
---|
6 |
|
---|
7 | #include <boost/multiprecision/cpp_dec_float.hpp>
|
---|
8 | #define BOOST_TEST_MODULE multiprecision
|
---|
9 | #include <boost/test/unit_test.hpp>
|
---|
10 |
|
---|
11 | BOOST_AUTO_TEST_CASE(multiprecision)
|
---|
12 | {
|
---|
13 | using namespace boost::multiprecision;
|
---|
14 |
|
---|
15 | cpp_dec_float_50 a(0), b(0), c(1);
|
---|
16 | cpp_dec_float_50 eps = std::numeric_limits<cpp_dec_float_50>::epsilon();
|
---|
17 |
|
---|
18 | BOOST_CHECK_EQUAL(a, b);
|
---|
19 | BOOST_CHECK_NE(a, c);
|
---|
20 | BOOST_CHECK_LE(a, b);
|
---|
21 | BOOST_CHECK_GE(a, b);
|
---|
22 | BOOST_CHECK_GT(c, a);
|
---|
23 | BOOST_CHECK_LT(a, c);
|
---|
24 |
|
---|
25 | BOOST_CHECK_SMALL(a, eps);
|
---|
26 | BOOST_CHECK_SMALL(eps/2, eps);
|
---|
27 |
|
---|
28 | b = c + 10 * eps;
|
---|
29 |
|
---|
30 | BOOST_CHECK_CLOSE_FRACTION(b, c, eps * 20);
|
---|
31 | BOOST_CHECK_CLOSE(b, c, eps * 20 * 100);
|
---|
32 |
|
---|
33 | BOOST_CHECK_CLOSE_FRACTION(1 * b, c, eps * 20);
|
---|
34 | BOOST_CHECK_CLOSE(1 * b, c, eps * 20 * 100);
|
---|
35 | }
|
---|
36 |
|
---|