1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 // <list>
10
11 // template< class T, class Alloc >
12 // bool operator==( const std::list<T,Alloc>& lhs,
13 // const std::list<T,Alloc>& rhs );
14
15 // template< class T, class Alloc >
16 // bool operator!=( const std::list<T,Alloc>& lhs,
17 // const std::list<T,Alloc>& rhs );
18
19 // template< class T, class Alloc >
20 // bool operator<( const std::list<T,Alloc>& lhs,
21 // const std::list<T,Alloc>& rhs );
22
23 // template< class T, class Alloc >
24 // bool operator<=( const std::list<T,Alloc>& lhs,
25 // const std::list<T,Alloc>& rhs );
26
27 // template< class T, class Alloc >
28 // bool operator>( const std::list<T,Alloc>& lhs,
29 // const std::list<T,Alloc>& rhs );
30
31 // template< class T, class Alloc >
32 // bool operator>=( const std::list<T,Alloc>& lhs,
33 // const std::list<T,Alloc>& rhs );
34
35 #include <list>
36 #include <cassert>
37
38 #include "test_comparisons.h"
39
main(int,char **)40 int main(int, char**) {
41 {
42 const std::list<int> l1, l2;
43 assert(testComparisons(l1, l2, true, false));
44 }
45 {
46 const std::list<int> l1(1, 1), l2(1, 1);
47 assert(testComparisons(l1, l2, true, false));
48 }
49 {
50 int items[3] = {1, 2, 3};
51 const std::list<int> l1(items, items + 3);
52 const std::list<int> l2(items, items + 3);
53 assert(testComparisons(l1, l2, true, false));
54 }
55 {
56 const std::list<int> l1(1, 1), l2;
57 assert(testComparisons(l1, l2, false, false));
58 }
59 {
60 const std::list<int> l1(1, 1), l2(1, 2);
61 assert(testComparisons(l1, l2, false, true));
62 }
63 {
64 int items1[2] = {1, 2};
65 int items2[2] = {1, 3};
66 const std::list<int> l1(items1, items1 + 2);
67 const std::list<int> l2(items2, items2 + 2);
68 assert(testComparisons(l1, l2, false, true));
69 }
70 {
71 int items1[2] = {2, 2};
72 int items2[2] = {1, 3};
73 const std::list<int> l1(items1, items1 + 2);
74 const std::list<int> l2(items2, items2 + 2);
75 assert(testComparisons(l1, l2, false, false));
76 }
77 {
78 const std::list<LessAndEqComp> l1, l2;
79 assert(testComparisons(l1, l2, true, false));
80 }
81 {
82 const std::list<LessAndEqComp> l1(1, LessAndEqComp(1));
83 const std::list<LessAndEqComp> l2(1, LessAndEqComp(1));
84 assert(testComparisons(l1, l2, true, false));
85 }
86 {
87 LessAndEqComp items[3] = {LessAndEqComp(1), LessAndEqComp(2), LessAndEqComp(3)};
88 const std::list<LessAndEqComp> l1(items, items + 3);
89 const std::list<LessAndEqComp> l2(items, items + 3);
90 assert(testComparisons(l1, l2, true, false));
91 }
92 {
93 const std::list<LessAndEqComp> l1(1, LessAndEqComp(1));
94 const std::list<LessAndEqComp> l2;
95 assert(testComparisons(l1, l2, false, false));
96 }
97 {
98 const std::list<LessAndEqComp> l1(1, LessAndEqComp(1));
99 const std::list<LessAndEqComp> l2(1, LessAndEqComp(2));
100 assert(testComparisons(l1, l2, false, true));
101 }
102 {
103 LessAndEqComp items1[2] = {LessAndEqComp(1), LessAndEqComp(2)};
104 LessAndEqComp items2[2] = {LessAndEqComp(1), LessAndEqComp(3)};
105 const std::list<LessAndEqComp> l1(items1, items1 + 2);
106 const std::list<LessAndEqComp> l2(items2, items2 + 2);
107 assert(testComparisons(l1, l2, false, true));
108 }
109 {
110 LessAndEqComp items1[2] = {LessAndEqComp(2), LessAndEqComp(2)};
111 LessAndEqComp items2[2] = {LessAndEqComp(1), LessAndEqComp(3)};
112 const std::list<LessAndEqComp> l1(items1, items1 + 2);
113 const std::list<LessAndEqComp> l2(items2, items2 + 2);
114 assert(testComparisons(l1, l2, false, false));
115 }
116 return 0;
117 }
118