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