Fix 22_locale/locale/cons/12658_thread-2.cc on hppa.
[official-gcc.git] / libstdc++-v3 / testsuite / 25_algorithms / contains_subrange / 1.cc
blob6c3c99c0fd631bb5d1dad577ebd14feeb3324536
1 // { dg-options "-std=gnu++23" }
2 // { dg-do run { target c++23 } }
4 #include <algorithm>
5 #include <testsuite_hooks.h>
6 #include <testsuite_iterators.h>
8 namespace ranges = std::ranges;
10 void
11 test01()
13 int x[] = {1,2,3,4,5};
14 int y[] = {2,3,4};
15 int z[] = {4,5,6};
16 __gnu_test::test_forward_range<int> rx(x);
17 __gnu_test::test_forward_range<int> ry(y);
18 __gnu_test::test_forward_range<int> rz(z);
19 VERIFY( ranges::contains_subrange(rx, ry) );
20 VERIFY( !ranges::contains_subrange(rx, rz) );
21 VERIFY( ranges::contains_subrange(rx, ry, ranges::less{}) );
22 VERIFY( ranges::contains_subrange(rx, rz, ranges::less{}) );
23 auto plus3 = [](int n) { return n+3; };
24 VERIFY( !ranges::contains_subrange(rx, ry, {}, plus3) );
25 VERIFY( ranges::contains_subrange(rx, rz, {}, plus3) );
26 VERIFY( ranges::contains_subrange(rx, ry, {}, plus3, plus3) );
27 VERIFY( !ranges::contains_subrange(rx, rz, {}, plus3, plus3) );
29 VERIFY( ranges::contains_subrange(x, x+2, y, y+1) );
30 VERIFY( !ranges::contains_subrange(x, x+2, y, y+2) );
33 int
34 main()
36 test01();