// 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]) ); Hash h; Flavor f; boost::hash2::hash_append_range( h, f, v.begin(), v.end() ); BOOST_TEST_EQ( h.result(), r ); } template void test( R r ) { test_unsized_range< Hash, Flavor, std::vector >( r ); test_unsized_range< Hash, Flavor, std::list >( r ); test_unsized_range< Hash, Flavor, std::deque >( r ); test_unsized_range< Hash, Flavor, std::set >( r ); test_unsized_range< Hash, Flavor, std::multiset >( r ); test_unsized_range< Hash, Flavor, std::forward_list >( r ); { int v[2][2] = { { 1, 2 }, { 3, 4 } }; Hash h; Flavor f; boost::hash2::hash_append_range( h, f, v, v + 2 ); BOOST_TEST_EQ( h.result(), r ); } } int main() { using namespace boost::hash2; test( 1041505217ul ); test( 9566659391000707361ull ); return boost::report_errors(); }