Lines Matching full:ranges
5 #include "base/ranges/algorithm.h"
14 #include "base/ranges/functional.h"
105 static_assert(ranges::all_of(array + 1, array + 6, is_non_zero), ""); in TEST()
106 static_assert(!ranges::all_of(array, is_non_zero), ""); in TEST()
110 ranges::all_of(values + 1, ranges::end(values), is_non_zero, &Int::value), in TEST()
112 static_assert(!ranges::all_of(values, is_non_zero, &Int::value), ""); in TEST()
118 static_assert(!ranges::any_of(array + 5, array + 6, is_even), ""); in TEST()
119 static_assert(ranges::any_of(array, is_even), ""); in TEST()
123 !ranges::any_of(values + 3, ranges::end(values), is_even, &Int::value), in TEST()
125 static_assert(ranges::any_of(values, is_even, &Int::value), ""); in TEST()
136 static_assert(ranges::none_of(array + 1, array + 6, is_zero), ""); in TEST()
137 static_assert(!ranges::none_of(array, is_zero), ""); in TEST()
141 ranges::none_of(values + 1, ranges::end(values), is_zero, &Int::value), in TEST()
143 static_assert(!ranges::none_of(values, is_zero, &Int::value), ""); in TEST()
150 auto result = ranges::for_each(array, array + 3, times_two); in TEST()
157 ranges::for_each(array + 3, array + 6, times_two); in TEST()
166 EXPECT_TRUE(times_two == ranges::for_each(array, times_two).fun); in TEST()
173 ranges::for_each(values, times_two, &Int::value).fun); in TEST()
183 auto result = ranges::for_each_n(array, 3, times_two); in TEST()
194 ranges::for_each_n(values, 4, times_two, &Int::value).fun); in TEST()
203 static_assert(array + 6 == ranges::find(array + 1, array + 6, 0), ""); in TEST()
204 static_assert(array == ranges::find(array, 0), ""); in TEST()
207 static_assert(values == ranges::find(values, values, 0, &Int::value), ""); in TEST()
208 static_assert(ranges::end(values) == ranges::find(values, 3, &Int::value), in TEST()
216 EXPECT_EQ(array + 5, ranges::find_if(array, array + 5, is_at_least_5)); in TEST()
217 EXPECT_EQ(array + 5, ranges::find_if(array, is_at_least_5)); in TEST()
221 ranges::find_if(values, values + 3, is_odd, &Int::value)); in TEST()
222 EXPECT_EQ(values + 3, ranges::find_if(values, is_odd, &Int::value)); in TEST()
229 EXPECT_EQ(array + 5, ranges::find_if_not(array, array + 5, is_less_than_5)); in TEST()
230 EXPECT_EQ(array + 5, ranges::find_if_not(array, is_less_than_5)); in TEST()
234 ranges::find_if_not(values, values + 3, is_even, &Int::value)); in TEST()
235 EXPECT_EQ(values + 3, ranges::find_if_not(values, is_even, &Int::value)); in TEST()
244 EXPECT_EQ(array3 + 15, ranges::find_end(array3, ranges::end(array3), array1, in TEST()
245 ranges::end(array1))); in TEST()
246 EXPECT_EQ(ranges::end(array3), ranges::find_end(array3, ranges::end(array3), in TEST()
247 array2, ranges::end(array2))); in TEST()
249 ranges::find_end(array3, ranges::end(array3), array2, array2 + 2)); in TEST()
254 EXPECT_EQ(array3 + 15, ranges::find_end(array3, ints1, ranges::equal_to{}, in TEST()
256 EXPECT_EQ(ranges::end(array3), in TEST()
257 ranges::find_end(array3, ints2, ranges::equal_to{}, identity{}, in TEST()
266 EXPECT_EQ(array3 + 1, ranges::find_first_of(array3, ranges::end(array3), in TEST()
267 array1, ranges::end(array1))); in TEST()
268 EXPECT_EQ(ranges::end(array3), in TEST()
269 ranges::find_first_of(array3, ranges::end(array3), array2, in TEST()
270 ranges::end(array2))); in TEST()
274 EXPECT_EQ(array3 + 1, ranges::find_first_of(array3, ints1, ranges::equal_to{}, in TEST()
276 EXPECT_EQ(ranges::end(array3), in TEST()
277 ranges::find_first_of(array3, ints2, ranges::equal_to{}, identity{}, in TEST()
283 static_assert(array + 2 == ranges::adjacent_find(array, ranges::end(array)), in TEST()
286 array == ranges::adjacent_find(array, ranges::end(array), ranges::less{}), in TEST()
291 ints == ranges::adjacent_find(ints, ranges::equal_to{}, &Int::value), ""); in TEST()
292 static_assert(ranges::end(ints) == in TEST()
293 ranges::adjacent_find(ints, ranges::less{}, &Int::value), in TEST()
299 EXPECT_EQ(1, ranges::count(array, array + 4, 1)); in TEST()
300 EXPECT_EQ(1, ranges::count(array, array + 4, 2)); in TEST()
301 EXPECT_EQ(1, ranges::count(array, array + 3, 3)); in TEST()
302 EXPECT_EQ(2, ranges::count(array, array + 4, 3)); in TEST()
305 EXPECT_EQ(1, ranges::count(ints, 1, &Int::value)); in TEST()
306 EXPECT_EQ(1, ranges::count(ints, 2, &Int::value)); in TEST()
307 EXPECT_EQ(2, ranges::count(ints, 3, &Int::value)); in TEST()
312 EXPECT_EQ(0, ranges::count_if(array, array + 1, is_even)); in TEST()
313 EXPECT_EQ(1, ranges::count_if(array, array + 2, is_even)); in TEST()
314 EXPECT_EQ(1, ranges::count_if(array, array + 3, is_even)); in TEST()
315 EXPECT_EQ(1, ranges::count_if(array, array + 4, is_even)); in TEST()
318 EXPECT_EQ(1, ranges::count_if(ints, is_even, &Int::value)); in TEST()
319 EXPECT_EQ(3, ranges::count_if(ints, is_odd, &Int::value)); in TEST()
327 ranges::mismatch(array1, array1 + 4, array2, array2 + 2)); in TEST()
329 ranges::mismatch(array1, array1 + 4, array3, array3 + 4)); in TEST()
332 ranges::mismatch(array1, array2)); in TEST()
334 ranges::mismatch(array1, array3)); in TEST()
341 static_assert(ranges::equal(array1, array1 + 2, array2, array2 + 2), ""); in TEST()
342 EXPECT_TRUE(ranges::equal(array1, array1 + 2, array2, array2 + 2)); in TEST()
344 static_assert(!ranges::equal(array1, array1 + 4, array2, array2 + 4), ""); in TEST()
345 EXPECT_FALSE(ranges::equal(array1, array1 + 4, array2, array2 + 4)); in TEST()
347 static_assert(!ranges::equal(array1, array1 + 2, array2, array2 + 3), ""); in TEST()
348 EXPECT_FALSE(ranges::equal(array1, array1 + 2, array2, array2 + 3)); in TEST()
353 static_assert(ranges::equal(ints, array2, lambda), ""); in TEST()
354 EXPECT_TRUE(ranges::equal(ints, array2, lambda)); in TEST()
357 ranges::equal(array2, ints, ranges::equal_to{}, identity{}, &Int::value), in TEST()
360 ranges::equal(array2, ints, ranges::equal_to{}, identity{}, &Int::value)); in TEST()
368 EXPECT_TRUE(ranges::is_permutation(array1, array1 + 4, array2, array2 + 4)); in TEST()
369 EXPECT_FALSE(ranges::is_permutation(array1, array1 + 4, array3, array3 + 4)); in TEST()
371 EXPECT_TRUE(ranges::is_permutation(array1, array2)); in TEST()
372 EXPECT_FALSE(ranges::is_permutation(array1, array3)); in TEST()
376 EXPECT_TRUE(ranges::is_permutation( in TEST()
380 ranges::is_permutation(ints1, ints2, ranges::equal_to{}, &Int::value)); in TEST()
382 EXPECT_FALSE(ranges::is_permutation(array1, ints2, ranges::equal_to{}, {}, in TEST()
384 EXPECT_TRUE(ranges::is_permutation(array3, ints2, ranges::equal_to{}, {}, in TEST()
394 ranges::search(array3, array3 + 12, array1, array1 + 4)); in TEST()
396 ranges::search(array3, array3 + 12, array2, array2 + 4)); in TEST()
398 EXPECT_EQ(array3 + 3, ranges::search(array3, array1)); in TEST()
399 EXPECT_EQ(array3 + 12, ranges::search(array3, array2)); in TEST()
404 EXPECT_EQ(ints1 + 4, ranges::search(ints1, ints2, ranges::equal_to{}, in TEST()
407 EXPECT_EQ(array3 + 3, ranges::search(array3, ints1, {}, {}, &Int::value)); in TEST()
408 EXPECT_EQ(array3 + 12, ranges::search(array3, ints2, {}, {}, &Int::value)); in TEST()
414 EXPECT_EQ(array, ranges::search_n(array, array + 6, 1, 0)); in TEST()
415 EXPECT_EQ(array + 2, ranges::search_n(array, array + 6, 1, 1)); in TEST()
416 EXPECT_EQ(array + 4, ranges::search_n(array, array + 6, 1, 2)); in TEST()
417 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 1, 3)); in TEST()
419 EXPECT_EQ(array, ranges::search_n(array, array + 6, 2, 0)); in TEST()
420 EXPECT_EQ(array + 2, ranges::search_n(array, array + 6, 2, 1)); in TEST()
421 EXPECT_EQ(array + 4, ranges::search_n(array, array + 6, 2, 2)); in TEST()
422 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 2, 3)); in TEST()
424 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 3, 0)); in TEST()
425 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 3, 1)); in TEST()
426 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 3, 2)); in TEST()
427 EXPECT_EQ(array + 6, ranges::search_n(array, array + 6, 3, 3)); in TEST()
430 EXPECT_EQ(ints, ranges::search_n(ints, 1, 0, {}, &Int::value)); in TEST()
431 EXPECT_EQ(ints + 2, ranges::search_n(ints, 1, 1, {}, &Int::value)); in TEST()
432 EXPECT_EQ(ints + 4, ranges::search_n(ints, 1, 2, {}, &Int::value)); in TEST()
433 EXPECT_EQ(ints + 6, ranges::search_n(ints, 1, 3, {}, &Int::value)); in TEST()
435 EXPECT_EQ(ints, ranges::search_n(ints, 2, 0, {}, &Int::value)); in TEST()
436 EXPECT_EQ(ints + 2, ranges::search_n(ints, 2, 1, {}, &Int::value)); in TEST()
437 EXPECT_EQ(ints + 4, ranges::search_n(ints, 2, 2, {}, &Int::value)); in TEST()
438 EXPECT_EQ(ints + 6, ranges::search_n(ints, 2, 3, {}, &Int::value)); in TEST()
440 EXPECT_EQ(ints + 6, ranges::search_n(ints, 3, 0, {}, &Int::value)); in TEST()
441 EXPECT_EQ(ints + 6, ranges::search_n(ints, 3, 1, {}, &Int::value)); in TEST()
442 EXPECT_EQ(ints + 6, ranges::search_n(ints, 3, 2, {}, &Int::value)); in TEST()
443 EXPECT_EQ(ints + 6, ranges::search_n(ints, 3, 3, {}, &Int::value)); in TEST()
451 EXPECT_EQ(output + 3, ranges::copy(input, input + 3, output)); in TEST()
455 EXPECT_EQ(output + 5, ranges::copy(input, output)); in TEST()
465 EXPECT_EQ(output + 4, ranges::copy_n(input, 4, output)); in TEST()
476 EXPECT_EQ(output + 1, ranges::copy_if(input, input + 4, output, equals_six)); in TEST()
483 ranges::copy_if(ints_in, ints_out, equals_six, &Int::value)); in TEST()
485 EXPECT_TRUE(ranges::all_of(ints_out, ints_out + 2, equals_six, &Int::value)); in TEST()
487 ranges::all_of(ints_out + 2, ints_out + 6, equals_zero, &Int::value)); in TEST()
494 EXPECT_EQ(output + 1, ranges::copy_backward(input, input + 5, output + 6)); in TEST()
500 EXPECT_EQ(ints_out, ranges::copy_backward(ints_in, ints_out + 5)); in TEST()
511 EXPECT_EQ(output + 3, ranges::move(input, input + 3, output)); in TEST()
520 EXPECT_EQ(output + 5, ranges::move(input, output)); in TEST()
521 EXPECT_TRUE(ranges::all_of(input, equals_zero)); in TEST()
522 EXPECT_TRUE(ranges::all_of(output, equals_six)); in TEST()
531 EXPECT_EQ(output + 2, ranges::move_backward(input, input + 3, output + 5)); in TEST()
540 EXPECT_EQ(output, ranges::move_backward(input, output + 5)); in TEST()
541 EXPECT_TRUE(ranges::all_of(input, equals_zero)); in TEST()
542 EXPECT_TRUE(ranges::all_of(output, equals_six)); in TEST()
550 EXPECT_EQ(ints2 + 3, ranges::swap_ranges(ints1, ints1 + 5, ints2, ints2 + 3)); in TEST()
555 EXPECT_EQ(ints2 + 3, ranges::swap_ranges(ints1, ints1 + 3, ints2, ints2 + 5)); in TEST()
560 ranges::swap_ranges(ints1 + 3, ints1 + 5, ints2 + 3, ints2 + 5)); in TEST()
564 EXPECT_EQ(ints2 + 5, ranges::swap_ranges(ints1, ints2)); in TEST()
575 ranges::transform(input + 1, input + 4, input + 1, plus_1)); in TEST()
580 ranges::transform(input + 1, input + 4, output, times_2)); in TEST()
585 ranges::transform(values, values, times_2, &Int::value)); in TEST()
593 EXPECT_EQ(output + 2, ranges::transform(input, input + 2, input + 3, in TEST()
598 ranges::transform(input, input, output, std::multiplies<>{})); in TEST()
603 ranges::transform(values, values, values, std::minus<>{}, in TEST()
611 EXPECT_EQ(input + 2, ranges::replace(input, input + 2, 0, 2)); in TEST()
614 EXPECT_EQ(input + 5, ranges::replace(input, 0, 3)); in TEST()
621 EXPECT_EQ(input + 3, ranges::replace_if(input, input + 3, is_even, 9)); in TEST()
624 EXPECT_EQ(input + 5, ranges::replace_if(input, is_odd, 0)); in TEST()
628 EXPECT_EQ(ints + 5, ranges::replace_if(ints, is_odd, 3, &Int::value)); in TEST()
636 EXPECT_EQ(input + 2, ranges::replace_copy(input, input + 2, output, 0, 2)); in TEST()
640 EXPECT_EQ(input + 5, ranges::replace_copy(input, output, 0, 3)); in TEST()
649 EXPECT_EQ(output + 3, ranges::replace_copy_if(input, input + 3, output, in TEST()
655 ranges::replace_copy_if(input, output, is_odd, 0, &Int::value)); in TEST()
662 EXPECT_EQ(input + 3, ranges::fill(input, input + 3, 0)); in TEST()
665 EXPECT_EQ(input + 5, ranges::fill(input, 1)); in TEST()
672 EXPECT_EQ(input + 5, ranges::fill_n(input, 5, 5)); in TEST()
675 EXPECT_EQ(input + 3, ranges::fill_n(input, 3, 3)); in TEST()
683 EXPECT_EQ(input + 3, ranges::generate(input, input + 3, gen)); in TEST()
686 EXPECT_EQ(input + 5, ranges::generate(input, gen)); in TEST()
694 EXPECT_EQ(input + 4, ranges::generate_n(input, 4, gen)); in TEST()
701 EXPECT_EQ(input + 3, ranges::remove(input + 1, input + 5, 1)); in TEST()
707 EXPECT_EQ(ints + 2, ranges::remove(ints, 2, &Int::value)); in TEST()
715 EXPECT_EQ(input + 2, ranges::remove_if(input, input + 4, is_even)); in TEST()
721 EXPECT_EQ(ints + 2, ranges::remove_if(ints, is_even, &Int::value)); in TEST()
730 EXPECT_EQ(output + 1, ranges::remove_copy(input, input + 2, output, 0)); in TEST()
734 EXPECT_EQ(output + 4, ranges::remove_copy(input, output, 4)); in TEST()
743 EXPECT_EQ(output + 2, ranges::remove_copy_if(input, input + 4, output, in TEST()
749 ranges::remove_copy_if(input, output, is_odd, &Int::value)); in TEST()
757 EXPECT_EQ(input + 2, ranges::unique(input, input + 3)); in TEST()
764 EXPECT_EQ(ints + 3, ranges::unique(ints, {}, &Int::value)); in TEST()
775 ranges::unique_copy(input, input + 4, output, {}, &Int::value)); in TEST()
779 EXPECT_EQ(output + 3, ranges::unique_copy(input, output, {}, &Int::value)); in TEST()
787 EXPECT_EQ(input + 4, ranges::reverse(input + 2, input + 4)); in TEST()
790 EXPECT_EQ(input + 5, ranges::reverse(input)); in TEST()
798 EXPECT_EQ(output + 2, ranges::reverse_copy(input + 2, input + 4, output)); in TEST()
802 EXPECT_EQ(output + 5, ranges::reverse_copy(input, output)); in TEST()
810 EXPECT_EQ(input + 3, ranges::rotate(input + 2, input + 3, input + 4)); in TEST()
813 EXPECT_EQ(input + 3, ranges::rotate(input, input + 2)); in TEST()
822 ranges::rotate_copy(input + 2, input + 3, input + 4, output)); in TEST()
826 EXPECT_EQ(output + 5, ranges::rotate_copy(input, input + 3, output)); in TEST()
836 EXPECT_EQ(input + 4, ranges::shuffle(input + 2, input + 4, in TEST()
843 EXPECT_EQ(input + 5, ranges::shuffle(input, std::default_random_engine())); in TEST()
849 EXPECT_EQ(input + 4, ranges::sort(input, input + 4)); in TEST()
852 EXPECT_EQ(input + 5, ranges::sort(input, input + 5, ranges::greater())); in TEST()
856 EXPECT_EQ(ints + 5, ranges::sort(ints, {}, &Int::value)); in TEST()
859 EXPECT_EQ(ints + 5, ranges::sort(ints, ranges::greater(), &Int::value)); in TEST()
869 EXPECT_EQ(input + 4, ranges::stable_sort(input, input + 4, {}, idiv2)); in TEST()
873 ranges::stable_sort(input, input + 5, ranges::greater())); in TEST()
878 EXPECT_EQ(ints + 5, ranges::stable_sort(ints, {}, Idiv2)); in TEST()
881 EXPECT_EQ(ints + 5, ranges::stable_sort(ints, ranges::greater(), Idiv2)); in TEST()
887 EXPECT_EQ(input + 4, ranges::partial_sort(input, input + 2, input + 4)); in TEST()
891 EXPECT_EQ(input + 5, ranges::partial_sort(input, input + 3, input + 5, in TEST()
892 ranges::greater())); in TEST()
898 EXPECT_EQ(ints + 5, ranges::partial_sort(ints, ints + 4, {}, &Int::value)); in TEST()
904 EXPECT_EQ(ints + 5, ranges::partial_sort(ints, ints + 3, ranges::greater(), in TEST()
915 ranges::partial_sort_copy(input, input + 2, output, output + 4)); in TEST()
920 ranges::partial_sort_copy(input, input + 3, output + 3, output + 5, in TEST()
921 ranges::greater())); in TEST()
927 EXPECT_EQ(outs + 3, ranges::partial_sort_copy(ints, outs, {}, &Int::value, in TEST()
932 EXPECT_EQ(outs + 3, ranges::partial_sort_copy(ints, outs, ranges::greater(), in TEST()
938 ranges::partial_sort_copy(input, outs, {}, {}, &Int::value)); in TEST()
943 static_assert(ranges::is_sorted(input + 1, input + 3), ""); in TEST()
944 static_assert(!ranges::is_sorted(input + 1, input + 4), ""); in TEST()
945 static_assert(ranges::is_sorted(input, input + 2, ranges::greater()), ""); in TEST()
948 static_assert(ranges::is_sorted(ints, {}, &Int::value), ""); in TEST()
949 static_assert(!ranges::is_sorted(ints, ranges::greater(), &Int::value), ""); in TEST()
954 static_assert(input + 3 == ranges::is_sorted_until(input + 1, input + 3), ""); in TEST()
955 static_assert(input + 3 == ranges::is_sorted_until(input + 1, input + 4), ""); in TEST()
957 input + 2 == ranges::is_sorted_until(input, input + 2, ranges::greater()), in TEST()
961 static_assert(ints + 5 == ranges::is_sorted_until(ints, {}, &Int::value), ""); in TEST()
963 ints + 1 == ranges::is_sorted_until(ints, ranges::greater(), &Int::value), in TEST()
969 EXPECT_EQ(input + 5, ranges::nth_element(input, input + 2, input + 5)); in TEST()
973 EXPECT_EQ(ints + 5, ranges::nth_element(ints, ints + 2, ranges::greater(), in TEST()
981 EXPECT_EQ(array, ranges::lower_bound(array, array + 6, -1)); in TEST()
982 EXPECT_EQ(array, ranges::lower_bound(array, array + 6, 0)); in TEST()
983 EXPECT_EQ(array + 2, ranges::lower_bound(array, array + 6, 1)); in TEST()
984 EXPECT_EQ(array + 4, ranges::lower_bound(array, array + 6, 2)); in TEST()
985 EXPECT_EQ(array + 6, ranges::lower_bound(array, array + 6, 3)); in TEST()
989 EXPECT_EQ(ints, ranges::lower_bound(ints, -1, {}, &Int::value)); in TEST()
990 EXPECT_EQ(ints, ranges::lower_bound(ints, 0, {}, &Int::value)); in TEST()
991 EXPECT_EQ(ints + 2, ranges::lower_bound(ints, 1, {}, &Int::value)); in TEST()
992 EXPECT_EQ(ints + 4, ranges::lower_bound(ints, 2, {}, &Int::value)); in TEST()
993 EXPECT_EQ(ints + 6, ranges::lower_bound(ints, 3, {}, &Int::value)); in TEST()
996 EXPECT_EQ(ints, ranges::lower_bound(ints, 3, ranges::greater{}, proj)); in TEST()
997 EXPECT_EQ(ints, ranges::lower_bound(ints, 2, ranges::greater{}, proj)); in TEST()
998 EXPECT_EQ(ints + 2, ranges::lower_bound(ints, 1, ranges::greater{}, proj)); in TEST()
999 EXPECT_EQ(ints + 4, ranges::lower_bound(ints, 0, ranges::greater{}, proj)); in TEST()
1000 EXPECT_EQ(ints + 6, ranges::lower_bound(ints, -1, ranges::greater{}, proj)); in TEST()
1006 EXPECT_EQ(array, ranges::upper_bound(array, array + 6, -1)); in TEST()
1007 EXPECT_EQ(array + 2, ranges::upper_bound(array, array + 6, 0)); in TEST()
1008 EXPECT_EQ(array + 4, ranges::upper_bound(array, array + 6, 1)); in TEST()
1009 EXPECT_EQ(array + 6, ranges::upper_bound(array, array + 6, 2)); in TEST()
1010 EXPECT_EQ(array + 6, ranges::upper_bound(array, array + 6, 3)); in TEST()
1014 EXPECT_EQ(ints, ranges::upper_bound(ints, -1, {}, &Int::value)); in TEST()
1015 EXPECT_EQ(ints + 2, ranges::upper_bound(ints, 0, {}, &Int::value)); in TEST()
1016 EXPECT_EQ(ints + 4, ranges::upper_bound(ints, 1, {}, &Int::value)); in TEST()
1017 EXPECT_EQ(ints + 6, ranges::upper_bound(ints, 2, {}, &Int::value)); in TEST()
1018 EXPECT_EQ(ints + 6, ranges::upper_bound(ints, 3, {}, &Int::value)); in TEST()
1021 EXPECT_EQ(ints, ranges::upper_bound(ints, 3, ranges::greater{}, proj)); in TEST()
1022 EXPECT_EQ(ints + 2, ranges::upper_bound(ints, 2, ranges::greater{}, proj)); in TEST()
1023 EXPECT_EQ(ints + 4, ranges::upper_bound(ints, 1, ranges::greater{}, proj)); in TEST()
1024 EXPECT_EQ(ints + 6, ranges::upper_bound(ints, 0, ranges::greater{}, proj)); in TEST()
1025 EXPECT_EQ(ints + 6, ranges::upper_bound(ints, -1, ranges::greater{}, proj)); in TEST()
1031 EXPECT_THAT(ranges::equal_range(array, array + 6, -1), Pair(array, array)); in TEST()
1032 EXPECT_THAT(ranges::equal_range(array, array + 6, 0), Pair(array, array + 2)); in TEST()
1033 EXPECT_THAT(ranges::equal_range(array, array + 6, 1), in TEST()
1035 EXPECT_THAT(ranges::equal_range(array, array + 6, 2), in TEST()
1037 EXPECT_THAT(ranges::equal_range(array, array + 6, 3), in TEST()
1042 EXPECT_THAT(ranges::equal_range(ints, -1, {}, &Int::value), Pair(ints, ints)); in TEST()
1043 EXPECT_THAT(ranges::equal_range(ints, 0, {}, &Int::value), in TEST()
1045 EXPECT_THAT(ranges::equal_range(ints, 1, {}, &Int::value), in TEST()
1047 EXPECT_THAT(ranges::equal_range(ints, 2, {}, &Int::value), in TEST()
1049 EXPECT_THAT(ranges::equal_range(ints, 3, {}, &Int::value), in TEST()
1053 EXPECT_THAT(ranges::equal_range(ints, 3, ranges::greater{}, proj), in TEST()
1055 EXPECT_THAT(ranges::equal_range(ints, 2, ranges::greater{}, proj), in TEST()
1057 EXPECT_THAT(ranges::equal_range(ints, 1, ranges::greater{}, proj), in TEST()
1059 EXPECT_THAT(ranges::equal_range(ints, 0, ranges::greater{}, proj), in TEST()
1061 EXPECT_THAT(ranges::equal_range(ints, -1, ranges::greater{}, proj), in TEST()
1068 EXPECT_FALSE(ranges::binary_search(array, array + 6, -1)); in TEST()
1069 EXPECT_TRUE(ranges::binary_search(array, array + 6, 0)); in TEST()
1070 EXPECT_TRUE(ranges::binary_search(array, array + 6, 1)); in TEST()
1071 EXPECT_TRUE(ranges::binary_search(array, array + 6, 2)); in TEST()
1072 EXPECT_FALSE(ranges::binary_search(array, array + 6, 3)); in TEST()
1076 EXPECT_FALSE(ranges::binary_search(ints, -1, {}, &Int::value)); in TEST()
1077 EXPECT_TRUE(ranges::binary_search(ints, 0, {}, &Int::value)); in TEST()
1078 EXPECT_TRUE(ranges::binary_search(ints, 1, {}, &Int::value)); in TEST()
1079 EXPECT_TRUE(ranges::binary_search(ints, 2, {}, &Int::value)); in TEST()
1080 EXPECT_FALSE(ranges::binary_search(ints, 3, {}, &Int::value)); in TEST()
1083 EXPECT_FALSE(ranges::binary_search(ints, 3, ranges::greater{}, proj)); in TEST()
1084 EXPECT_TRUE(ranges::binary_search(ints, 2, ranges::greater{}, proj)); in TEST()
1085 EXPECT_TRUE(ranges::binary_search(ints, 1, ranges::greater{}, proj)); in TEST()
1086 EXPECT_TRUE(ranges::binary_search(ints, 0, ranges::greater{}, proj)); in TEST()
1087 EXPECT_FALSE(ranges::binary_search(ints, -1, ranges::greater{}, proj)); in TEST()
1092 EXPECT_TRUE(ranges::is_partitioned(input, input, is_odd)); in TEST()
1093 EXPECT_TRUE(ranges::is_partitioned(input, input + 6, is_odd)); in TEST()
1094 EXPECT_TRUE(ranges::is_partitioned(input, input, is_even)); in TEST()
1095 EXPECT_FALSE(ranges::is_partitioned(input, input + 6, is_even)); in TEST()
1099 EXPECT_TRUE(ranges::is_partitioned(ints, lt_2, &Int::value)); in TEST()
1104 EXPECT_EQ(input + 3, ranges::partition(input, input + 5, is_even)); in TEST()
1112 EXPECT_EQ(ints + 3, ranges::partition(ints, is_odd, &Int::value)); in TEST()
1122 EXPECT_EQ(input + 3, ranges::stable_partition(input, input + 5, is_even)); in TEST()
1126 EXPECT_EQ(ints + 3, ranges::stable_partition(ints, is_odd, &Int::value)); in TEST()
1134 EXPECT_THAT(ranges::partition_copy(input, input + 5, evens, odds, is_even), in TEST()
1144 ranges::partition_copy(ints, odd_ints, even_ints, is_odd, &Int::value), in TEST()
1153 EXPECT_EQ(input, ranges::partition_point(input, input, is_odd)); in TEST()
1154 EXPECT_EQ(input + 3, ranges::partition_point(input, input + 6, is_odd)); in TEST()
1155 EXPECT_EQ(input, ranges::partition_point(input, input, is_even)); in TEST()
1159 EXPECT_EQ(ints + 2, ranges::partition_point(ints, lt_2, &Int::value)); in TEST()
1167 ranges::merge(input1, input1 + 5, input2, input2 + 5, output)); in TEST()
1174 ranges::merge(ints1, ints2, outs, {}, &Int::value, &Int::value)); in TEST()
1177 EXPECT_EQ(outs + 10, ranges::merge(input1, ints1, outs, {}, {}, &Int::value)); in TEST()
1180 EXPECT_EQ(outs + 10, ranges::merge(ints2, input2, outs, {}, &Int::value, {})); in TEST()
1186 EXPECT_EQ(input + 10, ranges::inplace_merge(input, input + 5, input + 10)); in TEST()
1190 EXPECT_EQ(ints + 10, ranges::inplace_merge(ints, ints + 5, ranges::greater(), in TEST()
1200 EXPECT_TRUE(ranges::includes(evens, evens + 5, fours, fours + 3)); in TEST()
1201 EXPECT_FALSE(ranges::includes(fours, fours + 3, evens, evens + 5)); in TEST()
1202 EXPECT_FALSE(ranges::includes(evens, evens + 5, odds, odds + 5)); in TEST()
1203 EXPECT_FALSE(ranges::includes(odds, odds + 5, evens, evens + 5)); in TEST()
1208 EXPECT_TRUE(ranges::includes(even_ints, fours, {}, &Int::value)); in TEST()
1209 EXPECT_FALSE(ranges::includes(fours, even_ints, {}, {}, &Int::value)); in TEST()
1211 ranges::includes(even_ints, odd_ints, {}, &Int::value, &Int::value)); in TEST()
1213 ranges::includes(odd_ints, even_ints, {}, &Int::value, &Int::value)); in TEST()
1223 ranges::set_union(evens, evens + 5, odds, odds + 5, result)); in TEST()
1227 ranges::set_union(evens, evens + 5, fours, fours + 3, result)); in TEST()
1235 ranges::set_union(even_ints, odd_ints, result_ints, {}, &Int::value, in TEST()
1240 ranges::set_union(even_ints, fours, result_ints, {}, &Int::value)); in TEST()
1244 EXPECT_EQ(result_ints + 8, ranges::set_union(fours, odd_ints, result_ints, {}, in TEST()
1257 ranges::set_intersection(evens, evens + 5, odds, odds + 5, result)); in TEST()
1259 EXPECT_EQ(result + 3, ranges::set_intersection(evens, evens + 5, fours, in TEST()
1268 ranges::set_intersection(even_ints, odd_ints, result_ints, {}, in TEST()
1273 ranges::set_intersection(even_ints, fours, result_ints, {}, &Int::value)); in TEST()
1276 EXPECT_EQ(result_ints, ranges::set_intersection(fours, odd_ints, result_ints, in TEST()
1287 ranges::set_difference(evens, evens + 5, odds, odds + 5, result)); in TEST()
1291 ranges::set_difference(evens, evens + 5, fours, fours + 3, result)); in TEST()
1299 ranges::set_difference(even_ints, odd_ints, result_ints, {}, in TEST()
1305 ranges::set_difference(even_ints, fours, result_ints, {}, &Int::value)); in TEST()
1309 ranges::set_difference(fours, odd_ints, result_ints, {}, {}, in TEST()
1320 EXPECT_EQ(result + 10, ranges::set_symmetric_difference( in TEST()
1324 EXPECT_EQ(result + 2, ranges::set_symmetric_difference( in TEST()
1333 ranges::set_symmetric_difference(even_ints, odd_ints, result_ints, in TEST()
1338 ranges::set_symmetric_difference(even_ints, fours, result_ints, {}, in TEST()
1343 ranges::set_symmetric_difference(fours, odd_ints, result_ints, {}, in TEST()
1351 EXPECT_EQ(heap + 7, ranges::push_heap(heap, heap + 7)); in TEST()
1356 ranges::push_heap(heap_int, ranges::greater(), &Int::value)); in TEST()
1364 EXPECT_EQ(heap + 7, ranges::pop_heap(heap, heap + 7)); in TEST()
1369 ranges::pop_heap(heap_int, ranges::greater(), &Int::value)); in TEST()
1375 EXPECT_EQ(heap + 7, ranges::make_heap(heap, heap + 7)); in TEST()
1380 ranges::make_heap(heap_int, ranges::greater(), &Int::value)); in TEST()
1387 EXPECT_EQ(heap + 7, ranges::sort_heap(heap, heap + 7)); in TEST()
1392 ranges::sort_heap(heap_int, ranges::greater(), &Int::value)); in TEST()
1398 EXPECT_TRUE(ranges::is_heap(heap, heap + 7)); in TEST()
1399 EXPECT_FALSE(ranges::is_heap(heap, heap + 7, ranges::greater())); in TEST()
1402 EXPECT_TRUE(ranges::is_heap(heap_int, ranges::greater(), &Int::value)); in TEST()
1403 EXPECT_FALSE(ranges::is_heap(heap_int, {}, &Int::value)); in TEST()
1408 EXPECT_EQ(heap + 7, ranges::is_heap_until(heap, heap + 7)); in TEST()
1409 EXPECT_EQ(heap + 1, ranges::is_heap_until(heap, heap + 7, ranges::greater())); in TEST()
1413 ranges::is_heap_until(heap_int, ranges::greater(), &Int::value)); in TEST()
1414 EXPECT_EQ(heap_int + 1, ranges::is_heap_until(heap_int, {}, &Int::value)); in TEST()
1420 static_assert(&ranges::min(k1, k1) == &k1, ""); in TEST()
1421 static_assert(&ranges::min(k1, k2) == &k1, ""); in TEST()
1422 static_assert(&ranges::min(k2, k1) == &k1, ""); in TEST()
1423 static_assert(&ranges::min(k2, k2) == &k2, ""); in TEST()
1427 static_assert(&ranges::min(k3, k3, ranges::greater(), &Int::value) == &k3, in TEST()
1429 static_assert(&ranges::min(k3, k4, ranges::greater(), &Int::value) == &k4, in TEST()
1431 static_assert(&ranges::min(k4, k3, ranges::greater(), &Int::value) == &k4, in TEST()
1433 static_assert(&ranges::min(k4, k4, ranges::greater(), &Int::value) == &k4, in TEST()
1437 static_assert(ranges::min({5, 3, 4, 2, 1, 6}) == 1, ""); in TEST()
1438 static_assert(ranges::min(array, ranges::greater(), &Int::value) == 6, ""); in TEST()
1444 static_assert(&ranges::max(k1, k2) == &k2, ""); in TEST()
1445 static_assert(&ranges::max(k1, k2) == &k2, ""); in TEST()
1446 static_assert(&ranges::max(k2, k1) == &k2, ""); in TEST()
1447 static_assert(&ranges::max(k2, k1) == &k2, ""); in TEST()
1451 static_assert(&ranges::max(k3, k3, ranges::greater(), &Int::value) == &k3, in TEST()
1453 static_assert(&ranges::max(k3, k4, ranges::greater(), &Int::value) == &k3, in TEST()
1455 static_assert(&ranges::max(k4, k3, ranges::greater(), &Int::value) == &k3, in TEST()
1457 static_assert(&ranges::max(k4, k4, ranges::greater(), &Int::value) == &k4, in TEST()
1461 static_assert(ranges::max({5, 3, 4, 2, 1, 6}) == 6, ""); in TEST()
1462 static_assert(ranges::max(array, ranges::greater(), &Int::value) == 1, ""); in TEST()
1468 static_assert(&ranges::minmax(k1, k1).first == &k1, ""); in TEST()
1469 static_assert(&ranges::minmax(k1, k1).second == &k1, ""); in TEST()
1470 static_assert(&ranges::minmax(k1, k2).first == &k1, ""); in TEST()
1471 static_assert(&ranges::minmax(k1, k2).second == &k2, ""); in TEST()
1472 static_assert(&ranges::minmax(k2, k1).first == &k1, ""); in TEST()
1473 static_assert(&ranges::minmax(k2, k1).second == &k2, ""); in TEST()
1474 static_assert(&ranges::minmax(k2, k2).first == &k2, ""); in TEST()
1475 static_assert(&ranges::minmax(k2, k2).second == &k2, ""); in TEST()
1481 ranges::minmax(k3, k3, ranges::greater(), &Int::value); in TEST()
1487 ranges::minmax(k3, k4, ranges::greater(), &Int::value); in TEST()
1493 ranges::minmax(k4, k3, ranges::greater(), &Int::value); in TEST()
1499 ranges::minmax(k4, k4, ranges::greater(), &Int::value); in TEST()
1504 static_assert(ranges::minmax({5, 3, 4, 2, 1, 6}).first == 1, ""); in TEST()
1505 static_assert(ranges::minmax({5, 3, 4, 2, 1, 6}).second == 6, ""); in TEST()
1509 ranges::minmax(array, ranges::greater(), &Int::value).first == 6, ""); in TEST()
1511 ranges::minmax(array, ranges::greater(), &Int::value).second == 1, ""); in TEST()
1517 static_assert(*ranges::min_element(array, array + 6) == 1, ""); in TEST()
1518 static_assert(*ranges::min_element(ints, ranges::greater(), &Int::value) == 6, in TEST()
1525 static_assert(*ranges::max_element(array, array + 6) == 6, ""); in TEST()
1526 static_assert(*ranges::max_element(ints, ranges::greater(), &Int::value) == 1, in TEST()
1532 static_assert(*ranges::minmax_element(array, array + 6).first == 1, ""); in TEST()
1533 static_assert(*ranges::minmax_element(array, array + 6).second == 6, ""); in TEST()
1537 *ranges::minmax_element(ints, ranges::greater(), &Int::value).first == 6, in TEST()
1540 *ranges::minmax_element(ints, ranges::greater(), &Int::value).second == 1, in TEST()
1549 static_assert(&ranges::clamp(k1, k1, k1) == &k1, ""); in TEST()
1550 static_assert(&ranges::clamp(k1, k1, k2) == &k1, ""); in TEST()
1551 static_assert(&ranges::clamp(k1, k1, k3) == &k1, ""); in TEST()
1552 static_assert(&ranges::clamp(k1, k2, k2) == &k2, ""); in TEST()
1553 static_assert(&ranges::clamp(k1, k2, k3) == &k2, ""); in TEST()
1554 static_assert(&ranges::clamp(k1, k3, k3) == &k3, ""); in TEST()
1556 static_assert(&ranges::clamp(k2, k1, k1) == &k1, ""); in TEST()
1557 static_assert(&ranges::clamp(k2, k1, k2) == &k2, ""); in TEST()
1558 static_assert(&ranges::clamp(k2, k1, k3) == &k2, ""); in TEST()
1559 static_assert(&ranges::clamp(k2, k2, k2) == &k2, ""); in TEST()
1560 static_assert(&ranges::clamp(k2, k2, k3) == &k2, ""); in TEST()
1561 static_assert(&ranges::clamp(k2, k3, k3) == &k3, ""); in TEST()
1563 static_assert(&ranges::clamp(k3, k1, k1) == &k1, ""); in TEST()
1564 static_assert(&ranges::clamp(k3, k1, k2) == &k2, ""); in TEST()
1565 static_assert(&ranges::clamp(k3, k1, k3) == &k3, ""); in TEST()
1566 static_assert(&ranges::clamp(k3, k2, k2) == &k2, ""); in TEST()
1567 static_assert(&ranges::clamp(k3, k2, k3) == &k3, ""); in TEST()
1568 static_assert(&ranges::clamp(k3, k3, k3) == &k3, ""); in TEST()
1575 &ranges::clamp(k6, k6, k6, ranges::greater(), &Int::value) == &k6, ""); in TEST()
1577 &ranges::clamp(k6, k6, k5, ranges::greater(), &Int::value) == &k6, ""); in TEST()
1579 &ranges::clamp(k6, k6, k4, ranges::greater(), &Int::value) == &k6, ""); in TEST()
1581 &ranges::clamp(k6, k5, k5, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1583 &ranges::clamp(k6, k5, k4, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1585 &ranges::clamp(k6, k4, k4, ranges::greater(), &Int::value) == &k4, ""); in TEST()
1588 &ranges::clamp(k5, k6, k6, ranges::greater(), &Int::value) == &k6, ""); in TEST()
1590 &ranges::clamp(k5, k6, k5, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1592 &ranges::clamp(k5, k6, k4, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1594 &ranges::clamp(k5, k5, k5, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1596 &ranges::clamp(k5, k5, k4, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1598 &ranges::clamp(k5, k4, k4, ranges::greater(), &Int::value) == &k4, ""); in TEST()
1601 &ranges::clamp(k4, k6, k6, ranges::greater(), &Int::value) == &k6, ""); in TEST()
1603 &ranges::clamp(k4, k6, k5, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1605 &ranges::clamp(k4, k6, k4, ranges::greater(), &Int::value) == &k4, ""); in TEST()
1607 &ranges::clamp(k4, k5, k5, ranges::greater(), &Int::value) == &k5, ""); in TEST()
1609 &ranges::clamp(k4, k5, k4, ranges::greater(), &Int::value) == &k4, ""); in TEST()
1611 &ranges::clamp(k4, k4, k4, ranges::greater(), &Int::value) == &k4, ""); in TEST()
1617 static_assert(!ranges::lexicographical_compare(inputs1, inputs1 + 6, inputs1, in TEST()
1620 static_assert(ranges::lexicographical_compare(inputs1, inputs1 + 6, inputs2, in TEST()
1623 static_assert(!ranges::lexicographical_compare(inputs2, inputs2 + 6, inputs1, in TEST()
1626 static_assert(!ranges::lexicographical_compare(inputs2, inputs2 + 6, inputs2, in TEST()
1633 !ranges::lexicographical_compare(inputs1, ints1, {}, {}, &Int::value), in TEST()
1636 !ranges::lexicographical_compare(ints1, inputs1, {}, &Int::value), ""); in TEST()
1639 !ranges::lexicographical_compare(inputs2, ints1, {}, {}, &Int::value), in TEST()
1642 ranges::lexicographical_compare(ints1, inputs2, {}, &Int::value), ""); in TEST()
1644 static_assert(ranges::lexicographical_compare(ints1, ints2, {}, &Int::value, in TEST()
1647 static_assert(!ranges::lexicographical_compare(ints2, ints1, {}, &Int::value, in TEST()
1651 static_assert(!ranges::lexicographical_compare( in TEST()
1652 ints1, ints2, ranges::greater(), &Int::value, &Int::value), in TEST()
1654 static_assert(ranges::lexicographical_compare(ints2, ints1, ranges::greater(), in TEST()
1660 ranges::lexicographical_compare(List{0, 1, 2}, List{0, 1, 2, 3}), ""); in TEST()
1662 !ranges::lexicographical_compare(List{0, 1, 2, 3}, List{0, 1, 2}), ""); in TEST()
1664 ranges::lexicographical_compare(List{0, 1, 2, 3}, List{0, 1, 2, 4}), ""); in TEST()
1666 !ranges::lexicographical_compare(List{0, 1, 2, 4}, List{0, 1, 2, 3}), ""); in TEST()
1671 EXPECT_TRUE(ranges::next_permutation(input, input + 6)); in TEST()
1674 EXPECT_FALSE(ranges::next_permutation(input, input + 6)); in TEST()
1678 EXPECT_TRUE(ranges::next_permutation(ints, ranges::greater(), &Int::value)); in TEST()
1681 EXPECT_FALSE(ranges::next_permutation(ints, ranges::greater(), &Int::value)); in TEST()
1685 EXPECT_TRUE(ranges::next_permutation(bits)); in TEST()
1691 EXPECT_TRUE(ranges::prev_permutation(input, input + 6)); in TEST()
1694 EXPECT_FALSE(ranges::prev_permutation(input, input + 6)); in TEST()
1698 EXPECT_TRUE(ranges::prev_permutation(ints, ranges::greater(), &Int::value)); in TEST()
1701 EXPECT_FALSE(ranges::prev_permutation(ints, ranges::greater(), &Int::value)); in TEST()
1705 EXPECT_TRUE(ranges::prev_permutation(bits)); in TEST()
1723 ranges::any_of(input, internal::predicate); in TEST()
1727 ranges::any_of(input, base::identity{}, &internal::TestPair::a); in TEST()