• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
main()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