]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 25_algorithms / lexicographical_compare / 1.cc
CommitLineData
a945c346 1// Copyright (C) 2005-2024 Free Software Foundation, Inc.
0e994557
PC
2//
3// This file is part of the GNU ISO C++ Library. This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
748086b7 6// Free Software Foundation; either version 3, or (at your option)
0e994557
PC
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
748086b7
JJ
15// with this library; see the file COPYING3. If not see
16// <http://www.gnu.org/licenses/>.
0e994557
PC
17
18// 25.3.8 [lib.alg.lex.comparison]
19
20#include <algorithm>
21#include <testsuite_hooks.h>
22#include <testsuite_iterators.h>
23
24using __gnu_test::test_container;
25using __gnu_test::input_iterator_wrapper;
26
27typedef test_container<int, input_iterator_wrapper> Container;
28int array1[] = {0, 1};
29int array2[] = {1, 0};
30int array3[] = {1, 0, 1};
31
3a391adf 32void
0e994557
PC
33test1()
34{
35 Container con1(array1, array1);
36 Container con2(array2, array2);
3a391adf 37 VERIFY( !std::lexicographical_compare(con1.begin(), con1.end(),
0e994557
PC
38 con2.begin(), con2.end()) );
39}
40
3a391adf 41void
0e994557
PC
42test2()
43{
44 Container con1(array1, array1 + 2);
45 Container con2(array2, array2 + 2);
3a391adf 46 VERIFY( std::lexicographical_compare(con1.begin(), con1.end(),
0e994557
PC
47 con2.begin(), con2.end()) );
48}
49
3a391adf 50void
0e994557
PC
51test3()
52{
53 Container con1(array1, array1 + 2);
54 Container con2(array2, array2 + 2);
3a391adf 55 VERIFY( !std::lexicographical_compare(con2.begin(), con2.end(),
0e994557
PC
56 con1.begin(), con1.end()) );
57}
58
3a391adf 59void
0e994557
PC
60test4()
61{
62 Container con3(array3, array3 + 3);
63 Container con2(array2, array2 + 2);
3a391adf 64 VERIFY( std::lexicographical_compare(con2.begin(), con2.end(),
0e994557
PC
65 con3.begin(), con3.end()) );
66}
67
3a391adf 68void
0e994557
PC
69test5()
70{
71 Container con3(array3, array3 + 3);
72 Container con2(array2, array2 + 2);
73 VERIFY( !std::lexicographical_compare(con3.begin(), con3.end(),
74 con2.begin(), con2.end()) );
75}
76
3a391adf
FD
77void
78test6()
79{
80 VERIFY( std::lexicographical_compare(array2, array2 + 2,
81 array3, array3 + 3) );
82 VERIFY( !std::lexicographical_compare(array3, array3 + 3,
83 array2, array2 + 2) );
84}
85
86using __gnu_test::random_access_iterator_wrapper;
87typedef test_container<int, random_access_iterator_wrapper> RaiContainer;
88
89void
90test7()
91{
92 RaiContainer con2(array2, array2 + 2);
93 RaiContainer con3(array3, array3 + 3);
94 VERIFY( std::lexicographical_compare(con2.begin(), con2.end(),
95 con3.begin(), con3.end()) );
96 VERIFY( !std::lexicographical_compare(con3.begin(), con3.end(),
97 con2.begin(), con2.end()) );
98}
99
100int
0e994557
PC
101main()
102{
103 test1();
104 test2();
105 test3();
106 test4();
107 test5();
3a391adf
FD
108 test6();
109 test7();
0e994557 110}