1 | // Copyright 2019 Peter Dimov |
2 | // Distributed under the Boost Software License, Version 1.0. |
3 | // http://www.boost.org/LICENSE_1_0.txt |
4 | |
5 | #include <boost/endian.hpp> |
6 | #include <boost/core/lightweight_test.hpp> |
7 | |
8 | int main() |
9 | { |
10 | using namespace boost::endian; |
11 | |
12 | // conversion |
13 | |
14 | { |
15 | BOOST_TEST_EQ( endian_reverse( 0x01020304 ), 0x04030201 ); |
16 | } |
17 | |
18 | // buffers |
19 | |
20 | { |
21 | little_uint32_buf_t v( 0x01020304 ); |
22 | |
23 | BOOST_TEST_EQ( v.data()[ 0 ], 0x04 ); |
24 | BOOST_TEST_EQ( v.data()[ 1 ], 0x03 ); |
25 | BOOST_TEST_EQ( v.data()[ 2 ], 0x02 ); |
26 | BOOST_TEST_EQ( v.data()[ 3 ], 0x01 ); |
27 | } |
28 | |
29 | { |
30 | big_uint32_buf_t v( 0x01020304 ); |
31 | |
32 | BOOST_TEST_EQ( v.data()[ 0 ], 0x01 ); |
33 | BOOST_TEST_EQ( v.data()[ 1 ], 0x02 ); |
34 | BOOST_TEST_EQ( v.data()[ 2 ], 0x03 ); |
35 | BOOST_TEST_EQ( v.data()[ 3 ], 0x04 ); |
36 | } |
37 | |
38 | // arithmetic |
39 | |
40 | { |
41 | little_uint32_t v( 0x01020304 ); |
42 | |
43 | BOOST_TEST_EQ( v.data()[ 0 ], 0x04 ); |
44 | BOOST_TEST_EQ( v.data()[ 1 ], 0x03 ); |
45 | BOOST_TEST_EQ( v.data()[ 2 ], 0x02 ); |
46 | BOOST_TEST_EQ( v.data()[ 3 ], 0x01 ); |
47 | } |
48 | |
49 | { |
50 | big_uint32_t v( 0x01020304 ); |
51 | |
52 | BOOST_TEST_EQ( v.data()[ 0 ], 0x01 ); |
53 | BOOST_TEST_EQ( v.data()[ 1 ], 0x02 ); |
54 | BOOST_TEST_EQ( v.data()[ 2 ], 0x03 ); |
55 | BOOST_TEST_EQ( v.data()[ 3 ], 0x04 ); |
56 | } |
57 | |
58 | return boost::report_errors(); |
59 | } |
60 | |