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
40int main(int, char**)
41{
42 {
43 const std::deque<int> d1, d2;
44 assert(testComparisons(d1, d2, true, false));
45 }
46 {
47 const std::deque<int> d1(1, 1), d2(1, 1);
48 assert(testComparisons(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(testComparisons(d1, d2, true, false));
55 }
56 {
57 const std::deque<int> d1(1, 1), d2;
58 assert(testComparisons(d1, d2, false, false));
59 }
60 {
61 const std::deque<int> d1(1, 1), d2(1, 2);
62 assert(testComparisons(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(testComparisons(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(testComparisons(d1, d2, false, false));
77 }
78 {
79 const std::deque<LessAndEqComp> d1, d2;
80 assert(testComparisons(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(testComparisons(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(testComparisons(d1, d2, true, false));
92 }
93 {
94 const std::deque<LessAndEqComp> d1(1, LessAndEqComp(1));
95 const std::deque<LessAndEqComp> d2;
96 assert(testComparisons(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(testComparisons(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(testComparisons(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(testComparisons(d1, d2, false, false));
116 }
117
118 return 0;
119}
120

source code of libcxx/test/std/containers/sequences/deque/compare.pass.cpp