]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/functional/hash/test/hash_fwd_test_1.cpp
2 // Copyright 2006-2009 Daniel James.
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 // This checks that template code implemented using hash_fwd will work.
8 #include "./config.hpp"
10 #include "./hash_fwd_test.hpp"
12 #include <boost/detail/lightweight_test.hpp>
14 #if defined(BOOST_HASH_TEST_EXTENSIONS) && !defined(BOOST_HASH_TEST_STD_INCLUDES)
16 #include <boost/functional/hash.hpp>
21 test::test_type1
<int> x(5);
22 test::test_type1
<std::string
> y("Test");
24 BOOST_HASH_TEST_NAMESPACE::hash
<int> hasher_int
;
25 BOOST_HASH_TEST_NAMESPACE::hash
<std::string
> hasher_string
;
26 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type1
<int> > hasher_test_int
;
27 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type1
<std::string
> > hasher_test_string
;
29 BOOST_TEST(hasher_int(5) == hasher_test_int(x
));
30 BOOST_TEST(hasher_string("Test") == hasher_test_string(y
));
35 test::test_type2
<int> x(5, 10);
36 test::test_type2
<std::string
> y("Test1", "Test2");
38 std::size_t seed1
= 0;
39 BOOST_HASH_TEST_NAMESPACE::hash_combine(seed1
, 5);
40 BOOST_HASH_TEST_NAMESPACE::hash_combine(seed1
, 10);
42 std::size_t seed2
= 0;
43 BOOST_HASH_TEST_NAMESPACE::hash_combine(seed2
, std::string("Test1"));
44 BOOST_HASH_TEST_NAMESPACE::hash_combine(seed2
, std::string("Test2"));
46 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type2
<int> > hasher_test_int
;
47 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type2
<std::string
> > hasher_test_string
;
49 BOOST_TEST(seed1
== hasher_test_int(x
));
50 BOOST_TEST(seed2
== hasher_test_string(y
));
55 std::vector
<int> values1
;
56 values1
.push_back(10);
57 values1
.push_back(15);
58 values1
.push_back(20);
61 std::vector
<std::string
> values2
;
62 values2
.push_back("Chico");
63 values2
.push_back("Groucho");
64 values2
.push_back("Harpo");
65 values2
.push_back("Gummo");
66 values2
.push_back("Zeppo");
68 test::test_type3
<int> x(values1
.begin(), values1
.end());
69 test::test_type3
<std::string
> y(values2
.begin(), values2
.end());
72 BOOST_HASH_TEST_NAMESPACE::hash_range(values1
.begin(), values1
.end());
73 BOOST_HASH_TEST_NAMESPACE::hash_range(seed1
, values1
.begin(), values1
.end());
76 BOOST_HASH_TEST_NAMESPACE::hash_range(values2
.begin(), values2
.end());
77 BOOST_HASH_TEST_NAMESPACE::hash_range(seed2
, values2
.begin(), values2
.end());
79 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type3
<int> > hasher_test_int
;
80 BOOST_HASH_TEST_NAMESPACE::hash
<test::test_type3
<std::string
> > hasher_test_string
;
82 BOOST_TEST(seed1
== hasher_test_int(x
));
83 BOOST_TEST(seed2
== hasher_test_string(y
));
90 #ifdef BOOST_HASH_TEST_EXTENSIONS
95 return boost::report_errors();