]>
Commit | Line | Data |
---|---|---|
b32b8144 | 1 | // Copyright Louis Dionne 2013-2017 |
7c673cae FG |
2 | // Distributed under the Boost Software License, Version 1.0. |
3 | // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) | |
4 | ||
5 | #include <boost/hana/assert.hpp> | |
6 | #include <boost/hana/equal.hpp> | |
7 | #include <boost/hana/integral_constant.hpp> | |
8 | #include <boost/hana/less.hpp> | |
9 | #include <boost/hana/negate.hpp> | |
10 | ||
11 | #include <type_traits> | |
12 | namespace hana = boost::hana; | |
13 | using namespace hana::literals; | |
14 | ||
15 | ||
16 | BOOST_HANA_CONSTANT_CHECK(0_c == hana::llong_c<0>); | |
17 | BOOST_HANA_CONSTANT_CHECK(1_c == hana::llong_c<1>); | |
18 | BOOST_HANA_CONSTANT_CHECK(12_c == hana::llong_c<12>); | |
19 | BOOST_HANA_CONSTANT_CHECK(123_c == hana::llong_c<123>); | |
20 | BOOST_HANA_CONSTANT_CHECK(1234567_c == hana::llong_c<1234567>); | |
21 | BOOST_HANA_CONSTANT_CHECK(-34_c == hana::llong_c<-34>); | |
22 | ||
23 | ||
24 | static_assert(std::is_same< | |
25 | decltype(-1234_c)::value_type, | |
26 | long long | |
27 | >{}, ""); | |
28 | static_assert(-1234_c == -1234ll, ""); | |
29 | BOOST_HANA_CONSTANT_CHECK(-12_c < 0_c); | |
30 | ||
31 | ||
32 | constexpr auto deadbeef = hana::llong_c<0xDEADBEEF>; | |
33 | ||
34 | //hexadecimal | |
35 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xDEADBEEF_c); | |
36 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xDeAdBeEf_c); | |
37 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 0xdeadbeef_c); | |
38 | ||
39 | //decimal | |
b32b8144 | 40 | BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<3735928559>); // test the test |
7c673cae FG |
41 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 3735928559_c); |
42 | ||
43 | //binary | |
b32b8144 | 44 | BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<0b11011110101011011011111011101111>); // test the test |
7c673cae FG |
45 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 0b11011110101011011011111011101111_c); |
46 | ||
47 | //octal | |
b32b8144 | 48 | BOOST_HANA_CONSTANT_CHECK(deadbeef == hana::llong_c<033653337357>); // test the test |
7c673cae FG |
49 | BOOST_HANA_CONSTANT_CHECK(deadbeef == 033653337357_c); |
50 | ||
51 | BOOST_HANA_CONSTANT_CHECK(0x0_c == hana::llong_c<0>); | |
52 | BOOST_HANA_CONSTANT_CHECK(0b0_c == hana::llong_c<0>); | |
53 | BOOST_HANA_CONSTANT_CHECK(00_c == hana::llong_c<0>); | |
54 | ||
55 | BOOST_HANA_CONSTANT_CHECK(0x1_c == hana::llong_c<1>); | |
56 | BOOST_HANA_CONSTANT_CHECK(0b1_c == hana::llong_c<1>); | |
57 | BOOST_HANA_CONSTANT_CHECK(01_c == hana::llong_c<1>); | |
58 | ||
59 | BOOST_HANA_CONSTANT_CHECK(-0x1_c == hana::llong_c<-1>); | |
60 | BOOST_HANA_CONSTANT_CHECK(-0b1_c == hana::llong_c<-1>); | |
61 | BOOST_HANA_CONSTANT_CHECK(-01_c == hana::llong_c<-1>); | |
62 | ||
63 | BOOST_HANA_CONSTANT_CHECK(0x10_c == hana::llong_c<16>); | |
64 | BOOST_HANA_CONSTANT_CHECK(0b10_c == hana::llong_c<2>); | |
65 | BOOST_HANA_CONSTANT_CHECK(010_c == hana::llong_c<8>); | |
66 | ||
67 | BOOST_HANA_CONSTANT_CHECK(-0x10_c == hana::llong_c<-16>); | |
68 | BOOST_HANA_CONSTANT_CHECK(-0b10_c == hana::llong_c<-2>); | |
69 | BOOST_HANA_CONSTANT_CHECK(-010_c == hana::llong_c<-8>); | |
70 | ||
b32b8144 FG |
71 | // digit separators |
72 | static_assert(123'456 == 123456, ""); // test the test | |
73 | BOOST_HANA_CONSTANT_CHECK(123'456_c == hana::llong_c<123456>); | |
74 | ||
7c673cae | 75 | int main() { } |