]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/qi/real4.cpp
1 /*=============================================================================
2 Copyright (c) 2001-2011 Joel de Guzman
3 Copyright (c) 2001-2011 Hartmut Kaiser
4 Copyright (c) 2011 Bryce Lelbach
6 Use, modification and distribution is subject to the Boost Software
7 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 http://www.boost.org/LICENSE_1_0.txt)
9 =============================================================================*/
16 using spirit_test::test
;
17 using spirit_test::test_attr
;
19 ///////////////////////////////////////////////////////////////////////////
21 ///////////////////////////////////////////////////////////////////////////
22 #ifndef BOOST_SPIRIT_NO_MATH_REAL_CONCEPT
24 using boost::math::concepts::real_concept
;
25 using boost::spirit::qi::real_parser
;
26 using boost::spirit::qi::real_policies
;
27 using boost::spirit::qi::parse
;
29 real_parser
<real_concept
, real_policies
<real_concept
> > custom_real
;
32 BOOST_TEST(test("-1234", custom_real
));
33 BOOST_TEST(test_attr("-1234", custom_real
, d
) && compare(d
, -1234));
35 BOOST_TEST(test("-1.2e3", custom_real
));
36 BOOST_TEST(test_attr("-1.2e3", custom_real
, d
) && compare(d
, -1.2e3
));
38 BOOST_TEST(test("+1.2e3", custom_real
));
39 BOOST_TEST(test_attr("+1.2e3", custom_real
, d
) && compare(d
, 1.2e3
));
41 BOOST_TEST(test("-0.1", custom_real
));
42 BOOST_TEST(test_attr("-0.1", custom_real
, d
) && compare(d
, -0.1));
44 BOOST_TEST(test("-1.2e-3", custom_real
));
45 BOOST_TEST(test_attr("-1.2e-3", custom_real
, d
) && compare(d
, -1.2e-3));
47 BOOST_TEST(test("-1.e2", custom_real
));
48 BOOST_TEST(test_attr("-1.e2", custom_real
, d
) && compare(d
, -1.e2
));
50 BOOST_TEST(test("-.2e3", custom_real
));
51 BOOST_TEST(test_attr("-.2e3", custom_real
, d
) && compare(d
, -.2e3
));
53 BOOST_TEST(test("-2e3", custom_real
));
54 BOOST_TEST(test_attr("-2e3", custom_real
, d
) && compare(d
, -2e3
));
56 BOOST_TEST(!test("-e3", custom_real
));
57 BOOST_TEST(!test_attr("-e3", custom_real
, d
));
59 BOOST_TEST(!test("-1.2e", custom_real
));
60 BOOST_TEST(!test_attr("-1.2e", custom_real
, d
));
64 ///////////////////////////////////////////////////////////////////////////
66 ///////////////////////////////////////////////////////////////////////////
68 using boost::spirit::qi::double_
;
71 BOOST_TEST(test_attr("-123456e6", double_
, n
));
74 return boost::report_errors();