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