Skip to content

Commit aca4f18

Browse files
committed
Move partition tests into their own file
1 parent a258537 commit aca4f18

File tree

3 files changed

+295
-277
lines changed

3 files changed

+295
-277
lines changed

source/containers/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ target_sources(containers_test PRIVATE
236236
test/algorithms/join.cpp
237237
test/algorithms/join_with.cpp
238238
test/algorithms/keyed_binary_search.cpp
239+
test/algorithms/partition.cpp
239240
test/algorithms/set.cpp
240241
test/algorithms/split.cpp
241242
test/algorithms/zip.cpp
@@ -316,7 +317,6 @@ add_executable(ska_sort_benchmark
316317
test/sort/ska_sort_benchmark.cpp
317318
)
318319
target_link_libraries(ska_sort_benchmark PRIVATE
319-
bounded
320320
benchmark_main
321321
containers
322322
strict_defaults
@@ -326,7 +326,6 @@ add_executable(sort_benchmark
326326
test/sort/sort_benchmark.cpp
327327
)
328328
target_link_libraries(sort_benchmark PRIVATE
329-
bounded
330329
benchmark_main
331330
containers
332331
strict_defaults
@@ -336,7 +335,6 @@ add_executable(vector_benchmark
336335
test/vector_benchmark.cpp
337336
)
338337
target_link_libraries(vector_benchmark PRIVATE
339-
bounded
340338
benchmark_main
341339
containers
342340
strict_defaults

source/containers/algorithms/partition.cpp

Lines changed: 0 additions & 274 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export module containers.algorithms.partition;
1111

1212
import containers.algorithms.advance;
1313
import containers.algorithms.find;
14-
import containers.array;
1514
import containers.begin_end;
1615
import containers.bidirectional_iterator;
1716
import containers.iterator;
@@ -20,7 +19,6 @@ import containers.range;
2019
import containers.range_size_t;
2120
import containers.sentinel_for;
2221
import containers.size;
23-
import containers.static_vector;
2422

2523
import bounded;
2624
import numeric_traits;
@@ -137,275 +135,3 @@ struct iterator_partition_t {
137135
export constexpr auto iterator_partition = iterator_partition_t();
138136

139137
} // namespace containers
140-
141-
constexpr auto predicate = [](bool const value) { return value; };
142-
143-
static_assert(containers::is_partitioned(containers::static_vector<bool, 1_bi>{}, predicate));
144-
145-
static_assert(containers::is_partitioned(containers::array{false}, predicate));
146-
static_assert(containers::is_partitioned(containers::array{true}, predicate));
147-
148-
static_assert(containers::is_partitioned(containers::array{false, false}, predicate));
149-
static_assert(!containers::is_partitioned(containers::array{false, true}, predicate));
150-
static_assert(containers::is_partitioned(containers::array{true, false}, predicate));
151-
static_assert(containers::is_partitioned(containers::array{true, true}, predicate));
152-
153-
static_assert(containers::is_partitioned(containers::array{false, false, false}, predicate));
154-
static_assert(!containers::is_partitioned(containers::array{false, false, true}, predicate));
155-
static_assert(!containers::is_partitioned(containers::array{false, true, false}, predicate));
156-
static_assert(!containers::is_partitioned(containers::array{false, true, true}, predicate));
157-
static_assert(containers::is_partitioned(containers::array{true, false, false}, predicate));
158-
static_assert(!containers::is_partitioned(containers::array{true, false, true}, predicate));
159-
static_assert(containers::is_partitioned(containers::array{true, true, false}, predicate));
160-
static_assert(containers::is_partitioned(containers::array{true, true, true}, predicate));
161-
162-
constexpr auto test_partition_point(auto const & range, auto const expected_offset) {
163-
BOUNDED_ASSERT(containers::is_partitioned(range, predicate));
164-
return containers::partition_point(range, predicate) == containers::begin(range) + expected_offset;
165-
}
166-
167-
static_assert(test_partition_point(
168-
containers::static_vector<bool, 1_bi>{},
169-
0_bi
170-
));
171-
172-
static_assert(test_partition_point(
173-
containers::array{false},
174-
0_bi
175-
));
176-
static_assert(test_partition_point(
177-
containers::array{true},
178-
1_bi
179-
));
180-
181-
static_assert(test_partition_point(
182-
containers::array{false, false},
183-
0_bi
184-
));
185-
static_assert(test_partition_point(
186-
containers::array{true, false},
187-
1_bi
188-
));
189-
static_assert(test_partition_point(
190-
containers::array{true, true},
191-
2_bi
192-
));
193-
194-
static_assert(test_partition_point(
195-
containers::array{false, false, false},
196-
0_bi
197-
));
198-
static_assert(test_partition_point(
199-
containers::array{true, false, false},
200-
1_bi
201-
));
202-
static_assert(test_partition_point(
203-
containers::array{true, true, false},
204-
2_bi
205-
));
206-
static_assert(test_partition_point(
207-
containers::array{true, true, true},
208-
3_bi
209-
));
210-
211-
constexpr auto test_partition(auto && input, auto const & expected) -> bool {
212-
BOUNDED_ASSERT(containers::is_partitioned(expected, predicate));
213-
auto const it = containers::partition(input, predicate);
214-
BOUNDED_ASSERT(input == expected);
215-
BOUNDED_ASSERT(it == containers::partition_point(input, predicate));
216-
return true;
217-
}
218-
219-
static_assert(test_partition(
220-
containers::static_vector<bool, 1_bi>{},
221-
containers::static_vector<bool, 1_bi>{}
222-
));
223-
224-
static_assert(test_partition(
225-
containers::array{false},
226-
containers::array{false}
227-
));
228-
static_assert(test_partition(
229-
containers::array{true},
230-
containers::array{true}
231-
));
232-
233-
static_assert(test_partition(
234-
containers::array{false, false},
235-
containers::array{false, false}
236-
));
237-
static_assert(test_partition(
238-
containers::array{false, true},
239-
containers::array{true, false}
240-
));
241-
static_assert(test_partition(
242-
containers::array{true, false},
243-
containers::array{true, false}
244-
));
245-
static_assert(test_partition(
246-
containers::array{true, true},
247-
containers::array{true, true}
248-
));
249-
250-
static_assert(test_partition(
251-
containers::array{false, false, false},
252-
containers::array{false, false, false}
253-
));
254-
static_assert(test_partition(
255-
containers::array{false, false, true},
256-
containers::array{true, false, false}
257-
));
258-
static_assert(test_partition(
259-
containers::array{false, true, false},
260-
containers::array{true, false, false}
261-
));
262-
static_assert(test_partition(
263-
containers::array{true, false, false},
264-
containers::array{true, false, false}
265-
));
266-
static_assert(test_partition(
267-
containers::array{false, true, true},
268-
containers::array{true, true, false}
269-
));
270-
static_assert(test_partition(
271-
containers::array{true, false, true},
272-
containers::array{true, true, false}
273-
));
274-
static_assert(test_partition(
275-
containers::array{true, true, false},
276-
containers::array{true, true, false}
277-
));
278-
static_assert(test_partition(
279-
containers::array{true, true, true},
280-
containers::array{true, true, true}
281-
));
282-
283-
constexpr auto test_iterator_partition(bounded::bounded_integer auto const offset, containers::range auto && input, containers::range auto const & expected) -> bool {
284-
BOUNDED_ASSERT(containers::is_partitioned(expected, predicate));
285-
auto const first = containers::begin(input);
286-
auto const it = containers::iterator_partition(first, first + offset, containers::end(input), std::greater());
287-
BOUNDED_ASSERT(input == expected);
288-
BOUNDED_ASSERT(it == containers::partition_point(input, predicate));
289-
return true;
290-
}
291-
292-
static_assert(test_iterator_partition(
293-
0_bi,
294-
containers::static_vector<bool, 1_bi>{},
295-
containers::static_vector<bool, 1_bi>{}
296-
));
297-
298-
static_assert(test_iterator_partition(
299-
0_bi,
300-
containers::array{false},
301-
containers::array{false}
302-
));
303-
304-
static_assert(test_iterator_partition(
305-
0_bi,
306-
containers::array{false, false},
307-
containers::array{false, false}
308-
));
309-
static_assert(test_iterator_partition(
310-
1_bi,
311-
containers::array{false, false},
312-
containers::array{false, false}
313-
));
314-
static_assert(test_iterator_partition(
315-
0_bi,
316-
containers::array{false, true},
317-
containers::array{true, false}
318-
));
319-
static_assert(test_iterator_partition(
320-
1_bi,
321-
containers::array{true, false},
322-
containers::array{true, false}
323-
));
324-
325-
static_assert(test_iterator_partition(
326-
0_bi,
327-
containers::array{false, false, false},
328-
containers::array{false, false, false}
329-
));
330-
static_assert(test_iterator_partition(
331-
1_bi,
332-
containers::array{false, false, false},
333-
containers::array{false, false, false}
334-
));
335-
static_assert(test_iterator_partition(
336-
2_bi,
337-
containers::array{false, false, false},
338-
containers::array{false, false, false}
339-
));
340-
static_assert(test_iterator_partition(
341-
0_bi,
342-
containers::array{false, false, true},
343-
containers::array{true, false, false}
344-
));
345-
static_assert(test_iterator_partition(
346-
1_bi,
347-
containers::array{false, false, true},
348-
containers::array{true, false, false}
349-
));
350-
static_assert(test_iterator_partition(
351-
0_bi,
352-
containers::array{false, true, false},
353-
containers::array{true, false, false}
354-
));
355-
static_assert(test_iterator_partition(
356-
2_bi,
357-
containers::array{false, true, false},
358-
containers::array{true, false, false}
359-
));
360-
static_assert(test_iterator_partition(
361-
1_bi,
362-
containers::array{true, false, false},
363-
containers::array{true, false, false}
364-
));
365-
static_assert(test_iterator_partition(
366-
2_bi,
367-
containers::array{true, false, false},
368-
containers::array{true, false, false}
369-
));
370-
static_assert(test_iterator_partition(
371-
0_bi,
372-
containers::array{false, true, true},
373-
containers::array{true, true, false}
374-
));
375-
static_assert(test_iterator_partition(
376-
1_bi,
377-
containers::array{true, false, true},
378-
containers::array{true, true, false}
379-
));
380-
static_assert(test_iterator_partition(
381-
2_bi,
382-
containers::array{true, true, false},
383-
containers::array{true, true, false}
384-
));
385-
386-
static_assert(test_iterator_partition(
387-
0_bi,
388-
containers::array{false, true, false, true, false, true, false, true, false, true},
389-
containers::array{true, true, true, true, true, false, false, false, false, false}
390-
));
391-
static_assert(test_iterator_partition(
392-
2_bi,
393-
containers::array{false, true, false, true, false, true, false, true, false, true},
394-
containers::array{true, true, true, true, true, false, false, false, false, false}
395-
));
396-
static_assert(test_iterator_partition(
397-
4_bi,
398-
containers::array{false, true, false, true, false, true, false, true, false, true},
399-
containers::array{true, true, true, true, true, false, false, false, false, false}
400-
));
401-
static_assert(test_iterator_partition(
402-
6_bi,
403-
containers::array{false, true, false, true, false, true, false, true, false, true},
404-
containers::array{true, true, true, true, true, false, false, false, false, false}
405-
));
406-
static_assert(test_iterator_partition(
407-
8_bi,
408-
containers::array{false, true, false, true, false, true, false, true, false, true},
409-
containers::array{true, true, true, true, true, false, false, false, false, false}
410-
));
411-

0 commit comments

Comments
 (0)