@@ -11,7 +11,6 @@ export module containers.algorithms.partition;
11
11
12
12
import containers.algorithms.advance;
13
13
import containers.algorithms.find;
14
- import containers.array;
15
14
import containers.begin_end;
16
15
import containers.bidirectional_iterator;
17
16
import containers.iterator;
@@ -20,7 +19,6 @@ import containers.range;
20
19
import containers.range_size_t ;
21
20
import containers.sentinel_for;
22
21
import containers.size;
23
- import containers.static_vector;
24
22
25
23
import bounded;
26
24
import numeric_traits;
@@ -137,275 +135,3 @@ struct iterator_partition_t {
137
135
export constexpr auto iterator_partition = iterator_partition_t ();
138
136
139
137
} // 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