17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- rotate.decTest -- rotate coefficient left or right -- 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 297db96d56Sopenharmony_cirotx001 rotate 0 0 -> 0 307db96d56Sopenharmony_cirotx002 rotate 0 2 -> 0 317db96d56Sopenharmony_cirotx003 rotate 1 2 -> 100 327db96d56Sopenharmony_cirotx004 rotate 34 8 -> 400000003 337db96d56Sopenharmony_cirotx005 rotate 1 9 -> 1 347db96d56Sopenharmony_cirotx006 rotate 1 -1 -> 100000000 357db96d56Sopenharmony_cirotx007 rotate 123456789 -1 -> 912345678 367db96d56Sopenharmony_cirotx008 rotate 123456789 -8 -> 234567891 377db96d56Sopenharmony_cirotx009 rotate 123456789 -9 -> 123456789 387db96d56Sopenharmony_cirotx010 rotate 0 -2 -> 0 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci-- rhs must be an integer 417db96d56Sopenharmony_cirotx011 rotate 1 1.5 -> NaN Invalid_operation 427db96d56Sopenharmony_cirotx012 rotate 1 1.0 -> NaN Invalid_operation 437db96d56Sopenharmony_cirotx013 rotate 1 0.1 -> NaN Invalid_operation 447db96d56Sopenharmony_cirotx014 rotate 1 0.0 -> NaN Invalid_operation 457db96d56Sopenharmony_cirotx015 rotate 1 1E+1 -> NaN Invalid_operation 467db96d56Sopenharmony_cirotx016 rotate 1 1E+99 -> NaN Invalid_operation 477db96d56Sopenharmony_cirotx017 rotate 1 Inf -> NaN Invalid_operation 487db96d56Sopenharmony_cirotx018 rotate 1 -Inf -> NaN Invalid_operation 497db96d56Sopenharmony_ci-- and |rhs| <= precision 507db96d56Sopenharmony_cirotx020 rotate 1 -1000 -> NaN Invalid_operation 517db96d56Sopenharmony_cirotx021 rotate 1 -10 -> NaN Invalid_operation 527db96d56Sopenharmony_cirotx022 rotate 1 10 -> NaN Invalid_operation 537db96d56Sopenharmony_cirotx023 rotate 1 1000 -> NaN Invalid_operation 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ci-- full pattern 567db96d56Sopenharmony_cirotx030 rotate 123456789 -9 -> 123456789 577db96d56Sopenharmony_cirotx031 rotate 123456789 -8 -> 234567891 587db96d56Sopenharmony_cirotx032 rotate 123456789 -7 -> 345678912 597db96d56Sopenharmony_cirotx033 rotate 123456789 -6 -> 456789123 607db96d56Sopenharmony_cirotx034 rotate 123456789 -5 -> 567891234 617db96d56Sopenharmony_cirotx035 rotate 123456789 -4 -> 678912345 627db96d56Sopenharmony_cirotx036 rotate 123456789 -3 -> 789123456 637db96d56Sopenharmony_cirotx037 rotate 123456789 -2 -> 891234567 647db96d56Sopenharmony_cirotx038 rotate 123456789 -1 -> 912345678 657db96d56Sopenharmony_cirotx039 rotate 123456789 -0 -> 123456789 667db96d56Sopenharmony_cirotx040 rotate 123456789 +0 -> 123456789 677db96d56Sopenharmony_cirotx041 rotate 123456789 +1 -> 234567891 687db96d56Sopenharmony_cirotx042 rotate 123456789 +2 -> 345678912 697db96d56Sopenharmony_cirotx043 rotate 123456789 +3 -> 456789123 707db96d56Sopenharmony_cirotx044 rotate 123456789 +4 -> 567891234 717db96d56Sopenharmony_cirotx045 rotate 123456789 +5 -> 678912345 727db96d56Sopenharmony_cirotx046 rotate 123456789 +6 -> 789123456 737db96d56Sopenharmony_cirotx047 rotate 123456789 +7 -> 891234567 747db96d56Sopenharmony_cirotx048 rotate 123456789 +8 -> 912345678 757db96d56Sopenharmony_cirotx049 rotate 123456789 +9 -> 123456789 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci-- zeros 787db96d56Sopenharmony_cirotx060 rotate 0E-10 +9 -> 0E-10 797db96d56Sopenharmony_cirotx061 rotate 0E-10 -9 -> 0E-10 807db96d56Sopenharmony_cirotx062 rotate 0.000 +9 -> 0.000 817db96d56Sopenharmony_cirotx063 rotate 0.000 -9 -> 0.000 827db96d56Sopenharmony_cirotx064 rotate 0E+10 +9 -> 0E+10 837db96d56Sopenharmony_cirotx065 rotate 0E+10 -9 -> 0E+10 847db96d56Sopenharmony_cirotx066 rotate -0E-10 +9 -> -0E-10 857db96d56Sopenharmony_cirotx067 rotate -0E-10 -9 -> -0E-10 867db96d56Sopenharmony_cirotx068 rotate -0.000 +9 -> -0.000 877db96d56Sopenharmony_cirotx069 rotate -0.000 -9 -> -0.000 887db96d56Sopenharmony_cirotx070 rotate -0E+10 +9 -> -0E+10 897db96d56Sopenharmony_cirotx071 rotate -0E+10 -9 -> -0E+10 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny 927db96d56Sopenharmony_cirotx141 rotate 9.99999999E+999 -1 -> 9.99999999E+999 937db96d56Sopenharmony_cirotx142 rotate 9.99999999E+999 -8 -> 9.99999999E+999 947db96d56Sopenharmony_cirotx143 rotate 9.99999999E+999 1 -> 9.99999999E+999 957db96d56Sopenharmony_cirotx144 rotate 9.99999999E+999 8 -> 9.99999999E+999 967db96d56Sopenharmony_cirotx145 rotate 1E-999 -1 -> 1.00000000E-991 977db96d56Sopenharmony_cirotx146 rotate 1E-999 -8 -> 1.0E-998 987db96d56Sopenharmony_cirotx147 rotate 1E-999 1 -> 1.0E-998 997db96d56Sopenharmony_cirotx148 rotate 1E-999 8 -> 1.00000000E-991 1007db96d56Sopenharmony_cirotx151 rotate 1.00000000E-999 -1 -> 1.0000000E-1000 1017db96d56Sopenharmony_cirotx152 rotate 1.00000000E-999 -8 -> 1E-1007 1027db96d56Sopenharmony_cirotx153 rotate 1.00000000E-999 1 -> 1E-1007 1037db96d56Sopenharmony_cirotx154 rotate 1.00000000E-999 8 -> 1.0000000E-1000 1047db96d56Sopenharmony_cirotx155 rotate 9.00000000E-999 -1 -> 9.0000000E-1000 1057db96d56Sopenharmony_cirotx156 rotate 9.00000000E-999 -8 -> 9E-1007 1067db96d56Sopenharmony_cirotx157 rotate 9.00000000E-999 1 -> 9E-1007 1077db96d56Sopenharmony_cirotx158 rotate 9.00000000E-999 8 -> 9.0000000E-1000 1087db96d56Sopenharmony_cirotx160 rotate 1E-1007 -1 -> 1.00000000E-999 1097db96d56Sopenharmony_cirotx161 rotate 1E-1007 -8 -> 1.0E-1006 1107db96d56Sopenharmony_cirotx162 rotate 1E-1007 1 -> 1.0E-1006 1117db96d56Sopenharmony_cirotx163 rotate 1E-1007 8 -> 1.00000000E-999 1127db96d56Sopenharmony_ci-- negatives 1137db96d56Sopenharmony_cirotx171 rotate -9.99999999E+999 -1 -> -9.99999999E+999 1147db96d56Sopenharmony_cirotx172 rotate -9.99999999E+999 -8 -> -9.99999999E+999 1157db96d56Sopenharmony_cirotx173 rotate -9.99999999E+999 1 -> -9.99999999E+999 1167db96d56Sopenharmony_cirotx174 rotate -9.99999999E+999 8 -> -9.99999999E+999 1177db96d56Sopenharmony_cirotx175 rotate -1E-999 -1 -> -1.00000000E-991 1187db96d56Sopenharmony_cirotx176 rotate -1E-999 -8 -> -1.0E-998 1197db96d56Sopenharmony_cirotx177 rotate -1E-999 1 -> -1.0E-998 1207db96d56Sopenharmony_cirotx178 rotate -1E-999 8 -> -1.00000000E-991 1217db96d56Sopenharmony_cirotx181 rotate -1.00000000E-999 -1 -> -1.0000000E-1000 1227db96d56Sopenharmony_cirotx182 rotate -1.00000000E-999 -8 -> -1E-1007 1237db96d56Sopenharmony_cirotx183 rotate -1.00000000E-999 1 -> -1E-1007 1247db96d56Sopenharmony_cirotx184 rotate -1.00000000E-999 8 -> -1.0000000E-1000 1257db96d56Sopenharmony_cirotx185 rotate -9.00000000E-999 -1 -> -9.0000000E-1000 1267db96d56Sopenharmony_cirotx186 rotate -9.00000000E-999 -8 -> -9E-1007 1277db96d56Sopenharmony_cirotx187 rotate -9.00000000E-999 1 -> -9E-1007 1287db96d56Sopenharmony_cirotx188 rotate -9.00000000E-999 8 -> -9.0000000E-1000 1297db96d56Sopenharmony_cirotx190 rotate -1E-1007 -1 -> -1.00000000E-999 1307db96d56Sopenharmony_cirotx191 rotate -1E-1007 -8 -> -1.0E-1006 1317db96d56Sopenharmony_cirotx192 rotate -1E-1007 1 -> -1.0E-1006 1327db96d56Sopenharmony_cirotx193 rotate -1E-1007 8 -> -1.00000000E-999 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ci-- more negatives (of sanities) 1357db96d56Sopenharmony_cirotx201 rotate -0 0 -> -0 1367db96d56Sopenharmony_cirotx202 rotate -0 2 -> -0 1377db96d56Sopenharmony_cirotx203 rotate -1 2 -> -100 1387db96d56Sopenharmony_cirotx204 rotate -1 8 -> -100000000 1397db96d56Sopenharmony_cirotx205 rotate -1 9 -> -1 1407db96d56Sopenharmony_cirotx206 rotate -1 -1 -> -100000000 1417db96d56Sopenharmony_cirotx207 rotate -123456789 -1 -> -912345678 1427db96d56Sopenharmony_cirotx208 rotate -123456789 -8 -> -234567891 1437db96d56Sopenharmony_cirotx209 rotate -123456789 -9 -> -123456789 1447db96d56Sopenharmony_cirotx210 rotate -0 -2 -> -0 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci-- Specials; NaNs are handled as usual 1477db96d56Sopenharmony_cirotx781 rotate -Inf -8 -> -Infinity 1487db96d56Sopenharmony_cirotx782 rotate -Inf -1 -> -Infinity 1497db96d56Sopenharmony_cirotx783 rotate -Inf -0 -> -Infinity 1507db96d56Sopenharmony_cirotx784 rotate -Inf 0 -> -Infinity 1517db96d56Sopenharmony_cirotx785 rotate -Inf 1 -> -Infinity 1527db96d56Sopenharmony_cirotx786 rotate -Inf 8 -> -Infinity 1537db96d56Sopenharmony_cirotx787 rotate -1000 -Inf -> NaN Invalid_operation 1547db96d56Sopenharmony_cirotx788 rotate -Inf -Inf -> NaN Invalid_operation 1557db96d56Sopenharmony_cirotx789 rotate -1 -Inf -> NaN Invalid_operation 1567db96d56Sopenharmony_cirotx790 rotate -0 -Inf -> NaN Invalid_operation 1577db96d56Sopenharmony_cirotx791 rotate 0 -Inf -> NaN Invalid_operation 1587db96d56Sopenharmony_cirotx792 rotate 1 -Inf -> NaN Invalid_operation 1597db96d56Sopenharmony_cirotx793 rotate 1000 -Inf -> NaN Invalid_operation 1607db96d56Sopenharmony_cirotx794 rotate Inf -Inf -> NaN Invalid_operation 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_cirotx800 rotate Inf -Inf -> NaN Invalid_operation 1637db96d56Sopenharmony_cirotx801 rotate Inf -8 -> Infinity 1647db96d56Sopenharmony_cirotx802 rotate Inf -1 -> Infinity 1657db96d56Sopenharmony_cirotx803 rotate Inf -0 -> Infinity 1667db96d56Sopenharmony_cirotx804 rotate Inf 0 -> Infinity 1677db96d56Sopenharmony_cirotx805 rotate Inf 1 -> Infinity 1687db96d56Sopenharmony_cirotx806 rotate Inf 8 -> Infinity 1697db96d56Sopenharmony_cirotx807 rotate Inf Inf -> NaN Invalid_operation 1707db96d56Sopenharmony_cirotx808 rotate -1000 Inf -> NaN Invalid_operation 1717db96d56Sopenharmony_cirotx809 rotate -Inf Inf -> NaN Invalid_operation 1727db96d56Sopenharmony_cirotx810 rotate -1 Inf -> NaN Invalid_operation 1737db96d56Sopenharmony_cirotx811 rotate -0 Inf -> NaN Invalid_operation 1747db96d56Sopenharmony_cirotx812 rotate 0 Inf -> NaN Invalid_operation 1757db96d56Sopenharmony_cirotx813 rotate 1 Inf -> NaN Invalid_operation 1767db96d56Sopenharmony_cirotx814 rotate 1000 Inf -> NaN Invalid_operation 1777db96d56Sopenharmony_cirotx815 rotate Inf Inf -> NaN Invalid_operation 1787db96d56Sopenharmony_ci 1797db96d56Sopenharmony_cirotx821 rotate NaN -Inf -> NaN 1807db96d56Sopenharmony_cirotx822 rotate NaN -1000 -> NaN 1817db96d56Sopenharmony_cirotx823 rotate NaN -1 -> NaN 1827db96d56Sopenharmony_cirotx824 rotate NaN -0 -> NaN 1837db96d56Sopenharmony_cirotx825 rotate NaN 0 -> NaN 1847db96d56Sopenharmony_cirotx826 rotate NaN 1 -> NaN 1857db96d56Sopenharmony_cirotx827 rotate NaN 1000 -> NaN 1867db96d56Sopenharmony_cirotx828 rotate NaN Inf -> NaN 1877db96d56Sopenharmony_cirotx829 rotate NaN NaN -> NaN 1887db96d56Sopenharmony_cirotx830 rotate -Inf NaN -> NaN 1897db96d56Sopenharmony_cirotx831 rotate -1000 NaN -> NaN 1907db96d56Sopenharmony_cirotx832 rotate -1 NaN -> NaN 1917db96d56Sopenharmony_cirotx833 rotate -0 NaN -> NaN 1927db96d56Sopenharmony_cirotx834 rotate 0 NaN -> NaN 1937db96d56Sopenharmony_cirotx835 rotate 1 NaN -> NaN 1947db96d56Sopenharmony_cirotx836 rotate 1000 NaN -> NaN 1957db96d56Sopenharmony_cirotx837 rotate Inf NaN -> NaN 1967db96d56Sopenharmony_ci 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci 1997db96d56Sopenharmony_cirotx841 rotate sNaN -Inf -> NaN Invalid_operation 2007db96d56Sopenharmony_cirotx842 rotate sNaN -1000 -> NaN Invalid_operation 2017db96d56Sopenharmony_cirotx843 rotate sNaN -1 -> NaN Invalid_operation 2027db96d56Sopenharmony_cirotx844 rotate sNaN -0 -> NaN Invalid_operation 2037db96d56Sopenharmony_cirotx845 rotate sNaN 0 -> NaN Invalid_operation 2047db96d56Sopenharmony_cirotx846 rotate sNaN 1 -> NaN Invalid_operation 2057db96d56Sopenharmony_cirotx847 rotate sNaN 1000 -> NaN Invalid_operation 2067db96d56Sopenharmony_cirotx848 rotate sNaN NaN -> NaN Invalid_operation 2077db96d56Sopenharmony_cirotx849 rotate sNaN sNaN -> NaN Invalid_operation 2087db96d56Sopenharmony_cirotx850 rotate NaN sNaN -> NaN Invalid_operation 2097db96d56Sopenharmony_cirotx851 rotate -Inf sNaN -> NaN Invalid_operation 2107db96d56Sopenharmony_cirotx852 rotate -1000 sNaN -> NaN Invalid_operation 2117db96d56Sopenharmony_cirotx853 rotate -1 sNaN -> NaN Invalid_operation 2127db96d56Sopenharmony_cirotx854 rotate -0 sNaN -> NaN Invalid_operation 2137db96d56Sopenharmony_cirotx855 rotate 0 sNaN -> NaN Invalid_operation 2147db96d56Sopenharmony_cirotx856 rotate 1 sNaN -> NaN Invalid_operation 2157db96d56Sopenharmony_cirotx857 rotate 1000 sNaN -> NaN Invalid_operation 2167db96d56Sopenharmony_cirotx858 rotate Inf sNaN -> NaN Invalid_operation 2177db96d56Sopenharmony_cirotx859 rotate NaN sNaN -> NaN Invalid_operation 2187db96d56Sopenharmony_ci 2197db96d56Sopenharmony_ci-- propagating NaNs 2207db96d56Sopenharmony_cirotx861 rotate NaN1 -Inf -> NaN1 2217db96d56Sopenharmony_cirotx862 rotate +NaN2 -1000 -> NaN2 2227db96d56Sopenharmony_cirotx863 rotate NaN3 1000 -> NaN3 2237db96d56Sopenharmony_cirotx864 rotate NaN4 Inf -> NaN4 2247db96d56Sopenharmony_cirotx865 rotate NaN5 +NaN6 -> NaN5 2257db96d56Sopenharmony_cirotx866 rotate -Inf NaN7 -> NaN7 2267db96d56Sopenharmony_cirotx867 rotate -1000 NaN8 -> NaN8 2277db96d56Sopenharmony_cirotx868 rotate 1000 NaN9 -> NaN9 2287db96d56Sopenharmony_cirotx869 rotate Inf +NaN10 -> NaN10 2297db96d56Sopenharmony_cirotx871 rotate sNaN11 -Inf -> NaN11 Invalid_operation 2307db96d56Sopenharmony_cirotx872 rotate sNaN12 -1000 -> NaN12 Invalid_operation 2317db96d56Sopenharmony_cirotx873 rotate sNaN13 1000 -> NaN13 Invalid_operation 2327db96d56Sopenharmony_cirotx874 rotate sNaN14 NaN17 -> NaN14 Invalid_operation 2337db96d56Sopenharmony_cirotx875 rotate sNaN15 sNaN18 -> NaN15 Invalid_operation 2347db96d56Sopenharmony_cirotx876 rotate NaN16 sNaN19 -> NaN19 Invalid_operation 2357db96d56Sopenharmony_cirotx877 rotate -Inf +sNaN20 -> NaN20 Invalid_operation 2367db96d56Sopenharmony_cirotx878 rotate -1000 sNaN21 -> NaN21 Invalid_operation 2377db96d56Sopenharmony_cirotx879 rotate 1000 sNaN22 -> NaN22 Invalid_operation 2387db96d56Sopenharmony_cirotx880 rotate Inf sNaN23 -> NaN23 Invalid_operation 2397db96d56Sopenharmony_cirotx881 rotate +NaN25 +sNaN24 -> NaN24 Invalid_operation 2407db96d56Sopenharmony_cirotx882 rotate -NaN26 NaN28 -> -NaN26 2417db96d56Sopenharmony_cirotx883 rotate -sNaN27 sNaN29 -> -NaN27 Invalid_operation 2427db96d56Sopenharmony_cirotx884 rotate 1000 -NaN30 -> -NaN30 2437db96d56Sopenharmony_cirotx885 rotate 1000 -sNaN31 -> -NaN31 Invalid_operation 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_ci-- payload decapitate 2467db96d56Sopenharmony_ciprecision: 5 2477db96d56Sopenharmony_cirotx886 rotate 11 -sNaN1234567890 -> -NaN67890 Invalid_operation 248