------------------------------------------------------------------------ -- dqCompareTotalMag.decTest -- decQuad comparison; abs. total order -- -- Copyright (c) Mike Cowlishaw, 1981, 2010. All rights reserved. -- -- Parts copyright (c) IBM Corporation, 1981, 2008. -- ------------------------------------------------------------------------ -- Please see the document "General Decimal Arithmetic Testcases" -- -- at http://speleotrove.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, mfc@speleotrove.com -- ------------------------------------------------------------------------ version: 2.62 -- 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. -- All operands and results are decQuads. extended: 1 clamp: 1 precision: 34 maxExponent: 6144 minExponent: -6143 rounding: half_even -- sanity checks dqctm001 comparetotmag -2 -2 -> 0 dqctm002 comparetotmag -2 -1 -> 1 dqctm003 comparetotmag -2 0 -> 1 dqctm004 comparetotmag -2 1 -> 1 dqctm005 comparetotmag -2 2 -> 0 dqctm006 comparetotmag -1 -2 -> -1 dqctm007 comparetotmag -1 -1 -> 0 dqctm008 comparetotmag -1 0 -> 1 dqctm009 comparetotmag -1 1 -> 0 dqctm010 comparetotmag -1 2 -> -1 dqctm011 comparetotmag 0 -2 -> -1 dqctm012 comparetotmag 0 -1 -> -1 dqctm013 comparetotmag 0 0 -> 0 dqctm014 comparetotmag 0 1 -> -1 dqctm015 comparetotmag 0 2 -> -1 dqctm016 comparetotmag 1 -2 -> -1 dqctm017 comparetotmag 1 -1 -> 0 dqctm018 comparetotmag 1 0 -> 1 dqctm019 comparetotmag 1 1 -> 0 dqctm020 comparetotmag 1 2 -> -1 dqctm021 comparetotmag 2 -2 -> 0 dqctm022 comparetotmag 2 -1 -> 1 dqctm023 comparetotmag 2 0 -> 1 dqctm025 comparetotmag 2 1 -> 1 dqctm026 comparetotmag 2 2 -> 0 dqctm031 comparetotmag -20 -20 -> 0 dqctm032 comparetotmag -20 -10 -> 1 dqctm033 comparetotmag -20 00 -> 1 dqctm034 comparetotmag -20 10 -> 1 dqctm035 comparetotmag -20 20 -> 0 dqctm036 comparetotmag -10 -20 -> -1 dqctm037 comparetotmag -10 -10 -> 0 dqctm038 comparetotmag -10 00 -> 1 dqctm039 comparetotmag -10 10 -> 0 dqctm040 comparetotmag -10 20 -> -1 dqctm041 comparetotmag 00 -20 -> -1 dqctm042 comparetotmag 00 -10 -> -1 dqctm043 comparetotmag 00 00 -> 0 dqctm044 comparetotmag 00 10 -> -1 dqctm045 comparetotmag 00 20 -> -1 dqctm046 comparetotmag 10 -20 -> -1 dqctm047 comparetotmag 10 -10 -> 0 dqctm048 comparetotmag 10 00 -> 1 dqctm049 comparetotmag 10 10 -> 0 dqctm050 comparetotmag 10 20 -> -1 dqctm051 comparetotmag 20 -20 -> 0 dqctm052 comparetotmag 20 -10 -> 1 dqctm053 comparetotmag 20 00 -> 1 dqctm055 comparetotmag 20 10 -> 1 dqctm056 comparetotmag 20 20 -> 0 dqctm061 comparetotmag -2.0 -2.0 -> 0 dqctm062 comparetotmag -2.0 -1.0 -> 1 dqctm063 comparetotmag -2.0 0.0 -> 1 dqctm064 comparetotmag -2.0 1.0 -> 1 dqctm065 comparetotmag -2.0 2.0 -> 0 dqctm066 comparetotmag -1.0 -2.0 -> -1 dqctm067 comparetotmag -1.0 -1.0 -> 0 dqctm068 comparetotmag -1.0 0.0 -> 1 dqctm069 comparetotmag -1.0 1.0 -> 0 dqctm070 comparetotmag -1.0 2.0 -> -1 dqctm071 comparetotmag 0.0 -2.0 -> -1 dqctm072 comparetotmag 0.0 -1.0 -> -1 dqctm073 comparetotmag 0.0 0.0 -> 0 dqctm074 comparetotmag 0.0 1.0 -> -1 dqctm075 comparetotmag 0.0 2.0 -> -1 dqctm076 comparetotmag 1.0 -2.0 -> -1 dqctm077 comparetotmag 1.0 -1.0 -> 0 dqctm078 comparetotmag 1.0 0.0 -> 1 dqctm079 comparetotmag 1.0 1.0 -> 0 dqctm080 comparetotmag 1.0 2.0 -> -1 dqctm081 comparetotmag 2.0 -2.0 -> 0 dqctm082 comparetotmag 2.0 -1.0 -> 1 dqctm083 comparetotmag 2.0 0.0 -> 1 dqctm085 comparetotmag 2.0 1.0 -> 1 dqctm086 comparetotmag 2.0 2.0 -> 0 -- now some cases which might overflow if subtract were used dqctm090 comparetotmag 9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0 dqctm091 comparetotmag -9.99999999999999999999999999999E+6144 9.99999999999999999999999999999E+6144 -> 0 dqctm092 comparetotmag 9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0 dqctm093 comparetotmag -9.99999999999999999999999999999E+6144 -9.99999999999999999999999999999E+6144 -> 0 -- some differing length/exponent cases -- in this first group, compare would compare all equal dqctm100 comparetotmag 7.0 7.0 -> 0 dqctm101 comparetotmag 7.0 7 -> -1 dqctm102 comparetotmag 7 7.0 -> 1 dqctm103 comparetotmag 7E+0 7.0 -> 1 dqctm104 comparetotmag 70E-1 7.0 -> 0 dqctm105 comparetotmag 0.7E+1 7 -> 0 dqctm106 comparetotmag 70E-1 7 -> -1 dqctm107 comparetotmag 7.0 7E+0 -> -1 dqctm108 comparetotmag 7.0 70E-1 -> 0 dqctm109 comparetotmag 7 0.7E+1 -> 0 dqctm110 comparetotmag 7 70E-1 -> 1 dqctm120 comparetotmag 8.0 7.0 -> 1 dqctm121 comparetotmag 8.0 7 -> 1 dqctm122 comparetotmag 8 7.0 -> 1 dqctm123 comparetotmag 8E+0 7.0 -> 1 dqctm124 comparetotmag 80E-1 7.0 -> 1 dqctm125 comparetotmag 0.8E+1 7 -> 1 dqctm126 comparetotmag 80E-1 7 -> 1 dqctm127 comparetotmag 8.0 7E+0 -> 1 dqctm128 comparetotmag 8.0 70E-1 -> 1 dqctm129 comparetotmag 8 0.7E+1 -> 1 dqctm130 comparetotmag 8 70E-1 -> 1 dqctm140 comparetotmag 8.0 9.0 -> -1 dqctm141 comparetotmag 8.0 9 -> -1 dqctm142 comparetotmag 8 9.0 -> -1 dqctm143 comparetotmag 8E+0 9.0 -> -1 dqctm144 comparetotmag 80E-1 9.0 -> -1 dqctm145 comparetotmag 0.8E+1 9 -> -1 dqctm146 comparetotmag 80E-1 9 -> -1 dqctm147 comparetotmag 8.0 9E+0 -> -1 dqctm148 comparetotmag 8.0 90E-1 -> -1 dqctm149 comparetotmag 8 0.9E+1 -> -1 dqctm150 comparetotmag 8 90E-1 -> -1 -- and again, with sign changes -+ .. dqctm200 comparetotmag -7.0 7.0 -> 0 dqctm201 comparetotmag -7.0 7 -> -1 dqctm202 comparetotmag -7 7.0 -> 1 dqctm203 comparetotmag -7E+0 7.0 -> 1 dqctm204 comparetotmag -70E-1 7.0 -> 0 dqctm205 comparetotmag -0.7E+1 7 -> 0 dqctm206 comparetotmag -70E-1 7 -> -1 dqctm207 comparetotmag -7.0 7E+0 -> -1 dqctm208 comparetotmag -7.0 70E-1 -> 0 dqctm209 comparetotmag -7 0.7E+1 -> 0 dqctm210 comparetotmag -7 70E-1 -> 1 dqctm220 comparetotmag -8.0 7.0 -> 1 dqctm221 comparetotmag -8.0 7 -> 1 dqctm222 comparetotmag -8 7.0 -> 1 dqctm223 comparetotmag -8E+0 7.0 -> 1 dqctm224 comparetotmag -80E-1 7.0 -> 1 dqctm225 comparetotmag -0.8E+1 7 -> 1 dqctm226 comparetotmag -80E-1 7 -> 1 dqctm227 comparetotmag -8.0 7E+0 -> 1 dqctm228 comparetotmag -8.0 70E-1 -> 1 dqctm229 comparetotmag -8 0.7E+1 -> 1 dqctm230 comparetotmag -8 70E-1 -> 1 dqctm240 comparetotmag -8.0 9.0 -> -1 dqctm241 comparetotmag -8.0 9 -> -1 dqctm242 comparetotmag -8 9.0 -> -1 dqctm243 comparetotmag -8E+0 9.0 -> -1 dqctm244 comparetotmag -80E-1 9.0 -> -1 dqctm245 comparetotmag -0.8E+1 9 -> -1 dqctm246 comparetotmag -80E-1 9 -> -1 dqctm247 comparetotmag -8.0 9E+0 -> -1 dqctm248 comparetotmag -8.0 90E-1 -> -1 dqctm249 comparetotmag -8 0.9E+1 -> -1 dqctm250 comparetotmag -8 90E-1 -> -1 -- and again, with sign changes +- .. dqctm300 comparetotmag 7.0 -7.0 -> 0 dqctm301 comparetotmag 7.0 -7 -> -1 dqctm302 comparetotmag 7 -7.0 -> 1 dqctm303 comparetotmag 7E+0 -7.0 -> 1 dqctm304 comparetotmag 70E-1 -7.0 -> 0 dqctm305 comparetotmag .7E+1 -7 -> 0 dqctm306 comparetotmag 70E-1 -7 -> -1 dqctm307 comparetotmag 7.0 -7E+0 -> -1 dqctm308 comparetotmag 7.0 -70E-1 -> 0 dqctm309 comparetotmag 7 -.7E+1 -> 0 dqctm310 comparetotmag 7 -70E-1 -> 1 dqctm320 comparetotmag 8.0 -7.0 -> 1 dqctm321 comparetotmag 8.0 -7 -> 1 dqctm322 comparetotmag 8 -7.0 -> 1 dqctm323 comparetotmag 8E+0 -7.0 -> 1 dqctm324 comparetotmag 80E-1 -7.0 -> 1 dqctm325 comparetotmag .8E+1 -7 -> 1 dqctm326 comparetotmag 80E-1 -7 -> 1 dqctm327 comparetotmag 8.0 -7E+0 -> 1 dqctm328 comparetotmag 8.0 -70E-1 -> 1 dqctm329 comparetotmag 8 -.7E+1 -> 1 dqctm330 comparetotmag 8 -70E-1 -> 1 dqctm340 comparetotmag 8.0 -9.0 -> -1 dqctm341 comparetotmag 8.0 -9 -> -1 dqctm342 comparetotmag 8 -9.0 -> -1 dqctm343 comparetotmag 8E+0 -9.0 -> -1 dqctm344 comparetotmag 80E-1 -9.0 -> -1 dqctm345 comparetotmag .8E+1 -9 -> -1 dqctm346 comparetotmag 80E-1 -9 -> -1 dqctm347 comparetotmag 8.0 -9E+0 -> -1 dqctm348 comparetotmag 8.0 -90E-1 -> -1 dqctm349 comparetotmag 8 -.9E+1 -> -1 dqctm350 comparetotmag 8 -90E-1 -> -1 -- and again, with sign changes -- .. dqctm400 comparetotmag -7.0 -7.0 -> 0 dqctm401 comparetotmag -7.0 -7 -> -1 dqctm402 comparetotmag -7 -7.0 -> 1 dqctm403 comparetotmag -7E+0 -7.0 -> 1 dqctm404 comparetotmag -70E-1 -7.0 -> 0 dqctm405 comparetotmag -.7E+1 -7 -> 0 dqctm406 comparetotmag -70E-1 -7 -> -1 dqctm407 comparetotmag -7.0 -7E+0 -> -1 dqctm408 comparetotmag -7.0 -70E-1 -> 0 dqctm409 comparetotmag -7 -.7E+1 -> 0 dqctm410 comparetotmag -7 -70E-1 -> 1 dqctm420 comparetotmag -8.0 -7.0 -> 1 dqctm421 comparetotmag -8.0 -7 -> 1 dqctm422 comparetotmag -8 -7.0 -> 1 dqctm423 comparetotmag -8E+0 -7.0 -> 1 dqctm424 comparetotmag -80E-1 -7.0 -> 1 dqctm425 comparetotmag -.8E+1 -7 -> 1 dqctm426 comparetotmag -80E-1 -7 -> 1 dqctm427 comparetotmag -8.0 -7E+0 -> 1 dqctm428 comparetotmag -8.0 -70E-1 -> 1 dqctm429 comparetotmag -8 -.7E+1 -> 1 dqctm430 comparetotmag -8 -70E-1 -> 1 dqctm440 comparetotmag -8.0 -9.0 -> -1 dqctm441 comparetotmag -8.0 -9 -> -1 dqctm442 comparetotmag -8 -9.0 -> -1 dqctm443 comparetotmag -8E+0 -9.0 -> -1 dqctm444 comparetotmag -80E-1 -9.0 -> -1 dqctm445 comparetotmag -.8E+1 -9 -> -1 dqctm446 comparetotmag -80E-1 -9 -> -1 dqctm447 comparetotmag -8.0 -9E+0 -> -1 dqctm448 comparetotmag -8.0 -90E-1 -> -1 dqctm449 comparetotmag -8 -.9E+1 -> -1 dqctm450 comparetotmag -8 -90E-1 -> -1 -- testcases that subtract to lots of zeros at boundaries [pgr] dqctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1 dqctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1 dqctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1 dqctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1 dqctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1 dqctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1 dqctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1 dqctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1 dqctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1 dqctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1 dqctm483 comparetotmag 123.456E-89 123.456E-89 -> 0 dqctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1 dqctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1 dqctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1 dqctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1 dqctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1 dqctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1 dqctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1 dqctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1 dqctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1 dqctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1 dqctm497 comparetotmag 123.456E+89 123.456E+89 -> 0 -- wide-ranging, around precision; signs equal dqctm498 comparetotmag 1 1E-17 -> 1 dqctm499 comparetotmag 1 1E-16 -> 1 dqctm500 comparetotmag 1 1E-15 -> 1 dqctm501 comparetotmag 1 1E-14 -> 1 dqctm502 comparetotmag 1 1E-13 -> 1 dqctm503 comparetotmag 1 1E-12 -> 1 dqctm504 comparetotmag 1 1E-11 -> 1 dqctm505 comparetotmag 1 1E-10 -> 1 dqctm506 comparetotmag 1 1E-9 -> 1 dqctm507 comparetotmag 1 1E-8 -> 1 dqctm508 comparetotmag 1 1E-7 -> 1 dqctm509 comparetotmag 1 1E-6 -> 1 dqctm510 comparetotmag 1 1E-5 -> 1 dqctm511 comparetotmag 1 1E-4 -> 1 dqctm512 comparetotmag 1 1E-3 -> 1 dqctm513 comparetotmag 1 1E-2 -> 1 dqctm514 comparetotmag 1 1E-1 -> 1 dqctm515 comparetotmag 1 1E-0 -> 0 dqctm516 comparetotmag 1 1E+1 -> -1 dqctm517 comparetotmag 1 1E+2 -> -1 dqctm518 comparetotmag 1 1E+3 -> -1 dqctm519 comparetotmag 1 1E+4 -> -1 dqctm521 comparetotmag 1 1E+5 -> -1 dqctm522 comparetotmag 1 1E+6 -> -1 dqctm523 comparetotmag 1 1E+7 -> -1 dqctm524 comparetotmag 1 1E+8 -> -1 dqctm525 comparetotmag 1 1E+9 -> -1 dqctm526 comparetotmag 1 1E+10 -> -1 dqctm527 comparetotmag 1 1E+11 -> -1 dqctm528 comparetotmag 1 1E+12 -> -1 dqctm529 comparetotmag 1 1E+13 -> -1 dqctm530 comparetotmag 1 1E+14 -> -1 dqctm531 comparetotmag 1 1E+15 -> -1 dqctm532 comparetotmag 1 1E+16 -> -1 dqctm533 comparetotmag 1 1E+17 -> -1 -- LR swap dqctm538 comparetotmag 1E-17 1 -> -1 dqctm539 comparetotmag 1E-16 1 -> -1 dqctm540 comparetotmag 1E-15 1 -> -1 dqctm541 comparetotmag 1E-14 1 -> -1 dqctm542 comparetotmag 1E-13 1 -> -1 dqctm543 comparetotmag 1E-12 1 -> -1 dqctm544 comparetotmag 1E-11 1 -> -1 dqctm545 comparetotmag 1E-10 1 -> -1 dqctm546 comparetotmag 1E-9 1 -> -1 dqctm547 comparetotmag 1E-8 1 -> -1 dqctm548 comparetotmag 1E-7 1 -> -1 dqctm549 comparetotmag 1E-6 1 -> -1 dqctm550 comparetotmag 1E-5 1 -> -1 dqctm551 comparetotmag 1E-4 1 -> -1 dqctm552 comparetotmag 1E-3 1 -> -1 dqctm553 comparetotmag 1E-2 1 -> -1 dqctm554 comparetotmag 1E-1 1 -> -1 dqctm555 comparetotmag 1E-0 1 -> 0 dqctm556 comparetotmag 1E+1 1 -> 1 dqctm557 comparetotmag 1E+2 1 -> 1 dqctm558 comparetotmag 1E+3 1 -> 1 dqctm559 comparetotmag 1E+4 1 -> 1 dqctm561 comparetotmag 1E+5 1 -> 1 dqctm562 comparetotmag 1E+6 1 -> 1 dqctm563 comparetotmag 1E+7 1 -> 1 dqctm564 comparetotmag 1E+8 1 -> 1 dqctm565 comparetotmag 1E+9 1 -> 1 dqctm566 comparetotmag 1E+10 1 -> 1 dqctm567 comparetotmag 1E+11 1 -> 1 dqctm568 comparetotmag 1E+12 1 -> 1 dqctm569 comparetotmag 1E+13 1 -> 1 dqctm570 comparetotmag 1E+14 1 -> 1 dqctm571 comparetotmag 1E+15 1 -> 1 dqctm572 comparetotmag 1E+16 1 -> 1 dqctm573 comparetotmag 1E+17 1 -> 1 -- similar with a useful coefficient, one side only dqctm578 comparetotmag 0.000000987654321 1E-17 -> 1 dqctm579 comparetotmag 0.000000987654321 1E-16 -> 1 dqctm580 comparetotmag 0.000000987654321 1E-15 -> 1 dqctm581 comparetotmag 0.000000987654321 1E-14 -> 1 dqctm582 comparetotmag 0.000000987654321 1E-13 -> 1 dqctm583 comparetotmag 0.000000987654321 1E-12 -> 1 dqctm584 comparetotmag 0.000000987654321 1E-11 -> 1 dqctm585 comparetotmag 0.000000987654321 1E-10 -> 1 dqctm586 comparetotmag 0.000000987654321 1E-9 -> 1 dqctm587 comparetotmag 0.000000987654321 1E-8 -> 1 dqctm588 comparetotmag 0.000000987654321 1E-7 -> 1 dqctm589 comparetotmag 0.000000987654321 1E-6 -> -1 dqctm590 comparetotmag 0.000000987654321 1E-5 -> -1 dqctm591 comparetotmag 0.000000987654321 1E-4 -> -1 dqctm592 comparetotmag 0.000000987654321 1E-3 -> -1 dqctm593 comparetotmag 0.000000987654321 1E-2 -> -1 dqctm594 comparetotmag 0.000000987654321 1E-1 -> -1 dqctm595 comparetotmag 0.000000987654321 1E-0 -> -1 dqctm596 comparetotmag 0.000000987654321 1E+1 -> -1 dqctm597 comparetotmag 0.000000987654321 1E+2 -> -1 dqctm598 comparetotmag 0.000000987654321 1E+3 -> -1 dqctm599 comparetotmag 0.000000987654321 1E+4 -> -1 -- check some unit-y traps dqctm600 comparetotmag 12 12.2345 -> -1 dqctm601 comparetotmag 12.0 12.2345 -> -1 dqctm602 comparetotmag 12.00 12.2345 -> -1 dqctm603 comparetotmag 12.000 12.2345 -> -1 dqctm604 comparetotmag 12.0000 12.2345 -> -1 dqctm605 comparetotmag 12.00000 12.2345 -> -1 dqctm606 comparetotmag 12.000000 12.2345 -> -1 dqctm607 comparetotmag 12.0000000 12.2345 -> -1 dqctm608 comparetotmag 12.00000000 12.2345 -> -1 dqctm609 comparetotmag 12.000000000 12.2345 -> -1 dqctm610 comparetotmag 12.1234 12 -> 1 dqctm611 comparetotmag 12.1234 12.0 -> 1 dqctm612 comparetotmag 12.1234 12.00 -> 1 dqctm613 comparetotmag 12.1234 12.000 -> 1 dqctm614 comparetotmag 12.1234 12.0000 -> 1 dqctm615 comparetotmag 12.1234 12.00000 -> 1 dqctm616 comparetotmag 12.1234 12.000000 -> 1 dqctm617 comparetotmag 12.1234 12.0000000 -> 1 dqctm618 comparetotmag 12.1234 12.00000000 -> 1 dqctm619 comparetotmag 12.1234 12.000000000 -> 1 dqctm620 comparetotmag -12 -12.2345 -> -1 dqctm621 comparetotmag -12.0 -12.2345 -> -1 dqctm622 comparetotmag -12.00 -12.2345 -> -1 dqctm623 comparetotmag -12.000 -12.2345 -> -1 dqctm624 comparetotmag -12.0000 -12.2345 -> -1 dqctm625 comparetotmag -12.00000 -12.2345 -> -1 dqctm626 comparetotmag -12.000000 -12.2345 -> -1 dqctm627 comparetotmag -12.0000000 -12.2345 -> -1 dqctm628 comparetotmag -12.00000000 -12.2345 -> -1 dqctm629 comparetotmag -12.000000000 -12.2345 -> -1 dqctm630 comparetotmag -12.1234 -12 -> 1 dqctm631 comparetotmag -12.1234 -12.0 -> 1 dqctm632 comparetotmag -12.1234 -12.00 -> 1 dqctm633 comparetotmag -12.1234 -12.000 -> 1 dqctm634 comparetotmag -12.1234 -12.0000 -> 1 dqctm635 comparetotmag -12.1234 -12.00000 -> 1 dqctm636 comparetotmag -12.1234 -12.000000 -> 1 dqctm637 comparetotmag -12.1234 -12.0000000 -> 1 dqctm638 comparetotmag -12.1234 -12.00000000 -> 1 dqctm639 comparetotmag -12.1234 -12.000000000 -> 1 -- extended zeros dqctm640 comparetotmag 0 0 -> 0 dqctm641 comparetotmag 0 -0 -> 0 dqctm642 comparetotmag 0 -0.0 -> 1 dqctm643 comparetotmag 0 0.0 -> 1 dqctm644 comparetotmag -0 0 -> 0 dqctm645 comparetotmag -0 -0 -> 0 dqctm646 comparetotmag -0 -0.0 -> 1 dqctm647 comparetotmag -0 0.0 -> 1 dqctm648 comparetotmag 0.0 0 -> -1 dqctm649 comparetotmag 0.0 -0 -> -1 dqctm650 comparetotmag 0.0 -0.0 -> 0 dqctm651 comparetotmag 0.0 0.0 -> 0 dqctm652 comparetotmag -0.0 0 -> -1 dqctm653 comparetotmag -0.0 -0 -> -1 dqctm654 comparetotmag -0.0 -0.0 -> 0 dqctm655 comparetotmag -0.0 0.0 -> 0 dqctm656 comparetotmag -0E1 0.0 -> 1 dqctm657 comparetotmag -0E2 0.0 -> 1 dqctm658 comparetotmag 0E1 0.0 -> 1 dqctm659 comparetotmag 0E2 0.0 -> 1 dqctm660 comparetotmag -0E1 0 -> 1 dqctm661 comparetotmag -0E2 0 -> 1 dqctm662 comparetotmag 0E1 0 -> 1 dqctm663 comparetotmag 0E2 0 -> 1 dqctm664 comparetotmag -0E1 -0E1 -> 0 dqctm665 comparetotmag -0E2 -0E1 -> 1 dqctm666 comparetotmag 0E1 -0E1 -> 0 dqctm667 comparetotmag 0E2 -0E1 -> 1 dqctm668 comparetotmag -0E1 -0E2 -> -1 dqctm669 comparetotmag -0E2 -0E2 -> 0 dqctm670 comparetotmag 0E1 -0E2 -> -1 dqctm671 comparetotmag 0E2 -0E2 -> 0 dqctm672 comparetotmag -0E1 0E1 -> 0 dqctm673 comparetotmag -0E2 0E1 -> 1 dqctm674 comparetotmag 0E1 0E1 -> 0 dqctm675 comparetotmag 0E2 0E1 -> 1 dqctm676 comparetotmag -0E1 0E2 -> -1 dqctm677 comparetotmag -0E2 0E2 -> 0 dqctm678 comparetotmag 0E1 0E2 -> -1 dqctm679 comparetotmag 0E2 0E2 -> 0 -- trailing zeros; unit-y dqctm680 comparetotmag 12 12 -> 0 dqctm681 comparetotmag 12 12.0 -> 1 dqctm682 comparetotmag 12 12.00 -> 1 dqctm683 comparetotmag 12 12.000 -> 1 dqctm684 comparetotmag 12 12.0000 -> 1 dqctm685 comparetotmag 12 12.00000 -> 1 dqctm686 comparetotmag 12 12.000000 -> 1 dqctm687 comparetotmag 12 12.0000000 -> 1 dqctm688 comparetotmag 12 12.00000000 -> 1 dqctm689 comparetotmag 12 12.000000000 -> 1 dqctm690 comparetotmag 12 12 -> 0 dqctm691 comparetotmag 12.0 12 -> -1 dqctm692 comparetotmag 12.00 12 -> -1 dqctm693 comparetotmag 12.000 12 -> -1 dqctm694 comparetotmag 12.0000 12 -> -1 dqctm695 comparetotmag 12.00000 12 -> -1 dqctm696 comparetotmag 12.000000 12 -> -1 dqctm697 comparetotmag 12.0000000 12 -> -1 dqctm698 comparetotmag 12.00000000 12 -> -1 dqctm699 comparetotmag 12.000000000 12 -> -1 -- old long operand checks dqctm701 comparetotmag 12345678000 1 -> 1 dqctm702 comparetotmag 1 12345678000 -> -1 dqctm703 comparetotmag 1234567800 1 -> 1 dqctm704 comparetotmag 1 1234567800 -> -1 dqctm705 comparetotmag 1234567890 1 -> 1 dqctm706 comparetotmag 1 1234567890 -> -1 dqctm707 comparetotmag 1234567891 1 -> 1 dqctm708 comparetotmag 1 1234567891 -> -1 dqctm709 comparetotmag 12345678901 1 -> 1 dqctm710 comparetotmag 1 12345678901 -> -1 dqctm711 comparetotmag 1234567896 1 -> 1 dqctm712 comparetotmag 1 1234567896 -> -1 dqctm713 comparetotmag -1234567891 1 -> 1 dqctm714 comparetotmag 1 -1234567891 -> -1 dqctm715 comparetotmag -12345678901 1 -> 1 dqctm716 comparetotmag 1 -12345678901 -> -1 dqctm717 comparetotmag -1234567896 1 -> 1 dqctm718 comparetotmag 1 -1234567896 -> -1 -- old residue cases dqctm740 comparetotmag 1 0.9999999 -> 1 dqctm741 comparetotmag 1 0.999999 -> 1 dqctm742 comparetotmag 1 0.99999 -> 1 dqctm743 comparetotmag 1 1.0000 -> 1 dqctm744 comparetotmag 1 1.00001 -> -1 dqctm745 comparetotmag 1 1.000001 -> -1 dqctm746 comparetotmag 1 1.0000001 -> -1 dqctm750 comparetotmag 0.9999999 1 -> -1 dqctm751 comparetotmag 0.999999 1 -> -1 dqctm752 comparetotmag 0.99999 1 -> -1 dqctm753 comparetotmag 1.0000 1 -> -1 dqctm754 comparetotmag 1.00001 1 -> 1 dqctm755 comparetotmag 1.000001 1 -> 1 dqctm756 comparetotmag 1.0000001 1 -> 1 -- Specials dqctm780 comparetotmag Inf -Inf -> 0 dqctm781 comparetotmag Inf -1000 -> 1 dqctm782 comparetotmag Inf -1 -> 1 dqctm783 comparetotmag Inf -0 -> 1 dqctm784 comparetotmag Inf 0 -> 1 dqctm785 comparetotmag Inf 1 -> 1 dqctm786 comparetotmag Inf 1000 -> 1 dqctm787 comparetotmag Inf Inf -> 0 dqctm788 comparetotmag -1000 Inf -> -1 dqctm789 comparetotmag -Inf Inf -> 0 dqctm790 comparetotmag -1 Inf -> -1 dqctm791 comparetotmag -0 Inf -> -1 dqctm792 comparetotmag 0 Inf -> -1 dqctm793 comparetotmag 1 Inf -> -1 dqctm794 comparetotmag 1000 Inf -> -1 dqctm795 comparetotmag Inf Inf -> 0 dqctm800 comparetotmag -Inf -Inf -> 0 dqctm801 comparetotmag -Inf -1000 -> 1 dqctm802 comparetotmag -Inf -1 -> 1 dqctm803 comparetotmag -Inf -0 -> 1 dqctm804 comparetotmag -Inf 0 -> 1 dqctm805 comparetotmag -Inf 1 -> 1 dqctm806 comparetotmag -Inf 1000 -> 1 dqctm807 comparetotmag -Inf Inf -> 0 dqctm808 comparetotmag -Inf -Inf -> 0 dqctm809 comparetotmag -1000 -Inf -> -1 dqctm810 comparetotmag -1 -Inf -> -1 dqctm811 comparetotmag -0 -Inf -> -1 dqctm812 comparetotmag 0 -Inf -> -1 dqctm813 comparetotmag 1 -Inf -> -1 dqctm814 comparetotmag 1000 -Inf -> -1 dqctm815 comparetotmag Inf -Inf -> 0 dqctm821 comparetotmag NaN -Inf -> 1 dqctm822 comparetotmag NaN -1000 -> 1 dqctm823 comparetotmag NaN -1 -> 1 dqctm824 comparetotmag NaN -0 -> 1 dqctm825 comparetotmag NaN 0 -> 1 dqctm826 comparetotmag NaN 1 -> 1 dqctm827 comparetotmag NaN 1000 -> 1 dqctm828 comparetotmag NaN Inf -> 1 dqctm829 comparetotmag NaN NaN -> 0 dqctm830 comparetotmag -Inf NaN -> -1 dqctm831 comparetotmag -1000 NaN -> -1 dqctm832 comparetotmag -1 NaN -> -1 dqctm833 comparetotmag -0 NaN -> -1 dqctm834 comparetotmag 0 NaN -> -1 dqctm835 comparetotmag 1 NaN -> -1 dqctm836 comparetotmag 1000 NaN -> -1 dqctm837 comparetotmag Inf NaN -> -1 dqctm838 comparetotmag -NaN -NaN -> 0 dqctm839 comparetotmag +NaN -NaN -> 0 dqctm840 comparetotmag -NaN +NaN -> 0 dqctm841 comparetotmag sNaN -sNaN -> 0 dqctm842 comparetotmag sNaN -NaN -> -1 dqctm843 comparetotmag sNaN -Inf -> 1 dqctm844 comparetotmag sNaN -1000 -> 1 dqctm845 comparetotmag sNaN -1 -> 1 dqctm846 comparetotmag sNaN -0 -> 1 dqctm847 comparetotmag sNaN 0 -> 1 dqctm848 comparetotmag sNaN 1 -> 1 dqctm849 comparetotmag sNaN 1000 -> 1 dqctm850 comparetotmag sNaN NaN -> -1 dqctm851 comparetotmag sNaN sNaN -> 0 dqctm852 comparetotmag -sNaN sNaN -> 0 dqctm853 comparetotmag -NaN sNaN -> 1 dqctm854 comparetotmag -Inf sNaN -> -1 dqctm855 comparetotmag -1000 sNaN -> -1 dqctm856 comparetotmag -1 sNaN -> -1 dqctm857 comparetotmag -0 sNaN -> -1 dqctm858 comparetotmag 0 sNaN -> -1 dqctm859 comparetotmag 1 sNaN -> -1 dqctm860 comparetotmag 1000 sNaN -> -1 dqctm861 comparetotmag Inf sNaN -> -1 dqctm862 comparetotmag NaN sNaN -> 1 dqctm863 comparetotmag sNaN sNaN -> 0 dqctm871 comparetotmag -sNaN -sNaN -> 0 dqctm872 comparetotmag -sNaN -NaN -> -1 dqctm873 comparetotmag -sNaN -Inf -> 1 dqctm874 comparetotmag -sNaN -1000 -> 1 dqctm875 comparetotmag -sNaN -1 -> 1 dqctm876 comparetotmag -sNaN -0 -> 1 dqctm877 comparetotmag -sNaN 0 -> 1 dqctm878 comparetotmag -sNaN 1 -> 1 dqctm879 comparetotmag -sNaN 1000 -> 1 dqctm880 comparetotmag -sNaN NaN -> -1 dqctm881 comparetotmag -sNaN sNaN -> 0 dqctm882 comparetotmag -sNaN -sNaN -> 0 dqctm883 comparetotmag -NaN -sNaN -> 1 dqctm884 comparetotmag -Inf -sNaN -> -1 dqctm885 comparetotmag -1000 -sNaN -> -1 dqctm886 comparetotmag -1 -sNaN -> -1 dqctm887 comparetotmag -0 -sNaN -> -1 dqctm888 comparetotmag 0 -sNaN -> -1 dqctm889 comparetotmag 1 -sNaN -> -1 dqctm890 comparetotmag 1000 -sNaN -> -1 dqctm891 comparetotmag Inf -sNaN -> -1 dqctm892 comparetotmag NaN -sNaN -> 1 dqctm893 comparetotmag sNaN -sNaN -> 0 -- NaNs with payload dqctm960 comparetotmag NaN9 -Inf -> 1 dqctm961 comparetotmag NaN8 999 -> 1 dqctm962 comparetotmag NaN77 Inf -> 1 dqctm963 comparetotmag -NaN67 NaN5 -> 1 dqctm964 comparetotmag -Inf -NaN4 -> -1 dqctm965 comparetotmag -999 -NaN33 -> -1 dqctm966 comparetotmag Inf NaN2 -> -1 dqctm970 comparetotmag -NaN41 -NaN42 -> -1 dqctm971 comparetotmag +NaN41 -NaN42 -> -1 dqctm972 comparetotmag -NaN41 +NaN42 -> -1 dqctm973 comparetotmag +NaN41 +NaN42 -> -1 dqctm974 comparetotmag -NaN42 -NaN01 -> 1 dqctm975 comparetotmag +NaN42 -NaN01 -> 1 dqctm976 comparetotmag -NaN42 +NaN01 -> 1 dqctm977 comparetotmag +NaN42 +NaN01 -> 1 dqctm980 comparetotmag -sNaN771 -sNaN772 -> -1 dqctm981 comparetotmag +sNaN771 -sNaN772 -> -1 dqctm982 comparetotmag -sNaN771 +sNaN772 -> -1 dqctm983 comparetotmag +sNaN771 +sNaN772 -> -1 dqctm984 comparetotmag -sNaN772 -sNaN771 -> 1 dqctm985 comparetotmag +sNaN772 -sNaN771 -> 1 dqctm986 comparetotmag -sNaN772 +sNaN771 -> 1 dqctm987 comparetotmag +sNaN772 +sNaN771 -> 1 dqctm991 comparetotmag -sNaN99 -Inf -> 1 dqctm992 comparetotmag sNaN98 -11 -> 1 dqctm993 comparetotmag sNaN97 NaN -> -1 dqctm994 comparetotmag sNaN16 sNaN94 -> -1 dqctm995 comparetotmag NaN85 sNaN83 -> 1 dqctm996 comparetotmag -Inf sNaN92 -> -1 dqctm997 comparetotmag 088 sNaN81 -> -1 dqctm998 comparetotmag Inf sNaN90 -> -1 dqctm999 comparetotmag NaN -sNaN89 -> 1 -- spread zeros dqctm1110 comparetotmag 0E-6143 0 -> -1 dqctm1111 comparetotmag 0E-6143 -0 -> -1 dqctm1112 comparetotmag -0E-6143 0 -> -1 dqctm1113 comparetotmag -0E-6143 -0 -> -1 dqctm1114 comparetotmag 0E-6143 0E+6144 -> -1 dqctm1115 comparetotmag 0E-6143 -0E+6144 -> -1 dqctm1116 comparetotmag -0E-6143 0E+6144 -> -1 dqctm1117 comparetotmag -0E-6143 -0E+6144 -> -1 dqctm1118 comparetotmag 0 0E+6144 -> -1 dqctm1119 comparetotmag 0 -0E+6144 -> -1 dqctm1120 comparetotmag -0 0E+6144 -> -1 dqctm1121 comparetotmag -0 -0E+6144 -> -1 dqctm1130 comparetotmag 0E+6144 0 -> 1 dqctm1131 comparetotmag 0E+6144 -0 -> 1 dqctm1132 comparetotmag -0E+6144 0 -> 1 dqctm1133 comparetotmag -0E+6144 -0 -> 1 dqctm1134 comparetotmag 0E+6144 0E-6143 -> 1 dqctm1135 comparetotmag 0E+6144 -0E-6143 -> 1 dqctm1136 comparetotmag -0E+6144 0E-6143 -> 1 dqctm1137 comparetotmag -0E+6144 -0E-6143 -> 1 dqctm1138 comparetotmag 0 0E-6143 -> 1 dqctm1139 comparetotmag 0 -0E-6143 -> 1 dqctm1140 comparetotmag -0 0E-6143 -> 1 dqctm1141 comparetotmag -0 -0E-6143 -> 1 -- Null tests dqctm9990 comparetotmag 10 # -> NaN Invalid_operation dqctm9991 comparetotmag # 10 -> NaN Invalid_operation