1
------------------------------------------------------------------------
2
-- comparetotal.decTest -- decimal comparison using total ordering --
3
-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
4
------------------------------------------------------------------------
5
-- Please see the document "General Decimal Arithmetic Testcases" --
6
-- at http://www2.hursley.ibm.com/decimal for the description of --
9
-- These testcases are experimental ('beta' versions), and they --
10
-- may contain errors. They are offered on an as-is basis. In --
11
-- particular, achieving the same results as the tests here is not --
12
-- a guarantee that an implementation complies with any Standard --
13
-- or specification. The tests are not exhaustive. --
15
-- Please send comments, suggestions, and corrections to the author: --
16
-- Mike Cowlishaw, IBM Fellow --
17
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
19
------------------------------------------------------------------------
22
-- Note that we cannot assume add/subtract tests cover paths adequately,
23
-- here, because the code might be quite different (comparison cannot
24
-- overflow or underflow, so actual subtractions are not necessary).
25
-- Similarly, comparetotal will have some radically different paths
35
cotx001 comparetotal -2 -2 -> 0
36
cotx002 comparetotal -2 -1 -> -1
37
cotx003 comparetotal -2 0 -> -1
38
cotx004 comparetotal -2 1 -> -1
39
cotx005 comparetotal -2 2 -> -1
40
cotx006 comparetotal -1 -2 -> 1
41
cotx007 comparetotal -1 -1 -> 0
42
cotx008 comparetotal -1 0 -> -1
43
cotx009 comparetotal -1 1 -> -1
44
cotx010 comparetotal -1 2 -> -1
45
cotx011 comparetotal 0 -2 -> 1
46
cotx012 comparetotal 0 -1 -> 1
47
cotx013 comparetotal 0 0 -> 0
48
cotx014 comparetotal 0 1 -> -1
49
cotx015 comparetotal 0 2 -> -1
50
cotx016 comparetotal 1 -2 -> 1
51
cotx017 comparetotal 1 -1 -> 1
52
cotx018 comparetotal 1 0 -> 1
53
cotx019 comparetotal 1 1 -> 0
54
cotx020 comparetotal 1 2 -> -1
55
cotx021 comparetotal 2 -2 -> 1
56
cotx022 comparetotal 2 -1 -> 1
57
cotx023 comparetotal 2 0 -> 1
58
cotx025 comparetotal 2 1 -> 1
59
cotx026 comparetotal 2 2 -> 0
61
cotx031 comparetotal -20 -20 -> 0
62
cotx032 comparetotal -20 -10 -> -1
63
cotx033 comparetotal -20 00 -> -1
64
cotx034 comparetotal -20 10 -> -1
65
cotx035 comparetotal -20 20 -> -1
66
cotx036 comparetotal -10 -20 -> 1
67
cotx037 comparetotal -10 -10 -> 0
68
cotx038 comparetotal -10 00 -> -1
69
cotx039 comparetotal -10 10 -> -1
70
cotx040 comparetotal -10 20 -> -1
71
cotx041 comparetotal 00 -20 -> 1
72
cotx042 comparetotal 00 -10 -> 1
73
cotx043 comparetotal 00 00 -> 0
74
cotx044 comparetotal 00 10 -> -1
75
cotx045 comparetotal 00 20 -> -1
76
cotx046 comparetotal 10 -20 -> 1
77
cotx047 comparetotal 10 -10 -> 1
78
cotx048 comparetotal 10 00 -> 1
79
cotx049 comparetotal 10 10 -> 0
80
cotx050 comparetotal 10 20 -> -1
81
cotx051 comparetotal 20 -20 -> 1
82
cotx052 comparetotal 20 -10 -> 1
83
cotx053 comparetotal 20 00 -> 1
84
cotx055 comparetotal 20 10 -> 1
85
cotx056 comparetotal 20 20 -> 0
87
cotx061 comparetotal -2.0 -2.0 -> 0
88
cotx062 comparetotal -2.0 -1.0 -> -1
89
cotx063 comparetotal -2.0 0.0 -> -1
90
cotx064 comparetotal -2.0 1.0 -> -1
91
cotx065 comparetotal -2.0 2.0 -> -1
92
cotx066 comparetotal -1.0 -2.0 -> 1
93
cotx067 comparetotal -1.0 -1.0 -> 0
94
cotx068 comparetotal -1.0 0.0 -> -1
95
cotx069 comparetotal -1.0 1.0 -> -1
96
cotx070 comparetotal -1.0 2.0 -> -1
97
cotx071 comparetotal 0.0 -2.0 -> 1
98
cotx072 comparetotal 0.0 -1.0 -> 1
99
cotx073 comparetotal 0.0 0.0 -> 0
100
cotx074 comparetotal 0.0 1.0 -> -1
101
cotx075 comparetotal 0.0 2.0 -> -1
102
cotx076 comparetotal 1.0 -2.0 -> 1
103
cotx077 comparetotal 1.0 -1.0 -> 1
104
cotx078 comparetotal 1.0 0.0 -> 1
105
cotx079 comparetotal 1.0 1.0 -> 0
106
cotx080 comparetotal 1.0 2.0 -> -1
107
cotx081 comparetotal 2.0 -2.0 -> 1
108
cotx082 comparetotal 2.0 -1.0 -> 1
109
cotx083 comparetotal 2.0 0.0 -> 1
110
cotx085 comparetotal 2.0 1.0 -> 1
111
cotx086 comparetotal 2.0 2.0 -> 0
113
-- now some cases which might overflow if subtract were used
114
maxexponent: 999999999
115
minexponent: -999999999
116
cotx090 comparetotal 9.99999999E+999999999 9.99999999E+999999999 -> 0
117
cotx091 comparetotal -9.99999999E+999999999 9.99999999E+999999999 -> -1
118
cotx092 comparetotal 9.99999999E+999999999 -9.99999999E+999999999 -> 1
119
cotx093 comparetotal -9.99999999E+999999999 -9.99999999E+999999999 -> 0
122
cotx094 comparetotal 12.73 127.9 -> -1
123
cotx095 comparetotal -127 12 -> -1
124
cotx096 comparetotal 12.30 12.3 -> -1
125
cotx097 comparetotal 12.30 12.30 -> 0
126
cotx098 comparetotal 12.3 12.300 -> 1
127
cotx099 comparetotal 12.3 NaN -> -1
129
-- some differing length/exponent cases
130
-- in this first group, compare would compare all equal
131
cotx100 comparetotal 7.0 7.0 -> 0
132
cotx101 comparetotal 7.0 7 -> -1
133
cotx102 comparetotal 7 7.0 -> 1
134
cotx103 comparetotal 7E+0 7.0 -> 1
135
cotx104 comparetotal 70E-1 7.0 -> 0
136
cotx105 comparetotal 0.7E+1 7 -> 0
137
cotx106 comparetotal 70E-1 7 -> -1
138
cotx107 comparetotal 7.0 7E+0 -> -1
139
cotx108 comparetotal 7.0 70E-1 -> 0
140
cotx109 comparetotal 7 0.7E+1 -> 0
141
cotx110 comparetotal 7 70E-1 -> 1
143
cotx120 comparetotal 8.0 7.0 -> 1
144
cotx121 comparetotal 8.0 7 -> 1
145
cotx122 comparetotal 8 7.0 -> 1
146
cotx123 comparetotal 8E+0 7.0 -> 1
147
cotx124 comparetotal 80E-1 7.0 -> 1
148
cotx125 comparetotal 0.8E+1 7 -> 1
149
cotx126 comparetotal 80E-1 7 -> 1
150
cotx127 comparetotal 8.0 7E+0 -> 1
151
cotx128 comparetotal 8.0 70E-1 -> 1
152
cotx129 comparetotal 8 0.7E+1 -> 1
153
cotx130 comparetotal 8 70E-1 -> 1
155
cotx140 comparetotal 8.0 9.0 -> -1
156
cotx141 comparetotal 8.0 9 -> -1
157
cotx142 comparetotal 8 9.0 -> -1
158
cotx143 comparetotal 8E+0 9.0 -> -1
159
cotx144 comparetotal 80E-1 9.0 -> -1
160
cotx145 comparetotal 0.8E+1 9 -> -1
161
cotx146 comparetotal 80E-1 9 -> -1
162
cotx147 comparetotal 8.0 9E+0 -> -1
163
cotx148 comparetotal 8.0 90E-1 -> -1
164
cotx149 comparetotal 8 0.9E+1 -> -1
165
cotx150 comparetotal 8 90E-1 -> -1
167
-- and again, with sign changes -+ ..
168
cotx200 comparetotal -7.0 7.0 -> -1
169
cotx201 comparetotal -7.0 7 -> -1
170
cotx202 comparetotal -7 7.0 -> -1
171
cotx203 comparetotal -7E+0 7.0 -> -1
172
cotx204 comparetotal -70E-1 7.0 -> -1
173
cotx205 comparetotal -0.7E+1 7 -> -1
174
cotx206 comparetotal -70E-1 7 -> -1
175
cotx207 comparetotal -7.0 7E+0 -> -1
176
cotx208 comparetotal -7.0 70E-1 -> -1
177
cotx209 comparetotal -7 0.7E+1 -> -1
178
cotx210 comparetotal -7 70E-1 -> -1
180
cotx220 comparetotal -8.0 7.0 -> -1
181
cotx221 comparetotal -8.0 7 -> -1
182
cotx222 comparetotal -8 7.0 -> -1
183
cotx223 comparetotal -8E+0 7.0 -> -1
184
cotx224 comparetotal -80E-1 7.0 -> -1
185
cotx225 comparetotal -0.8E+1 7 -> -1
186
cotx226 comparetotal -80E-1 7 -> -1
187
cotx227 comparetotal -8.0 7E+0 -> -1
188
cotx228 comparetotal -8.0 70E-1 -> -1
189
cotx229 comparetotal -8 0.7E+1 -> -1
190
cotx230 comparetotal -8 70E-1 -> -1
192
cotx240 comparetotal -8.0 9.0 -> -1
193
cotx241 comparetotal -8.0 9 -> -1
194
cotx242 comparetotal -8 9.0 -> -1
195
cotx243 comparetotal -8E+0 9.0 -> -1
196
cotx244 comparetotal -80E-1 9.0 -> -1
197
cotx245 comparetotal -0.8E+1 9 -> -1
198
cotx246 comparetotal -80E-1 9 -> -1
199
cotx247 comparetotal -8.0 9E+0 -> -1
200
cotx248 comparetotal -8.0 90E-1 -> -1
201
cotx249 comparetotal -8 0.9E+1 -> -1
202
cotx250 comparetotal -8 90E-1 -> -1
204
-- and again, with sign changes +- ..
205
cotx300 comparetotal 7.0 -7.0 -> 1
206
cotx301 comparetotal 7.0 -7 -> 1
207
cotx302 comparetotal 7 -7.0 -> 1
208
cotx303 comparetotal 7E+0 -7.0 -> 1
209
cotx304 comparetotal 70E-1 -7.0 -> 1
210
cotx305 comparetotal .7E+1 -7 -> 1
211
cotx306 comparetotal 70E-1 -7 -> 1
212
cotx307 comparetotal 7.0 -7E+0 -> 1
213
cotx308 comparetotal 7.0 -70E-1 -> 1
214
cotx309 comparetotal 7 -.7E+1 -> 1
215
cotx310 comparetotal 7 -70E-1 -> 1
217
cotx320 comparetotal 8.0 -7.0 -> 1
218
cotx321 comparetotal 8.0 -7 -> 1
219
cotx322 comparetotal 8 -7.0 -> 1
220
cotx323 comparetotal 8E+0 -7.0 -> 1
221
cotx324 comparetotal 80E-1 -7.0 -> 1
222
cotx325 comparetotal .8E+1 -7 -> 1
223
cotx326 comparetotal 80E-1 -7 -> 1
224
cotx327 comparetotal 8.0 -7E+0 -> 1
225
cotx328 comparetotal 8.0 -70E-1 -> 1
226
cotx329 comparetotal 8 -.7E+1 -> 1
227
cotx330 comparetotal 8 -70E-1 -> 1
229
cotx340 comparetotal 8.0 -9.0 -> 1
230
cotx341 comparetotal 8.0 -9 -> 1
231
cotx342 comparetotal 8 -9.0 -> 1
232
cotx343 comparetotal 8E+0 -9.0 -> 1
233
cotx344 comparetotal 80E-1 -9.0 -> 1
234
cotx345 comparetotal .8E+1 -9 -> 1
235
cotx346 comparetotal 80E-1 -9 -> 1
236
cotx347 comparetotal 8.0 -9E+0 -> 1
237
cotx348 comparetotal 8.0 -90E-1 -> 1
238
cotx349 comparetotal 8 -.9E+1 -> 1
239
cotx350 comparetotal 8 -90E-1 -> 1
241
-- and again, with sign changes -- ..
242
cotx400 comparetotal -7.0 -7.0 -> 0
243
cotx401 comparetotal -7.0 -7 -> 1
244
cotx402 comparetotal -7 -7.0 -> -1
245
cotx403 comparetotal -7E+0 -7.0 -> -1
246
cotx404 comparetotal -70E-1 -7.0 -> 0
247
cotx405 comparetotal -.7E+1 -7 -> 0
248
cotx406 comparetotal -70E-1 -7 -> 1
249
cotx407 comparetotal -7.0 -7E+0 -> 1
250
cotx408 comparetotal -7.0 -70E-1 -> 0
251
cotx409 comparetotal -7 -.7E+1 -> 0
252
cotx410 comparetotal -7 -70E-1 -> -1
254
cotx420 comparetotal -8.0 -7.0 -> -1
255
cotx421 comparetotal -8.0 -7 -> -1
256
cotx422 comparetotal -8 -7.0 -> -1
257
cotx423 comparetotal -8E+0 -7.0 -> -1
258
cotx424 comparetotal -80E-1 -7.0 -> -1
259
cotx425 comparetotal -.8E+1 -7 -> -1
260
cotx426 comparetotal -80E-1 -7 -> -1
261
cotx427 comparetotal -8.0 -7E+0 -> -1
262
cotx428 comparetotal -8.0 -70E-1 -> -1
263
cotx429 comparetotal -8 -.7E+1 -> -1
264
cotx430 comparetotal -8 -70E-1 -> -1
266
cotx440 comparetotal -8.0 -9.0 -> 1
267
cotx441 comparetotal -8.0 -9 -> 1
268
cotx442 comparetotal -8 -9.0 -> 1
269
cotx443 comparetotal -8E+0 -9.0 -> 1
270
cotx444 comparetotal -80E-1 -9.0 -> 1
271
cotx445 comparetotal -.8E+1 -9 -> 1
272
cotx446 comparetotal -80E-1 -9 -> 1
273
cotx447 comparetotal -8.0 -9E+0 -> 1
274
cotx448 comparetotal -8.0 -90E-1 -> 1
275
cotx449 comparetotal -8 -.9E+1 -> 1
276
cotx450 comparetotal -8 -90E-1 -> 1
279
-- testcases that subtract to lots of zeros at boundaries [pgr]
281
cotx470 comparetotal 123.4560000000000000E789 123.456E789 -> -1
282
cotx471 comparetotal 123.456000000000000E-89 123.456E-89 -> -1
283
cotx472 comparetotal 123.45600000000000E789 123.456E789 -> -1
284
cotx473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
285
cotx474 comparetotal 123.456000000000E789 123.456E789 -> -1
286
cotx475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
287
cotx476 comparetotal 123.4560000000E789 123.456E789 -> -1
288
cotx477 comparetotal 123.456000000E-89 123.456E-89 -> -1
289
cotx478 comparetotal 123.45600000E789 123.456E789 -> -1
290
cotx479 comparetotal 123.4560000E-89 123.456E-89 -> -1
291
cotx480 comparetotal 123.456000E789 123.456E789 -> -1
292
cotx481 comparetotal 123.45600E-89 123.456E-89 -> -1
293
cotx482 comparetotal 123.4560E789 123.456E789 -> -1
294
cotx483 comparetotal 123.456E-89 123.456E-89 -> 0
295
cotx484 comparetotal 123.456E-89 123.4560000000000000E-89 -> 1
296
cotx485 comparetotal 123.456E789 123.456000000000000E789 -> 1
297
cotx486 comparetotal 123.456E-89 123.45600000000000E-89 -> 1
298
cotx487 comparetotal 123.456E789 123.4560000000000E789 -> 1
299
cotx488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
300
cotx489 comparetotal 123.456E789 123.45600000000E789 -> 1
301
cotx490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
302
cotx491 comparetotal 123.456E789 123.456000000E789 -> 1
303
cotx492 comparetotal 123.456E-89 123.45600000E-89 -> 1
304
cotx493 comparetotal 123.456E789 123.4560000E789 -> 1
305
cotx494 comparetotal 123.456E-89 123.456000E-89 -> 1
306
cotx495 comparetotal 123.456E789 123.45600E789 -> 1
307
cotx496 comparetotal 123.456E-89 123.4560E-89 -> 1
308
cotx497 comparetotal 123.456E789 123.456E789 -> 0
310
-- wide-ranging, around precision; signs equal
312
cotx500 comparetotal 1 1E-15 -> 1
313
cotx501 comparetotal 1 1E-14 -> 1
314
cotx502 comparetotal 1 1E-13 -> 1
315
cotx503 comparetotal 1 1E-12 -> 1
316
cotx504 comparetotal 1 1E-11 -> 1
317
cotx505 comparetotal 1 1E-10 -> 1
318
cotx506 comparetotal 1 1E-9 -> 1
319
cotx507 comparetotal 1 1E-8 -> 1
320
cotx508 comparetotal 1 1E-7 -> 1
321
cotx509 comparetotal 1 1E-6 -> 1
322
cotx510 comparetotal 1 1E-5 -> 1
323
cotx511 comparetotal 1 1E-4 -> 1
324
cotx512 comparetotal 1 1E-3 -> 1
325
cotx513 comparetotal 1 1E-2 -> 1
326
cotx514 comparetotal 1 1E-1 -> 1
327
cotx515 comparetotal 1 1E-0 -> 0
328
cotx516 comparetotal 1 1E+1 -> -1
329
cotx517 comparetotal 1 1E+2 -> -1
330
cotx518 comparetotal 1 1E+3 -> -1
331
cotx519 comparetotal 1 1E+4 -> -1
332
cotx521 comparetotal 1 1E+5 -> -1
333
cotx522 comparetotal 1 1E+6 -> -1
334
cotx523 comparetotal 1 1E+7 -> -1
335
cotx524 comparetotal 1 1E+8 -> -1
336
cotx525 comparetotal 1 1E+9 -> -1
337
cotx526 comparetotal 1 1E+10 -> -1
338
cotx527 comparetotal 1 1E+11 -> -1
339
cotx528 comparetotal 1 1E+12 -> -1
340
cotx529 comparetotal 1 1E+13 -> -1
341
cotx530 comparetotal 1 1E+14 -> -1
342
cotx531 comparetotal 1 1E+15 -> -1
344
cotx540 comparetotal 1E-15 1 -> -1
345
cotx541 comparetotal 1E-14 1 -> -1
346
cotx542 comparetotal 1E-13 1 -> -1
347
cotx543 comparetotal 1E-12 1 -> -1
348
cotx544 comparetotal 1E-11 1 -> -1
349
cotx545 comparetotal 1E-10 1 -> -1
350
cotx546 comparetotal 1E-9 1 -> -1
351
cotx547 comparetotal 1E-8 1 -> -1
352
cotx548 comparetotal 1E-7 1 -> -1
353
cotx549 comparetotal 1E-6 1 -> -1
354
cotx550 comparetotal 1E-5 1 -> -1
355
cotx551 comparetotal 1E-4 1 -> -1
356
cotx552 comparetotal 1E-3 1 -> -1
357
cotx553 comparetotal 1E-2 1 -> -1
358
cotx554 comparetotal 1E-1 1 -> -1
359
cotx555 comparetotal 1E-0 1 -> 0
360
cotx556 comparetotal 1E+1 1 -> 1
361
cotx557 comparetotal 1E+2 1 -> 1
362
cotx558 comparetotal 1E+3 1 -> 1
363
cotx559 comparetotal 1E+4 1 -> 1
364
cotx561 comparetotal 1E+5 1 -> 1
365
cotx562 comparetotal 1E+6 1 -> 1
366
cotx563 comparetotal 1E+7 1 -> 1
367
cotx564 comparetotal 1E+8 1 -> 1
368
cotx565 comparetotal 1E+9 1 -> 1
369
cotx566 comparetotal 1E+10 1 -> 1
370
cotx567 comparetotal 1E+11 1 -> 1
371
cotx568 comparetotal 1E+12 1 -> 1
372
cotx569 comparetotal 1E+13 1 -> 1
373
cotx570 comparetotal 1E+14 1 -> 1
374
cotx571 comparetotal 1E+15 1 -> 1
375
-- similar with an useful coefficient, one side only
376
cotx580 comparetotal 0.000000987654321 1E-15 -> 1
377
cotx581 comparetotal 0.000000987654321 1E-14 -> 1
378
cotx582 comparetotal 0.000000987654321 1E-13 -> 1
379
cotx583 comparetotal 0.000000987654321 1E-12 -> 1
380
cotx584 comparetotal 0.000000987654321 1E-11 -> 1
381
cotx585 comparetotal 0.000000987654321 1E-10 -> 1
382
cotx586 comparetotal 0.000000987654321 1E-9 -> 1
383
cotx587 comparetotal 0.000000987654321 1E-8 -> 1
384
cotx588 comparetotal 0.000000987654321 1E-7 -> 1
385
cotx589 comparetotal 0.000000987654321 1E-6 -> -1
386
cotx590 comparetotal 0.000000987654321 1E-5 -> -1
387
cotx591 comparetotal 0.000000987654321 1E-4 -> -1
388
cotx592 comparetotal 0.000000987654321 1E-3 -> -1
389
cotx593 comparetotal 0.000000987654321 1E-2 -> -1
390
cotx594 comparetotal 0.000000987654321 1E-1 -> -1
391
cotx595 comparetotal 0.000000987654321 1E-0 -> -1
392
cotx596 comparetotal 0.000000987654321 1E+1 -> -1
393
cotx597 comparetotal 0.000000987654321 1E+2 -> -1
394
cotx598 comparetotal 0.000000987654321 1E+3 -> -1
395
cotx599 comparetotal 0.000000987654321 1E+4 -> -1
397
-- check some unit-y traps
399
cotx600 comparetotal 12 12.2345 -> -1
400
cotx601 comparetotal 12.0 12.2345 -> -1
401
cotx602 comparetotal 12.00 12.2345 -> -1
402
cotx603 comparetotal 12.000 12.2345 -> -1
403
cotx604 comparetotal 12.0000 12.2345 -> -1
404
cotx605 comparetotal 12.00000 12.2345 -> -1
405
cotx606 comparetotal 12.000000 12.2345 -> -1
406
cotx607 comparetotal 12.0000000 12.2345 -> -1
407
cotx608 comparetotal 12.00000000 12.2345 -> -1
408
cotx609 comparetotal 12.000000000 12.2345 -> -1
409
cotx610 comparetotal 12.1234 12 -> 1
410
cotx611 comparetotal 12.1234 12.0 -> 1
411
cotx612 comparetotal 12.1234 12.00 -> 1
412
cotx613 comparetotal 12.1234 12.000 -> 1
413
cotx614 comparetotal 12.1234 12.0000 -> 1
414
cotx615 comparetotal 12.1234 12.00000 -> 1
415
cotx616 comparetotal 12.1234 12.000000 -> 1
416
cotx617 comparetotal 12.1234 12.0000000 -> 1
417
cotx618 comparetotal 12.1234 12.00000000 -> 1
418
cotx619 comparetotal 12.1234 12.000000000 -> 1
419
cotx620 comparetotal -12 -12.2345 -> 1
420
cotx621 comparetotal -12.0 -12.2345 -> 1
421
cotx622 comparetotal -12.00 -12.2345 -> 1
422
cotx623 comparetotal -12.000 -12.2345 -> 1
423
cotx624 comparetotal -12.0000 -12.2345 -> 1
424
cotx625 comparetotal -12.00000 -12.2345 -> 1
425
cotx626 comparetotal -12.000000 -12.2345 -> 1
426
cotx627 comparetotal -12.0000000 -12.2345 -> 1
427
cotx628 comparetotal -12.00000000 -12.2345 -> 1
428
cotx629 comparetotal -12.000000000 -12.2345 -> 1
429
cotx630 comparetotal -12.1234 -12 -> -1
430
cotx631 comparetotal -12.1234 -12.0 -> -1
431
cotx632 comparetotal -12.1234 -12.00 -> -1
432
cotx633 comparetotal -12.1234 -12.000 -> -1
433
cotx634 comparetotal -12.1234 -12.0000 -> -1
434
cotx635 comparetotal -12.1234 -12.00000 -> -1
435
cotx636 comparetotal -12.1234 -12.000000 -> -1
436
cotx637 comparetotal -12.1234 -12.0000000 -> -1
437
cotx638 comparetotal -12.1234 -12.00000000 -> -1
438
cotx639 comparetotal -12.1234 -12.000000000 -> -1
442
cotx640 comparetotal 0 0 -> 0
443
cotx641 comparetotal 0 -0 -> 1
444
cotx642 comparetotal 0 -0.0 -> 1
445
cotx643 comparetotal 0 0.0 -> 1
446
cotx644 comparetotal -0 0 -> -1
447
cotx645 comparetotal -0 -0 -> 0
448
cotx646 comparetotal -0 -0.0 -> -1
449
cotx647 comparetotal -0 0.0 -> -1
450
cotx648 comparetotal 0.0 0 -> -1
451
cotx649 comparetotal 0.0 -0 -> 1
452
cotx650 comparetotal 0.0 -0.0 -> 1
453
cotx651 comparetotal 0.0 0.0 -> 0
454
cotx652 comparetotal -0.0 0 -> -1
455
cotx653 comparetotal -0.0 -0 -> 1
456
cotx654 comparetotal -0.0 -0.0 -> 0
457
cotx655 comparetotal -0.0 0.0 -> -1
459
cotx656 comparetotal -0E1 0.0 -> -1
460
cotx657 comparetotal -0E2 0.0 -> -1
461
cotx658 comparetotal 0E1 0.0 -> 1
462
cotx659 comparetotal 0E2 0.0 -> 1
463
cotx660 comparetotal -0E1 0 -> -1
464
cotx661 comparetotal -0E2 0 -> -1
465
cotx662 comparetotal 0E1 0 -> 1
466
cotx663 comparetotal 0E2 0 -> 1
467
cotx664 comparetotal -0E1 -0E1 -> 0
468
cotx665 comparetotal -0E2 -0E1 -> -1
469
cotx666 comparetotal 0E1 -0E1 -> 1
470
cotx667 comparetotal 0E2 -0E1 -> 1
471
cotx668 comparetotal -0E1 -0E2 -> 1
472
cotx669 comparetotal -0E2 -0E2 -> 0
473
cotx670 comparetotal 0E1 -0E2 -> 1
474
cotx671 comparetotal 0E2 -0E2 -> 1
475
cotx672 comparetotal -0E1 0E1 -> -1
476
cotx673 comparetotal -0E2 0E1 -> -1
477
cotx674 comparetotal 0E1 0E1 -> 0
478
cotx675 comparetotal 0E2 0E1 -> 1
479
cotx676 comparetotal -0E1 0E2 -> -1
480
cotx677 comparetotal -0E2 0E2 -> -1
481
cotx678 comparetotal 0E1 0E2 -> -1
482
cotx679 comparetotal 0E2 0E2 -> 0
484
-- trailing zeros; unit-y
486
cotx680 comparetotal 12 12 -> 0
487
cotx681 comparetotal 12 12.0 -> 1
488
cotx682 comparetotal 12 12.00 -> 1
489
cotx683 comparetotal 12 12.000 -> 1
490
cotx684 comparetotal 12 12.0000 -> 1
491
cotx685 comparetotal 12 12.00000 -> 1
492
cotx686 comparetotal 12 12.000000 -> 1
493
cotx687 comparetotal 12 12.0000000 -> 1
494
cotx688 comparetotal 12 12.00000000 -> 1
495
cotx689 comparetotal 12 12.000000000 -> 1
496
cotx690 comparetotal 12 12 -> 0
497
cotx691 comparetotal 12.0 12 -> -1
498
cotx692 comparetotal 12.00 12 -> -1
499
cotx693 comparetotal 12.000 12 -> -1
500
cotx694 comparetotal 12.0000 12 -> -1
501
cotx695 comparetotal 12.00000 12 -> -1
502
cotx696 comparetotal 12.000000 12 -> -1
503
cotx697 comparetotal 12.0000000 12 -> -1
504
cotx698 comparetotal 12.00000000 12 -> -1
505
cotx699 comparetotal 12.000000000 12 -> -1
507
-- long operand checks
511
cotx701 comparetotal 12345678000 1 -> 1
512
cotx702 comparetotal 1 12345678000 -> -1
513
cotx703 comparetotal 1234567800 1 -> 1
514
cotx704 comparetotal 1 1234567800 -> -1
515
cotx705 comparetotal 1234567890 1 -> 1
516
cotx706 comparetotal 1 1234567890 -> -1
517
cotx707 comparetotal 1234567891 1 -> 1
518
cotx708 comparetotal 1 1234567891 -> -1
519
cotx709 comparetotal 12345678901 1 -> 1
520
cotx710 comparetotal 1 12345678901 -> -1
521
cotx711 comparetotal 1234567896 1 -> 1
522
cotx712 comparetotal 1 1234567896 -> -1
523
cotx713 comparetotal -1234567891 1 -> -1
524
cotx714 comparetotal 1 -1234567891 -> 1
525
cotx715 comparetotal -12345678901 1 -> -1
526
cotx716 comparetotal 1 -12345678901 -> 1
527
cotx717 comparetotal -1234567896 1 -> -1
528
cotx718 comparetotal 1 -1234567896 -> 1
531
-- same with plenty of precision
532
cotx721 comparetotal 12345678000 1 -> 1
533
cotx722 comparetotal 1 12345678000 -> -1
534
cotx723 comparetotal 1234567800 1 -> 1
535
cotx724 comparetotal 1 1234567800 -> -1
536
cotx725 comparetotal 1234567890 1 -> 1
537
cotx726 comparetotal 1 1234567890 -> -1
538
cotx727 comparetotal 1234567891 1 -> 1
539
cotx728 comparetotal 1 1234567891 -> -1
540
cotx729 comparetotal 12345678901 1 -> 1
541
cotx730 comparetotal 1 12345678901 -> -1
542
cotx731 comparetotal 1234567896 1 -> 1
543
cotx732 comparetotal 1 1234567896 -> -1
547
cotx740 comparetotal 1 0.9999999 -> 1
548
cotx741 comparetotal 1 0.999999 -> 1
549
cotx742 comparetotal 1 0.99999 -> 1
550
cotx743 comparetotal 1 1.0000 -> 1
551
cotx744 comparetotal 1 1.00001 -> -1
552
cotx745 comparetotal 1 1.000001 -> -1
553
cotx746 comparetotal 1 1.0000001 -> -1
554
cotx750 comparetotal 0.9999999 1 -> -1
555
cotx751 comparetotal 0.999999 1 -> -1
556
cotx752 comparetotal 0.99999 1 -> -1
557
cotx753 comparetotal 1.0000 1 -> -1
558
cotx754 comparetotal 1.00001 1 -> 1
559
cotx755 comparetotal 1.000001 1 -> 1
560
cotx756 comparetotal 1.0000001 1 -> 1
562
-- a selection of longies
563
cotx760 comparetotal -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> -1
564
cotx761 comparetotal -36852134.84194296250843579428931 -36852134.84194296250843579428931 -> 0
565
cotx762 comparetotal -36852134.94194296250843579428931 -36852134.84194296250843579428931 -> -1
566
cotx763 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
567
-- precisions above or below the difference should have no effect
569
cotx764 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
571
cotx765 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
573
cotx766 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
575
cotx767 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
577
cotx768 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
579
cotx769 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
581
cotx770 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
583
cotx771 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
585
cotx772 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
587
cotx773 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
589
cotx774 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931 -> 1
593
cotx780 comparetotal Inf -Inf -> 1
594
cotx781 comparetotal Inf -1000 -> 1
595
cotx782 comparetotal Inf -1 -> 1
596
cotx783 comparetotal Inf -0 -> 1
597
cotx784 comparetotal Inf 0 -> 1
598
cotx785 comparetotal Inf 1 -> 1
599
cotx786 comparetotal Inf 1000 -> 1
600
cotx787 comparetotal Inf Inf -> 0
601
cotx788 comparetotal -1000 Inf -> -1
602
cotx789 comparetotal -Inf Inf -> -1
603
cotx790 comparetotal -1 Inf -> -1
604
cotx791 comparetotal -0 Inf -> -1
605
cotx792 comparetotal 0 Inf -> -1
606
cotx793 comparetotal 1 Inf -> -1
607
cotx794 comparetotal 1000 Inf -> -1
608
cotx795 comparetotal Inf Inf -> 0
610
cotx800 comparetotal -Inf -Inf -> 0
611
cotx801 comparetotal -Inf -1000 -> -1
612
cotx802 comparetotal -Inf -1 -> -1
613
cotx803 comparetotal -Inf -0 -> -1
614
cotx804 comparetotal -Inf 0 -> -1
615
cotx805 comparetotal -Inf 1 -> -1
616
cotx806 comparetotal -Inf 1000 -> -1
617
cotx807 comparetotal -Inf Inf -> -1
618
cotx808 comparetotal -Inf -Inf -> 0
619
cotx809 comparetotal -1000 -Inf -> 1
620
cotx810 comparetotal -1 -Inf -> 1
621
cotx811 comparetotal -0 -Inf -> 1
622
cotx812 comparetotal 0 -Inf -> 1
623
cotx813 comparetotal 1 -Inf -> 1
624
cotx814 comparetotal 1000 -Inf -> 1
625
cotx815 comparetotal Inf -Inf -> 1
627
cotx821 comparetotal NaN -Inf -> 1
628
cotx822 comparetotal NaN -1000 -> 1
629
cotx823 comparetotal NaN -1 -> 1
630
cotx824 comparetotal NaN -0 -> 1
631
cotx825 comparetotal NaN 0 -> 1
632
cotx826 comparetotal NaN 1 -> 1
633
cotx827 comparetotal NaN 1000 -> 1
634
cotx828 comparetotal NaN Inf -> 1
635
cotx829 comparetotal NaN NaN -> 0
636
cotx830 comparetotal -Inf NaN -> -1
637
cotx831 comparetotal -1000 NaN -> -1
638
cotx832 comparetotal -1 NaN -> -1
639
cotx833 comparetotal -0 NaN -> -1
640
cotx834 comparetotal 0 NaN -> -1
641
cotx835 comparetotal 1 NaN -> -1
642
cotx836 comparetotal 1000 NaN -> -1
643
cotx837 comparetotal Inf NaN -> -1
644
cotx838 comparetotal -NaN -NaN -> 0
645
cotx839 comparetotal +NaN -NaN -> 1
646
cotx840 comparetotal -NaN +NaN -> -1
648
cotx841 comparetotal sNaN -sNaN -> 1
649
cotx842 comparetotal sNaN -NaN -> 1
650
cotx843 comparetotal sNaN -Inf -> 1
651
cotx844 comparetotal sNaN -1000 -> 1
652
cotx845 comparetotal sNaN -1 -> 1
653
cotx846 comparetotal sNaN -0 -> 1
654
cotx847 comparetotal sNaN 0 -> 1
655
cotx848 comparetotal sNaN 1 -> 1
656
cotx849 comparetotal sNaN 1000 -> 1
657
cotx850 comparetotal sNaN NaN -> -1
658
cotx851 comparetotal sNaN sNaN -> 0
660
cotx852 comparetotal -sNaN sNaN -> -1
661
cotx853 comparetotal -NaN sNaN -> -1
662
cotx854 comparetotal -Inf sNaN -> -1
663
cotx855 comparetotal -1000 sNaN -> -1
664
cotx856 comparetotal -1 sNaN -> -1
665
cotx857 comparetotal -0 sNaN -> -1
666
cotx858 comparetotal 0 sNaN -> -1
667
cotx859 comparetotal 1 sNaN -> -1
668
cotx860 comparetotal 1000 sNaN -> -1
669
cotx861 comparetotal Inf sNaN -> -1
670
cotx862 comparetotal NaN sNaN -> 1
671
cotx863 comparetotal sNaN sNaN -> 0
673
cotx871 comparetotal -sNaN -sNaN -> 0
674
cotx872 comparetotal -sNaN -NaN -> 1
675
cotx873 comparetotal -sNaN -Inf -> -1
676
cotx874 comparetotal -sNaN -1000 -> -1
677
cotx875 comparetotal -sNaN -1 -> -1
678
cotx876 comparetotal -sNaN -0 -> -1
679
cotx877 comparetotal -sNaN 0 -> -1
680
cotx878 comparetotal -sNaN 1 -> -1
681
cotx879 comparetotal -sNaN 1000 -> -1
682
cotx880 comparetotal -sNaN NaN -> -1
683
cotx881 comparetotal -sNaN sNaN -> -1
685
cotx882 comparetotal -sNaN -sNaN -> 0
686
cotx883 comparetotal -NaN -sNaN -> -1
687
cotx884 comparetotal -Inf -sNaN -> 1
688
cotx885 comparetotal -1000 -sNaN -> 1
689
cotx886 comparetotal -1 -sNaN -> 1
690
cotx887 comparetotal -0 -sNaN -> 1
691
cotx888 comparetotal 0 -sNaN -> 1
692
cotx889 comparetotal 1 -sNaN -> 1
693
cotx890 comparetotal 1000 -sNaN -> 1
694
cotx891 comparetotal Inf -sNaN -> 1
695
cotx892 comparetotal NaN -sNaN -> 1
696
cotx893 comparetotal sNaN -sNaN -> 1
699
cotx960 comparetotal NaN9 -Inf -> 1
700
cotx961 comparetotal NaN8 999 -> 1
701
cotx962 comparetotal NaN77 Inf -> 1
702
cotx963 comparetotal -NaN67 NaN5 -> -1
703
cotx964 comparetotal -Inf -NaN4 -> 1
704
cotx965 comparetotal -999 -NaN33 -> 1
705
cotx966 comparetotal Inf NaN2 -> -1
707
cotx970 comparetotal -NaN41 -NaN42 -> 1
708
cotx971 comparetotal +NaN41 -NaN42 -> 1
709
cotx972 comparetotal -NaN41 +NaN42 -> -1
710
cotx973 comparetotal +NaN41 +NaN42 -> -1
711
cotx974 comparetotal -NaN42 -NaN01 -> -1
712
cotx975 comparetotal +NaN42 -NaN01 -> 1
713
cotx976 comparetotal -NaN42 +NaN01 -> -1
714
cotx977 comparetotal +NaN42 +NaN01 -> 1
716
cotx980 comparetotal -sNaN771 -sNaN772 -> 1
717
cotx981 comparetotal +sNaN771 -sNaN772 -> 1
718
cotx982 comparetotal -sNaN771 +sNaN772 -> -1
719
cotx983 comparetotal +sNaN771 +sNaN772 -> -1
720
cotx984 comparetotal -sNaN772 -sNaN771 -> -1
721
cotx985 comparetotal +sNaN772 -sNaN771 -> 1
722
cotx986 comparetotal -sNaN772 +sNaN771 -> -1
723
cotx987 comparetotal +sNaN772 +sNaN771 -> 1
725
cotx991 comparetotal -sNaN99 -Inf -> -1
726
cotx992 comparetotal sNaN98 -11 -> 1
727
cotx993 comparetotal sNaN97 NaN -> -1
728
cotx994 comparetotal sNaN16 sNaN94 -> -1
729
cotx995 comparetotal NaN85 sNaN83 -> 1
730
cotx996 comparetotal -Inf sNaN92 -> -1
731
cotx997 comparetotal 088 sNaN81 -> -1
732
cotx998 comparetotal Inf sNaN90 -> -1
733
cotx999 comparetotal NaN -sNaN89 -> 1
735
-- overflow and underflow tests .. subnormal results now allowed
736
maxExponent: 999999999
737
minexponent: -999999999
738
cotx1080 comparetotal +1.23456789012345E-0 9E+999999999 -> -1
739
cotx1081 comparetotal 9E+999999999 +1.23456789012345E-0 -> 1
740
cotx1082 comparetotal +0.100 9E-999999999 -> 1
741
cotx1083 comparetotal 9E-999999999 +0.100 -> -1
742
cotx1085 comparetotal -1.23456789012345E-0 9E+999999999 -> -1
743
cotx1086 comparetotal 9E+999999999 -1.23456789012345E-0 -> 1
744
cotx1087 comparetotal -0.100 9E-999999999 -> -1
745
cotx1088 comparetotal 9E-999999999 -0.100 -> 1
747
cotx1089 comparetotal 1e-599999999 1e-400000001 -> -1
748
cotx1090 comparetotal 1e-599999999 1e-400000000 -> -1
749
cotx1091 comparetotal 1e-600000000 1e-400000000 -> -1
750
cotx1092 comparetotal 9e-999999998 0.01 -> -1
751
cotx1093 comparetotal 9e-999999998 0.1 -> -1
752
cotx1094 comparetotal 0.01 9e-999999998 -> 1
753
cotx1095 comparetotal 1e599999999 1e400000001 -> 1
754
cotx1096 comparetotal 1e599999999 1e400000000 -> 1
755
cotx1097 comparetotal 1e600000000 1e400000000 -> 1
756
cotx1098 comparetotal 9e999999998 100 -> 1
757
cotx1099 comparetotal 9e999999998 10 -> 1
758
cotx1100 comparetotal 100 9e999999998 -> -1
760
cotx1101 comparetotal 1e+777777777 1e+411111111 -> 1
761
cotx1102 comparetotal 1e+777777777 -1e+411111111 -> 1
762
cotx1103 comparetotal -1e+777777777 1e+411111111 -> -1
763
cotx1104 comparetotal -1e+777777777 -1e+411111111 -> -1
764
cotx1105 comparetotal 1e-777777777 1e-411111111 -> -1
765
cotx1106 comparetotal 1e-777777777 -1e-411111111 -> 1
766
cotx1107 comparetotal -1e-777777777 1e-411111111 -> -1
767
cotx1108 comparetotal -1e-777777777 -1e-411111111 -> 1
770
cotx1110 comparetotal 0E-383 0 -> -1
771
cotx1111 comparetotal 0E-383 -0 -> 1
772
cotx1112 comparetotal -0E-383 0 -> -1
773
cotx1113 comparetotal -0E-383 -0 -> 1
774
cotx1114 comparetotal 0E-383 0E+384 -> -1
775
cotx1115 comparetotal 0E-383 -0E+384 -> 1
776
cotx1116 comparetotal -0E-383 0E+384 -> -1
777
cotx1117 comparetotal -0E-383 -0E+384 -> 1
778
cotx1118 comparetotal 0 0E+384 -> -1
779
cotx1119 comparetotal 0 -0E+384 -> 1
780
cotx1120 comparetotal -0 0E+384 -> -1
781
cotx1121 comparetotal -0 -0E+384 -> 1
783
cotx1130 comparetotal 0E+384 0 -> 1
784
cotx1131 comparetotal 0E+384 -0 -> 1
785
cotx1132 comparetotal -0E+384 0 -> -1
786
cotx1133 comparetotal -0E+384 -0 -> -1
787
cotx1134 comparetotal 0E+384 0E-383 -> 1
788
cotx1135 comparetotal 0E+384 -0E-383 -> 1
789
cotx1136 comparetotal -0E+384 0E-383 -> -1
790
cotx1137 comparetotal -0E+384 -0E-383 -> -1
791
cotx1138 comparetotal 0 0E-383 -> 1
792
cotx1139 comparetotal 0 -0E-383 -> 1
793
cotx1140 comparetotal -0 0E-383 -> -1
794
cotx1141 comparetotal -0 -0E-383 -> -1
797
cotx9990 comparetotal 10 # -> NaN Invalid_operation
798
cotx9991 comparetotal # 10 -> NaN Invalid_operation