summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/comparetotal.decTest
blob: 252c49fb61c66fdc685736e6488225c9ebdcf0c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
------------------------------------------------------------------------
-- comparetotal.decTest -- decimal comparison using total ordering    --
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.59

-- Note that we cannot assume add/subtract tests cover paths adequately,
-- here, because the code might be quite different (comparison cannot
-- overflow or underflow, so actual subtractions are not necessary).
-- Similarly, comparetotal will have some radically different paths
-- than compare.

extended:    1
precision:   16
rounding:    half_up
maxExponent: 384
minExponent: -383

-- sanity checks
cotx001 comparetotal  -2  -2  -> 0
cotx002 comparetotal  -2  -1  -> -1
cotx003 comparetotal  -2   0  -> -1
cotx004 comparetotal  -2   1  -> -1
cotx005 comparetotal  -2   2  -> -1
cotx006 comparetotal  -1  -2  -> 1
cotx007 comparetotal  -1  -1  -> 0
cotx008 comparetotal  -1   0  -> -1
cotx009 comparetotal  -1   1  -> -1
cotx010 comparetotal  -1   2  -> -1
cotx011 comparetotal   0  -2  -> 1
cotx012 comparetotal   0  -1  -> 1
cotx013 comparetotal   0   0  -> 0
cotx014 comparetotal   0   1  -> -1
cotx015 comparetotal   0   2  -> -1
cotx016 comparetotal   1  -2  -> 1
cotx017 comparetotal   1  -1  -> 1
cotx018 comparetotal   1   0  -> 1
cotx019 comparetotal   1   1  -> 0
cotx020 comparetotal   1   2  -> -1
cotx021 comparetotal   2  -2  -> 1
cotx022 comparetotal   2  -1  -> 1
cotx023 comparetotal   2   0  -> 1
cotx025 comparetotal   2   1  -> 1
cotx026 comparetotal   2   2  -> 0

cotx031 comparetotal  -20  -20  -> 0
cotx032 comparetotal  -20  -10  -> -1
cotx033 comparetotal  -20   00  -> -1
cotx034 comparetotal  -20   10  -> -1
cotx035 comparetotal  -20   20  -> -1
cotx036 comparetotal  -10  -20  -> 1
cotx037 comparetotal  -10  -10  -> 0
cotx038 comparetotal  -10   00  -> -1
cotx039 comparetotal  -10   10  -> -1
cotx040 comparetotal  -10   20  -> -1
cotx041 comparetotal   00  -20  -> 1
cotx042 comparetotal   00  -10  -> 1
cotx043 comparetotal   00   00  -> 0
cotx044 comparetotal   00   10  -> -1
cotx045 comparetotal   00   20  -> -1
cotx046 comparetotal   10  -20  -> 1
cotx047 comparetotal   10  -10  -> 1
cotx048 comparetotal   10   00  -> 1
cotx049 comparetotal   10   10  -> 0
cotx050 comparetotal   10   20  -> -1
cotx051 comparetotal   20  -20  -> 1
cotx052 comparetotal   20  -10  -> 1
cotx053 comparetotal   20   00  -> 1
cotx055 comparetotal   20   10  -> 1
cotx056 comparetotal   20   20  -> 0

cotx061 comparetotal  -2.0  -2.0  -> 0
cotx062 comparetotal  -2.0  -1.0  -> -1
cotx063 comparetotal  -2.0   0.0  -> -1
cotx064 comparetotal  -2.0   1.0  -> -1
cotx065 comparetotal  -2.0   2.0  -> -1
cotx066 comparetotal  -1.0  -2.0  -> 1
cotx067 comparetotal  -1.0  -1.0  -> 0
cotx068 comparetotal  -1.0   0.0  -> -1
cotx069 comparetotal  -1.0   1.0  -> -1
cotx070 comparetotal  -1.0   2.0  -> -1
cotx071 comparetotal   0.0  -2.0  -> 1
cotx072 comparetotal   0.0  -1.0  -> 1
cotx073 comparetotal   0.0   0.0  -> 0
cotx074 comparetotal   0.0   1.0  -> -1
cotx075 comparetotal   0.0   2.0  -> -1
cotx076 comparetotal   1.0  -2.0  -> 1
cotx077 comparetotal   1.0  -1.0  -> 1
cotx078 comparetotal   1.0   0.0  -> 1
cotx079 comparetotal   1.0   1.0  -> 0
cotx080 comparetotal   1.0   2.0  -> -1
cotx081 comparetotal   2.0  -2.0  -> 1
cotx082 comparetotal   2.0  -1.0  -> 1
cotx083 comparetotal   2.0   0.0  -> 1
cotx085 comparetotal   2.0   1.0  -> 1
cotx086 comparetotal   2.0   2.0  -> 0

-- now some cases which might overflow if subtract were used
maxexponent: 999999999
minexponent: -999999999
cotx090 comparetotal  9.99999999E+999999999 9.99999999E+999999999  -> 0
cotx091 comparetotal -9.99999999E+999999999 9.99999999E+999999999  -> -1
cotx092 comparetotal  9.99999999E+999999999 -9.99999999E+999999999 -> 1
cotx093 comparetotal -9.99999999E+999999999 -9.99999999E+999999999 -> 0

-- Examples
cotx094 comparetotal  12.73  127.9  -> -1
cotx095 comparetotal  -127   12     -> -1
cotx096 comparetotal  12.30  12.3   -> -1
cotx097 comparetotal  12.30  12.30  ->  0
cotx098 comparetotal  12.3   12.300 ->  1
cotx099 comparetotal  12.3   NaN    -> -1

-- some differing length/exponent cases
-- in this first group, compare would compare all equal
cotx100 comparetotal   7.0    7.0    -> 0
cotx101 comparetotal   7.0    7      -> -1
cotx102 comparetotal   7      7.0    -> 1
cotx103 comparetotal   7E+0   7.0    -> 1
cotx104 comparetotal   70E-1  7.0    -> 0
cotx105 comparetotal   0.7E+1 7      -> 0
cotx106 comparetotal   70E-1  7      -> -1
cotx107 comparetotal   7.0    7E+0   -> -1
cotx108 comparetotal   7.0    70E-1  -> 0
cotx109 comparetotal   7      0.7E+1 -> 0
cotx110 comparetotal   7      70E-1  -> 1

cotx120 comparetotal   8.0    7.0    -> 1
cotx121 comparetotal   8.0    7      -> 1
cotx122 comparetotal   8      7.0    -> 1
cotx123 comparetotal   8E+0   7.0    -> 1
cotx124 comparetotal   80E-1  7.0    -> 1
cotx125 comparetotal   0.8E+1 7      -> 1
cotx126 comparetotal   80E-1  7      -> 1
cotx127 comparetotal   8.0    7E+0   -> 1
cotx128 comparetotal   8.0    70E-1  -> 1
cotx129 comparetotal   8      0.7E+1  -> 1
cotx130 comparetotal   8      70E-1  -> 1

cotx140 comparetotal   8.0    9.0    -> -1
cotx141 comparetotal   8.0    9      -> -1
cotx142 comparetotal   8      9.0    -> -1
cotx143 comparetotal   8E+0   9.0    -> -1
cotx144 comparetotal   80E-1  9.0    -> -1
cotx145 comparetotal   0.8E+1 9      -> -1
cotx146 comparetotal   80E-1  9      -> -1
cotx147 comparetotal   8.0    9E+0   -> -1
cotx148 comparetotal   8.0    90E-1  -> -1
cotx149 comparetotal   8      0.9E+1 -> -1
cotx150 comparetotal   8      90E-1  -> -1

-- and again, with sign changes -+ ..
cotx200 comparetotal  -7.0    7.0    -> -1
cotx201 comparetotal  -7.0    7      -> -1
cotx202 comparetotal  -7      7.0    -> -1
cotx203 comparetotal  -7E+0   7.0    -> -1
cotx204 comparetotal  -70E-1  7.0    -> -1
cotx205 comparetotal  -0.7E+1 7      -> -1
cotx206 comparetotal  -70E-1  7      -> -1
cotx207 comparetotal  -7.0    7E+0   -> -1
cotx208 comparetotal  -7.0    70E-1  -> -1
cotx209 comparetotal  -7      0.7E+1 -> -1
cotx210 comparetotal  -7      70E-1  -> -1

cotx220 comparetotal  -8.0    7.0    -> -1
cotx221 comparetotal  -8.0    7      -> -1
cotx222 comparetotal  -8      7.0    -> -1
cotx223 comparetotal  -8E+0   7.0    -> -1
cotx224 comparetotal  -80E-1  7.0    -> -1
cotx225 comparetotal  -0.8E+1 7      -> -1
cotx226 comparetotal  -80E-1  7      -> -1
cotx227 comparetotal  -8.0    7E+0   -> -1
cotx228 comparetotal  -8.0    70E-1  -> -1
cotx229 comparetotal  -8      0.7E+1 -> -1
cotx230 comparetotal  -8      70E-1  -> -1

cotx240 comparetotal  -8.0    9.0    -> -1
cotx241 comparetotal  -8.0    9      -> -1
cotx242 comparetotal  -8      9.0    -> -1
cotx243 comparetotal  -8E+0   9.0    -> -1
cotx244 comparetotal  -80E-1  9.0    -> -1
cotx245 comparetotal  -0.8E+1 9      -> -1
cotx246 comparetotal  -80E-1  9      -> -1
cotx247 comparetotal  -8.0    9E+0   -> -1
cotx248 comparetotal  -8.0    90E-1  -> -1
cotx249 comparetotal  -8      0.9E+1 -> -1
cotx250 comparetotal  -8      90E-1  -> -1

-- and again, with sign changes +- ..
cotx300 comparetotal   7.0    -7.0    -> 1
cotx301 comparetotal   7.0    -7      -> 1
cotx302 comparetotal   7      -7.0    -> 1
cotx303 comparetotal   7E+0   -7.0    -> 1
cotx304 comparetotal   70E-1  -7.0    -> 1
cotx305 comparetotal   .7E+1  -7      -> 1
cotx306 comparetotal   70E-1  -7      -> 1
cotx307 comparetotal   7.0    -7E+0   -> 1
cotx308 comparetotal   7.0    -70E-1  -> 1
cotx309 comparetotal   7      -.7E+1  -> 1
cotx310 comparetotal   7      -70E-1  -> 1

cotx320 comparetotal   8.0    -7.0    -> 1
cotx321 comparetotal   8.0    -7      -> 1
cotx322 comparetotal   8      -7.0    -> 1
cotx323 comparetotal   8E+0   -7.0    -> 1
cotx324 comparetotal   80E-1  -7.0    -> 1
cotx325 comparetotal   .8E+1  -7      -> 1
cotx326 comparetotal   80E-1  -7      -> 1
cotx327 comparetotal   8.0    -7E+0   -> 1
cotx328 comparetotal   8.0    -70E-1  -> 1
cotx329 comparetotal   8      -.7E+1  -> 1
cotx330 comparetotal   8      -70E-1  -> 1

cotx340 comparetotal   8.0    -9.0    -> 1
cotx341 comparetotal   8.0    -9      -> 1
cotx342 comparetotal   8      -9.0    -> 1
cotx343 comparetotal   8E+0   -9.0    -> 1
cotx344 comparetotal   80E-1  -9.0    -> 1
cotx345 comparetotal   .8E+1  -9      -> 1
cotx346 comparetotal   80E-1  -9      -> 1
cotx347 comparetotal   8.0    -9E+0   -> 1
cotx348 comparetotal   8.0    -90E-1  -> 1
cotx349 comparetotal   8      -.9E+1  -> 1
cotx350 comparetotal   8      -90E-1  -> 1

-- and again, with sign changes -- ..
cotx400 comparetotal   -7.0    -7.0    -> 0
cotx401 comparetotal   -7.0    -7      -> 1
cotx402 comparetotal   -7      -7.0    -> -1
cotx403 comparetotal   -7E+0   -7.0    -> -1
cotx404 comparetotal   -70E-1  -7.0    -> 0
cotx405 comparetotal   -.7E+1  -7      -> 0
cotx406 comparetotal   -70E-1  -7      -> 1
cotx407 comparetotal   -7.0    -7E+0   -> 1
cotx408 comparetotal   -7.0    -70E-1  -> 0
cotx409 comparetotal   -7      -.7E+1  -> 0
cotx410 comparetotal   -7      -70E-1  -> -1

cotx420 comparetotal   -8.0    -7.0    -> -1
cotx421 comparetotal   -8.0    -7      -> -1
cotx422 comparetotal   -8      -7.0    -> -1
cotx423 comparetotal   -8E+0   -7.0    -> -1
cotx424 comparetotal   -80E-1  -7.0    -> -1
cotx425 comparetotal   -.8E+1  -7      -> -1
cotx426 comparetotal   -80E-1  -7      -> -1
cotx427 comparetotal   -8.0    -7E+0   -> -1
cotx428 comparetotal   -8.0    -70E-1  -> -1
cotx429 comparetotal   -8      -.7E+1  -> -1
cotx430 comparetotal   -8      -70E-1  -> -1

cotx440 comparetotal   -8.0    -9.0    -> 1
cotx441 comparetotal   -8.0    -9      -> 1
cotx442 comparetotal   -8      -9.0    -> 1
cotx443 comparetotal   -8E+0   -9.0    -> 1
cotx444 comparetotal   -80E-1  -9.0    -> 1
cotx445 comparetotal   -.8E+1  -9      -> 1
cotx446 comparetotal   -80E-1  -9      -> 1
cotx447 comparetotal   -8.0    -9E+0   -> 1
cotx448 comparetotal   -8.0    -90E-1  -> 1
cotx449 comparetotal   -8      -.9E+1  -> 1
cotx450 comparetotal   -8      -90E-1  -> 1


-- testcases that subtract to lots of zeros at boundaries [pgr]
precision: 40
cotx470 comparetotal 123.4560000000000000E789 123.456E789 -> -1
cotx471 comparetotal 123.456000000000000E-89 123.456E-89 -> -1
cotx472 comparetotal 123.45600000000000E789 123.456E789 -> -1
cotx473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
cotx474 comparetotal 123.456000000000E789 123.456E789 -> -1
cotx475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
cotx476 comparetotal 123.4560000000E789 123.456E789 -> -1
cotx477 comparetotal 123.456000000E-89 123.456E-89 -> -1
cotx478 comparetotal 123.45600000E789 123.456E789 -> -1
cotx479 comparetotal 123.4560000E-89 123.456E-89 -> -1
cotx480 comparetotal 123.456000E789 123.456E789 -> -1
cotx481 comparetotal 123.45600E-89 123.456E-89 -> -1
cotx482 comparetotal 123.4560E789 123.456E789 -> -1
cotx483 comparetotal 123.456E-89 123.456E-89 -> 0
cotx484 comparetotal 123.456E-89 123.4560000000000000E-89 -> 1
cotx485 comparetotal 123.456E789 123.456000000000000E789 -> 1
cotx486 comparetotal 123.456E-89 123.45600000000000E-89 -> 1
cotx487 comparetotal 123.456E789 123.4560000000000E789 -> 1
cotx488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
cotx489 comparetotal 123.456E789 123.45600000000E789 -> 1
cotx490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
cotx491 comparetotal 123.456E789 123.456000000E789 -> 1
cotx492 comparetotal 123.456E-89 123.45600000E-89 -> 1
cotx493 comparetotal 123.456E789 123.4560000E789 -> 1
cotx494 comparetotal 123.456E-89 123.456000E-89 -> 1
cotx495 comparetotal 123.456E789 123.45600E789 -> 1
cotx496 comparetotal 123.456E-89 123.4560E-89 -> 1
cotx497 comparetotal 123.456E789 123.456E789 -> 0

-- wide-ranging, around precision; signs equal
precision: 9
cotx500 comparetotal    1     1E-15    -> 1
cotx501 comparetotal    1     1E-14    -> 1
cotx502 comparetotal    1     1E-13    -> 1
cotx503 comparetotal    1     1E-12    -> 1
cotx504 comparetotal    1     1E-11    -> 1
cotx505 comparetotal    1     1E-10    -> 1
cotx506 comparetotal    1     1E-9     -> 1
cotx507 comparetotal    1     1E-8     -> 1
cotx508 comparetotal    1     1E-7     -> 1
cotx509 comparetotal    1     1E-6     -> 1
cotx510 comparetotal    1     1E-5     -> 1
cotx511 comparetotal    1     1E-4     -> 1
cotx512 comparetotal    1     1E-3     -> 1
cotx513 comparetotal    1     1E-2     -> 1
cotx514 comparetotal    1     1E-1     -> 1
cotx515 comparetotal    1     1E-0     -> 0
cotx516 comparetotal    1     1E+1     -> -1
cotx517 comparetotal    1     1E+2     -> -1
cotx518 comparetotal    1     1E+3     -> -1
cotx519 comparetotal    1     1E+4     -> -1
cotx521 comparetotal    1     1E+5     -> -1
cotx522 comparetotal    1     1E+6     -> -1
cotx523 comparetotal    1     1E+7     -> -1
cotx524 comparetotal    1     1E+8     -> -1
cotx525 comparetotal    1     1E+9     -> -1
cotx526 comparetotal    1     1E+10    -> -1
cotx527 comparetotal    1     1E+11    -> -1
cotx528 comparetotal    1     1E+12    -> -1
cotx529 comparetotal    1     1E+13    -> -1
cotx530 comparetotal    1     1E+14    -> -1
cotx531 comparetotal    1     1E+15    -> -1
-- LR swap
cotx540 comparetotal    1E-15  1       -> -1
cotx541 comparetotal    1E-14  1       -> -1
cotx542 comparetotal    1E-13  1       -> -1
cotx543 comparetotal    1E-12  1       -> -1
cotx544 comparetotal    1E-11  1       -> -1
cotx545 comparetotal    1E-10  1       -> -1
cotx546 comparetotal    1E-9   1       -> -1
cotx547 comparetotal    1E-8   1       -> -1
cotx548 comparetotal    1E-7   1       -> -1
cotx549 comparetotal    1E-6   1       -> -1
cotx550 comparetotal    1E-5   1       -> -1
cotx551 comparetotal    1E-4   1       -> -1
cotx552 comparetotal    1E-3   1       -> -1
cotx553 comparetotal    1E-2   1       -> -1
cotx554 comparetotal    1E-1   1       -> -1
cotx555 comparetotal    1E-0   1       ->  0
cotx556 comparetotal    1E+1   1       ->  1
cotx557 comparetotal    1E+2   1       ->  1
cotx558 comparetotal    1E+3   1       ->  1
cotx559 comparetotal    1E+4   1       ->  1
cotx561 comparetotal    1E+5   1       ->  1
cotx562 comparetotal    1E+6   1       ->  1
cotx563 comparetotal    1E+7   1       ->  1
cotx564 comparetotal    1E+8   1       ->  1
cotx565 comparetotal    1E+9   1       ->  1
cotx566 comparetotal    1E+10  1       ->  1
cotx567 comparetotal    1E+11  1       ->  1
cotx568 comparetotal    1E+12  1       ->  1
cotx569 comparetotal    1E+13  1       ->  1
cotx570 comparetotal    1E+14  1       ->  1
cotx571 comparetotal    1E+15  1       ->  1
-- similar with an useful coefficient, one side only
cotx580 comparetotal  0.000000987654321     1E-15    -> 1
cotx581 comparetotal  0.000000987654321     1E-14    -> 1
cotx582 comparetotal  0.000000987654321     1E-13    -> 1
cotx583 comparetotal  0.000000987654321     1E-12    -> 1
cotx584 comparetotal  0.000000987654321     1E-11    -> 1
cotx585 comparetotal  0.000000987654321     1E-10    -> 1
cotx586 comparetotal  0.000000987654321     1E-9     -> 1
cotx587 comparetotal  0.000000987654321     1E-8     -> 1
cotx588 comparetotal  0.000000987654321     1E-7     -> 1
cotx589 comparetotal  0.000000987654321     1E-6     -> -1
cotx590 comparetotal  0.000000987654321     1E-5     -> -1
cotx591 comparetotal  0.000000987654321     1E-4     -> -1
cotx592 comparetotal  0.000000987654321     1E-3     -> -1
cotx593 comparetotal  0.000000987654321     1E-2     -> -1
cotx594 comparetotal  0.000000987654321     1E-1     -> -1
cotx595 comparetotal  0.000000987654321     1E-0     -> -1
cotx596 comparetotal  0.000000987654321     1E+1     -> -1
cotx597 comparetotal  0.000000987654321     1E+2     -> -1
cotx598 comparetotal  0.000000987654321     1E+3     -> -1
cotx599 comparetotal  0.000000987654321     1E+4     -> -1

-- check some unit-y traps
precision: 20
cotx600 comparetotal   12            12.2345 -> -1
cotx601 comparetotal   12.0          12.2345 -> -1
cotx602 comparetotal   12.00         12.2345 -> -1
cotx603 comparetotal   12.000        12.2345 -> -1
cotx604 comparetotal   12.0000       12.2345 -> -1
cotx605 comparetotal   12.00000      12.2345 -> -1
cotx606 comparetotal   12.000000     12.2345 -> -1
cotx607 comparetotal   12.0000000    12.2345 -> -1
cotx608 comparetotal   12.00000000   12.2345 -> -1
cotx609 comparetotal   12.000000000  12.2345 -> -1
cotx610 comparetotal   12.1234 12            ->  1
cotx611 comparetotal   12.1234 12.0          ->  1
cotx612 comparetotal   12.1234 12.00         ->  1
cotx613 comparetotal   12.1234 12.000        ->  1
cotx614 comparetotal   12.1234 12.0000       ->  1
cotx615 comparetotal   12.1234 12.00000      ->  1
cotx616 comparetotal   12.1234 12.000000     ->  1
cotx617 comparetotal   12.1234 12.0000000    ->  1
cotx618 comparetotal   12.1234 12.00000000   ->  1
cotx619 comparetotal   12.1234 12.000000000  ->  1
cotx620 comparetotal  -12           -12.2345 ->  1
cotx621 comparetotal  -12.0         -12.2345 ->  1
cotx622 comparetotal  -12.00        -12.2345 ->  1
cotx623 comparetotal  -12.000       -12.2345 ->  1
cotx624 comparetotal  -12.0000      -12.2345 ->  1
cotx625 comparetotal  -12.00000     -12.2345 ->  1
cotx626 comparetotal  -12.000000    -12.2345 ->  1
cotx627 comparetotal  -12.0000000   -12.2345 ->  1
cotx628 comparetotal  -12.00000000  -12.2345 ->  1
cotx629 comparetotal  -12.000000000 -12.2345 ->  1
cotx630 comparetotal  -12.1234 -12           -> -1
cotx631 comparetotal  -12.1234 -12.0         -> -1
cotx632 comparetotal  -12.1234 -12.00        -> -1
cotx633 comparetotal  -12.1234 -12.000       -> -1
cotx634 comparetotal  -12.1234 -12.0000      -> -1
cotx635 comparetotal  -12.1234 -12.00000     -> -1
cotx636 comparetotal  -12.1234 -12.000000    -> -1
cotx637 comparetotal  -12.1234 -12.0000000   -> -1
cotx638 comparetotal  -12.1234 -12.00000000  -> -1
cotx639 comparetotal  -12.1234 -12.000000000 -> -1
precision: 9

-- extended zeros
cotx640 comparetotal   0     0   -> 0
cotx641 comparetotal   0    -0   -> 1
cotx642 comparetotal   0    -0.0 -> 1
cotx643 comparetotal   0     0.0 -> 1
cotx644 comparetotal  -0     0   -> -1
cotx645 comparetotal  -0    -0   -> 0
cotx646 comparetotal  -0    -0.0 -> -1
cotx647 comparetotal  -0     0.0 -> -1
cotx648 comparetotal   0.0   0   -> -1
cotx649 comparetotal   0.0  -0   -> 1
cotx650 comparetotal   0.0  -0.0 -> 1
cotx651 comparetotal   0.0   0.0 -> 0
cotx652 comparetotal  -0.0   0   -> -1
cotx653 comparetotal  -0.0  -0   -> 1
cotx654 comparetotal  -0.0  -0.0 -> 0
cotx655 comparetotal  -0.0   0.0 -> -1

cotx656 comparetotal  -0E1   0.0 -> -1
cotx657 comparetotal  -0E2   0.0 -> -1
cotx658 comparetotal   0E1   0.0 -> 1
cotx659 comparetotal   0E2   0.0 -> 1
cotx660 comparetotal  -0E1   0   -> -1
cotx661 comparetotal  -0E2   0   -> -1
cotx662 comparetotal   0E1   0   -> 1
cotx663 comparetotal   0E2   0   -> 1
cotx664 comparetotal  -0E1  -0E1 -> 0
cotx665 comparetotal  -0E2  -0E1 -> -1
cotx666 comparetotal   0E1  -0E1 -> 1
cotx667 comparetotal   0E2  -0E1 -> 1
cotx668 comparetotal  -0E1  -0E2 -> 1
cotx669 comparetotal  -0E2  -0E2 -> 0
cotx670 comparetotal   0E1  -0E2 -> 1
cotx671 comparetotal   0E2  -0E2 -> 1
cotx672 comparetotal  -0E1   0E1 -> -1
cotx673 comparetotal  -0E2   0E1 -> -1
cotx674 comparetotal   0E1   0E1 -> 0
cotx675 comparetotal   0E2   0E1 -> 1
cotx676 comparetotal  -0E1   0E2 -> -1
cotx677 comparetotal  -0E2   0E2 -> -1
cotx678 comparetotal   0E1   0E2 -> -1
cotx679 comparetotal   0E2   0E2 -> 0

-- trailing zeros; unit-y
precision: 20
cotx680 comparetotal   12    12           -> 0
cotx681 comparetotal   12    12.0         -> 1
cotx682 comparetotal   12    12.00        -> 1
cotx683 comparetotal   12    12.000       -> 1
cotx684 comparetotal   12    12.0000      -> 1
cotx685 comparetotal   12    12.00000     -> 1
cotx686 comparetotal   12    12.000000    -> 1
cotx687 comparetotal   12    12.0000000   -> 1
cotx688 comparetotal   12    12.00000000  -> 1
cotx689 comparetotal   12    12.000000000 -> 1
cotx690 comparetotal   12              12 -> 0
cotx691 comparetotal   12.0            12 -> -1
cotx692 comparetotal   12.00           12 -> -1
cotx693 comparetotal   12.000          12 -> -1
cotx694 comparetotal   12.0000         12 -> -1
cotx695 comparetotal   12.00000        12 -> -1
cotx696 comparetotal   12.000000       12 -> -1
cotx697 comparetotal   12.0000000      12 -> -1
cotx698 comparetotal   12.00000000     12 -> -1
cotx699 comparetotal   12.000000000    12 -> -1

-- long operand checks
maxexponent: 999
minexponent: -999
precision: 9
cotx701 comparetotal 12345678000  1 ->  1
cotx702 comparetotal 1 12345678000  -> -1
cotx703 comparetotal 1234567800   1 ->  1
cotx704 comparetotal 1 1234567800   -> -1
cotx705 comparetotal 1234567890   1 ->  1
cotx706 comparetotal 1 1234567890   -> -1
cotx707 comparetotal 1234567891   1 ->  1
cotx708 comparetotal 1 1234567891   -> -1
cotx709 comparetotal 12345678901  1 ->  1
cotx710 comparetotal 1 12345678901  -> -1
cotx711 comparetotal 1234567896   1 ->  1
cotx712 comparetotal 1 1234567896   -> -1
cotx713 comparetotal -1234567891  1 -> -1
cotx714 comparetotal 1 -1234567891  ->  1
cotx715 comparetotal -12345678901 1 -> -1
cotx716 comparetotal 1 -12345678901 ->  1
cotx717 comparetotal -1234567896  1 -> -1
cotx718 comparetotal 1 -1234567896  ->  1

precision: 15
-- same with plenty of precision
cotx721 comparetotal 12345678000 1 -> 1
cotx722 comparetotal 1 12345678000 -> -1
cotx723 comparetotal 1234567800  1 -> 1
cotx724 comparetotal 1 1234567800  -> -1
cotx725 comparetotal 1234567890  1 -> 1
cotx726 comparetotal 1 1234567890  -> -1
cotx727 comparetotal 1234567891  1 -> 1
cotx728 comparetotal 1 1234567891  -> -1
cotx729 comparetotal 12345678901 1 -> 1
cotx730 comparetotal 1 12345678901 -> -1
cotx731 comparetotal 1234567896  1 -> 1
cotx732 comparetotal 1 1234567896  -> -1

-- residue cases
precision: 5
cotx740 comparetotal  1  0.9999999  -> 1
cotx741 comparetotal  1  0.999999   -> 1
cotx742 comparetotal  1  0.99999    -> 1
cotx743 comparetotal  1  1.0000     -> 1
cotx744 comparetotal  1  1.00001    -> -1
cotx745 comparetotal  1  1.000001   -> -1
cotx746 comparetotal  1  1.0000001  -> -1
cotx750 comparetotal  0.9999999  1  -> -1
cotx751 comparetotal  0.999999   1  -> -1
cotx752 comparetotal  0.99999    1  -> -1
cotx753 comparetotal  1.0000     1  -> -1
cotx754 comparetotal  1.00001    1  -> 1
cotx755 comparetotal  1.000001   1  -> 1
cotx756 comparetotal  1.0000001  1  -> 1

-- a selection of longies
cotx760 comparetotal -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> -1
cotx761 comparetotal -36852134.84194296250843579428931 -36852134.84194296250843579428931  -> 0
cotx762 comparetotal -36852134.94194296250843579428931 -36852134.84194296250843579428931  -> -1
cotx763 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
-- precisions above or below the difference should have no effect
precision:   11
cotx764 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:   10
cotx765 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    9
cotx766 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    8
cotx767 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    7
cotx768 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    6
cotx769 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    5
cotx770 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    4
cotx771 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    3
cotx772 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    2
cotx773 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    1
cotx774 comparetotal -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1

-- Specials
precision:   9
cotx780 comparetotal  Inf  -Inf   ->  1
cotx781 comparetotal  Inf  -1000  ->  1
cotx782 comparetotal  Inf  -1     ->  1
cotx783 comparetotal  Inf  -0     ->  1
cotx784 comparetotal  Inf   0     ->  1
cotx785 comparetotal  Inf   1     ->  1
cotx786 comparetotal  Inf   1000  ->  1
cotx787 comparetotal  Inf   Inf   ->  0
cotx788 comparetotal -1000  Inf   -> -1
cotx789 comparetotal -Inf   Inf   -> -1
cotx790 comparetotal -1     Inf   -> -1
cotx791 comparetotal -0     Inf   -> -1
cotx792 comparetotal  0     Inf   -> -1
cotx793 comparetotal  1     Inf   -> -1
cotx794 comparetotal  1000  Inf   -> -1
cotx795 comparetotal  Inf   Inf   ->  0

cotx800 comparetotal -Inf  -Inf   ->  0
cotx801 comparetotal -Inf  -1000  -> -1
cotx802 comparetotal -Inf  -1     -> -1
cotx803 comparetotal -Inf  -0     -> -1
cotx804 comparetotal -Inf   0     -> -1
cotx805 comparetotal -Inf   1     -> -1
cotx806 comparetotal -Inf   1000  -> -1
cotx807 comparetotal -Inf   Inf   -> -1
cotx808 comparetotal -Inf  -Inf   ->  0
cotx809 comparetotal -1000 -Inf   ->  1
cotx810 comparetotal -1    -Inf   ->  1
cotx811 comparetotal -0    -Inf   ->  1
cotx812 comparetotal  0    -Inf   ->  1
cotx813 comparetotal  1    -Inf   ->  1
cotx814 comparetotal  1000 -Inf   ->  1
cotx815 comparetotal  Inf  -Inf   ->  1

cotx821 comparetotal  NaN -Inf    ->  1
cotx822 comparetotal  NaN -1000   ->  1
cotx823 comparetotal  NaN -1      ->  1
cotx824 comparetotal  NaN -0      ->  1
cotx825 comparetotal  NaN  0      ->  1
cotx826 comparetotal  NaN  1      ->  1
cotx827 comparetotal  NaN  1000   ->  1
cotx828 comparetotal  NaN  Inf    ->  1
cotx829 comparetotal  NaN  NaN    ->  0
cotx830 comparetotal -Inf  NaN    ->  -1
cotx831 comparetotal -1000 NaN    ->  -1
cotx832 comparetotal -1    NaN    ->  -1
cotx833 comparetotal -0    NaN    ->  -1
cotx834 comparetotal  0    NaN    ->  -1
cotx835 comparetotal  1    NaN    ->  -1
cotx836 comparetotal  1000 NaN    ->  -1
cotx837 comparetotal  Inf  NaN    ->  -1
cotx838 comparetotal -NaN -NaN    ->  0
cotx839 comparetotal +NaN -NaN    ->  1
cotx840 comparetotal -NaN +NaN    ->  -1

cotx841 comparetotal  sNaN -sNaN  ->  1
cotx842 comparetotal  sNaN -NaN   ->  1
cotx843 comparetotal  sNaN -Inf   ->  1
cotx844 comparetotal  sNaN -1000  ->  1
cotx845 comparetotal  sNaN -1     ->  1
cotx846 comparetotal  sNaN -0     ->  1
cotx847 comparetotal  sNaN  0     ->  1
cotx848 comparetotal  sNaN  1     ->  1
cotx849 comparetotal  sNaN  1000  ->  1
cotx850 comparetotal  sNaN  NaN   ->  -1
cotx851 comparetotal  sNaN sNaN   ->  0

cotx852 comparetotal -sNaN sNaN   ->  -1
cotx853 comparetotal -NaN  sNaN   ->  -1
cotx854 comparetotal -Inf  sNaN   ->  -1
cotx855 comparetotal -1000 sNaN   ->  -1
cotx856 comparetotal -1    sNaN   ->  -1
cotx857 comparetotal -0    sNaN   ->  -1
cotx858 comparetotal  0    sNaN   ->  -1
cotx859 comparetotal  1    sNaN   ->  -1
cotx860 comparetotal  1000 sNaN   ->  -1
cotx861 comparetotal  Inf  sNaN   ->  -1
cotx862 comparetotal  NaN  sNaN   ->  1
cotx863 comparetotal  sNaN sNaN   ->  0

cotx871 comparetotal  -sNaN -sNaN  ->  0
cotx872 comparetotal  -sNaN -NaN   ->  1
cotx873 comparetotal  -sNaN -Inf   ->  -1
cotx874 comparetotal  -sNaN -1000  ->  -1
cotx875 comparetotal  -sNaN -1     ->  -1
cotx876 comparetotal  -sNaN -0     ->  -1
cotx877 comparetotal  -sNaN  0     ->  -1
cotx878 comparetotal  -sNaN  1     ->  -1
cotx879 comparetotal  -sNaN  1000  ->  -1
cotx880 comparetotal  -sNaN  NaN   ->  -1
cotx881 comparetotal  -sNaN sNaN   ->  -1

cotx882 comparetotal -sNaN -sNaN   ->  0
cotx883 comparetotal -NaN  -sNaN   ->  -1
cotx884 comparetotal -Inf  -sNaN   ->  1
cotx885 comparetotal -1000 -sNaN   ->  1
cotx886 comparetotal -1    -sNaN   ->  1
cotx887 comparetotal -0    -sNaN   ->  1
cotx888 comparetotal  0    -sNaN   ->  1
cotx889 comparetotal  1    -sNaN   ->  1
cotx890 comparetotal  1000 -sNaN   ->  1
cotx891 comparetotal  Inf  -sNaN   ->  1
cotx892 comparetotal  NaN  -sNaN   ->  1
cotx893 comparetotal  sNaN -sNaN   ->  1

-- NaNs with payload
cotx960 comparetotal  NaN9 -Inf   ->  1
cotx961 comparetotal  NaN8  999   ->  1
cotx962 comparetotal  NaN77 Inf   ->  1
cotx963 comparetotal -NaN67 NaN5  ->  -1
cotx964 comparetotal -Inf  -NaN4  ->  1
cotx965 comparetotal -999  -NaN33 ->  1
cotx966 comparetotal  Inf   NaN2  ->  -1

cotx970 comparetotal -NaN41 -NaN42 -> 1
cotx971 comparetotal +NaN41 -NaN42 -> 1
cotx972 comparetotal -NaN41 +NaN42 -> -1
cotx973 comparetotal +NaN41 +NaN42 -> -1
cotx974 comparetotal -NaN42 -NaN01 -> -1
cotx975 comparetotal +NaN42 -NaN01 ->  1
cotx976 comparetotal -NaN42 +NaN01 -> -1
cotx977 comparetotal +NaN42 +NaN01 ->  1

cotx980 comparetotal -sNaN771 -sNaN772 -> 1
cotx981 comparetotal +sNaN771 -sNaN772 -> 1
cotx982 comparetotal -sNaN771 +sNaN772 -> -1
cotx983 comparetotal +sNaN771 +sNaN772 -> -1
cotx984 comparetotal -sNaN772 -sNaN771 -> -1
cotx985 comparetotal +sNaN772 -sNaN771 ->  1
cotx986 comparetotal -sNaN772 +sNaN771 -> -1
cotx987 comparetotal +sNaN772 +sNaN771 ->  1

cotx991 comparetotal -sNaN99 -Inf    -> -1
cotx992 comparetotal  sNaN98 -11     ->  1
cotx993 comparetotal  sNaN97  NaN    -> -1
cotx994 comparetotal  sNaN16 sNaN94  -> -1
cotx995 comparetotal  NaN85  sNaN83  ->  1
cotx996 comparetotal -Inf    sNaN92  -> -1
cotx997 comparetotal  088    sNaN81  -> -1
cotx998 comparetotal  Inf    sNaN90  -> -1
cotx999 comparetotal  NaN   -sNaN89  ->  1

-- overflow and underflow tests .. subnormal results now allowed
maxExponent: 999999999
minexponent: -999999999
cotx1080 comparetotal +1.23456789012345E-0 9E+999999999 -> -1
cotx1081 comparetotal 9E+999999999 +1.23456789012345E-0 ->  1
cotx1082 comparetotal +0.100 9E-999999999               ->  1
cotx1083 comparetotal 9E-999999999 +0.100               -> -1
cotx1085 comparetotal -1.23456789012345E-0 9E+999999999 -> -1
cotx1086 comparetotal 9E+999999999 -1.23456789012345E-0 ->  1
cotx1087 comparetotal -0.100 9E-999999999               -> -1
cotx1088 comparetotal 9E-999999999 -0.100               ->  1

cotx1089 comparetotal 1e-599999999 1e-400000001   -> -1
cotx1090 comparetotal 1e-599999999 1e-400000000   -> -1
cotx1091 comparetotal 1e-600000000 1e-400000000   -> -1
cotx1092 comparetotal 9e-999999998 0.01           -> -1
cotx1093 comparetotal 9e-999999998 0.1            -> -1
cotx1094 comparetotal 0.01 9e-999999998           ->  1
cotx1095 comparetotal 1e599999999 1e400000001     ->  1
cotx1096 comparetotal 1e599999999 1e400000000     ->  1
cotx1097 comparetotal 1e600000000 1e400000000     ->  1
cotx1098 comparetotal 9e999999998 100             ->  1
cotx1099 comparetotal 9e999999998 10              ->  1
cotx1100 comparetotal 100  9e999999998            -> -1
-- signs
cotx1101 comparetotal  1e+777777777  1e+411111111 ->  1
cotx1102 comparetotal  1e+777777777 -1e+411111111 ->  1
cotx1103 comparetotal -1e+777777777  1e+411111111 -> -1
cotx1104 comparetotal -1e+777777777 -1e+411111111 -> -1
cotx1105 comparetotal  1e-777777777  1e-411111111 -> -1
cotx1106 comparetotal  1e-777777777 -1e-411111111 ->  1
cotx1107 comparetotal -1e-777777777  1e-411111111 -> -1
cotx1108 comparetotal -1e-777777777 -1e-411111111 ->  1

-- spread zeros
cotx1110 comparetotal   0E-383  0       -> -1
cotx1111 comparetotal   0E-383 -0       ->  1
cotx1112 comparetotal  -0E-383  0       -> -1
cotx1113 comparetotal  -0E-383 -0       ->  1
cotx1114 comparetotal   0E-383  0E+384  -> -1
cotx1115 comparetotal   0E-383 -0E+384  ->  1
cotx1116 comparetotal  -0E-383  0E+384  -> -1
cotx1117 comparetotal  -0E-383 -0E+384  ->  1
cotx1118 comparetotal   0       0E+384  -> -1
cotx1119 comparetotal   0      -0E+384  ->  1
cotx1120 comparetotal  -0       0E+384  -> -1
cotx1121 comparetotal  -0      -0E+384  ->  1

cotx1130 comparetotal   0E+384  0       ->  1
cotx1131 comparetotal   0E+384 -0       ->  1
cotx1132 comparetotal  -0E+384  0       -> -1
cotx1133 comparetotal  -0E+384 -0       -> -1
cotx1134 comparetotal   0E+384  0E-383  ->  1
cotx1135 comparetotal   0E+384 -0E-383  ->  1
cotx1136 comparetotal  -0E+384  0E-383  -> -1
cotx1137 comparetotal  -0E+384 -0E-383  -> -1
cotx1138 comparetotal   0       0E-383  ->  1
cotx1139 comparetotal   0      -0E-383  ->  1
cotx1140 comparetotal  -0       0E-383  -> -1
cotx1141 comparetotal  -0      -0E-383  -> -1

-- Null tests
cotx9990 comparetotal 10  # -> NaN Invalid_operation
cotx9991 comparetotal  # 10 -> NaN Invalid_operation