summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/ddCompareSig.decTest
blob: 388a656e93cba65d3906bb722f6fa65a4a634095 (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
------------------------------------------------------------------------
-- ddCompareSig.decTest -- decDouble comparison; all NaNs signal      --
-- Copyright (c) IBM Corporation, 1981, 2007.  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.56

-- 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).

-- All operands and results are decDoubles.
precision:   16
maxExponent: 384
minExponent: -383
extended:    1
clamp:       1
rounding:    half_even

-- sanity checks
ddcms001 comparesig  -2  -2  -> 0
ddcms002 comparesig  -2  -1  -> -1
ddcms003 comparesig  -2   0  -> -1
ddcms004 comparesig  -2   1  -> -1
ddcms005 comparesig  -2   2  -> -1
ddcms006 comparesig  -1  -2  -> 1
ddcms007 comparesig  -1  -1  -> 0
ddcms008 comparesig  -1   0  -> -1
ddcms009 comparesig  -1   1  -> -1
ddcms010 comparesig  -1   2  -> -1
ddcms011 comparesig   0  -2  -> 1
ddcms012 comparesig   0  -1  -> 1
ddcms013 comparesig   0   0  -> 0
ddcms014 comparesig   0   1  -> -1
ddcms015 comparesig   0   2  -> -1
ddcms016 comparesig   1  -2  -> 1
ddcms017 comparesig   1  -1  -> 1
ddcms018 comparesig   1   0  -> 1
ddcms019 comparesig   1   1  -> 0
ddcms020 comparesig   1   2  -> -1
ddcms021 comparesig   2  -2  -> 1
ddcms022 comparesig   2  -1  -> 1
ddcms023 comparesig   2   0  -> 1
ddcms025 comparesig   2   1  -> 1
ddcms026 comparesig   2   2  -> 0

ddcms031 comparesig  -20  -20  -> 0
ddcms032 comparesig  -20  -10  -> -1
ddcms033 comparesig  -20   00  -> -1
ddcms034 comparesig  -20   10  -> -1
ddcms035 comparesig  -20   20  -> -1
ddcms036 comparesig  -10  -20  -> 1
ddcms037 comparesig  -10  -10  -> 0
ddcms038 comparesig  -10   00  -> -1
ddcms039 comparesig  -10   10  -> -1
ddcms040 comparesig  -10   20  -> -1
ddcms041 comparesig   00  -20  -> 1
ddcms042 comparesig   00  -10  -> 1
ddcms043 comparesig   00   00  -> 0
ddcms044 comparesig   00   10  -> -1
ddcms045 comparesig   00   20  -> -1
ddcms046 comparesig   10  -20  -> 1
ddcms047 comparesig   10  -10  -> 1
ddcms048 comparesig   10   00  -> 1
ddcms049 comparesig   10   10  -> 0
ddcms050 comparesig   10   20  -> -1
ddcms051 comparesig   20  -20  -> 1
ddcms052 comparesig   20  -10  -> 1
ddcms053 comparesig   20   00  -> 1
ddcms055 comparesig   20   10  -> 1
ddcms056 comparesig   20   20  -> 0

ddcms061 comparesig  -2.0  -2.0  -> 0
ddcms062 comparesig  -2.0  -1.0  -> -1
ddcms063 comparesig  -2.0   0.0  -> -1
ddcms064 comparesig  -2.0   1.0  -> -1
ddcms065 comparesig  -2.0   2.0  -> -1
ddcms066 comparesig  -1.0  -2.0  -> 1
ddcms067 comparesig  -1.0  -1.0  -> 0
ddcms068 comparesig  -1.0   0.0  -> -1
ddcms069 comparesig  -1.0   1.0  -> -1
ddcms070 comparesig  -1.0   2.0  -> -1
ddcms071 comparesig   0.0  -2.0  -> 1
ddcms072 comparesig   0.0  -1.0  -> 1
ddcms073 comparesig   0.0   0.0  -> 0
ddcms074 comparesig   0.0   1.0  -> -1
ddcms075 comparesig   0.0   2.0  -> -1
ddcms076 comparesig   1.0  -2.0  -> 1
ddcms077 comparesig   1.0  -1.0  -> 1
ddcms078 comparesig   1.0   0.0  -> 1
ddcms079 comparesig   1.0   1.0  -> 0
ddcms080 comparesig   1.0   2.0  -> -1
ddcms081 comparesig   2.0  -2.0  -> 1
ddcms082 comparesig   2.0  -1.0  -> 1
ddcms083 comparesig   2.0   0.0  -> 1
ddcms085 comparesig   2.0   1.0  -> 1
ddcms086 comparesig   2.0   2.0  -> 0

-- now some cases which might overflow if subtract were used
ddcms090 comparesig  9.999999999999999E+384 9.999999999999999E+384  -> 0
ddcms091 comparesig -9.999999999999999E+384 9.999999999999999E+384  -> -1
ddcms092 comparesig  9.999999999999999E+384 -9.999999999999999E+384 -> 1
ddcms093 comparesig -9.999999999999999E+384 -9.999999999999999E+384 -> 0

-- some differing length/exponent cases
ddcms100 comparesig   7.0    7.0    -> 0
ddcms101 comparesig   7.0    7      -> 0
ddcms102 comparesig   7      7.0    -> 0
ddcms103 comparesig   7E+0   7.0    -> 0
ddcms104 comparesig   70E-1  7.0    -> 0
ddcms105 comparesig   0.7E+1 7      -> 0
ddcms106 comparesig   70E-1  7      -> 0
ddcms107 comparesig   7.0    7E+0   -> 0
ddcms108 comparesig   7.0    70E-1  -> 0
ddcms109 comparesig   7      0.7E+1 -> 0
ddcms110 comparesig   7      70E-1  -> 0

ddcms120 comparesig   8.0    7.0    -> 1
ddcms121 comparesig   8.0    7      -> 1
ddcms122 comparesig   8      7.0    -> 1
ddcms123 comparesig   8E+0   7.0    -> 1
ddcms124 comparesig   80E-1  7.0    -> 1
ddcms125 comparesig   0.8E+1 7      -> 1
ddcms126 comparesig   80E-1  7      -> 1
ddcms127 comparesig   8.0    7E+0   -> 1
ddcms128 comparesig   8.0    70E-1  -> 1
ddcms129 comparesig   8      0.7E+1  -> 1
ddcms130 comparesig   8      70E-1  -> 1

ddcms140 comparesig   8.0    9.0    -> -1
ddcms141 comparesig   8.0    9      -> -1
ddcms142 comparesig   8      9.0    -> -1
ddcms143 comparesig   8E+0   9.0    -> -1
ddcms144 comparesig   80E-1  9.0    -> -1
ddcms145 comparesig   0.8E+1 9      -> -1
ddcms146 comparesig   80E-1  9      -> -1
ddcms147 comparesig   8.0    9E+0   -> -1
ddcms148 comparesig   8.0    90E-1  -> -1
ddcms149 comparesig   8      0.9E+1 -> -1
ddcms150 comparesig   8      90E-1  -> -1

-- and again, with sign changes -+ ..
ddcms200 comparesig  -7.0    7.0    -> -1
ddcms201 comparesig  -7.0    7      -> -1
ddcms202 comparesig  -7      7.0    -> -1
ddcms203 comparesig  -7E+0   7.0    -> -1
ddcms204 comparesig  -70E-1  7.0    -> -1
ddcms205 comparesig  -0.7E+1 7      -> -1
ddcms206 comparesig  -70E-1  7      -> -1
ddcms207 comparesig  -7.0    7E+0   -> -1
ddcms208 comparesig  -7.0    70E-1  -> -1
ddcms209 comparesig  -7      0.7E+1 -> -1
ddcms210 comparesig  -7      70E-1  -> -1

ddcms220 comparesig  -8.0    7.0    -> -1
ddcms221 comparesig  -8.0    7      -> -1
ddcms222 comparesig  -8      7.0    -> -1
ddcms223 comparesig  -8E+0   7.0    -> -1
ddcms224 comparesig  -80E-1  7.0    -> -1
ddcms225 comparesig  -0.8E+1 7      -> -1
ddcms226 comparesig  -80E-1  7      -> -1
ddcms227 comparesig  -8.0    7E+0   -> -1
ddcms228 comparesig  -8.0    70E-1  -> -1
ddcms229 comparesig  -8      0.7E+1 -> -1
ddcms230 comparesig  -8      70E-1  -> -1

ddcms240 comparesig  -8.0    9.0    -> -1
ddcms241 comparesig  -8.0    9      -> -1
ddcms242 comparesig  -8      9.0    -> -1
ddcms243 comparesig  -8E+0   9.0    -> -1
ddcms244 comparesig  -80E-1  9.0    -> -1
ddcms245 comparesig  -0.8E+1 9      -> -1
ddcms246 comparesig  -80E-1  9      -> -1
ddcms247 comparesig  -8.0    9E+0   -> -1
ddcms248 comparesig  -8.0    90E-1  -> -1
ddcms249 comparesig  -8      0.9E+1 -> -1
ddcms250 comparesig  -8      90E-1  -> -1

-- and again, with sign changes +- ..
ddcms300 comparesig   7.0    -7.0    -> 1
ddcms301 comparesig   7.0    -7      -> 1
ddcms302 comparesig   7      -7.0    -> 1
ddcms303 comparesig   7E+0   -7.0    -> 1
ddcms304 comparesig   70E-1  -7.0    -> 1
ddcms305 comparesig   .7E+1  -7      -> 1
ddcms306 comparesig   70E-1  -7      -> 1
ddcms307 comparesig   7.0    -7E+0   -> 1
ddcms308 comparesig   7.0    -70E-1  -> 1
ddcms309 comparesig   7      -.7E+1  -> 1
ddcms310 comparesig   7      -70E-1  -> 1

ddcms320 comparesig   8.0    -7.0    -> 1
ddcms321 comparesig   8.0    -7      -> 1
ddcms322 comparesig   8      -7.0    -> 1
ddcms323 comparesig   8E+0   -7.0    -> 1
ddcms324 comparesig   80E-1  -7.0    -> 1
ddcms325 comparesig   .8E+1  -7      -> 1
ddcms326 comparesig   80E-1  -7      -> 1
ddcms327 comparesig   8.0    -7E+0   -> 1
ddcms328 comparesig   8.0    -70E-1  -> 1
ddcms329 comparesig   8      -.7E+1  -> 1
ddcms330 comparesig   8      -70E-1  -> 1

ddcms340 comparesig   8.0    -9.0    -> 1
ddcms341 comparesig   8.0    -9      -> 1
ddcms342 comparesig   8      -9.0    -> 1
ddcms343 comparesig   8E+0   -9.0    -> 1
ddcms344 comparesig   80E-1  -9.0    -> 1
ddcms345 comparesig   .8E+1  -9      -> 1
ddcms346 comparesig   80E-1  -9      -> 1
ddcms347 comparesig   8.0    -9E+0   -> 1
ddcms348 comparesig   8.0    -90E-1  -> 1
ddcms349 comparesig   8      -.9E+1  -> 1
ddcms350 comparesig   8      -90E-1  -> 1

-- and again, with sign changes -- ..
ddcms400 comparesig   -7.0    -7.0    -> 0
ddcms401 comparesig   -7.0    -7      -> 0
ddcms402 comparesig   -7      -7.0    -> 0
ddcms403 comparesig   -7E+0   -7.0    -> 0
ddcms404 comparesig   -70E-1  -7.0    -> 0
ddcms405 comparesig   -.7E+1  -7      -> 0
ddcms406 comparesig   -70E-1  -7      -> 0
ddcms407 comparesig   -7.0    -7E+0   -> 0
ddcms408 comparesig   -7.0    -70E-1  -> 0
ddcms409 comparesig   -7      -.7E+1  -> 0
ddcms410 comparesig   -7      -70E-1  -> 0

ddcms420 comparesig   -8.0    -7.0    -> -1
ddcms421 comparesig   -8.0    -7      -> -1
ddcms422 comparesig   -8      -7.0    -> -1
ddcms423 comparesig   -8E+0   -7.0    -> -1
ddcms424 comparesig   -80E-1  -7.0    -> -1
ddcms425 comparesig   -.8E+1  -7      -> -1
ddcms426 comparesig   -80E-1  -7      -> -1
ddcms427 comparesig   -8.0    -7E+0   -> -1
ddcms428 comparesig   -8.0    -70E-1  -> -1
ddcms429 comparesig   -8      -.7E+1  -> -1
ddcms430 comparesig   -8      -70E-1  -> -1

ddcms440 comparesig   -8.0    -9.0    -> 1
ddcms441 comparesig   -8.0    -9      -> 1
ddcms442 comparesig   -8      -9.0    -> 1
ddcms443 comparesig   -8E+0   -9.0    -> 1
ddcms444 comparesig   -80E-1  -9.0    -> 1
ddcms445 comparesig   -.8E+1  -9      -> 1
ddcms446 comparesig   -80E-1  -9      -> 1
ddcms447 comparesig   -8.0    -9E+0   -> 1
ddcms448 comparesig   -8.0    -90E-1  -> 1
ddcms449 comparesig   -8      -.9E+1  -> 1
ddcms450 comparesig   -8      -90E-1  -> 1


-- testcases that subtract to lots of zeros at boundaries [pgr]
ddcms473 comparesig 123.4560000000000E-89 123.456E-89 -> 0
ddcms474 comparesig 123.456000000000E+89 123.456E+89 -> 0
ddcms475 comparesig 123.45600000000E-89 123.456E-89 -> 0
ddcms476 comparesig 123.4560000000E+89 123.456E+89 -> 0
ddcms477 comparesig 123.456000000E-89 123.456E-89 -> 0
ddcms478 comparesig 123.45600000E+89 123.456E+89 -> 0
ddcms479 comparesig 123.4560000E-89 123.456E-89 -> 0
ddcms480 comparesig 123.456000E+89 123.456E+89 -> 0
ddcms481 comparesig 123.45600E-89 123.456E-89 -> 0
ddcms482 comparesig 123.4560E+89 123.456E+89 -> 0
ddcms483 comparesig 123.456E-89 123.456E-89 -> 0
ddcms487 comparesig 123.456E+89 123.4560000000000E+89 -> 0
ddcms488 comparesig 123.456E-89 123.456000000000E-89 -> 0
ddcms489 comparesig 123.456E+89 123.45600000000E+89 -> 0
ddcms490 comparesig 123.456E-89 123.4560000000E-89 -> 0
ddcms491 comparesig 123.456E+89 123.456000000E+89 -> 0
ddcms492 comparesig 123.456E-89 123.45600000E-89 -> 0
ddcms493 comparesig 123.456E+89 123.4560000E+89 -> 0
ddcms494 comparesig 123.456E-89 123.456000E-89 -> 0
ddcms495 comparesig 123.456E+89 123.45600E+89 -> 0
ddcms496 comparesig 123.456E-89 123.4560E-89 -> 0
ddcms497 comparesig 123.456E+89 123.456E+89 -> 0

-- wide-ranging, around precision; signs equal
ddcms500 comparesig    1     1E-15    -> 1
ddcms501 comparesig    1     1E-14    -> 1
ddcms502 comparesig    1     1E-13    -> 1
ddcms503 comparesig    1     1E-12    -> 1
ddcms504 comparesig    1     1E-11    -> 1
ddcms505 comparesig    1     1E-10    -> 1
ddcms506 comparesig    1     1E-9     -> 1
ddcms507 comparesig    1     1E-8     -> 1
ddcms508 comparesig    1     1E-7     -> 1
ddcms509 comparesig    1     1E-6     -> 1
ddcms510 comparesig    1     1E-5     -> 1
ddcms511 comparesig    1     1E-4     -> 1
ddcms512 comparesig    1     1E-3     -> 1
ddcms513 comparesig    1     1E-2     -> 1
ddcms514 comparesig    1     1E-1     -> 1
ddcms515 comparesig    1     1E-0     -> 0
ddcms516 comparesig    1     1E+1     -> -1
ddcms517 comparesig    1     1E+2     -> -1
ddcms518 comparesig    1     1E+3     -> -1
ddcms519 comparesig    1     1E+4     -> -1
ddcms521 comparesig    1     1E+5     -> -1
ddcms522 comparesig    1     1E+6     -> -1
ddcms523 comparesig    1     1E+7     -> -1
ddcms524 comparesig    1     1E+8     -> -1
ddcms525 comparesig    1     1E+9     -> -1
ddcms526 comparesig    1     1E+10    -> -1
ddcms527 comparesig    1     1E+11    -> -1
ddcms528 comparesig    1     1E+12    -> -1
ddcms529 comparesig    1     1E+13    -> -1
ddcms530 comparesig    1     1E+14    -> -1
ddcms531 comparesig    1     1E+15    -> -1
-- LR swap
ddcms540 comparesig    1E-15  1       -> -1
ddcms541 comparesig    1E-14  1       -> -1
ddcms542 comparesig    1E-13  1       -> -1
ddcms543 comparesig    1E-12  1       -> -1
ddcms544 comparesig    1E-11  1       -> -1
ddcms545 comparesig    1E-10  1       -> -1
ddcms546 comparesig    1E-9   1       -> -1
ddcms547 comparesig    1E-8   1       -> -1
ddcms548 comparesig    1E-7   1       -> -1
ddcms549 comparesig    1E-6   1       -> -1
ddcms550 comparesig    1E-5   1       -> -1
ddcms551 comparesig    1E-4   1       -> -1
ddcms552 comparesig    1E-3   1       -> -1
ddcms553 comparesig    1E-2   1       -> -1
ddcms554 comparesig    1E-1   1       -> -1
ddcms555 comparesig    1E-0   1       ->  0
ddcms556 comparesig    1E+1   1       ->  1
ddcms557 comparesig    1E+2   1       ->  1
ddcms558 comparesig    1E+3   1       ->  1
ddcms559 comparesig    1E+4   1       ->  1
ddcms561 comparesig    1E+5   1       ->  1
ddcms562 comparesig    1E+6   1       ->  1
ddcms563 comparesig    1E+7   1       ->  1
ddcms564 comparesig    1E+8   1       ->  1
ddcms565 comparesig    1E+9   1       ->  1
ddcms566 comparesig    1E+10  1       ->  1
ddcms567 comparesig    1E+11  1       ->  1
ddcms568 comparesig    1E+12  1       ->  1
ddcms569 comparesig    1E+13  1       ->  1
ddcms570 comparesig    1E+14  1       ->  1
ddcms571 comparesig    1E+15  1       ->  1
-- similar with a useful coefficient, one side only
ddcms580 comparesig  0.000000987654321     1E-15    -> 1
ddcms581 comparesig  0.000000987654321     1E-14    -> 1
ddcms582 comparesig  0.000000987654321     1E-13    -> 1
ddcms583 comparesig  0.000000987654321     1E-12    -> 1
ddcms584 comparesig  0.000000987654321     1E-11    -> 1
ddcms585 comparesig  0.000000987654321     1E-10    -> 1
ddcms586 comparesig  0.000000987654321     1E-9     -> 1
ddcms587 comparesig  0.000000987654321     1E-8     -> 1
ddcms588 comparesig  0.000000987654321     1E-7     -> 1
ddcms589 comparesig  0.000000987654321     1E-6     -> -1
ddcms590 comparesig  0.000000987654321     1E-5     -> -1
ddcms591 comparesig  0.000000987654321     1E-4     -> -1
ddcms592 comparesig  0.000000987654321     1E-3     -> -1
ddcms593 comparesig  0.000000987654321     1E-2     -> -1
ddcms594 comparesig  0.000000987654321     1E-1     -> -1
ddcms595 comparesig  0.000000987654321     1E-0     -> -1
ddcms596 comparesig  0.000000987654321     1E+1     -> -1
ddcms597 comparesig  0.000000987654321     1E+2     -> -1
ddcms598 comparesig  0.000000987654321     1E+3     -> -1
ddcms599 comparesig  0.000000987654321     1E+4     -> -1

-- check some unit-y traps
ddcms600 comparesig   12            12.2345 -> -1
ddcms601 comparesig   12.0          12.2345 -> -1
ddcms602 comparesig   12.00         12.2345 -> -1
ddcms603 comparesig   12.000        12.2345 -> -1
ddcms604 comparesig   12.0000       12.2345 -> -1
ddcms605 comparesig   12.00000      12.2345 -> -1
ddcms606 comparesig   12.000000     12.2345 -> -1
ddcms607 comparesig   12.0000000    12.2345 -> -1
ddcms608 comparesig   12.00000000   12.2345 -> -1
ddcms609 comparesig   12.000000000  12.2345 -> -1
ddcms610 comparesig   12.1234 12            ->  1
ddcms611 comparesig   12.1234 12.0          ->  1
ddcms612 comparesig   12.1234 12.00         ->  1
ddcms613 comparesig   12.1234 12.000        ->  1
ddcms614 comparesig   12.1234 12.0000       ->  1
ddcms615 comparesig   12.1234 12.00000      ->  1
ddcms616 comparesig   12.1234 12.000000     ->  1
ddcms617 comparesig   12.1234 12.0000000    ->  1
ddcms618 comparesig   12.1234 12.00000000   ->  1
ddcms619 comparesig   12.1234 12.000000000  ->  1
ddcms620 comparesig  -12           -12.2345 ->  1
ddcms621 comparesig  -12.0         -12.2345 ->  1
ddcms622 comparesig  -12.00        -12.2345 ->  1
ddcms623 comparesig  -12.000       -12.2345 ->  1
ddcms624 comparesig  -12.0000      -12.2345 ->  1
ddcms625 comparesig  -12.00000     -12.2345 ->  1
ddcms626 comparesig  -12.000000    -12.2345 ->  1
ddcms627 comparesig  -12.0000000   -12.2345 ->  1
ddcms628 comparesig  -12.00000000  -12.2345 ->  1
ddcms629 comparesig  -12.000000000 -12.2345 ->  1
ddcms630 comparesig  -12.1234 -12           -> -1
ddcms631 comparesig  -12.1234 -12.0         -> -1
ddcms632 comparesig  -12.1234 -12.00        -> -1
ddcms633 comparesig  -12.1234 -12.000       -> -1
ddcms634 comparesig  -12.1234 -12.0000      -> -1
ddcms635 comparesig  -12.1234 -12.00000     -> -1
ddcms636 comparesig  -12.1234 -12.000000    -> -1
ddcms637 comparesig  -12.1234 -12.0000000   -> -1
ddcms638 comparesig  -12.1234 -12.00000000  -> -1
ddcms639 comparesig  -12.1234 -12.000000000 -> -1

-- extended zeros
ddcms640 comparesig   0     0   -> 0
ddcms641 comparesig   0    -0   -> 0
ddcms642 comparesig   0    -0.0 -> 0
ddcms643 comparesig   0     0.0 -> 0
ddcms644 comparesig  -0     0   -> 0
ddcms645 comparesig  -0    -0   -> 0
ddcms646 comparesig  -0    -0.0 -> 0
ddcms647 comparesig  -0     0.0 -> 0
ddcms648 comparesig   0.0   0   -> 0
ddcms649 comparesig   0.0  -0   -> 0
ddcms650 comparesig   0.0  -0.0 -> 0
ddcms651 comparesig   0.0   0.0 -> 0
ddcms652 comparesig  -0.0   0   -> 0
ddcms653 comparesig  -0.0  -0   -> 0
ddcms654 comparesig  -0.0  -0.0 -> 0
ddcms655 comparesig  -0.0   0.0 -> 0

ddcms656 comparesig  -0E1   0.0 -> 0
ddcms657 comparesig  -0E2   0.0 -> 0
ddcms658 comparesig   0E1   0.0 -> 0
ddcms659 comparesig   0E2   0.0 -> 0
ddcms660 comparesig  -0E1   0   -> 0
ddcms661 comparesig  -0E2   0   -> 0
ddcms662 comparesig   0E1   0   -> 0
ddcms663 comparesig   0E2   0   -> 0
ddcms664 comparesig  -0E1  -0E1 -> 0
ddcms665 comparesig  -0E2  -0E1 -> 0
ddcms666 comparesig   0E1  -0E1 -> 0
ddcms667 comparesig   0E2  -0E1 -> 0
ddcms668 comparesig  -0E1  -0E2 -> 0
ddcms669 comparesig  -0E2  -0E2 -> 0
ddcms670 comparesig   0E1  -0E2 -> 0
ddcms671 comparesig   0E2  -0E2 -> 0
ddcms672 comparesig  -0E1   0E1 -> 0
ddcms673 comparesig  -0E2   0E1 -> 0
ddcms674 comparesig   0E1   0E1 -> 0
ddcms675 comparesig   0E2   0E1 -> 0
ddcms676 comparesig  -0E1   0E2 -> 0
ddcms677 comparesig  -0E2   0E2 -> 0
ddcms678 comparesig   0E1   0E2 -> 0
ddcms679 comparesig   0E2   0E2 -> 0

-- trailing zeros; unit-y
ddcms680 comparesig   12    12           -> 0
ddcms681 comparesig   12    12.0         -> 0
ddcms682 comparesig   12    12.00        -> 0
ddcms683 comparesig   12    12.000       -> 0
ddcms684 comparesig   12    12.0000      -> 0
ddcms685 comparesig   12    12.00000     -> 0
ddcms686 comparesig   12    12.000000    -> 0
ddcms687 comparesig   12    12.0000000   -> 0
ddcms688 comparesig   12    12.00000000  -> 0
ddcms689 comparesig   12    12.000000000 -> 0
ddcms690 comparesig   12              12 -> 0
ddcms691 comparesig   12.0            12 -> 0
ddcms692 comparesig   12.00           12 -> 0
ddcms693 comparesig   12.000          12 -> 0
ddcms694 comparesig   12.0000         12 -> 0
ddcms695 comparesig   12.00000        12 -> 0
ddcms696 comparesig   12.000000       12 -> 0
ddcms697 comparesig   12.0000000      12 -> 0
ddcms698 comparesig   12.00000000     12 -> 0
ddcms699 comparesig   12.000000000    12 -> 0

-- first, second, & last digit
ddcms700 comparesig   1234567890123456 1234567890123455 -> 1
ddcms701 comparesig   1234567890123456 1234567890123456 -> 0
ddcms702 comparesig   1234567890123456 1234567890123457 -> -1
ddcms703 comparesig   1234567890123456 0234567890123456 -> 1
ddcms704 comparesig   1234567890123456 1234567890123456 -> 0
ddcms705 comparesig   1234567890123456 2234567890123456 -> -1
ddcms706 comparesig   1134567890123456 1034567890123456 -> 1
ddcms707 comparesig   1134567890123456 1134567890123456 -> 0
ddcms708 comparesig   1134567890123456 1234567890123456 -> -1

-- miscellaneous
ddcms721 comparesig 12345678000 1 -> 1
ddcms722 comparesig 1 12345678000 -> -1
ddcms723 comparesig 1234567800  1 -> 1
ddcms724 comparesig 1 1234567800  -> -1
ddcms725 comparesig 1234567890  1 -> 1
ddcms726 comparesig 1 1234567890  -> -1
ddcms727 comparesig 1234567891  1 -> 1
ddcms728 comparesig 1 1234567891  -> -1
ddcms729 comparesig 12345678901 1 -> 1
ddcms730 comparesig 1 12345678901 -> -1
ddcms731 comparesig 1234567896  1 -> 1
ddcms732 comparesig 1 1234567896  -> -1

-- residue cases at lower precision
ddcms740 comparesig  1  0.9999999  -> 1
ddcms741 comparesig  1  0.999999   -> 1
ddcms742 comparesig  1  0.99999    -> 1
ddcms743 comparesig  1  1.0000     -> 0
ddcms744 comparesig  1  1.00001    -> -1
ddcms745 comparesig  1  1.000001   -> -1
ddcms746 comparesig  1  1.0000001  -> -1
ddcms750 comparesig  0.9999999  1  -> -1
ddcms751 comparesig  0.999999   1  -> -1
ddcms752 comparesig  0.99999    1  -> -1
ddcms753 comparesig  1.0000     1  -> 0
ddcms754 comparesig  1.00001    1  -> 1
ddcms755 comparesig  1.000001   1  -> 1
ddcms756 comparesig  1.0000001  1  -> 1

-- Specials
ddcms780 comparesig  Inf  -Inf   ->  1
ddcms781 comparesig  Inf  -1000  ->  1
ddcms782 comparesig  Inf  -1     ->  1
ddcms783 comparesig  Inf  -0     ->  1
ddcms784 comparesig  Inf   0     ->  1
ddcms785 comparesig  Inf   1     ->  1
ddcms786 comparesig  Inf   1000  ->  1
ddcms787 comparesig  Inf   Inf   ->  0
ddcms788 comparesig -1000  Inf   -> -1
ddcms789 comparesig -Inf   Inf   -> -1
ddcms790 comparesig -1     Inf   -> -1
ddcms791 comparesig -0     Inf   -> -1
ddcms792 comparesig  0     Inf   -> -1
ddcms793 comparesig  1     Inf   -> -1
ddcms794 comparesig  1000  Inf   -> -1
ddcms795 comparesig  Inf   Inf   ->  0

ddcms800 comparesig -Inf  -Inf   ->  0
ddcms801 comparesig -Inf  -1000  -> -1
ddcms802 comparesig -Inf  -1     -> -1
ddcms803 comparesig -Inf  -0     -> -1
ddcms804 comparesig -Inf   0     -> -1
ddcms805 comparesig -Inf   1     -> -1
ddcms806 comparesig -Inf   1000  -> -1
ddcms807 comparesig -Inf   Inf   -> -1
ddcms808 comparesig -Inf  -Inf   ->  0
ddcms809 comparesig -1000 -Inf   ->  1
ddcms810 comparesig -1    -Inf   ->  1
ddcms811 comparesig -0    -Inf   ->  1
ddcms812 comparesig  0    -Inf   ->  1
ddcms813 comparesig  1    -Inf   ->  1
ddcms814 comparesig  1000 -Inf   ->  1
ddcms815 comparesig  Inf  -Inf   ->  1

ddcms821 comparesig  NaN -Inf    ->  NaN  Invalid_operation
ddcms822 comparesig  NaN -1000   ->  NaN  Invalid_operation
ddcms823 comparesig  NaN -1      ->  NaN  Invalid_operation
ddcms824 comparesig  NaN -0      ->  NaN  Invalid_operation
ddcms825 comparesig  NaN  0      ->  NaN  Invalid_operation
ddcms826 comparesig  NaN  1      ->  NaN  Invalid_operation
ddcms827 comparesig  NaN  1000   ->  NaN  Invalid_operation
ddcms828 comparesig  NaN  Inf    ->  NaN  Invalid_operation
ddcms829 comparesig  NaN  NaN    ->  NaN  Invalid_operation
ddcms830 comparesig -Inf  NaN    ->  NaN  Invalid_operation
ddcms831 comparesig -1000 NaN    ->  NaN  Invalid_operation
ddcms832 comparesig -1    NaN    ->  NaN  Invalid_operation
ddcms833 comparesig -0    NaN    ->  NaN  Invalid_operation
ddcms834 comparesig  0    NaN    ->  NaN  Invalid_operation
ddcms835 comparesig  1    NaN    ->  NaN  Invalid_operation
ddcms836 comparesig  1000 NaN    ->  NaN  Invalid_operation
ddcms837 comparesig  Inf  NaN    ->  NaN  Invalid_operation
ddcms838 comparesig -NaN -NaN    -> -NaN  Invalid_operation
ddcms839 comparesig +NaN -NaN    ->  NaN  Invalid_operation
ddcms840 comparesig -NaN +NaN    -> -NaN  Invalid_operation

ddcms841 comparesig  sNaN -Inf   ->  NaN  Invalid_operation
ddcms842 comparesig  sNaN -1000  ->  NaN  Invalid_operation
ddcms843 comparesig  sNaN -1     ->  NaN  Invalid_operation
ddcms844 comparesig  sNaN -0     ->  NaN  Invalid_operation
ddcms845 comparesig  sNaN  0     ->  NaN  Invalid_operation
ddcms846 comparesig  sNaN  1     ->  NaN  Invalid_operation
ddcms847 comparesig  sNaN  1000  ->  NaN  Invalid_operation
ddcms848 comparesig  sNaN  NaN   ->  NaN  Invalid_operation
ddcms849 comparesig  sNaN sNaN   ->  NaN  Invalid_operation
ddcms850 comparesig  NaN  sNaN   ->  NaN  Invalid_operation
ddcms851 comparesig -Inf  sNaN   ->  NaN  Invalid_operation
ddcms852 comparesig -1000 sNaN   ->  NaN  Invalid_operation
ddcms853 comparesig -1    sNaN   ->  NaN  Invalid_operation
ddcms854 comparesig -0    sNaN   ->  NaN  Invalid_operation
ddcms855 comparesig  0    sNaN   ->  NaN  Invalid_operation
ddcms856 comparesig  1    sNaN   ->  NaN  Invalid_operation
ddcms857 comparesig  1000 sNaN   ->  NaN  Invalid_operation
ddcms858 comparesig  Inf  sNaN   ->  NaN  Invalid_operation
ddcms859 comparesig  NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
ddcms860 comparesig  NaN9 -Inf   ->  NaN9   Invalid_operation
ddcms861 comparesig  NaN8  999   ->  NaN8   Invalid_operation
ddcms862 comparesig  NaN77 Inf   ->  NaN77  Invalid_operation
ddcms863 comparesig -NaN67 NaN5  -> -NaN67  Invalid_operation
ddcms864 comparesig -Inf  -NaN4  -> -NaN4   Invalid_operation
ddcms865 comparesig -999  -NaN33 -> -NaN33  Invalid_operation
ddcms866 comparesig  Inf   NaN2  ->  NaN2   Invalid_operation
ddcms867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation
ddcms868 comparesig +NaN41 -NaN42 ->  NaN41 Invalid_operation
ddcms869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation
ddcms870 comparesig +NaN41 +NaN42 ->  NaN41 Invalid_operation

ddcms871 comparesig -sNaN99 -Inf    -> -NaN99 Invalid_operation
ddcms872 comparesig  sNaN98 -11     ->  NaN98 Invalid_operation
ddcms873 comparesig  sNaN97  NaN    ->  NaN97 Invalid_operation
ddcms874 comparesig  sNaN16 sNaN94  ->  NaN16 Invalid_operation
ddcms875 comparesig  NaN85  sNaN83  ->  NaN83 Invalid_operation
ddcms876 comparesig -Inf    sNaN92  ->  NaN92 Invalid_operation
ddcms877 comparesig  088    sNaN81  ->  NaN81 Invalid_operation
ddcms878 comparesig  Inf    sNaN90  ->  NaN90 Invalid_operation
ddcms879 comparesig  NaN   -sNaN89  -> -NaN89 Invalid_operation

-- wide range
ddcms880 comparesig +1.23456789012345E-0 9E+384 -> -1
ddcms881 comparesig 9E+384 +1.23456789012345E-0 ->  1
ddcms882 comparesig +0.100 9E-383               ->  1
ddcms883 comparesig 9E-383 +0.100               -> -1
ddcms885 comparesig -1.23456789012345E-0 9E+384 -> -1
ddcms886 comparesig 9E+384 -1.23456789012345E-0 ->  1
ddcms887 comparesig -0.100 9E-383               -> -1
ddcms888 comparesig 9E-383 -0.100               ->  1

-- signs
ddcms901 comparesig  1e+77  1e+11 ->  1
ddcms902 comparesig  1e+77 -1e+11 ->  1
ddcms903 comparesig -1e+77  1e+11 -> -1
ddcms904 comparesig -1e+77 -1e+11 -> -1
ddcms905 comparesig  1e-77  1e-11 -> -1
ddcms906 comparesig  1e-77 -1e-11 ->  1
ddcms907 comparesig -1e-77  1e-11 -> -1
ddcms908 comparesig -1e-77 -1e-11 ->  1

-- Null tests
ddcms990 comparesig 10  # -> NaN Invalid_operation
ddcms991 comparesig  # 10 -> NaN Invalid_operation