Skip to content

Commit 2c27eb5

Browse files
committed
Move associative_container tests into their own file
1 parent aca4f18 commit 2c27eb5

File tree

3 files changed

+50
-39
lines changed

3 files changed

+50
-39
lines changed

source/containers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ target_sources(containers_test PRIVATE
244244
test/array.cpp
245245
test/assign.cpp
246246
test/assign_to_empty.cpp
247+
test/associative_container.cpp
247248
test/back.cpp
248249
test/bidirectional_linked_list.cpp
249250
test/clear.cpp

source/containers/associative_container.cpp

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,9 @@
55

66
export module containers.associative_container;
77

8-
import containers.array;
9-
import containers.c_array;
108
import containers.forward_range;
119
import containers.is_container;
12-
import containers.string;
13-
import containers.vector;
1410

15-
import bounded;
1611
import std_module;
1712

1813
namespace containers {
@@ -29,37 +24,3 @@ export template<typename T>
2924
concept associative_container = associative_range<T> and is_container<T>;
3025

3126
} // namespace containers
32-
33-
namespace {
34-
35-
using namespace bounded::literal;
36-
37-
template<typename... Ts>
38-
constexpr auto all_qualifications_are_associative_helper = (... and containers::associative_range<Ts>);
39-
40-
template<typename T>
41-
constexpr auto all_qualifications_are_associative = all_qualifications_are_associative_helper<T, T const, T &, T const &, T &&>;
42-
43-
template<typename... Ts>
44-
constexpr auto no_qualifications_are_associative_helper = (... and !containers::associative_range<Ts>);
45-
46-
template<typename T>
47-
constexpr auto no_qualifications_are_associative = no_qualifications_are_associative_helper<T, T const, T &, T const &, T &&>;
48-
49-
static_assert(no_qualifications_are_associative<int>);
50-
static_assert(no_qualifications_are_associative<int *>);
51-
52-
static_assert(no_qualifications_are_associative<containers::c_array<int, 5>>);
53-
54-
static_assert(no_qualifications_are_associative<containers::array<int, 5_bi>>);
55-
static_assert(no_qualifications_are_associative<containers::array<int, 0_bi>>);
56-
static_assert(no_qualifications_are_associative<containers::vector<int>>);
57-
static_assert(no_qualifications_are_associative<containers::string>);
58-
59-
static_assert(no_qualifications_are_associative<std::array<int, 5>>);
60-
static_assert(no_qualifications_are_associative<std::array<int, 0>>);
61-
static_assert(no_qualifications_are_associative<std::vector<int>>);
62-
static_assert(all_qualifications_are_associative<std::map<int, int>>);
63-
static_assert(all_qualifications_are_associative<std::unordered_map<int, int>>);
64-
65-
} // namespace
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// Copyright David Stone 2020.
2+
// Distributed under the Boost Software License, Version 1.0.
3+
// (See accompanying file LICENSE_1_0.txt or copy at
4+
// http://www.boost.org/LICENSE_1_0.txt)
5+
6+
export module containers.test.associative_container;
7+
8+
import containers.array;
9+
import containers.associative_container;
10+
import containers.c_array;
11+
import containers.string;
12+
import containers.vector;
13+
14+
import bounded;
15+
import std_module;
16+
17+
namespace {
18+
19+
using namespace bounded::literal;
20+
21+
template<typename... Ts>
22+
constexpr auto all_qualifications_are_associative_helper = (... and containers::associative_range<Ts>);
23+
24+
template<typename T>
25+
constexpr auto all_qualifications_are_associative = all_qualifications_are_associative_helper<T, T const, T &, T const &, T &&>;
26+
27+
template<typename... Ts>
28+
constexpr auto no_qualifications_are_associative_helper = (... and !containers::associative_range<Ts>);
29+
30+
template<typename T>
31+
constexpr auto no_qualifications_are_associative = no_qualifications_are_associative_helper<T, T const, T &, T const &, T &&>;
32+
33+
static_assert(no_qualifications_are_associative<int>);
34+
static_assert(no_qualifications_are_associative<int *>);
35+
36+
static_assert(no_qualifications_are_associative<containers::c_array<int, 5>>);
37+
38+
static_assert(no_qualifications_are_associative<containers::array<int, 5_bi>>);
39+
static_assert(no_qualifications_are_associative<containers::array<int, 0_bi>>);
40+
static_assert(no_qualifications_are_associative<containers::vector<int>>);
41+
static_assert(no_qualifications_are_associative<containers::string>);
42+
43+
static_assert(no_qualifications_are_associative<std::array<int, 5>>);
44+
static_assert(no_qualifications_are_associative<std::array<int, 0>>);
45+
static_assert(no_qualifications_are_associative<std::vector<int>>);
46+
static_assert(all_qualifications_are_associative<std::map<int, int>>);
47+
static_assert(all_qualifications_are_associative<std::unordered_map<int, int>>);
48+
49+
} // namespace

0 commit comments

Comments
 (0)