// 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 #include #include template void test( R r ) { { unsigned char v[2] = { 1, 2 }; H h; h.update( v, 2 ); BOOST_TEST_EQ( h.result(), r ); } { unsigned char v[2] = { 1, 2 }; H h; hash_append( h, v[0] ); hash_append( h, v[1] ); BOOST_TEST_EQ( h.result(), r ); } { unsigned char v[2] = { 1, 2 }; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { std::pair v( static_cast( 1 ), static_cast( 2 ) ); H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { boost::array v = { { 1, 2 } }; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { std::array v = { { 1, 2 } }; H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } { std::tuple v( static_cast( 1 ), static_cast( 2 ) ); H h; hash_append( h, v ); BOOST_TEST_EQ( h.result(), r ); } } int main() { test( 3983810698ul ); test( 589729691727335466ull ); return boost::report_errors(); }