Skip to content

Commit 58accf4

Browse files
committed
Move find tests to their own file. Use array instead of empty_range for those tests.
1 parent e739f66 commit 58accf4

File tree

3 files changed

+54
-36
lines changed

3 files changed

+54
-36
lines changed

source/containers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ target_sources(containers_test PRIVATE
232232
test/algorithms/copy_or_relocate_from.cpp
233233
test/algorithms/erase.cpp
234234
test/algorithms/filter.cpp
235+
test/algorithms/find.cpp
235236
test/algorithms/join.cpp
236237
test/algorithms/keyed_binary_search.cpp
237238
test/algorithms/set.cpp

source/containers/algorithms/find.cpp

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,16 @@
55

66
module;
77

8-
#include <bounded/assert.hpp>
9-
108
#include <operators/forward.hpp>
119

1210
export module containers.algorithms.find;
1311

1412
import containers.begin_end;
1513
import containers.bidirectional_iterator;
1614
import containers.bidirectional_range;
17-
import containers.c_array;
18-
import containers.empty_range;
1915
import containers.iterator;
2016
import containers.range;
2117
import containers.sentinel_for;
22-
import containers.size;
2318

2419
import bounded;
2520
import std_module;
@@ -123,34 +118,3 @@ export constexpr auto find_last(bidirectional_range auto && range, auto const &
123118
}
124119

125120
} // namespace containers
126-
127-
template<std::size_t size>
128-
constexpr auto test(auto const index, containers::c_array<int, size> && a) -> bool {
129-
auto it = containers::find(a, 5);
130-
BOUNDED_ASSERT(index == containers::size(a) or *it == 5);
131-
return it - containers::begin(a) == index;
132-
}
133-
134-
static_assert(containers::find(containers::empty_range<int>(), 5) == containers::empty_range<int>::end());
135-
static_assert(test(1_bi, {0}));
136-
static_assert(test(0_bi, {5}));
137-
static_assert(test(2_bi, {0, 0}));
138-
static_assert(test(1_bi, {0, 5}));
139-
static_assert(test(0_bi, {5, 0}));
140-
static_assert(test(0_bi, {5, 5}));
141-
142-
143-
template<std::size_t size>
144-
constexpr auto test_backward(auto const index, containers::c_array<int, size> && a) -> bool {
145-
auto it = containers::find_last(a, 5);
146-
BOUNDED_ASSERT(index == containers::size(a) or *it == 5);
147-
return it - containers::begin(a) == index;
148-
}
149-
150-
static_assert(containers::find_last(containers::empty_range<int>(), 5) == containers::empty_range<int>::end());
151-
static_assert(test_backward(1_bi, {0}));
152-
static_assert(test_backward(0_bi, {5}));
153-
static_assert(test_backward(2_bi, {0, 0}));
154-
static_assert(test_backward(1_bi, {0, 5}));
155-
static_assert(test_backward(0_bi, {5, 0}));
156-
static_assert(test_backward(1_bi, {5, 5}));
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Copyright David Stone 2024.
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+
module;
7+
8+
#include <bounded/assert.hpp>
9+
10+
export module containers.test.algorithms.find;
11+
12+
import containers.algorithms.find;
13+
import containers.array;
14+
import containers.begin_end;
15+
import containers.c_array;
16+
import containers.size;
17+
18+
import bounded;
19+
import std_module;
20+
21+
using namespace bounded::literal;
22+
23+
template<std::size_t size>
24+
constexpr auto test(auto const index, containers::c_array<int, size> && a) -> bool {
25+
auto it = containers::find(a, 5);
26+
BOUNDED_ASSERT(index == containers::size(a) or *it == 5);
27+
return it - containers::begin(a) == index;
28+
}
29+
30+
constexpr auto empty = containers::array<int, 0_bi>();
31+
static_assert(containers::find(empty, 5) == containers::end(empty));
32+
static_assert(test(1_bi, {0}));
33+
static_assert(test(0_bi, {5}));
34+
static_assert(test(2_bi, {0, 0}));
35+
static_assert(test(1_bi, {0, 5}));
36+
static_assert(test(0_bi, {5, 0}));
37+
static_assert(test(0_bi, {5, 5}));
38+
39+
40+
template<std::size_t size>
41+
constexpr auto test_backward(auto const index, containers::c_array<int, size> && a) -> bool {
42+
auto it = containers::find_last(a, 5);
43+
BOUNDED_ASSERT(index == containers::size(a) or *it == 5);
44+
return it - containers::begin(a) == index;
45+
}
46+
47+
static_assert(containers::find_last(empty, 5) == containers::end(empty));
48+
static_assert(test_backward(1_bi, {0}));
49+
static_assert(test_backward(0_bi, {5}));
50+
static_assert(test_backward(2_bi, {0, 0}));
51+
static_assert(test_backward(1_bi, {0, 5}));
52+
static_assert(test_backward(0_bi, {5, 0}));
53+
static_assert(test_backward(1_bi, {5, 5}));

0 commit comments

Comments
 (0)