endian_hpp_test.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. #include <boost/endian.hpp>
  5. #include <boost/core/lightweight_test.hpp>
  6. int main()
  7. {
  8. using namespace boost::endian;
  9. // conversion
  10. {
  11. BOOST_TEST_EQ( endian_reverse( 0x01020304 ), 0x04030201 );
  12. }
  13. // buffers
  14. {
  15. little_uint32_buf_t v( 0x01020304 );
  16. BOOST_TEST_EQ( v.data()[ 0 ], 0x04 );
  17. BOOST_TEST_EQ( v.data()[ 1 ], 0x03 );
  18. BOOST_TEST_EQ( v.data()[ 2 ], 0x02 );
  19. BOOST_TEST_EQ( v.data()[ 3 ], 0x01 );
  20. }
  21. {
  22. big_uint32_buf_t v( 0x01020304 );
  23. BOOST_TEST_EQ( v.data()[ 0 ], 0x01 );
  24. BOOST_TEST_EQ( v.data()[ 1 ], 0x02 );
  25. BOOST_TEST_EQ( v.data()[ 2 ], 0x03 );
  26. BOOST_TEST_EQ( v.data()[ 3 ], 0x04 );
  27. }
  28. // arithmetic
  29. {
  30. little_uint32_t v( 0x01020304 );
  31. BOOST_TEST_EQ( v.data()[ 0 ], 0x04 );
  32. BOOST_TEST_EQ( v.data()[ 1 ], 0x03 );
  33. BOOST_TEST_EQ( v.data()[ 2 ], 0x02 );
  34. BOOST_TEST_EQ( v.data()[ 3 ], 0x01 );
  35. }
  36. {
  37. big_uint32_t v( 0x01020304 );
  38. BOOST_TEST_EQ( v.data()[ 0 ], 0x01 );
  39. BOOST_TEST_EQ( v.data()[ 1 ], 0x02 );
  40. BOOST_TEST_EQ( v.data()[ 2 ], 0x03 );
  41. BOOST_TEST_EQ( v.data()[ 3 ], 0x04 );
  42. }
  43. return boost::report_errors();
  44. }