17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- ddInvert.decTest -- digitwise logical INVERT for decDoubles -- 37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- 47db96d56Sopenharmony_ci------------------------------------------------------------------------ 57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases" -- 67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of -- 77db96d56Sopenharmony_ci-- these testcases. -- 87db96d56Sopenharmony_ci-- -- 97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they -- 107db96d56Sopenharmony_ci-- may contain errors. They are offered on an as-is basis. In -- 117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not -- 127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard -- 137db96d56Sopenharmony_ci-- or specification. The tests are not exhaustive. -- 147db96d56Sopenharmony_ci-- -- 157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author: -- 167db96d56Sopenharmony_ci-- Mike Cowlishaw, IBM Fellow -- 177db96d56Sopenharmony_ci-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- 187db96d56Sopenharmony_ci-- mfc@uk.ibm.com -- 197db96d56Sopenharmony_ci------------------------------------------------------------------------ 207db96d56Sopenharmony_civersion: 2.59 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ciprecision: 16 237db96d56Sopenharmony_cimaxExponent: 384 247db96d56Sopenharmony_ciminExponent: -383 257db96d56Sopenharmony_ciextended: 1 267db96d56Sopenharmony_ciclamp: 1 277db96d56Sopenharmony_cirounding: half_even 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci-- Sanity check (truth table) 307db96d56Sopenharmony_ciddinv001 invert 0 -> 1111111111111111 317db96d56Sopenharmony_ciddinv002 invert 1 -> 1111111111111110 327db96d56Sopenharmony_ciddinv003 invert 10 -> 1111111111111101 337db96d56Sopenharmony_ciddinv004 invert 111111111 -> 1111111000000000 347db96d56Sopenharmony_ciddinv005 invert 000000000 -> 1111111111111111 357db96d56Sopenharmony_ci-- and at msd and msd-1 367db96d56Sopenharmony_ciddinv007 invert 0000000000000000 -> 1111111111111111 377db96d56Sopenharmony_ciddinv008 invert 1000000000000000 -> 111111111111111 387db96d56Sopenharmony_ciddinv009 invert 0000000000000000 -> 1111111111111111 397db96d56Sopenharmony_ciddinv010 invert 0100000000000000 -> 1011111111111111 407db96d56Sopenharmony_ciddinv011 invert 0111111111111111 -> 1000000000000000 417db96d56Sopenharmony_ciddinv012 invert 1111111111111111 -> 0 427db96d56Sopenharmony_ciddinv013 invert 0011111111111111 -> 1100000000000000 437db96d56Sopenharmony_ciddinv014 invert 0111111111111111 -> 1000000000000000 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci-- Various lengths 467db96d56Sopenharmony_ci-- 123456789 1234567890123456 477db96d56Sopenharmony_ciddinv021 invert 111111111 -> 1111111000000000 487db96d56Sopenharmony_ciddinv022 invert 111111111111 -> 1111000000000000 497db96d56Sopenharmony_ciddinv023 invert 11111111 -> 1111111100000000 507db96d56Sopenharmony_ciddinv025 invert 1111111 -> 1111111110000000 517db96d56Sopenharmony_ciddinv026 invert 111111 -> 1111111111000000 527db96d56Sopenharmony_ciddinv027 invert 11111 -> 1111111111100000 537db96d56Sopenharmony_ciddinv028 invert 1111 -> 1111111111110000 547db96d56Sopenharmony_ciddinv029 invert 111 -> 1111111111111000 557db96d56Sopenharmony_ciddinv031 invert 11 -> 1111111111111100 567db96d56Sopenharmony_ciddinv032 invert 1 -> 1111111111111110 577db96d56Sopenharmony_ciddinv033 invert 111111111111 -> 1111000000000000 587db96d56Sopenharmony_ciddinv034 invert 11111111111 -> 1111100000000000 597db96d56Sopenharmony_ciddinv035 invert 1111111111 -> 1111110000000000 607db96d56Sopenharmony_ciddinv036 invert 111111111 -> 1111111000000000 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ciddinv040 invert 011111111 -> 1111111100000000 637db96d56Sopenharmony_ciddinv041 invert 101111111 -> 1111111010000000 647db96d56Sopenharmony_ciddinv042 invert 110111111 -> 1111111001000000 657db96d56Sopenharmony_ciddinv043 invert 111011111 -> 1111111000100000 667db96d56Sopenharmony_ciddinv044 invert 111101111 -> 1111111000010000 677db96d56Sopenharmony_ciddinv045 invert 111110111 -> 1111111000001000 687db96d56Sopenharmony_ciddinv046 invert 111111011 -> 1111111000000100 697db96d56Sopenharmony_ciddinv047 invert 111111101 -> 1111111000000010 707db96d56Sopenharmony_ciddinv048 invert 111111110 -> 1111111000000001 717db96d56Sopenharmony_ciddinv049 invert 011111011 -> 1111111100000100 727db96d56Sopenharmony_ciddinv050 invert 101111101 -> 1111111010000010 737db96d56Sopenharmony_ciddinv051 invert 110111110 -> 1111111001000001 747db96d56Sopenharmony_ciddinv052 invert 111011101 -> 1111111000100010 757db96d56Sopenharmony_ciddinv053 invert 111101011 -> 1111111000010100 767db96d56Sopenharmony_ciddinv054 invert 111110111 -> 1111111000001000 777db96d56Sopenharmony_ciddinv055 invert 111101011 -> 1111111000010100 787db96d56Sopenharmony_ciddinv056 invert 111011101 -> 1111111000100010 797db96d56Sopenharmony_ciddinv057 invert 110111110 -> 1111111001000001 807db96d56Sopenharmony_ciddinv058 invert 101111101 -> 1111111010000010 817db96d56Sopenharmony_ciddinv059 invert 011111011 -> 1111111100000100 827db96d56Sopenharmony_ci 837db96d56Sopenharmony_ciddinv080 invert 1000000011111111 -> 111111100000000 847db96d56Sopenharmony_ciddinv081 invert 0100000101111111 -> 1011111010000000 857db96d56Sopenharmony_ciddinv082 invert 0010000110111111 -> 1101111001000000 867db96d56Sopenharmony_ciddinv083 invert 0001000111011111 -> 1110111000100000 877db96d56Sopenharmony_ciddinv084 invert 0000100111101111 -> 1111011000010000 887db96d56Sopenharmony_ciddinv085 invert 0000010111110111 -> 1111101000001000 897db96d56Sopenharmony_ciddinv086 invert 0000001111111011 -> 1111110000000100 907db96d56Sopenharmony_ciddinv087 invert 0000010111111101 -> 1111101000000010 917db96d56Sopenharmony_ciddinv088 invert 0000100111111110 -> 1111011000000001 927db96d56Sopenharmony_ciddinv089 invert 0001000011111011 -> 1110111100000100 937db96d56Sopenharmony_ciddinv090 invert 0010000101111101 -> 1101111010000010 947db96d56Sopenharmony_ciddinv091 invert 0100000110111110 -> 1011111001000001 957db96d56Sopenharmony_ciddinv092 invert 1000000111011101 -> 111111000100010 967db96d56Sopenharmony_ciddinv093 invert 0100000111101011 -> 1011111000010100 977db96d56Sopenharmony_ciddinv094 invert 0010000111110111 -> 1101111000001000 987db96d56Sopenharmony_ciddinv095 invert 0001000111101011 -> 1110111000010100 997db96d56Sopenharmony_ciddinv096 invert 0000100111011101 -> 1111011000100010 1007db96d56Sopenharmony_ciddinv097 invert 0000010110111110 -> 1111101001000001 1017db96d56Sopenharmony_ciddinv098 invert 0000001101111101 -> 1111110010000010 1027db96d56Sopenharmony_ciddinv099 invert 0000010011111011 -> 1111101100000100 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ci-- non-0/1 should not be accepted, nor should signs 1057db96d56Sopenharmony_ciddinv220 invert 111111112 -> NaN Invalid_operation 1067db96d56Sopenharmony_ciddinv221 invert 333333333 -> NaN Invalid_operation 1077db96d56Sopenharmony_ciddinv222 invert 555555555 -> NaN Invalid_operation 1087db96d56Sopenharmony_ciddinv223 invert 777777777 -> NaN Invalid_operation 1097db96d56Sopenharmony_ciddinv224 invert 999999999 -> NaN Invalid_operation 1107db96d56Sopenharmony_ciddinv225 invert 222222222 -> NaN Invalid_operation 1117db96d56Sopenharmony_ciddinv226 invert 444444444 -> NaN Invalid_operation 1127db96d56Sopenharmony_ciddinv227 invert 666666666 -> NaN Invalid_operation 1137db96d56Sopenharmony_ciddinv228 invert 888888888 -> NaN Invalid_operation 1147db96d56Sopenharmony_ciddinv229 invert 999999999 -> NaN Invalid_operation 1157db96d56Sopenharmony_ciddinv230 invert 999999999 -> NaN Invalid_operation 1167db96d56Sopenharmony_ciddinv231 invert 999999999 -> NaN Invalid_operation 1177db96d56Sopenharmony_ciddinv232 invert 999999999 -> NaN Invalid_operation 1187db96d56Sopenharmony_ci-- a few randoms 1197db96d56Sopenharmony_ciddinv240 invert 567468689 -> NaN Invalid_operation 1207db96d56Sopenharmony_ciddinv241 invert 567367689 -> NaN Invalid_operation 1217db96d56Sopenharmony_ciddinv242 invert -631917772 -> NaN Invalid_operation 1227db96d56Sopenharmony_ciddinv243 invert -756253257 -> NaN Invalid_operation 1237db96d56Sopenharmony_ciddinv244 invert 835590149 -> NaN Invalid_operation 1247db96d56Sopenharmony_ci-- test MSD 1257db96d56Sopenharmony_ciddinv250 invert 2000000000000000 -> NaN Invalid_operation 1267db96d56Sopenharmony_ciddinv251 invert 3000000000000000 -> NaN Invalid_operation 1277db96d56Sopenharmony_ciddinv252 invert 4000000000000000 -> NaN Invalid_operation 1287db96d56Sopenharmony_ciddinv253 invert 5000000000000000 -> NaN Invalid_operation 1297db96d56Sopenharmony_ciddinv254 invert 6000000000000000 -> NaN Invalid_operation 1307db96d56Sopenharmony_ciddinv255 invert 7000000000000000 -> NaN Invalid_operation 1317db96d56Sopenharmony_ciddinv256 invert 8000000000000000 -> NaN Invalid_operation 1327db96d56Sopenharmony_ciddinv257 invert 9000000000000000 -> NaN Invalid_operation 1337db96d56Sopenharmony_ci-- test MSD-1 1347db96d56Sopenharmony_ciddinv270 invert 0200001000000000 -> NaN Invalid_operation 1357db96d56Sopenharmony_ciddinv271 invert 0300000100000000 -> NaN Invalid_operation 1367db96d56Sopenharmony_ciddinv272 invert 0400000010000000 -> NaN Invalid_operation 1377db96d56Sopenharmony_ciddinv273 invert 0500000001000000 -> NaN Invalid_operation 1387db96d56Sopenharmony_ciddinv274 invert 1600000000100000 -> NaN Invalid_operation 1397db96d56Sopenharmony_ciddinv275 invert 1700000000010000 -> NaN Invalid_operation 1407db96d56Sopenharmony_ciddinv276 invert 1800000000001000 -> NaN Invalid_operation 1417db96d56Sopenharmony_ciddinv277 invert 1900000000000100 -> NaN Invalid_operation 1427db96d56Sopenharmony_ci-- test LSD 1437db96d56Sopenharmony_ciddinv280 invert 0010000000000002 -> NaN Invalid_operation 1447db96d56Sopenharmony_ciddinv281 invert 0001000000000003 -> NaN Invalid_operation 1457db96d56Sopenharmony_ciddinv282 invert 0000100000000004 -> NaN Invalid_operation 1467db96d56Sopenharmony_ciddinv283 invert 0000010000000005 -> NaN Invalid_operation 1477db96d56Sopenharmony_ciddinv284 invert 1000001000000006 -> NaN Invalid_operation 1487db96d56Sopenharmony_ciddinv285 invert 1000000100000007 -> NaN Invalid_operation 1497db96d56Sopenharmony_ciddinv286 invert 1000000010000008 -> NaN Invalid_operation 1507db96d56Sopenharmony_ciddinv287 invert 1000000001000009 -> NaN Invalid_operation 1517db96d56Sopenharmony_ci-- test Middie 1527db96d56Sopenharmony_ciddinv288 invert 0010000020000000 -> NaN Invalid_operation 1537db96d56Sopenharmony_ciddinv289 invert 0001000030000001 -> NaN Invalid_operation 1547db96d56Sopenharmony_ciddinv290 invert 0000100040000010 -> NaN Invalid_operation 1557db96d56Sopenharmony_ciddinv291 invert 0000010050000100 -> NaN Invalid_operation 1567db96d56Sopenharmony_ciddinv292 invert 1000001060001000 -> NaN Invalid_operation 1577db96d56Sopenharmony_ciddinv293 invert 1000000170010000 -> NaN Invalid_operation 1587db96d56Sopenharmony_ciddinv294 invert 1000000080100000 -> NaN Invalid_operation 1597db96d56Sopenharmony_ciddinv295 invert 1000000091000000 -> NaN Invalid_operation 1607db96d56Sopenharmony_ci-- sign 1617db96d56Sopenharmony_ciddinv296 invert -1000000001000000 -> NaN Invalid_operation 1627db96d56Sopenharmony_ciddinv299 invert 1000000001000000 -> 111111110111111 1637db96d56Sopenharmony_ci 1647db96d56Sopenharmony_ci 1657db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny-like 1667db96d56Sopenharmony_ciddinv341 invert 9.99999999E+299 -> NaN Invalid_operation 1677db96d56Sopenharmony_ciddinv342 invert 1E-299 -> NaN Invalid_operation 1687db96d56Sopenharmony_ciddinv343 invert 1.00000000E-299 -> NaN Invalid_operation 1697db96d56Sopenharmony_ciddinv344 invert 1E-207 -> NaN Invalid_operation 1707db96d56Sopenharmony_ciddinv345 invert -1E-207 -> NaN Invalid_operation 1717db96d56Sopenharmony_ciddinv346 invert -1.00000000E-299 -> NaN Invalid_operation 1727db96d56Sopenharmony_ciddinv347 invert -1E-299 -> NaN Invalid_operation 1737db96d56Sopenharmony_ciddinv348 invert -9.99999999E+299 -> NaN Invalid_operation 1747db96d56Sopenharmony_ci 1757db96d56Sopenharmony_ci-- A few other non-integers 1767db96d56Sopenharmony_ciddinv361 invert 1.0 -> NaN Invalid_operation 1777db96d56Sopenharmony_ciddinv362 invert 1E+1 -> NaN Invalid_operation 1787db96d56Sopenharmony_ciddinv363 invert 0.0 -> NaN Invalid_operation 1797db96d56Sopenharmony_ciddinv364 invert 0E+1 -> NaN Invalid_operation 1807db96d56Sopenharmony_ciddinv365 invert 9.9 -> NaN Invalid_operation 1817db96d56Sopenharmony_ciddinv366 invert 9E+1 -> NaN Invalid_operation 1827db96d56Sopenharmony_ci 1837db96d56Sopenharmony_ci-- All Specials are in error 1847db96d56Sopenharmony_ciddinv788 invert -Inf -> NaN Invalid_operation 1857db96d56Sopenharmony_ciddinv794 invert Inf -> NaN Invalid_operation 1867db96d56Sopenharmony_ciddinv821 invert NaN -> NaN Invalid_operation 1877db96d56Sopenharmony_ciddinv841 invert sNaN -> NaN Invalid_operation 1887db96d56Sopenharmony_ci-- propagating NaNs 1897db96d56Sopenharmony_ciddinv861 invert NaN1 -> NaN Invalid_operation 1907db96d56Sopenharmony_ciddinv862 invert +NaN2 -> NaN Invalid_operation 1917db96d56Sopenharmony_ciddinv863 invert NaN3 -> NaN Invalid_operation 1927db96d56Sopenharmony_ciddinv864 invert NaN4 -> NaN Invalid_operation 1937db96d56Sopenharmony_ciddinv865 invert NaN5 -> NaN Invalid_operation 1947db96d56Sopenharmony_ciddinv871 invert sNaN11 -> NaN Invalid_operation 1957db96d56Sopenharmony_ciddinv872 invert sNaN12 -> NaN Invalid_operation 1967db96d56Sopenharmony_ciddinv873 invert sNaN13 -> NaN Invalid_operation 1977db96d56Sopenharmony_ciddinv874 invert sNaN14 -> NaN Invalid_operation 1987db96d56Sopenharmony_ciddinv875 invert sNaN15 -> NaN Invalid_operation 1997db96d56Sopenharmony_ciddinv876 invert NaN16 -> NaN Invalid_operation 2007db96d56Sopenharmony_ciddinv881 invert +NaN25 -> NaN Invalid_operation 2017db96d56Sopenharmony_ciddinv882 invert -NaN26 -> NaN Invalid_operation 2027db96d56Sopenharmony_ciddinv883 invert -sNaN27 -> NaN Invalid_operation 203