// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // // Endian-dependent test #include #include #include #include #if !defined(BOOST_NO_CXX11_HDR_ARRAY) # include #endif template void test( R r ) { { int v[4] = { 1, 2, 3, 4 }; H h; hash_append( h, v[0] ); hash_append( h, v[1] ); hash_append( h, v[2] ); hash_append( h, v[3] ); BOOST_TEST_EQ( h.result(), r ); } { int v[4] = { 1, 2, 3, 4 }; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { int v[2][2] = { { 1, 2 }, { 3, 4 } }; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { boost::array v = {{ 1, 2, 3, 4 }}; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } #if !defined(BOOST_NO_CXX11_HDR_ARRAY) { std::array v = {{ 1, 2, 3, 4 }}; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } #endif } int main() { test( 1041505217ul ); test( 9566659391000707361ull ); return boost::report_errors(); }