• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Boost test/cmp_exp.cpp
2  * test explicit comparison functions
3  *
4  * Copyright 2002-2003 Guillaume Melquiond
5  *
6  * Distributed under the Boost Software License, Version 1.0.
7  * (See accompanying file LICENSE_1_0.txt or
8  * copy at http://www.boost.org/LICENSE_1_0.txt)
9  */
10 
11 #include "cmp_header.hpp"
12 
13 // comparisons between [1,2] and [3,4]
14 
test_12_34()15 static void test_12_34() {
16   const I a(1,2), b(3,4);
17 
18   BOOST_CHECK(cerlt(a, b));
19   BOOST_CHECK(cerle(a, b));
20   BOOST_CHECK(!cergt(a, b));
21   BOOST_CHECK(!cerge(a, b));
22 
23   BOOST_CHECK(!cerlt(b, a));
24   BOOST_CHECK(!cerle(b, a));
25   BOOST_CHECK(cergt(b, a));
26   BOOST_CHECK(cerge(b, a));
27 
28   BOOST_CHECK(poslt(a, b));
29   BOOST_CHECK(posle(a, b));
30   BOOST_CHECK(!posgt(a, b));
31   BOOST_CHECK(!posge(a, b));
32 
33   BOOST_CHECK(!poslt(b, a));
34   BOOST_CHECK(!posle(b, a));
35   BOOST_CHECK(posgt(b, a));
36   BOOST_CHECK(posge(b, a));
37 
38   BOOST_CHECK(!cereq(a, b));
39   BOOST_CHECK(cerne(a, b));
40   BOOST_CHECK(!poseq(a, b));
41   BOOST_CHECK(posne(a, b));
42 
43   BOOST_CHECK(!cereq(b, a));
44   BOOST_CHECK(cerne(b, a));
45   BOOST_CHECK(!poseq(b, a));
46   BOOST_CHECK(posne(b, a));
47 
48 # ifdef BOOST_BORLANDC
49   ::detail::ignore_unused_variable_warning(a);
50   ::detail::ignore_unused_variable_warning(b);
51 # endif
52 }
53 
54 // comparisons between [1,3] and [2,4]
55 
test_13_24()56 static void test_13_24() {
57   const I a(1,3), b(2,4);
58 
59   BOOST_CHECK(!cerlt(a, b));
60   BOOST_CHECK(!cerle(a, b));
61   BOOST_CHECK(!cergt(a, b));
62   BOOST_CHECK(!cerge(a, b));
63 
64   BOOST_CHECK(!cerlt(b, a));
65   BOOST_CHECK(!cerle(b, a));
66   BOOST_CHECK(!cergt(b, a));
67   BOOST_CHECK(!cerge(b, a));
68 
69   BOOST_CHECK(poslt(a, b));
70   BOOST_CHECK(posle(a, b));
71   BOOST_CHECK(posgt(a, b));
72   BOOST_CHECK(posge(a, b));
73 
74   BOOST_CHECK(poslt(b, a));
75   BOOST_CHECK(posle(b, a));
76   BOOST_CHECK(posgt(b, a));
77   BOOST_CHECK(posge(b, a));
78 
79   BOOST_CHECK(!cereq(a, b));
80   BOOST_CHECK(!cerne(a, b));
81   BOOST_CHECK(poseq(a, b));
82   BOOST_CHECK(posne(a, b));
83 
84   BOOST_CHECK(!cereq(b, a));
85   BOOST_CHECK(!cerne(b, a));
86   BOOST_CHECK(poseq(b, a));
87   BOOST_CHECK(posne(b, a));
88 
89 # ifdef BOOST_BORLANDC
90   ::detail::ignore_unused_variable_warning(a);
91   ::detail::ignore_unused_variable_warning(b);
92 # endif
93 }
94 
95 // comparisons between [1,2] and [2,3]
96 
test_12_23()97 static void test_12_23() {
98   const I a(1,2), b(2,3);
99 
100   BOOST_CHECK(!cerlt(a, b));
101   BOOST_CHECK(cerle(a, b));
102   BOOST_CHECK(!cergt(a, b));
103   BOOST_CHECK(!cerge(a, b));
104 
105   BOOST_CHECK(!cerlt(b, a));
106   BOOST_CHECK(!cerle(b, a));
107   BOOST_CHECK(!cergt(b, a));
108   BOOST_CHECK(cerge(b, a));
109 
110   BOOST_CHECK(poslt(a, b));
111   BOOST_CHECK(posle(a, b));
112   BOOST_CHECK(!posgt(a, b));
113   BOOST_CHECK(posge(a, b));
114 
115   BOOST_CHECK(!poslt(b, a));
116   BOOST_CHECK(posle(b, a));
117   BOOST_CHECK(posgt(b, a));
118   BOOST_CHECK(posge(b, a));
119 
120   BOOST_CHECK(!cereq(a, b));
121   BOOST_CHECK(!cerne(a, b));
122   BOOST_CHECK(poseq(a, b));
123   BOOST_CHECK(posne(a, b));
124 
125   BOOST_CHECK(!cereq(b, a));
126   BOOST_CHECK(!cerne(b, a));
127   BOOST_CHECK(poseq(b, a));
128   BOOST_CHECK(posne(b, a));
129 
130 # ifdef BOOST_BORLANDC
131   ::detail::ignore_unused_variable_warning(a);
132   ::detail::ignore_unused_variable_warning(b);
133 # endif
134 }
135 
136 // comparisons between [1,2] and 0
137 
test_12_0()138 static void test_12_0() {
139   const I a(1,2);
140   const int b = 0;
141 
142   BOOST_CHECK(!cerlt(a, b));
143   BOOST_CHECK(!cerle(a, b));
144   BOOST_CHECK(cergt(a, b));
145   BOOST_CHECK(cerge(a, b));
146 
147   BOOST_CHECK(cerlt(b, a));
148   BOOST_CHECK(cerle(b, a));
149   BOOST_CHECK(!cergt(b, a));
150   BOOST_CHECK(!cerge(b, a));
151 
152   BOOST_CHECK(!poslt(a, b));
153   BOOST_CHECK(!posle(a, b));
154   BOOST_CHECK(posgt(a, b));
155   BOOST_CHECK(posge(a, b));
156 
157   BOOST_CHECK(poslt(b, a));
158   BOOST_CHECK(posle(b, a));
159   BOOST_CHECK(!posgt(b, a));
160   BOOST_CHECK(!posge(b, a));
161 
162   BOOST_CHECK(!cereq(a, b));
163   BOOST_CHECK(cerne(a, b));
164   BOOST_CHECK(!poseq(a, b));
165   BOOST_CHECK(posne(a, b));
166 
167   BOOST_CHECK(!cereq(b, a));
168   BOOST_CHECK(cerne(b, a));
169   BOOST_CHECK(!poseq(b, a));
170   BOOST_CHECK(posne(b, a));
171 
172 # ifdef BOOST_BORLANDC
173   ::detail::ignore_unused_variable_warning(a);
174   ::detail::ignore_unused_variable_warning(b);
175 # endif
176 }
177 
178 // comparisons between [1,2] and 1
179 
test_12_1()180 static void test_12_1() {
181   const I a(1,2);
182   const int b = 1;
183 
184   BOOST_CHECK(!cerlt(a, b));
185   BOOST_CHECK(!cerle(a, b));
186   BOOST_CHECK(!cergt(a, b));
187   BOOST_CHECK(cerge(a, b));
188 
189   BOOST_CHECK(!cerlt(b, a));
190   BOOST_CHECK(cerle(b, a));
191   BOOST_CHECK(!cergt(b, a));
192   BOOST_CHECK(!cerge(b, a));
193 
194   BOOST_CHECK(!poslt(a, b));
195   BOOST_CHECK(posle(a, b));
196   BOOST_CHECK(posgt(a, b));
197   BOOST_CHECK(posge(a, b));
198 
199   BOOST_CHECK(poslt(b, a));
200   BOOST_CHECK(posle(b, a));
201   BOOST_CHECK(!posgt(b, a));
202   BOOST_CHECK(posge(b, a));
203 
204   BOOST_CHECK(!cereq(a, b));
205   BOOST_CHECK(!cerne(a, b));
206   BOOST_CHECK(poseq(a, b));
207   BOOST_CHECK(posne(a, b));
208 
209   BOOST_CHECK(!cereq(b, a));
210   BOOST_CHECK(!cerne(b, a));
211   BOOST_CHECK(poseq(b, a));
212   BOOST_CHECK(posne(b, a));
213 
214 # ifdef BOOST_BORLANDC
215   ::detail::ignore_unused_variable_warning(a);
216   ::detail::ignore_unused_variable_warning(b);
217 # endif
218 }
219 
220 // comparisons between [1,2] and 2
221 
test_12_2()222 static void test_12_2() {
223   const I a(1,2);
224   const int b = 2;
225 
226   BOOST_CHECK(!cerlt(a, b));
227   BOOST_CHECK(cerle(a, b));
228   BOOST_CHECK(!cergt(a, b));
229   BOOST_CHECK(!cerge(a, b));
230 
231   BOOST_CHECK(!cerlt(b, a));
232   BOOST_CHECK(!cerle(b, a));
233   BOOST_CHECK(!cergt(b, a));
234   BOOST_CHECK(cerge(b, a));
235 
236   BOOST_CHECK(poslt(a, b));
237   BOOST_CHECK(posle(a, b));
238   BOOST_CHECK(!posgt(a, b));
239   BOOST_CHECK(posge(a, b));
240 
241   BOOST_CHECK(!poslt(b, a));
242   BOOST_CHECK(posle(b, a));
243   BOOST_CHECK(posgt(b, a));
244   BOOST_CHECK(posge(b, a));
245 
246   BOOST_CHECK(!cereq(a, b));
247   BOOST_CHECK(!cerne(a, b));
248   BOOST_CHECK(poseq(a, b));
249   BOOST_CHECK(posne(a, b));
250 
251   BOOST_CHECK(!cereq(b, a));
252   BOOST_CHECK(!cerne(b, a));
253   BOOST_CHECK(poseq(b, a));
254   BOOST_CHECK(posne(b, a));
255 
256 # ifdef BOOST_BORLANDC
257   ::detail::ignore_unused_variable_warning(a);
258   ::detail::ignore_unused_variable_warning(b);
259 # endif
260 }
261 
262 // comparisons between [1,2] and 3
263 
test_12_3()264 static void test_12_3() {
265   const I a(1,2);
266   const int b = 3;
267 
268   BOOST_CHECK(cerlt(a, b));
269   BOOST_CHECK(cerle(a, b));
270   BOOST_CHECK(!cergt(a, b));
271   BOOST_CHECK(!cerge(a, b));
272 
273   BOOST_CHECK(!cerlt(b, a));
274   BOOST_CHECK(!cerle(b, a));
275   BOOST_CHECK(cergt(b, a));
276   BOOST_CHECK(cerge(b, a));
277 
278   BOOST_CHECK(poslt(a, b));
279   BOOST_CHECK(posle(a, b));
280   BOOST_CHECK(!posgt(a, b));
281   BOOST_CHECK(!posge(a, b));
282 
283   BOOST_CHECK(!poslt(b, a));
284   BOOST_CHECK(!posle(b, a));
285   BOOST_CHECK(posgt(b, a));
286   BOOST_CHECK(posge(b, a));
287 
288   BOOST_CHECK(!cereq(a, b));
289   BOOST_CHECK(cerne(a, b));
290   BOOST_CHECK(!poseq(a, b));
291   BOOST_CHECK(posne(a, b));
292 
293   BOOST_CHECK(!cereq(b, a));
294   BOOST_CHECK(cerne(b, a));
295   BOOST_CHECK(!poseq(b, a));
296   BOOST_CHECK(posne(b, a));
297 
298 # ifdef BOOST_BORLANDC
299   ::detail::ignore_unused_variable_warning(a);
300   ::detail::ignore_unused_variable_warning(b);
301 # endif
302 }
303 
test_12_12()304 static void test_12_12() {
305   const I a(1,2), b(1,2);
306   BOOST_CHECK(!cereq(a, b));
307   BOOST_CHECK(!cerne(a, b));
308   BOOST_CHECK(poseq(a, b));
309   BOOST_CHECK(posne(a, b));
310   BOOST_CHECK(!cereq(b, a));
311   BOOST_CHECK(!cerne(b, a));
312   BOOST_CHECK(poseq(b, a));
313   BOOST_CHECK(posne(b, a));
314 # ifdef BOOST_BORLANDC
315   ::detail::ignore_unused_variable_warning(a);
316   ::detail::ignore_unused_variable_warning(b);
317 # endif
318 }
319 
test_11_11()320 static void test_11_11() {
321   const I a(1,1), b(1,1);
322   BOOST_CHECK(cereq(a, b));
323   BOOST_CHECK(!cerne(a, b));
324   BOOST_CHECK(poseq(a, b));
325   BOOST_CHECK(!posne(a, b));
326   BOOST_CHECK(cereq(b, a));
327   BOOST_CHECK(!cerne(b, a));
328   BOOST_CHECK(poseq(b, a));
329   BOOST_CHECK(!posne(b, a));
330 # ifdef BOOST_BORLANDC
331   ::detail::ignore_unused_variable_warning(a);
332   ::detail::ignore_unused_variable_warning(b);
333 # endif
334 }
335 
test_11_1()336 static void test_11_1() {
337   const I a(1,1);
338   const int b = 1;
339   BOOST_CHECK(cereq(a, b));
340   BOOST_CHECK(!cerne(a, b));
341   BOOST_CHECK(poseq(a, b));
342   BOOST_CHECK(!posne(a, b));
343   BOOST_CHECK(cereq(b, a));
344   BOOST_CHECK(!cerne(b, a));
345   BOOST_CHECK(poseq(b, a));
346   BOOST_CHECK(!posne(b, a));
347 # ifdef BOOST_BORLANDC
348   ::detail::ignore_unused_variable_warning(a);
349   ::detail::ignore_unused_variable_warning(b);
350 # endif
351 }
352 
test_main(int,char * [])353 int test_main(int, char *[]) {
354   test_12_34();
355   test_13_24();
356   test_12_23();
357   test_12_0();
358   test_12_1();
359   test_12_2();
360   test_12_3();
361   test_12_12();
362   test_11_11();
363   test_11_1();
364 
365   return 0;
366 }
367