1// Copyright 2021, 2022 Peter Dimov.
2// Distributed under the Boost Software License, Version 1.0.
3// https://www.boost.org/LICENSE_1_0.txt
4
5#if defined(__GNUC__) && __GNUC__ == 8
6# pragma GCC diagnostic ignored "-Wsign-conversion"
7#endif
8
9#include <boost/container_hash/hash.hpp>
10#include <boost/core/lightweight_test.hpp>
11#include <map>
12
13template<class T> void test()
14{
15 typedef std::multimap<T, T> map;
16 typedef boost::hash<map> hash;
17
18 int const N = 32;
19
20 std::size_t h[ N ];
21
22 map v;
23
24 for( int i = 0; i < N; ++i )
25 {
26 h[ i ] = hash()( v );
27
28 BOOST_TEST_EQ( h[ i ], hash()( v ) );
29
30 for( int j = 0; j < i; ++j )
31 {
32 BOOST_TEST_NE( h[ j ], h[ i ] );
33 }
34
35 v.insert( std::pair<T const, T>() );
36 }
37}
38
39int main()
40{
41 test<int>();
42 test<float>();
43 test<double>();
44
45 return boost::report_errors();
46}
47

source code of boost/libs/container_hash/test/hash_multimap_test.cpp