From d0c1e36fc196c51552b7a544d50e479efc93203f Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 31 Aug 2022 14:51:47 +0300 Subject: [PATCH] Add hash_string_test3.cpp --- test/Jamfile.v2 | 2 ++ test/hash_string_test3.cpp | 42 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 test/hash_string_test3.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 8ce0b34..a0c3e21 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -83,3 +83,5 @@ run detail_is_range_test2.cpp : : : $(fs-path-req) ; run hash_container_test.cpp ; run hash_vector_test2.cpp ; + +run hash_string_test3.cpp ; diff --git a/test/hash_string_test3.cpp b/test/hash_string_test3.cpp new file mode 100644 index 0000000..1ccddb3 --- /dev/null +++ b/test/hash_string_test3.cpp @@ -0,0 +1,42 @@ +// Copyright 2021, 2022 Peter Dimov. +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include + +void test( unsigned char ch ) +{ + typedef boost::hash hash; + + int const N = 32; + + std::size_t h[ N ]; + + std::string v; + + for( int i = 0; i < N; ++i ) + { + h[ i ] = hash()( v ); + + BOOST_TEST_EQ( h[ i ], hash()( v ) ); + + for( int j = 0; j < i; ++j ) + { + BOOST_TEST_NE( h[ j ], h[ i ] ); + } + + v.push_back( static_cast( ch ) ); + } +} + +int main() +{ + for( unsigned ch = 0; ch < 256; ++ch ) + { + test( static_cast( ch ) ); + } + + return boost::report_errors(); +}