17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- invert.decTest -- digitwise logical INVERT -- 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_ciextended: 1 237db96d56Sopenharmony_ciprecision: 9 247db96d56Sopenharmony_cirounding: half_up 257db96d56Sopenharmony_cimaxExponent: 999 267db96d56Sopenharmony_ciminExponent: -999 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci-- Sanity check (truth table), and examples from decArith 297db96d56Sopenharmony_ciinvx001 invert 0 -> 111111111 307db96d56Sopenharmony_ciinvx002 invert 1 -> 111111110 317db96d56Sopenharmony_ciinvx003 invert 10 -> 111111101 327db96d56Sopenharmony_ciinvx004 invert 111111111 -> 0 337db96d56Sopenharmony_ciinvx005 invert 000000000 -> 111111111 347db96d56Sopenharmony_ciinvx006 invert 101010101 -> '10101010' 357db96d56Sopenharmony_ci-- and at msd and msd-1 367db96d56Sopenharmony_ciinvx007 invert 000000000 -> 111111111 377db96d56Sopenharmony_ciinvx009 invert 100000000 -> 11111111 387db96d56Sopenharmony_ciinvx011 invert 000000000 -> 111111111 397db96d56Sopenharmony_ciinvx013 invert 010000000 -> 101111111 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci-- Various lengths 427db96d56Sopenharmony_ci-- 123456789 123456789 437db96d56Sopenharmony_ciinvx021 invert 111111111 -> 0 447db96d56Sopenharmony_ciinvx022 invert 111111111111 -> 0 457db96d56Sopenharmony_ciinvx023 invert 11111111 -> 100000000 467db96d56Sopenharmony_ciinvx025 invert 1111111 -> 110000000 477db96d56Sopenharmony_ciinvx026 invert 111111 -> 111000000 487db96d56Sopenharmony_ciinvx027 invert 11111 -> 111100000 497db96d56Sopenharmony_ciinvx028 invert 1111 -> 111110000 507db96d56Sopenharmony_ciinvx029 invert 111 -> 111111000 517db96d56Sopenharmony_ciinvx031 invert 11 -> 111111100 527db96d56Sopenharmony_ciinvx032 invert 1 -> 111111110 537db96d56Sopenharmony_ciinvx033 invert 111111111111 -> 0 547db96d56Sopenharmony_ciinvx034 invert 11111111111 -> 0 557db96d56Sopenharmony_ciinvx035 invert 1111111111 -> 0 567db96d56Sopenharmony_ciinvx036 invert 111111111 -> 0 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ciinvx080 invert 011111111 -> 100000000 597db96d56Sopenharmony_ciinvx081 invert 101111111 -> 10000000 607db96d56Sopenharmony_ciinvx082 invert 110111111 -> 1000000 617db96d56Sopenharmony_ciinvx083 invert 111011111 -> 100000 627db96d56Sopenharmony_ciinvx084 invert 111101111 -> 10000 637db96d56Sopenharmony_ciinvx085 invert 111110111 -> 1000 647db96d56Sopenharmony_ciinvx086 invert 111111011 -> 100 657db96d56Sopenharmony_ciinvx087 invert 111111101 -> 10 667db96d56Sopenharmony_ciinvx088 invert 111111110 -> 1 677db96d56Sopenharmony_ciinvx089 invert 011111011 -> 100000100 687db96d56Sopenharmony_ciinvx090 invert 101111101 -> 10000010 697db96d56Sopenharmony_ciinvx091 invert 110111110 -> 1000001 707db96d56Sopenharmony_ciinvx092 invert 111011101 -> 100010 717db96d56Sopenharmony_ciinvx093 invert 111101011 -> 10100 727db96d56Sopenharmony_ciinvx094 invert 111110111 -> 1000 737db96d56Sopenharmony_ciinvx095 invert 111101011 -> 10100 747db96d56Sopenharmony_ciinvx096 invert 111011101 -> 100010 757db96d56Sopenharmony_ciinvx097 invert 110111110 -> 1000001 767db96d56Sopenharmony_ciinvx098 invert 101111101 -> 10000010 777db96d56Sopenharmony_ciinvx099 invert 011111011 -> 100000100 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_ci-- non-0/1 should not be accepted, nor should signs 807db96d56Sopenharmony_ciinvx220 invert 111111112 -> NaN Invalid_operation 817db96d56Sopenharmony_ciinvx221 invert 333333333 -> NaN Invalid_operation 827db96d56Sopenharmony_ciinvx222 invert 555555555 -> NaN Invalid_operation 837db96d56Sopenharmony_ciinvx223 invert 777777777 -> NaN Invalid_operation 847db96d56Sopenharmony_ciinvx224 invert 999999999 -> NaN Invalid_operation 857db96d56Sopenharmony_ciinvx225 invert 222222222 -> NaN Invalid_operation 867db96d56Sopenharmony_ciinvx226 invert 444444444 -> NaN Invalid_operation 877db96d56Sopenharmony_ciinvx227 invert 666666666 -> NaN Invalid_operation 887db96d56Sopenharmony_ciinvx228 invert 888888888 -> NaN Invalid_operation 897db96d56Sopenharmony_ciinvx229 invert 999999999 -> NaN Invalid_operation 907db96d56Sopenharmony_ciinvx230 invert 999999999 -> NaN Invalid_operation 917db96d56Sopenharmony_ciinvx231 invert 999999999 -> NaN Invalid_operation 927db96d56Sopenharmony_ciinvx232 invert 999999999 -> NaN Invalid_operation 937db96d56Sopenharmony_ci-- a few randoms 947db96d56Sopenharmony_ciinvx240 invert 567468689 -> NaN Invalid_operation 957db96d56Sopenharmony_ciinvx241 invert 567367689 -> NaN Invalid_operation 967db96d56Sopenharmony_ciinvx242 invert -631917772 -> NaN Invalid_operation 977db96d56Sopenharmony_ciinvx243 invert -756253257 -> NaN Invalid_operation 987db96d56Sopenharmony_ciinvx244 invert 835590149 -> NaN Invalid_operation 997db96d56Sopenharmony_ci-- test MSD 1007db96d56Sopenharmony_ciinvx250 invert 200000000 -> NaN Invalid_operation 1017db96d56Sopenharmony_ciinvx251 invert 300000000 -> NaN Invalid_operation 1027db96d56Sopenharmony_ciinvx252 invert 400000000 -> NaN Invalid_operation 1037db96d56Sopenharmony_ciinvx253 invert 500000000 -> NaN Invalid_operation 1047db96d56Sopenharmony_ciinvx254 invert 600000000 -> NaN Invalid_operation 1057db96d56Sopenharmony_ciinvx255 invert 700000000 -> NaN Invalid_operation 1067db96d56Sopenharmony_ciinvx256 invert 800000000 -> NaN Invalid_operation 1077db96d56Sopenharmony_ciinvx257 invert 900000000 -> NaN Invalid_operation 1087db96d56Sopenharmony_ci-- test MSD-1 1097db96d56Sopenharmony_ciinvx270 invert 021000000 -> NaN Invalid_operation 1107db96d56Sopenharmony_ciinvx271 invert 030100000 -> NaN Invalid_operation 1117db96d56Sopenharmony_ciinvx272 invert 040010000 -> NaN Invalid_operation 1127db96d56Sopenharmony_ciinvx273 invert 050001000 -> NaN Invalid_operation 1137db96d56Sopenharmony_ciinvx274 invert 160000100 -> NaN Invalid_operation 1147db96d56Sopenharmony_ciinvx275 invert 170000010 -> NaN Invalid_operation 1157db96d56Sopenharmony_ciinvx276 invert 180000000 -> NaN Invalid_operation 1167db96d56Sopenharmony_ciinvx277 invert 190000000 -> NaN Invalid_operation 1177db96d56Sopenharmony_ci-- test LSD 1187db96d56Sopenharmony_ciinvx280 invert 000000002 -> NaN Invalid_operation 1197db96d56Sopenharmony_ciinvx281 invert 000000003 -> NaN Invalid_operation 1207db96d56Sopenharmony_ciinvx282 invert 000000004 -> NaN Invalid_operation 1217db96d56Sopenharmony_ciinvx283 invert 000000005 -> NaN Invalid_operation 1227db96d56Sopenharmony_ciinvx284 invert 101000006 -> NaN Invalid_operation 1237db96d56Sopenharmony_ciinvx285 invert 100100007 -> NaN Invalid_operation 1247db96d56Sopenharmony_ciinvx286 invert 100010008 -> NaN Invalid_operation 1257db96d56Sopenharmony_ciinvx287 invert 100001009 -> NaN Invalid_operation 1267db96d56Sopenharmony_ci-- test Middie 1277db96d56Sopenharmony_ciinvx288 invert 000020000 -> NaN Invalid_operation 1287db96d56Sopenharmony_ciinvx289 invert 000030001 -> NaN Invalid_operation 1297db96d56Sopenharmony_ciinvx290 invert 000040000 -> NaN Invalid_operation 1307db96d56Sopenharmony_ciinvx291 invert 000050000 -> NaN Invalid_operation 1317db96d56Sopenharmony_ciinvx292 invert 101060000 -> NaN Invalid_operation 1327db96d56Sopenharmony_ciinvx293 invert 100170010 -> NaN Invalid_operation 1337db96d56Sopenharmony_ciinvx294 invert 100080100 -> NaN Invalid_operation 1347db96d56Sopenharmony_ciinvx295 invert 100091000 -> NaN Invalid_operation 1357db96d56Sopenharmony_ci-- signs 1367db96d56Sopenharmony_ciinvx296 invert -100001000 -> NaN Invalid_operation 1377db96d56Sopenharmony_ciinvx299 invert 100001000 -> 11110111 1387db96d56Sopenharmony_ci 1397db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny 1407db96d56Sopenharmony_ciinvx341 invert 9.99999999E+999 -> NaN Invalid_operation 1417db96d56Sopenharmony_ciinvx342 invert 1E-999 -> NaN Invalid_operation 1427db96d56Sopenharmony_ciinvx343 invert 1.00000000E-999 -> NaN Invalid_operation 1437db96d56Sopenharmony_ciinvx344 invert 1E-1007 -> NaN Invalid_operation 1447db96d56Sopenharmony_ciinvx345 invert -1E-1007 -> NaN Invalid_operation 1457db96d56Sopenharmony_ciinvx346 invert -1.00000000E-999 -> NaN Invalid_operation 1467db96d56Sopenharmony_ciinvx347 invert -1E-999 -> NaN Invalid_operation 1477db96d56Sopenharmony_ciinvx348 invert -9.99999999E+999 -> NaN Invalid_operation 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_ci-- A few other non-integers 1507db96d56Sopenharmony_ciinvx361 invert 1.0 -> NaN Invalid_operation 1517db96d56Sopenharmony_ciinvx362 invert 1E+1 -> NaN Invalid_operation 1527db96d56Sopenharmony_ciinvx363 invert 0.0 -> NaN Invalid_operation 1537db96d56Sopenharmony_ciinvx364 invert 0E+1 -> NaN Invalid_operation 1547db96d56Sopenharmony_ciinvx365 invert 9.9 -> NaN Invalid_operation 1557db96d56Sopenharmony_ciinvx366 invert 9E+1 -> NaN Invalid_operation 1567db96d56Sopenharmony_ci 1577db96d56Sopenharmony_ci-- All Specials are in error 1587db96d56Sopenharmony_ciinvx788 invert -Inf -> NaN Invalid_operation 1597db96d56Sopenharmony_ciinvx794 invert Inf -> NaN Invalid_operation 1607db96d56Sopenharmony_ciinvx821 invert NaN -> NaN Invalid_operation 1617db96d56Sopenharmony_ciinvx841 invert sNaN -> NaN Invalid_operation 1627db96d56Sopenharmony_ci-- propagating NaNs 1637db96d56Sopenharmony_ciinvx861 invert NaN1 -> NaN Invalid_operation 1647db96d56Sopenharmony_ciinvx862 invert +NaN2 -> NaN Invalid_operation 1657db96d56Sopenharmony_ciinvx863 invert NaN3 -> NaN Invalid_operation 1667db96d56Sopenharmony_ciinvx864 invert NaN4 -> NaN Invalid_operation 1677db96d56Sopenharmony_ciinvx865 invert NaN5 -> NaN Invalid_operation 1687db96d56Sopenharmony_ciinvx871 invert sNaN11 -> NaN Invalid_operation 1697db96d56Sopenharmony_ciinvx872 invert sNaN12 -> NaN Invalid_operation 1707db96d56Sopenharmony_ciinvx873 invert sNaN13 -> NaN Invalid_operation 1717db96d56Sopenharmony_ciinvx874 invert sNaN14 -> NaN Invalid_operation 1727db96d56Sopenharmony_ciinvx875 invert sNaN15 -> NaN Invalid_operation 1737db96d56Sopenharmony_ciinvx876 invert NaN16 -> NaN Invalid_operation 1747db96d56Sopenharmony_ciinvx881 invert +NaN25 -> NaN Invalid_operation 1757db96d56Sopenharmony_ciinvx882 invert -NaN26 -> NaN Invalid_operation 1767db96d56Sopenharmony_ciinvx883 invert -sNaN27 -> NaN Invalid_operation 177