// Copyright 2017 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // // Endian-independent test #include #include #include #include #include #include #include #include #include #if !defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) # include #endif template void test_unsized_range( R r ) { unsigned char 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::string >( 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 ); #if !defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) test_unsized_range< H, std::forward_list >( r ); #endif { unsigned char 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( 1463068797ul ); test( 13725386680924731485ull ); return boost::report_errors(); }