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