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 // <deque> 10 11 // template<class T, class Alloc> 12 // bool operator==(const std::deque<T, Alloc>& lhs, 13 // const std::deque<T,Alloc>& rhs); 14 15 // template<class T, class Alloc> 16 // bool operator!=(const std::deque<T,Alloc>& lhs, 17 // const std::deque<T,Alloc>& rhs); 18 19 // template<class T, class Alloc> 20 // bool operator<(const std::deque<T,Alloc>& lhs, 21 // const std::deque<T,Alloc>& rhs); 22 23 // template<class T, class Alloc> 24 // bool operator<=(const std::deque<T,Alloc>& lhs, 25 // const std::deque<T,Alloc>& rhs); 26 27 // template<class T, class Alloc> 28 // bool operator>(const std::deque<T,Alloc>& lhs, 29 // const std::deque<T,Alloc>& rhs); 30 31 // template<class T, class Alloc> 32 // bool operator>=(const std::deque<T,Alloc>& lhs, 33 // const std::deque<T,Alloc>& rhs); 34 35 #include <deque> 36 #include <cassert> 37 38 #include "test_comparisons.h" 39 40 int main(int, char**) 41 { 42 { 43 const std::deque<int> d1, d2; 44 assert(testComparisons6(d1, d2, true, false)); 45 } 46 { 47 const std::deque<int> d1(1, 1), d2(1, 1); 48 assert(testComparisons6(d1, d2, true, false)); 49 } 50 { 51 int items[3] = {1, 2, 3}; 52 const std::deque<int> d1(items, items + 3); 53 const std::deque<int> d2(items, items + 3); 54 assert(testComparisons6(d1, d2, true, false)); 55 } 56 { 57 const std::deque<int> d1(1, 1), d2; 58 assert(testComparisons6(d1, d2, false, false)); 59 } 60 { 61 const std::deque<int> d1(1, 1), d2(1, 2); 62 assert(testComparisons6(d1, d2, false, true)); 63 } 64 { 65 int items1[2] = {1, 2}; 66 int items2[2] = {1, 3}; 67 const std::deque<int> d1(items1, items1 + 2); 68 const std::deque<int> d2(items2, items2 + 2); 69 assert(testComparisons6(d1, d2, false, true)); 70 } 71 { 72 int items1[2] = {2, 2}; 73 int items2[2] = {1, 3}; 74 const std::deque<int> d1(items1, items1 + 2); 75 const std::deque<int> d2(items2, items2 + 2); 76 assert(testComparisons6(d1, d2, false, false)); 77 } 78 { 79 const std::deque<LessAndEqComp> d1, d2; 80 assert(testComparisons6(d1, d2, true, false)); 81 } 82 { 83 const std::deque<LessAndEqComp> d1(1, LessAndEqComp(1)); 84 const std::deque<LessAndEqComp> d2(1, LessAndEqComp(1)); 85 assert(testComparisons6(d1, d2, true, false)); 86 } 87 { 88 LessAndEqComp items[3] = {LessAndEqComp(1), LessAndEqComp(2), LessAndEqComp(3)}; 89 const std::deque<LessAndEqComp> d1(items, items + 3); 90 const std::deque<LessAndEqComp> d2(items, items + 3); 91 assert(testComparisons6(d1, d2, true, false)); 92 } 93 { 94 const std::deque<LessAndEqComp> d1(1, LessAndEqComp(1)); 95 const std::deque<LessAndEqComp> d2; 96 assert(testComparisons6(d1, d2, false, false)); 97 } 98 { 99 const std::deque<LessAndEqComp> d1(1, LessAndEqComp(1)); 100 const std::deque<LessAndEqComp> d2(1, LessAndEqComp(2)); 101 assert(testComparisons6(d1, d2, false, true)); 102 } 103 { 104 LessAndEqComp items1[2] = {LessAndEqComp(1), LessAndEqComp(2)}; 105 LessAndEqComp items2[2] = {LessAndEqComp(1), LessAndEqComp(3)}; 106 const std::deque<LessAndEqComp> d1(items1, items1 + 2); 107 const std::deque<LessAndEqComp> d2(items2, items2 + 2); 108 assert(testComparisons6(d1, d2, false, true)); 109 } 110 { 111 LessAndEqComp items1[2] = {LessAndEqComp(2), LessAndEqComp(2)}; 112 LessAndEqComp items2[2] = {LessAndEqComp(1), LessAndEqComp(3)}; 113 const std::deque<LessAndEqComp> d1(items1, items1 + 2); 114 const std::deque<LessAndEqComp> d2(items2, items2 + 2); 115 assert(testComparisons6(d1, d2, false, false)); 116 } 117 118 return 0; 119 } 120