]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/container_hash/test/hash_std_array_test.cpp
2 // Copyright 2012 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 #include "./config.hpp"
8 #ifdef BOOST_HASH_TEST_EXTENSIONS
9 # ifdef BOOST_HASH_TEST_STD_INCLUDES
10 # include <functional>
12 # include <boost/container_hash/hash.hpp>
16 #include <boost/config.hpp>
17 #include <boost/core/lightweight_test.hpp>
19 #if defined(BOOST_HASH_TEST_EXTENSIONS) && !defined(BOOST_NO_CXX11_HDR_ARRAY)
28 void array_tests(T
const& v
) {
29 boost::hash
<typename
T::value_type
> hf
;
30 for(typename
T::const_iterator i
= v
.begin(); i
!= v
.end(); ++i
) {
31 for(typename
T::const_iterator j
= v
.begin(); j
!= v
.end(); ++j
) {
33 BOOST_TEST(hf(*i
) != hf(*j
));
35 BOOST_TEST(hf(*i
) == hf(*j
));
40 void empty_array_test() {
42 boost::hash<std::array<int, 0> > empty_array_hash;
43 std::array<int, 0> empty_array;
44 BOOST_TEST(empty_array_hash(empty_array) == boost::hash_value(empty_array));
48 void int_1_array_test()
50 std::vector
<std::array
<int, 1> > arrays
;
51 std::array
<int, 1> val
;
53 arrays
.push_back(val
);
55 arrays
.push_back(val
);
57 arrays
.push_back(val
);
61 void string_1_array_test()
63 std::vector
<std::array
<std::string
, 1> > arrays
;
64 std::array
<std::string
, 1> val
;
65 arrays
.push_back(val
);
67 arrays
.push_back(val
);
69 arrays
.push_back(val
);
73 void string_3_array_test()
75 std::vector
<std::array
<std::string
,3 > > arrays
;
76 std::array
<std::string
, 3> val
;
77 arrays
.push_back(val
);
79 arrays
.push_back(val
);
80 val
[0] = ""; val
[1] = "one"; val
[2] = "";
81 arrays
.push_back(val
);
82 val
[0] = ""; val
[1] = ""; val
[2] = "one";
83 arrays
.push_back(val
);
84 val
[0] = "one"; val
[1] = "one"; val
[2] = "one";
85 arrays
.push_back(val
);
86 val
[0] = "one"; val
[1] = "two"; val
[2] = "three";
87 arrays
.push_back(val
);
98 string_1_array_test();
99 string_3_array_test();
102 return boost::report_errors();