17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- ddReduce.decTest -- remove trailing zeros from a decDouble -- 37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 2003, 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_ciddred001 reduce '1' -> '1' 307db96d56Sopenharmony_ciddred002 reduce '-1' -> '-1' 317db96d56Sopenharmony_ciddred003 reduce '1.00' -> '1' 327db96d56Sopenharmony_ciddred004 reduce '-1.00' -> '-1' 337db96d56Sopenharmony_ciddred005 reduce '0' -> '0' 347db96d56Sopenharmony_ciddred006 reduce '0.00' -> '0' 357db96d56Sopenharmony_ciddred007 reduce '00.0' -> '0' 367db96d56Sopenharmony_ciddred008 reduce '00.00' -> '0' 377db96d56Sopenharmony_ciddred009 reduce '00' -> '0' 387db96d56Sopenharmony_ciddred010 reduce '0E+1' -> '0' 397db96d56Sopenharmony_ciddred011 reduce '0E+5' -> '0' 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ciddred012 reduce '-2' -> '-2' 427db96d56Sopenharmony_ciddred013 reduce '2' -> '2' 437db96d56Sopenharmony_ciddred014 reduce '-2.00' -> '-2' 447db96d56Sopenharmony_ciddred015 reduce '2.00' -> '2' 457db96d56Sopenharmony_ciddred016 reduce '-0' -> '-0' 467db96d56Sopenharmony_ciddred017 reduce '-0.00' -> '-0' 477db96d56Sopenharmony_ciddred018 reduce '-00.0' -> '-0' 487db96d56Sopenharmony_ciddred019 reduce '-00.00' -> '-0' 497db96d56Sopenharmony_ciddred020 reduce '-00' -> '-0' 507db96d56Sopenharmony_ciddred021 reduce '-0E+5' -> '-0' 517db96d56Sopenharmony_ciddred022 reduce '-0E+1' -> '-0' 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ciddred030 reduce '+0.1' -> '0.1' 547db96d56Sopenharmony_ciddred031 reduce '-0.1' -> '-0.1' 557db96d56Sopenharmony_ciddred032 reduce '+0.01' -> '0.01' 567db96d56Sopenharmony_ciddred033 reduce '-0.01' -> '-0.01' 577db96d56Sopenharmony_ciddred034 reduce '+0.001' -> '0.001' 587db96d56Sopenharmony_ciddred035 reduce '-0.001' -> '-0.001' 597db96d56Sopenharmony_ciddred036 reduce '+0.000001' -> '0.000001' 607db96d56Sopenharmony_ciddred037 reduce '-0.000001' -> '-0.000001' 617db96d56Sopenharmony_ciddred038 reduce '+0.000000000001' -> '1E-12' 627db96d56Sopenharmony_ciddred039 reduce '-0.000000000001' -> '-1E-12' 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ciddred041 reduce 1.1 -> 1.1 657db96d56Sopenharmony_ciddred042 reduce 1.10 -> 1.1 667db96d56Sopenharmony_ciddred043 reduce 1.100 -> 1.1 677db96d56Sopenharmony_ciddred044 reduce 1.110 -> 1.11 687db96d56Sopenharmony_ciddred045 reduce -1.1 -> -1.1 697db96d56Sopenharmony_ciddred046 reduce -1.10 -> -1.1 707db96d56Sopenharmony_ciddred047 reduce -1.100 -> -1.1 717db96d56Sopenharmony_ciddred048 reduce -1.110 -> -1.11 727db96d56Sopenharmony_ciddred049 reduce 9.9 -> 9.9 737db96d56Sopenharmony_ciddred050 reduce 9.90 -> 9.9 747db96d56Sopenharmony_ciddred051 reduce 9.900 -> 9.9 757db96d56Sopenharmony_ciddred052 reduce 9.990 -> 9.99 767db96d56Sopenharmony_ciddred053 reduce -9.9 -> -9.9 777db96d56Sopenharmony_ciddred054 reduce -9.90 -> -9.9 787db96d56Sopenharmony_ciddred055 reduce -9.900 -> -9.9 797db96d56Sopenharmony_ciddred056 reduce -9.990 -> -9.99 807db96d56Sopenharmony_ci 817db96d56Sopenharmony_ci-- some trailing fractional zeros with zeros in units 827db96d56Sopenharmony_ciddred060 reduce 10.0 -> 1E+1 837db96d56Sopenharmony_ciddred061 reduce 10.00 -> 1E+1 847db96d56Sopenharmony_ciddred062 reduce 100.0 -> 1E+2 857db96d56Sopenharmony_ciddred063 reduce 100.00 -> 1E+2 867db96d56Sopenharmony_ciddred064 reduce 1.1000E+3 -> 1.1E+3 877db96d56Sopenharmony_ciddred065 reduce 1.10000E+3 -> 1.1E+3 887db96d56Sopenharmony_ciddred066 reduce -10.0 -> -1E+1 897db96d56Sopenharmony_ciddred067 reduce -10.00 -> -1E+1 907db96d56Sopenharmony_ciddred068 reduce -100.0 -> -1E+2 917db96d56Sopenharmony_ciddred069 reduce -100.00 -> -1E+2 927db96d56Sopenharmony_ciddred070 reduce -1.1000E+3 -> -1.1E+3 937db96d56Sopenharmony_ciddred071 reduce -1.10000E+3 -> -1.1E+3 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci-- some insignificant trailing zeros with positive exponent 967db96d56Sopenharmony_ciddred080 reduce 10E+1 -> 1E+2 977db96d56Sopenharmony_ciddred081 reduce 100E+1 -> 1E+3 987db96d56Sopenharmony_ciddred082 reduce 1.0E+2 -> 1E+2 997db96d56Sopenharmony_ciddred083 reduce 1.0E+3 -> 1E+3 1007db96d56Sopenharmony_ciddred084 reduce 1.1E+3 -> 1.1E+3 1017db96d56Sopenharmony_ciddred085 reduce 1.00E+3 -> 1E+3 1027db96d56Sopenharmony_ciddred086 reduce 1.10E+3 -> 1.1E+3 1037db96d56Sopenharmony_ciddred087 reduce -10E+1 -> -1E+2 1047db96d56Sopenharmony_ciddred088 reduce -100E+1 -> -1E+3 1057db96d56Sopenharmony_ciddred089 reduce -1.0E+2 -> -1E+2 1067db96d56Sopenharmony_ciddred090 reduce -1.0E+3 -> -1E+3 1077db96d56Sopenharmony_ciddred091 reduce -1.1E+3 -> -1.1E+3 1087db96d56Sopenharmony_ciddred092 reduce -1.00E+3 -> -1E+3 1097db96d56Sopenharmony_ciddred093 reduce -1.10E+3 -> -1.1E+3 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ci-- some significant trailing zeros, were we to be trimming 1127db96d56Sopenharmony_ciddred100 reduce 11 -> 11 1137db96d56Sopenharmony_ciddred101 reduce 10 -> 1E+1 1147db96d56Sopenharmony_ciddred102 reduce 10. -> 1E+1 1157db96d56Sopenharmony_ciddred103 reduce 1.1E+1 -> 11 1167db96d56Sopenharmony_ciddred104 reduce 1.0E+1 -> 1E+1 1177db96d56Sopenharmony_ciddred105 reduce 1.10E+2 -> 1.1E+2 1187db96d56Sopenharmony_ciddred106 reduce 1.00E+2 -> 1E+2 1197db96d56Sopenharmony_ciddred107 reduce 1.100E+3 -> 1.1E+3 1207db96d56Sopenharmony_ciddred108 reduce 1.000E+3 -> 1E+3 1217db96d56Sopenharmony_ciddred109 reduce 1.000000E+6 -> 1E+6 1227db96d56Sopenharmony_ciddred110 reduce -11 -> -11 1237db96d56Sopenharmony_ciddred111 reduce -10 -> -1E+1 1247db96d56Sopenharmony_ciddred112 reduce -10. -> -1E+1 1257db96d56Sopenharmony_ciddred113 reduce -1.1E+1 -> -11 1267db96d56Sopenharmony_ciddred114 reduce -1.0E+1 -> -1E+1 1277db96d56Sopenharmony_ciddred115 reduce -1.10E+2 -> -1.1E+2 1287db96d56Sopenharmony_ciddred116 reduce -1.00E+2 -> -1E+2 1297db96d56Sopenharmony_ciddred117 reduce -1.100E+3 -> -1.1E+3 1307db96d56Sopenharmony_ciddred118 reduce -1.000E+3 -> -1E+3 1317db96d56Sopenharmony_ciddred119 reduce -1.00000E+5 -> -1E+5 1327db96d56Sopenharmony_ciddred120 reduce -1.000000E+6 -> -1E+6 1337db96d56Sopenharmony_ciddred121 reduce -10.00000E+6 -> -1E+7 1347db96d56Sopenharmony_ciddred122 reduce -100.0000E+6 -> -1E+8 1357db96d56Sopenharmony_ciddred123 reduce -1000.000E+6 -> -1E+9 1367db96d56Sopenharmony_ciddred124 reduce -10000.00E+6 -> -1E+10 1377db96d56Sopenharmony_ciddred125 reduce -100000.0E+6 -> -1E+11 1387db96d56Sopenharmony_ciddred126 reduce -1000000.E+6 -> -1E+12 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci-- examples from decArith 1417db96d56Sopenharmony_ciddred140 reduce '2.1' -> '2.1' 1427db96d56Sopenharmony_ciddred141 reduce '-2.0' -> '-2' 1437db96d56Sopenharmony_ciddred142 reduce '1.200' -> '1.2' 1447db96d56Sopenharmony_ciddred143 reduce '-120' -> '-1.2E+2' 1457db96d56Sopenharmony_ciddred144 reduce '120.00' -> '1.2E+2' 1467db96d56Sopenharmony_ciddred145 reduce '0.00' -> '0' 1477db96d56Sopenharmony_ci 1487db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny 1497db96d56Sopenharmony_ci-- note origami effect on some of these 1507db96d56Sopenharmony_ciddred151 reduce 9.999999999999999E+384 -> 9.999999999999999E+384 1517db96d56Sopenharmony_ciddred152 reduce 9.999999000000000E+380 -> 9.99999900000E+380 1527db96d56Sopenharmony_ciddred153 reduce 9.999999999990000E+384 -> 9.999999999990000E+384 1537db96d56Sopenharmony_ciddred154 reduce 1E-383 -> 1E-383 1547db96d56Sopenharmony_ciddred155 reduce 1.000000000000000E-383 -> 1E-383 1557db96d56Sopenharmony_ciddred156 reduce 2.000E-395 -> 2E-395 Subnormal 1567db96d56Sopenharmony_ciddred157 reduce 1E-398 -> 1E-398 Subnormal 1577db96d56Sopenharmony_ci 1587db96d56Sopenharmony_ciddred161 reduce -1E-398 -> -1E-398 Subnormal 1597db96d56Sopenharmony_ciddred162 reduce -2.000E-395 -> -2E-395 Subnormal 1607db96d56Sopenharmony_ciddred163 reduce -1.000000000000000E-383 -> -1E-383 1617db96d56Sopenharmony_ciddred164 reduce -1E-383 -> -1E-383 1627db96d56Sopenharmony_ciddred165 reduce -9.999999000000000E+380 -> -9.99999900000E+380 1637db96d56Sopenharmony_ciddred166 reduce -9.999999999990000E+384 -> -9.999999999990000E+384 1647db96d56Sopenharmony_ciddred167 reduce -9.999999999999990E+384 -> -9.999999999999990E+384 1657db96d56Sopenharmony_ciddred168 reduce -9.999999999999999E+384 -> -9.999999999999999E+384 1667db96d56Sopenharmony_ciddred169 reduce -9.999999999999990E+384 -> -9.999999999999990E+384 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci-- specials (reduce does not affect payload) 1707db96d56Sopenharmony_ciddred820 reduce 'Inf' -> 'Infinity' 1717db96d56Sopenharmony_ciddred821 reduce '-Inf' -> '-Infinity' 1727db96d56Sopenharmony_ciddred822 reduce NaN -> NaN 1737db96d56Sopenharmony_ciddred823 reduce sNaN -> NaN Invalid_operation 1747db96d56Sopenharmony_ciddred824 reduce NaN101 -> NaN101 1757db96d56Sopenharmony_ciddred825 reduce sNaN010 -> NaN10 Invalid_operation 1767db96d56Sopenharmony_ciddred827 reduce -NaN -> -NaN 1777db96d56Sopenharmony_ciddred828 reduce -sNaN -> -NaN Invalid_operation 1787db96d56Sopenharmony_ciddred829 reduce -NaN101 -> -NaN101 1797db96d56Sopenharmony_ciddred830 reduce -sNaN010 -> -NaN10 Invalid_operation 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci-- Null test 1827db96d56Sopenharmony_ciddred900 reduce # -> NaN Invalid_operation 183