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
8int 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

source code of boost/libs/endian/test/endian_hpp_test.cpp