]>
Commit | Line | Data |
---|---|---|
b32b8144 FG |
1 | /*============================================================================= |
2 | Copyright (c) 2004 Angus Leeming | |
3 | Copyright (c) 2017 Kohei Takahashi | |
4 | ||
5 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
6 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
7 | ==============================================================================*/ | |
8 | #include "container_tests.hpp" | |
9 | #include <boost/static_assert.hpp> | |
10 | ||
11 | std::unordered_set<int> const build_unordered_set() | |
12 | { | |
13 | typedef std::unordered_set<int> int_set; | |
14 | typedef std::vector<int> int_vector; | |
15 | ||
16 | int_set result; | |
17 | int_vector const data = build_vector(); | |
18 | int_vector::const_iterator it = data.begin(); | |
19 | int_vector::const_iterator const end = data.end(); | |
20 | result.insert(it, end); | |
21 | return result; | |
22 | } | |
23 | ||
24 | std::unordered_multiset<int> const build_unordered_multiset() | |
25 | { | |
26 | typedef std::unordered_set<int> int_set; | |
27 | typedef std::unordered_multiset<int> int_multiset; | |
28 | int_set const data = build_unordered_set(); | |
29 | return int_multiset(data.begin(), data.end()); | |
30 | } | |
31 | ||
32 | std::vector<int> const init_vector() | |
33 | { | |
34 | typedef std::vector<int> int_vector; | |
35 | int const data[] = { -4, -3, -2, -1, 0 }; | |
36 | int_vector::size_type const data_size = sizeof(data) / sizeof(data[0]); | |
37 | return int_vector(data, data + data_size); | |
38 | } | |
39 | ||
40 | std::vector<int> const build_vector() | |
41 | { | |
42 | typedef std::vector<int> int_vector; | |
43 | static int_vector data = init_vector(); | |
44 | int_vector::size_type const size = data.size(); | |
45 | int_vector::iterator it = data.begin(); | |
46 | int_vector::iterator const end = data.end(); | |
47 | for (; it != end; ++it) | |
48 | *it += size; | |
49 | return data; | |
50 | } | |
51 | ||
52 | int | |
53 | main() | |
54 | { | |
55 | BOOST_STATIC_ASSERT((!phx::stl::has_mapped_type<std::unordered_multiset<int> >::value)); | |
56 | BOOST_STATIC_ASSERT((phx::stl::has_key_type<std::unordered_multiset<int> >::value)); | |
57 | ||
58 | std::unordered_multiset<int> const data = build_unordered_multiset(); | |
59 | test_begin(data); | |
60 | test_clear(data); | |
61 | test_empty(data); | |
62 | test_end(data); | |
63 | test_set_erase(data); | |
64 | test_get_allocator(data); | |
65 | return boost::report_errors(); | |
66 | } | |
67 | ||
68 | ||
69 | ||
70 |