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 40 int main(int, char**) { 41 { 42 const std::list<int> l1, l2; 43 assert(testComparisons6(l1, l2, true, false)); 44 } 45 { 46 const std::list<int> l1(1, 1), l2(1, 1); 47 assert(testComparisons6(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(testComparisons6(l1, l2, true, false)); 54 } 55 { 56 const std::list<int> l1(1, 1), l2; 57 assert(testComparisons6(l1, l2, false, false)); 58 } 59 { 60 const std::list<int> l1(1, 1), l2(1, 2); 61 assert(testComparisons6(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(testComparisons6(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(testComparisons6(l1, l2, false, false)); 76 } 77 { 78 const std::list<LessAndEqComp> l1, l2; 79 assert(testComparisons6(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(testComparisons6(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(testComparisons6(l1, l2, true, false)); 91 } 92 { 93 const std::list<LessAndEqComp> l1(1, LessAndEqComp(1)); 94 const std::list<LessAndEqComp> l2; 95 assert(testComparisons6(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(testComparisons6(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(testComparisons6(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(testComparisons6(l1, l2, false, false)); 115 } 116 return 0; 117 } 118