blob: 76beed5681b4320788217487b9ff67c81e7ea034 [file] [log] [blame]
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001------------------------------------------------------------------------
2-- ddCompareTotal.decTest -- decDouble comparison using total ordering--
Benjamin Petersonf17ff4e2008-07-31 16:32:12 +00003-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
Thomas Wouters1b7f8912007-09-19 03:06:30 +00004------------------------------------------------------------------------
5-- Please see the document "General Decimal Arithmetic Testcases" --
6-- at http://www2.hursley.ibm.com/decimal for the description of --
7-- these testcases. --
8-- --
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. --
14-- --
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 --
18-- mfc@uk.ibm.com --
19------------------------------------------------------------------------
Mark Dickinson8a546532009-10-08 16:30:38 +000020version: 2.59
Thomas Wouters1b7f8912007-09-19 03:06:30 +000021
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
26-- than compare.
27
28-- All operands and results are decDoubles.
29precision: 16
30maxExponent: 384
31minExponent: -383
32extended: 1
33clamp: 1
34rounding: half_even
35
36-- sanity checks
37ddcot001 comparetotal -2 -2 -> 0
38ddcot002 comparetotal -2 -1 -> -1
39ddcot003 comparetotal -2 0 -> -1
40ddcot004 comparetotal -2 1 -> -1
41ddcot005 comparetotal -2 2 -> -1
42ddcot006 comparetotal -1 -2 -> 1
43ddcot007 comparetotal -1 -1 -> 0
44ddcot008 comparetotal -1 0 -> -1
45ddcot009 comparetotal -1 1 -> -1
46ddcot010 comparetotal -1 2 -> -1
47ddcot011 comparetotal 0 -2 -> 1
48ddcot012 comparetotal 0 -1 -> 1
49ddcot013 comparetotal 0 0 -> 0
50ddcot014 comparetotal 0 1 -> -1
51ddcot015 comparetotal 0 2 -> -1
52ddcot016 comparetotal 1 -2 -> 1
53ddcot017 comparetotal 1 -1 -> 1
54ddcot018 comparetotal 1 0 -> 1
55ddcot019 comparetotal 1 1 -> 0
56ddcot020 comparetotal 1 2 -> -1
57ddcot021 comparetotal 2 -2 -> 1
58ddcot022 comparetotal 2 -1 -> 1
59ddcot023 comparetotal 2 0 -> 1
60ddcot025 comparetotal 2 1 -> 1
61ddcot026 comparetotal 2 2 -> 0
62
63ddcot031 comparetotal -20 -20 -> 0
64ddcot032 comparetotal -20 -10 -> -1
65ddcot033 comparetotal -20 00 -> -1
66ddcot034 comparetotal -20 10 -> -1
67ddcot035 comparetotal -20 20 -> -1
68ddcot036 comparetotal -10 -20 -> 1
69ddcot037 comparetotal -10 -10 -> 0
70ddcot038 comparetotal -10 00 -> -1
71ddcot039 comparetotal -10 10 -> -1
72ddcot040 comparetotal -10 20 -> -1
73ddcot041 comparetotal 00 -20 -> 1
74ddcot042 comparetotal 00 -10 -> 1
75ddcot043 comparetotal 00 00 -> 0
76ddcot044 comparetotal 00 10 -> -1
77ddcot045 comparetotal 00 20 -> -1
78ddcot046 comparetotal 10 -20 -> 1
79ddcot047 comparetotal 10 -10 -> 1
80ddcot048 comparetotal 10 00 -> 1
81ddcot049 comparetotal 10 10 -> 0
82ddcot050 comparetotal 10 20 -> -1
83ddcot051 comparetotal 20 -20 -> 1
84ddcot052 comparetotal 20 -10 -> 1
85ddcot053 comparetotal 20 00 -> 1
86ddcot055 comparetotal 20 10 -> 1
87ddcot056 comparetotal 20 20 -> 0
88
89ddcot061 comparetotal -2.0 -2.0 -> 0
90ddcot062 comparetotal -2.0 -1.0 -> -1
91ddcot063 comparetotal -2.0 0.0 -> -1
92ddcot064 comparetotal -2.0 1.0 -> -1
93ddcot065 comparetotal -2.0 2.0 -> -1
94ddcot066 comparetotal -1.0 -2.0 -> 1
95ddcot067 comparetotal -1.0 -1.0 -> 0
96ddcot068 comparetotal -1.0 0.0 -> -1
97ddcot069 comparetotal -1.0 1.0 -> -1
98ddcot070 comparetotal -1.0 2.0 -> -1
99ddcot071 comparetotal 0.0 -2.0 -> 1
100ddcot072 comparetotal 0.0 -1.0 -> 1
101ddcot073 comparetotal 0.0 0.0 -> 0
102ddcot074 comparetotal 0.0 1.0 -> -1
103ddcot075 comparetotal 0.0 2.0 -> -1
104ddcot076 comparetotal 1.0 -2.0 -> 1
105ddcot077 comparetotal 1.0 -1.0 -> 1
106ddcot078 comparetotal 1.0 0.0 -> 1
107ddcot079 comparetotal 1.0 1.0 -> 0
108ddcot080 comparetotal 1.0 2.0 -> -1
109ddcot081 comparetotal 2.0 -2.0 -> 1
110ddcot082 comparetotal 2.0 -1.0 -> 1
111ddcot083 comparetotal 2.0 0.0 -> 1
112ddcot085 comparetotal 2.0 1.0 -> 1
113ddcot086 comparetotal 2.0 2.0 -> 0
114
115-- now some cases which might overflow if subtract were used
116ddcot090 comparetotal 9.99999999E+384 9.99999999E+384 -> 0
117ddcot091 comparetotal -9.99999999E+384 9.99999999E+384 -> -1
118ddcot092 comparetotal 9.99999999E+384 -9.99999999E+384 -> 1
119ddcot093 comparetotal -9.99999999E+384 -9.99999999E+384 -> 0
120
121-- some differing length/exponent cases
122-- in this first group, compare would compare all equal
123ddcot100 comparetotal 7.0 7.0 -> 0
124ddcot101 comparetotal 7.0 7 -> -1
125ddcot102 comparetotal 7 7.0 -> 1
126ddcot103 comparetotal 7E+0 7.0 -> 1
127ddcot104 comparetotal 70E-1 7.0 -> 0
128ddcot105 comparetotal 0.7E+1 7 -> 0
129ddcot106 comparetotal 70E-1 7 -> -1
130ddcot107 comparetotal 7.0 7E+0 -> -1
131ddcot108 comparetotal 7.0 70E-1 -> 0
132ddcot109 comparetotal 7 0.7E+1 -> 0
133ddcot110 comparetotal 7 70E-1 -> 1
134
135ddcot120 comparetotal 8.0 7.0 -> 1
136ddcot121 comparetotal 8.0 7 -> 1
137ddcot122 comparetotal 8 7.0 -> 1
138ddcot123 comparetotal 8E+0 7.0 -> 1
139ddcot124 comparetotal 80E-1 7.0 -> 1
140ddcot125 comparetotal 0.8E+1 7 -> 1
141ddcot126 comparetotal 80E-1 7 -> 1
142ddcot127 comparetotal 8.0 7E+0 -> 1
143ddcot128 comparetotal 8.0 70E-1 -> 1
144ddcot129 comparetotal 8 0.7E+1 -> 1
145ddcot130 comparetotal 8 70E-1 -> 1
146
147ddcot140 comparetotal 8.0 9.0 -> -1
148ddcot141 comparetotal 8.0 9 -> -1
149ddcot142 comparetotal 8 9.0 -> -1
150ddcot143 comparetotal 8E+0 9.0 -> -1
151ddcot144 comparetotal 80E-1 9.0 -> -1
152ddcot145 comparetotal 0.8E+1 9 -> -1
153ddcot146 comparetotal 80E-1 9 -> -1
154ddcot147 comparetotal 8.0 9E+0 -> -1
155ddcot148 comparetotal 8.0 90E-1 -> -1
156ddcot149 comparetotal 8 0.9E+1 -> -1
157ddcot150 comparetotal 8 90E-1 -> -1
158
159-- and again, with sign changes -+ ..
160ddcot200 comparetotal -7.0 7.0 -> -1
161ddcot201 comparetotal -7.0 7 -> -1
162ddcot202 comparetotal -7 7.0 -> -1
163ddcot203 comparetotal -7E+0 7.0 -> -1
164ddcot204 comparetotal -70E-1 7.0 -> -1
165ddcot205 comparetotal -0.7E+1 7 -> -1
166ddcot206 comparetotal -70E-1 7 -> -1
167ddcot207 comparetotal -7.0 7E+0 -> -1
168ddcot208 comparetotal -7.0 70E-1 -> -1
169ddcot209 comparetotal -7 0.7E+1 -> -1
170ddcot210 comparetotal -7 70E-1 -> -1
171
172ddcot220 comparetotal -8.0 7.0 -> -1
173ddcot221 comparetotal -8.0 7 -> -1
174ddcot222 comparetotal -8 7.0 -> -1
175ddcot223 comparetotal -8E+0 7.0 -> -1
176ddcot224 comparetotal -80E-1 7.0 -> -1
177ddcot225 comparetotal -0.8E+1 7 -> -1
178ddcot226 comparetotal -80E-1 7 -> -1
179ddcot227 comparetotal -8.0 7E+0 -> -1
180ddcot228 comparetotal -8.0 70E-1 -> -1
181ddcot229 comparetotal -8 0.7E+1 -> -1
182ddcot230 comparetotal -8 70E-1 -> -1
183
184ddcot240 comparetotal -8.0 9.0 -> -1
185ddcot241 comparetotal -8.0 9 -> -1
186ddcot242 comparetotal -8 9.0 -> -1
187ddcot243 comparetotal -8E+0 9.0 -> -1
188ddcot244 comparetotal -80E-1 9.0 -> -1
189ddcot245 comparetotal -0.8E+1 9 -> -1
190ddcot246 comparetotal -80E-1 9 -> -1
191ddcot247 comparetotal -8.0 9E+0 -> -1
192ddcot248 comparetotal -8.0 90E-1 -> -1
193ddcot249 comparetotal -8 0.9E+1 -> -1
194ddcot250 comparetotal -8 90E-1 -> -1
195
196-- and again, with sign changes +- ..
197ddcot300 comparetotal 7.0 -7.0 -> 1
198ddcot301 comparetotal 7.0 -7 -> 1
199ddcot302 comparetotal 7 -7.0 -> 1
200ddcot303 comparetotal 7E+0 -7.0 -> 1
201ddcot304 comparetotal 70E-1 -7.0 -> 1
202ddcot305 comparetotal .7E+1 -7 -> 1
203ddcot306 comparetotal 70E-1 -7 -> 1
204ddcot307 comparetotal 7.0 -7E+0 -> 1
205ddcot308 comparetotal 7.0 -70E-1 -> 1
206ddcot309 comparetotal 7 -.7E+1 -> 1
207ddcot310 comparetotal 7 -70E-1 -> 1
208
209ddcot320 comparetotal 8.0 -7.0 -> 1
210ddcot321 comparetotal 8.0 -7 -> 1
211ddcot322 comparetotal 8 -7.0 -> 1
212ddcot323 comparetotal 8E+0 -7.0 -> 1
213ddcot324 comparetotal 80E-1 -7.0 -> 1
214ddcot325 comparetotal .8E+1 -7 -> 1
215ddcot326 comparetotal 80E-1 -7 -> 1
216ddcot327 comparetotal 8.0 -7E+0 -> 1
217ddcot328 comparetotal 8.0 -70E-1 -> 1
218ddcot329 comparetotal 8 -.7E+1 -> 1
219ddcot330 comparetotal 8 -70E-1 -> 1
220
221ddcot340 comparetotal 8.0 -9.0 -> 1
222ddcot341 comparetotal 8.0 -9 -> 1
223ddcot342 comparetotal 8 -9.0 -> 1
224ddcot343 comparetotal 8E+0 -9.0 -> 1
225ddcot344 comparetotal 80E-1 -9.0 -> 1
226ddcot345 comparetotal .8E+1 -9 -> 1
227ddcot346 comparetotal 80E-1 -9 -> 1
228ddcot347 comparetotal 8.0 -9E+0 -> 1
229ddcot348 comparetotal 8.0 -90E-1 -> 1
230ddcot349 comparetotal 8 -.9E+1 -> 1
231ddcot350 comparetotal 8 -90E-1 -> 1
232
233-- and again, with sign changes -- ..
234ddcot400 comparetotal -7.0 -7.0 -> 0
235ddcot401 comparetotal -7.0 -7 -> 1
236ddcot402 comparetotal -7 -7.0 -> -1
237ddcot403 comparetotal -7E+0 -7.0 -> -1
238ddcot404 comparetotal -70E-1 -7.0 -> 0
239ddcot405 comparetotal -.7E+1 -7 -> 0
240ddcot406 comparetotal -70E-1 -7 -> 1
241ddcot407 comparetotal -7.0 -7E+0 -> 1
242ddcot408 comparetotal -7.0 -70E-1 -> 0
243ddcot409 comparetotal -7 -.7E+1 -> 0
244ddcot410 comparetotal -7 -70E-1 -> -1
245
246ddcot420 comparetotal -8.0 -7.0 -> -1
247ddcot421 comparetotal -8.0 -7 -> -1
248ddcot422 comparetotal -8 -7.0 -> -1
249ddcot423 comparetotal -8E+0 -7.0 -> -1
250ddcot424 comparetotal -80E-1 -7.0 -> -1
251ddcot425 comparetotal -.8E+1 -7 -> -1
252ddcot426 comparetotal -80E-1 -7 -> -1
253ddcot427 comparetotal -8.0 -7E+0 -> -1
254ddcot428 comparetotal -8.0 -70E-1 -> -1
255ddcot429 comparetotal -8 -.7E+1 -> -1
256ddcot430 comparetotal -8 -70E-1 -> -1
257
258ddcot440 comparetotal -8.0 -9.0 -> 1
259ddcot441 comparetotal -8.0 -9 -> 1
260ddcot442 comparetotal -8 -9.0 -> 1
261ddcot443 comparetotal -8E+0 -9.0 -> 1
262ddcot444 comparetotal -80E-1 -9.0 -> 1
263ddcot445 comparetotal -.8E+1 -9 -> 1
264ddcot446 comparetotal -80E-1 -9 -> 1
265ddcot447 comparetotal -8.0 -9E+0 -> 1
266ddcot448 comparetotal -8.0 -90E-1 -> 1
267ddcot449 comparetotal -8 -.9E+1 -> 1
268ddcot450 comparetotal -8 -90E-1 -> 1
269
270
271-- testcases that subtract to lots of zeros at boundaries [pgr]
272ddcot473 comparetotal 123.4560000000000E-89 123.456E-89 -> -1
273ddcot474 comparetotal 123.456000000000E+89 123.456E+89 -> -1
274ddcot475 comparetotal 123.45600000000E-89 123.456E-89 -> -1
275ddcot476 comparetotal 123.4560000000E+89 123.456E+89 -> -1
276ddcot477 comparetotal 123.456000000E-89 123.456E-89 -> -1
277ddcot478 comparetotal 123.45600000E+89 123.456E+89 -> -1
278ddcot479 comparetotal 123.4560000E-89 123.456E-89 -> -1
279ddcot480 comparetotal 123.456000E+89 123.456E+89 -> -1
280ddcot481 comparetotal 123.45600E-89 123.456E-89 -> -1
281ddcot482 comparetotal 123.4560E+89 123.456E+89 -> -1
282ddcot483 comparetotal 123.456E-89 123.456E-89 -> 0
283ddcot487 comparetotal 123.456E+89 123.4560000000000E+89 -> 1
284ddcot488 comparetotal 123.456E-89 123.456000000000E-89 -> 1
285ddcot489 comparetotal 123.456E+89 123.45600000000E+89 -> 1
286ddcot490 comparetotal 123.456E-89 123.4560000000E-89 -> 1
287ddcot491 comparetotal 123.456E+89 123.456000000E+89 -> 1
288ddcot492 comparetotal 123.456E-89 123.45600000E-89 -> 1
289ddcot493 comparetotal 123.456E+89 123.4560000E+89 -> 1
290ddcot494 comparetotal 123.456E-89 123.456000E-89 -> 1
291ddcot495 comparetotal 123.456E+89 123.45600E+89 -> 1
292ddcot496 comparetotal 123.456E-89 123.4560E-89 -> 1
293ddcot497 comparetotal 123.456E+89 123.456E+89 -> 0
294
295-- wide-ranging, around precision; signs equal
296ddcot498 comparetotal 1 1E-17 -> 1
297ddcot499 comparetotal 1 1E-16 -> 1
298ddcot500 comparetotal 1 1E-15 -> 1
299ddcot501 comparetotal 1 1E-14 -> 1
300ddcot502 comparetotal 1 1E-13 -> 1
301ddcot503 comparetotal 1 1E-12 -> 1
302ddcot504 comparetotal 1 1E-11 -> 1
303ddcot505 comparetotal 1 1E-10 -> 1
304ddcot506 comparetotal 1 1E-9 -> 1
305ddcot507 comparetotal 1 1E-8 -> 1
306ddcot508 comparetotal 1 1E-7 -> 1
307ddcot509 comparetotal 1 1E-6 -> 1
308ddcot510 comparetotal 1 1E-5 -> 1
309ddcot511 comparetotal 1 1E-4 -> 1
310ddcot512 comparetotal 1 1E-3 -> 1
311ddcot513 comparetotal 1 1E-2 -> 1
312ddcot514 comparetotal 1 1E-1 -> 1
313ddcot515 comparetotal 1 1E-0 -> 0
314ddcot516 comparetotal 1 1E+1 -> -1
315ddcot517 comparetotal 1 1E+2 -> -1
316ddcot518 comparetotal 1 1E+3 -> -1
317ddcot519 comparetotal 1 1E+4 -> -1
318ddcot521 comparetotal 1 1E+5 -> -1
319ddcot522 comparetotal 1 1E+6 -> -1
320ddcot523 comparetotal 1 1E+7 -> -1
321ddcot524 comparetotal 1 1E+8 -> -1
322ddcot525 comparetotal 1 1E+9 -> -1
323ddcot526 comparetotal 1 1E+10 -> -1
324ddcot527 comparetotal 1 1E+11 -> -1
325ddcot528 comparetotal 1 1E+12 -> -1
326ddcot529 comparetotal 1 1E+13 -> -1
327ddcot530 comparetotal 1 1E+14 -> -1
328ddcot531 comparetotal 1 1E+15 -> -1
329ddcot532 comparetotal 1 1E+16 -> -1
330ddcot533 comparetotal 1 1E+17 -> -1
331-- LR swap
332ddcot538 comparetotal 1E-17 1 -> -1
333ddcot539 comparetotal 1E-16 1 -> -1
334ddcot540 comparetotal 1E-15 1 -> -1
335ddcot541 comparetotal 1E-14 1 -> -1
336ddcot542 comparetotal 1E-13 1 -> -1
337ddcot543 comparetotal 1E-12 1 -> -1
338ddcot544 comparetotal 1E-11 1 -> -1
339ddcot545 comparetotal 1E-10 1 -> -1
340ddcot546 comparetotal 1E-9 1 -> -1
341ddcot547 comparetotal 1E-8 1 -> -1
342ddcot548 comparetotal 1E-7 1 -> -1
343ddcot549 comparetotal 1E-6 1 -> -1
344ddcot550 comparetotal 1E-5 1 -> -1
345ddcot551 comparetotal 1E-4 1 -> -1
346ddcot552 comparetotal 1E-3 1 -> -1
347ddcot553 comparetotal 1E-2 1 -> -1
348ddcot554 comparetotal 1E-1 1 -> -1
349ddcot555 comparetotal 1E-0 1 -> 0
350ddcot556 comparetotal 1E+1 1 -> 1
351ddcot557 comparetotal 1E+2 1 -> 1
352ddcot558 comparetotal 1E+3 1 -> 1
353ddcot559 comparetotal 1E+4 1 -> 1
354ddcot561 comparetotal 1E+5 1 -> 1
355ddcot562 comparetotal 1E+6 1 -> 1
356ddcot563 comparetotal 1E+7 1 -> 1
357ddcot564 comparetotal 1E+8 1 -> 1
358ddcot565 comparetotal 1E+9 1 -> 1
359ddcot566 comparetotal 1E+10 1 -> 1
360ddcot567 comparetotal 1E+11 1 -> 1
361ddcot568 comparetotal 1E+12 1 -> 1
362ddcot569 comparetotal 1E+13 1 -> 1
363ddcot570 comparetotal 1E+14 1 -> 1
364ddcot571 comparetotal 1E+15 1 -> 1
365ddcot572 comparetotal 1E+16 1 -> 1
366ddcot573 comparetotal 1E+17 1 -> 1
367-- similar with a useful coefficient, one side only
368ddcot578 comparetotal 0.000000987654321 1E-17 -> 1
369ddcot579 comparetotal 0.000000987654321 1E-16 -> 1
370ddcot580 comparetotal 0.000000987654321 1E-15 -> 1
371ddcot581 comparetotal 0.000000987654321 1E-14 -> 1
372ddcot582 comparetotal 0.000000987654321 1E-13 -> 1
373ddcot583 comparetotal 0.000000987654321 1E-12 -> 1
374ddcot584 comparetotal 0.000000987654321 1E-11 -> 1
375ddcot585 comparetotal 0.000000987654321 1E-10 -> 1
376ddcot586 comparetotal 0.000000987654321 1E-9 -> 1
377ddcot587 comparetotal 0.000000987654321 1E-8 -> 1
378ddcot588 comparetotal 0.000000987654321 1E-7 -> 1
379ddcot589 comparetotal 0.000000987654321 1E-6 -> -1
380ddcot590 comparetotal 0.000000987654321 1E-5 -> -1
381ddcot591 comparetotal 0.000000987654321 1E-4 -> -1
382ddcot592 comparetotal 0.000000987654321 1E-3 -> -1
383ddcot593 comparetotal 0.000000987654321 1E-2 -> -1
384ddcot594 comparetotal 0.000000987654321 1E-1 -> -1
385ddcot595 comparetotal 0.000000987654321 1E-0 -> -1
386ddcot596 comparetotal 0.000000987654321 1E+1 -> -1
387ddcot597 comparetotal 0.000000987654321 1E+2 -> -1
388ddcot598 comparetotal 0.000000987654321 1E+3 -> -1
389ddcot599 comparetotal 0.000000987654321 1E+4 -> -1
390
391-- check some unit-y traps
392ddcot600 comparetotal 12 12.2345 -> -1
393ddcot601 comparetotal 12.0 12.2345 -> -1
394ddcot602 comparetotal 12.00 12.2345 -> -1
395ddcot603 comparetotal 12.000 12.2345 -> -1
396ddcot604 comparetotal 12.0000 12.2345 -> -1
397ddcot605 comparetotal 12.00000 12.2345 -> -1
398ddcot606 comparetotal 12.000000 12.2345 -> -1
399ddcot607 comparetotal 12.0000000 12.2345 -> -1
400ddcot608 comparetotal 12.00000000 12.2345 -> -1
401ddcot609 comparetotal 12.000000000 12.2345 -> -1
402ddcot610 comparetotal 12.1234 12 -> 1
403ddcot611 comparetotal 12.1234 12.0 -> 1
404ddcot612 comparetotal 12.1234 12.00 -> 1
405ddcot613 comparetotal 12.1234 12.000 -> 1
406ddcot614 comparetotal 12.1234 12.0000 -> 1
407ddcot615 comparetotal 12.1234 12.00000 -> 1
408ddcot616 comparetotal 12.1234 12.000000 -> 1
409ddcot617 comparetotal 12.1234 12.0000000 -> 1
410ddcot618 comparetotal 12.1234 12.00000000 -> 1
411ddcot619 comparetotal 12.1234 12.000000000 -> 1
412ddcot620 comparetotal -12 -12.2345 -> 1
413ddcot621 comparetotal -12.0 -12.2345 -> 1
414ddcot622 comparetotal -12.00 -12.2345 -> 1
415ddcot623 comparetotal -12.000 -12.2345 -> 1
416ddcot624 comparetotal -12.0000 -12.2345 -> 1
417ddcot625 comparetotal -12.00000 -12.2345 -> 1
418ddcot626 comparetotal -12.000000 -12.2345 -> 1
419ddcot627 comparetotal -12.0000000 -12.2345 -> 1
420ddcot628 comparetotal -12.00000000 -12.2345 -> 1
421ddcot629 comparetotal -12.000000000 -12.2345 -> 1
422ddcot630 comparetotal -12.1234 -12 -> -1
423ddcot631 comparetotal -12.1234 -12.0 -> -1
424ddcot632 comparetotal -12.1234 -12.00 -> -1
425ddcot633 comparetotal -12.1234 -12.000 -> -1
426ddcot634 comparetotal -12.1234 -12.0000 -> -1
427ddcot635 comparetotal -12.1234 -12.00000 -> -1
428ddcot636 comparetotal -12.1234 -12.000000 -> -1
429ddcot637 comparetotal -12.1234 -12.0000000 -> -1
430ddcot638 comparetotal -12.1234 -12.00000000 -> -1
431ddcot639 comparetotal -12.1234 -12.000000000 -> -1
432
433-- extended zeros
434ddcot640 comparetotal 0 0 -> 0
435ddcot641 comparetotal 0 -0 -> 1
436ddcot642 comparetotal 0 -0.0 -> 1
437ddcot643 comparetotal 0 0.0 -> 1
438ddcot644 comparetotal -0 0 -> -1
439ddcot645 comparetotal -0 -0 -> 0
440ddcot646 comparetotal -0 -0.0 -> -1
441ddcot647 comparetotal -0 0.0 -> -1
442ddcot648 comparetotal 0.0 0 -> -1
443ddcot649 comparetotal 0.0 -0 -> 1
444ddcot650 comparetotal 0.0 -0.0 -> 1
445ddcot651 comparetotal 0.0 0.0 -> 0
446ddcot652 comparetotal -0.0 0 -> -1
447ddcot653 comparetotal -0.0 -0 -> 1
448ddcot654 comparetotal -0.0 -0.0 -> 0
449ddcot655 comparetotal -0.0 0.0 -> -1
450
451ddcot656 comparetotal -0E1 0.0 -> -1
452ddcot657 comparetotal -0E2 0.0 -> -1
453ddcot658 comparetotal 0E1 0.0 -> 1
454ddcot659 comparetotal 0E2 0.0 -> 1
455ddcot660 comparetotal -0E1 0 -> -1
456ddcot661 comparetotal -0E2 0 -> -1
457ddcot662 comparetotal 0E1 0 -> 1
458ddcot663 comparetotal 0E2 0 -> 1
459ddcot664 comparetotal -0E1 -0E1 -> 0
460ddcot665 comparetotal -0E2 -0E1 -> -1
461ddcot666 comparetotal 0E1 -0E1 -> 1
462ddcot667 comparetotal 0E2 -0E1 -> 1
463ddcot668 comparetotal -0E1 -0E2 -> 1
464ddcot669 comparetotal -0E2 -0E2 -> 0
465ddcot670 comparetotal 0E1 -0E2 -> 1
466ddcot671 comparetotal 0E2 -0E2 -> 1
467ddcot672 comparetotal -0E1 0E1 -> -1
468ddcot673 comparetotal -0E2 0E1 -> -1
469ddcot674 comparetotal 0E1 0E1 -> 0
470ddcot675 comparetotal 0E2 0E1 -> 1
471ddcot676 comparetotal -0E1 0E2 -> -1
472ddcot677 comparetotal -0E2 0E2 -> -1
473ddcot678 comparetotal 0E1 0E2 -> -1
474ddcot679 comparetotal 0E2 0E2 -> 0
475
476-- trailing zeros; unit-y
477ddcot680 comparetotal 12 12 -> 0
478ddcot681 comparetotal 12 12.0 -> 1
479ddcot682 comparetotal 12 12.00 -> 1
480ddcot683 comparetotal 12 12.000 -> 1
481ddcot684 comparetotal 12 12.0000 -> 1
482ddcot685 comparetotal 12 12.00000 -> 1
483ddcot686 comparetotal 12 12.000000 -> 1
484ddcot687 comparetotal 12 12.0000000 -> 1
485ddcot688 comparetotal 12 12.00000000 -> 1
486ddcot689 comparetotal 12 12.000000000 -> 1
487ddcot690 comparetotal 12 12 -> 0
488ddcot691 comparetotal 12.0 12 -> -1
489ddcot692 comparetotal 12.00 12 -> -1
490ddcot693 comparetotal 12.000 12 -> -1
491ddcot694 comparetotal 12.0000 12 -> -1
492ddcot695 comparetotal 12.00000 12 -> -1
493ddcot696 comparetotal 12.000000 12 -> -1
494ddcot697 comparetotal 12.0000000 12 -> -1
495ddcot698 comparetotal 12.00000000 12 -> -1
496ddcot699 comparetotal 12.000000000 12 -> -1
497
498-- old long operand checks
499ddcot701 comparetotal 12345678000 1 -> 1
500ddcot702 comparetotal 1 12345678000 -> -1
501ddcot703 comparetotal 1234567800 1 -> 1
502ddcot704 comparetotal 1 1234567800 -> -1
503ddcot705 comparetotal 1234567890 1 -> 1
504ddcot706 comparetotal 1 1234567890 -> -1
505ddcot707 comparetotal 1234567891 1 -> 1
506ddcot708 comparetotal 1 1234567891 -> -1
507ddcot709 comparetotal 12345678901 1 -> 1
508ddcot710 comparetotal 1 12345678901 -> -1
509ddcot711 comparetotal 1234567896 1 -> 1
510ddcot712 comparetotal 1 1234567896 -> -1
511ddcot713 comparetotal -1234567891 1 -> -1
512ddcot714 comparetotal 1 -1234567891 -> 1
513ddcot715 comparetotal -12345678901 1 -> -1
514ddcot716 comparetotal 1 -12345678901 -> 1
515ddcot717 comparetotal -1234567896 1 -> -1
516ddcot718 comparetotal 1 -1234567896 -> 1
517
518-- old residue cases
519ddcot740 comparetotal 1 0.9999999 -> 1
520ddcot741 comparetotal 1 0.999999 -> 1
521ddcot742 comparetotal 1 0.99999 -> 1
522ddcot743 comparetotal 1 1.0000 -> 1
523ddcot744 comparetotal 1 1.00001 -> -1
524ddcot745 comparetotal 1 1.000001 -> -1
525ddcot746 comparetotal 1 1.0000001 -> -1
526ddcot750 comparetotal 0.9999999 1 -> -1
527ddcot751 comparetotal 0.999999 1 -> -1
528ddcot752 comparetotal 0.99999 1 -> -1
529ddcot753 comparetotal 1.0000 1 -> -1
530ddcot754 comparetotal 1.00001 1 -> 1
531ddcot755 comparetotal 1.000001 1 -> 1
532ddcot756 comparetotal 1.0000001 1 -> 1
533
534-- Specials
535ddcot780 comparetotal Inf -Inf -> 1
536ddcot781 comparetotal Inf -1000 -> 1
537ddcot782 comparetotal Inf -1 -> 1
538ddcot783 comparetotal Inf -0 -> 1
539ddcot784 comparetotal Inf 0 -> 1
540ddcot785 comparetotal Inf 1 -> 1
541ddcot786 comparetotal Inf 1000 -> 1
542ddcot787 comparetotal Inf Inf -> 0
543ddcot788 comparetotal -1000 Inf -> -1
544ddcot789 comparetotal -Inf Inf -> -1
545ddcot790 comparetotal -1 Inf -> -1
546ddcot791 comparetotal -0 Inf -> -1
547ddcot792 comparetotal 0 Inf -> -1
548ddcot793 comparetotal 1 Inf -> -1
549ddcot794 comparetotal 1000 Inf -> -1
550ddcot795 comparetotal Inf Inf -> 0
551
552ddcot800 comparetotal -Inf -Inf -> 0
553ddcot801 comparetotal -Inf -1000 -> -1
554ddcot802 comparetotal -Inf -1 -> -1
555ddcot803 comparetotal -Inf -0 -> -1
556ddcot804 comparetotal -Inf 0 -> -1
557ddcot805 comparetotal -Inf 1 -> -1
558ddcot806 comparetotal -Inf 1000 -> -1
559ddcot807 comparetotal -Inf Inf -> -1
560ddcot808 comparetotal -Inf -Inf -> 0
561ddcot809 comparetotal -1000 -Inf -> 1
562ddcot810 comparetotal -1 -Inf -> 1
563ddcot811 comparetotal -0 -Inf -> 1
564ddcot812 comparetotal 0 -Inf -> 1
565ddcot813 comparetotal 1 -Inf -> 1
566ddcot814 comparetotal 1000 -Inf -> 1
567ddcot815 comparetotal Inf -Inf -> 1
568
569ddcot821 comparetotal NaN -Inf -> 1
570ddcot822 comparetotal NaN -1000 -> 1
571ddcot823 comparetotal NaN -1 -> 1
572ddcot824 comparetotal NaN -0 -> 1
573ddcot825 comparetotal NaN 0 -> 1
574ddcot826 comparetotal NaN 1 -> 1
575ddcot827 comparetotal NaN 1000 -> 1
576ddcot828 comparetotal NaN Inf -> 1
577ddcot829 comparetotal NaN NaN -> 0
578ddcot830 comparetotal -Inf NaN -> -1
579ddcot831 comparetotal -1000 NaN -> -1
580ddcot832 comparetotal -1 NaN -> -1
581ddcot833 comparetotal -0 NaN -> -1
582ddcot834 comparetotal 0 NaN -> -1
583ddcot835 comparetotal 1 NaN -> -1
584ddcot836 comparetotal 1000 NaN -> -1
585ddcot837 comparetotal Inf NaN -> -1
586ddcot838 comparetotal -NaN -NaN -> 0
587ddcot839 comparetotal +NaN -NaN -> 1
588ddcot840 comparetotal -NaN +NaN -> -1
589
590ddcot841 comparetotal sNaN -sNaN -> 1
591ddcot842 comparetotal sNaN -NaN -> 1
592ddcot843 comparetotal sNaN -Inf -> 1
593ddcot844 comparetotal sNaN -1000 -> 1
594ddcot845 comparetotal sNaN -1 -> 1
595ddcot846 comparetotal sNaN -0 -> 1
596ddcot847 comparetotal sNaN 0 -> 1
597ddcot848 comparetotal sNaN 1 -> 1
598ddcot849 comparetotal sNaN 1000 -> 1
599ddcot850 comparetotal sNaN NaN -> -1
600ddcot851 comparetotal sNaN sNaN -> 0
601
602ddcot852 comparetotal -sNaN sNaN -> -1
603ddcot853 comparetotal -NaN sNaN -> -1
604ddcot854 comparetotal -Inf sNaN -> -1
605ddcot855 comparetotal -1000 sNaN -> -1
606ddcot856 comparetotal -1 sNaN -> -1
607ddcot857 comparetotal -0 sNaN -> -1
608ddcot858 comparetotal 0 sNaN -> -1
609ddcot859 comparetotal 1 sNaN -> -1
610ddcot860 comparetotal 1000 sNaN -> -1
611ddcot861 comparetotal Inf sNaN -> -1
612ddcot862 comparetotal NaN sNaN -> 1
613ddcot863 comparetotal sNaN sNaN -> 0
614
615ddcot871 comparetotal -sNaN -sNaN -> 0
616ddcot872 comparetotal -sNaN -NaN -> 1
617ddcot873 comparetotal -sNaN -Inf -> -1
618ddcot874 comparetotal -sNaN -1000 -> -1
619ddcot875 comparetotal -sNaN -1 -> -1
620ddcot876 comparetotal -sNaN -0 -> -1
621ddcot877 comparetotal -sNaN 0 -> -1
622ddcot878 comparetotal -sNaN 1 -> -1
623ddcot879 comparetotal -sNaN 1000 -> -1
624ddcot880 comparetotal -sNaN NaN -> -1
625ddcot881 comparetotal -sNaN sNaN -> -1
626
627ddcot882 comparetotal -sNaN -sNaN -> 0
628ddcot883 comparetotal -NaN -sNaN -> -1
629ddcot884 comparetotal -Inf -sNaN -> 1
630ddcot885 comparetotal -1000 -sNaN -> 1
631ddcot886 comparetotal -1 -sNaN -> 1
632ddcot887 comparetotal -0 -sNaN -> 1
633ddcot888 comparetotal 0 -sNaN -> 1
634ddcot889 comparetotal 1 -sNaN -> 1
635ddcot890 comparetotal 1000 -sNaN -> 1
636ddcot891 comparetotal Inf -sNaN -> 1
637ddcot892 comparetotal NaN -sNaN -> 1
638ddcot893 comparetotal sNaN -sNaN -> 1
639
640-- NaNs with payload
641ddcot960 comparetotal NaN9 -Inf -> 1
642ddcot961 comparetotal NaN8 999 -> 1
643ddcot962 comparetotal NaN77 Inf -> 1
644ddcot963 comparetotal -NaN67 NaN5 -> -1
645ddcot964 comparetotal -Inf -NaN4 -> 1
646ddcot965 comparetotal -999 -NaN33 -> 1
647ddcot966 comparetotal Inf NaN2 -> -1
648
649ddcot970 comparetotal -NaN41 -NaN42 -> 1
650ddcot971 comparetotal +NaN41 -NaN42 -> 1
651ddcot972 comparetotal -NaN41 +NaN42 -> -1
652ddcot973 comparetotal +NaN41 +NaN42 -> -1
653ddcot974 comparetotal -NaN42 -NaN01 -> -1
654ddcot975 comparetotal +NaN42 -NaN01 -> 1
655ddcot976 comparetotal -NaN42 +NaN01 -> -1
656ddcot977 comparetotal +NaN42 +NaN01 -> 1
657
658ddcot980 comparetotal -sNaN771 -sNaN772 -> 1
659ddcot981 comparetotal +sNaN771 -sNaN772 -> 1
660ddcot982 comparetotal -sNaN771 +sNaN772 -> -1
661ddcot983 comparetotal +sNaN771 +sNaN772 -> -1
662ddcot984 comparetotal -sNaN772 -sNaN771 -> -1
663ddcot985 comparetotal +sNaN772 -sNaN771 -> 1
664ddcot986 comparetotal -sNaN772 +sNaN771 -> -1
665ddcot987 comparetotal +sNaN772 +sNaN771 -> 1
666
667ddcot991 comparetotal -sNaN99 -Inf -> -1
668ddcot992 comparetotal sNaN98 -11 -> 1
669ddcot993 comparetotal sNaN97 NaN -> -1
670ddcot994 comparetotal sNaN16 sNaN94 -> -1
671ddcot995 comparetotal NaN85 sNaN83 -> 1
672ddcot996 comparetotal -Inf sNaN92 -> -1
673ddcot997 comparetotal 088 sNaN81 -> -1
674ddcot998 comparetotal Inf sNaN90 -> -1
675ddcot999 comparetotal NaN -sNaN89 -> 1
676
677-- spread zeros
678ddcot1110 comparetotal 0E-383 0 -> -1
679ddcot1111 comparetotal 0E-383 -0 -> 1
680ddcot1112 comparetotal -0E-383 0 -> -1
681ddcot1113 comparetotal -0E-383 -0 -> 1
682ddcot1114 comparetotal 0E-383 0E+384 -> -1
683ddcot1115 comparetotal 0E-383 -0E+384 -> 1
684ddcot1116 comparetotal -0E-383 0E+384 -> -1
685ddcot1117 comparetotal -0E-383 -0E+384 -> 1
686ddcot1118 comparetotal 0 0E+384 -> -1
687ddcot1119 comparetotal 0 -0E+384 -> 1
688ddcot1120 comparetotal -0 0E+384 -> -1
689ddcot1121 comparetotal -0 -0E+384 -> 1
690
691ddcot1130 comparetotal 0E+384 0 -> 1
692ddcot1131 comparetotal 0E+384 -0 -> 1
693ddcot1132 comparetotal -0E+384 0 -> -1
694ddcot1133 comparetotal -0E+384 -0 -> -1
695ddcot1134 comparetotal 0E+384 0E-383 -> 1
696ddcot1135 comparetotal 0E+384 -0E-383 -> 1
697ddcot1136 comparetotal -0E+384 0E-383 -> -1
698ddcot1137 comparetotal -0E+384 -0E-383 -> -1
699ddcot1138 comparetotal 0 0E-383 -> 1
700ddcot1139 comparetotal 0 -0E-383 -> 1
701ddcot1140 comparetotal -0 0E-383 -> -1
702ddcot1141 comparetotal -0 -0E-383 -> -1
703
704-- Null tests
705ddcot9990 comparetotal 10 # -> NaN Invalid_operation
706ddcot9991 comparetotal # 10 -> NaN Invalid_operation