// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt // // Endian-dependent test #include #include #include #include #include #include #include #include template void test_unsized_range( R r ) { int w[] = { 1, 2, 3, 4 }; T v( w, w + sizeof(w) / sizeof(w[0]) ); H h; hash_append_range( h, v.begin(), v.end() ); BOOST_TEST_EQ( h.result(), r ); } template void test( R r ) { test_unsized_range< H, std::vector >( r ); test_unsized_range< H, std::list >( r ); test_unsized_range< H, std::deque >( r ); test_unsized_range< H, std::set >( r ); test_unsized_range< H, std::multiset >( r ); test_unsized_range< H, std::forward_list >( r ); { int v[2][2] = { { 1, 2 }, { 3, 4 } }; H h; hash_append_range( h, v, v + 2 ); BOOST_TEST_EQ( h.result(), r ); } } int main() { test( 1041505217ul ); test( 9566659391000707361ull ); return boost::report_errors(); }