// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt // // Endian-independent test #include #include #include #include #include template void test( R r ) { Flavor f; { unsigned char v[4] = { 1, 2, 3, 4 }; Hash h; hash_append( h, f, v[0] ); hash_append( h, f, v[1] ); hash_append( h, f, v[2] ); hash_append( h, f, v[3] ); BOOST_TEST_EQ( h.result(), r ); } { unsigned char v[4] = { 1, 2, 3, 4 }; Hash h; hash_append( h, f, v ); BOOST_TEST_EQ( h.result(), r ); } { unsigned char v[2][2] = { { 1, 2 }, { 3, 4 } }; Hash h; hash_append( h, f, v ); BOOST_TEST_EQ( h.result(), r ); } { boost::array v = {{ 1, 2, 3, 4 }}; Hash h; hash_append( h, f, v ); BOOST_TEST_EQ( h.result(), r ); } { std::array v = {{ 1, 2, 3, 4 }}; Hash h; hash_append( h, f, v ); BOOST_TEST_EQ( h.result(), r ); } } int main() { using namespace boost::hash2; test( 1463068797ul ); test( 13725386680924731485ull ); return boost::report_errors(); }