// Copyright 2017, 2018 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. #include #include #include #include #include #include #include #include #include #include #include using boost::hash2::byte_type; template void test() { char const * s = "xxxx"; { H h; h.update( reinterpret_cast( s ), 4 ); h.result(); unsigned char const * p = reinterpret_cast( &h ); std::size_t n = sizeof( h ); BOOST_TEST_EQ( std::search( p, p + n, s, s + 4 ) - p, n ); } { H h; byte_type buffer[ 1024 ] = {}; h.update( buffer, 1024 ); h.update( reinterpret_cast( s ), 4 ); h.result(); unsigned char const * p = reinterpret_cast( &h ); std::size_t n = sizeof( h ); BOOST_TEST_EQ( std::search( p, p + n, s, s + 4 ) - p, n ); } } int main() { test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); test(); return boost::report_errors(); }