+++ /dev/null
-------------------------------------------------------------------------\r
--- scaleb.decTest -- scale a number by powers of 10 --\r
--- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --\r
-------------------------------------------------------------------------\r
--- Please see the document "General Decimal Arithmetic Testcases" --\r
--- at http://www2.hursley.ibm.com/decimal for the description of --\r
--- these testcases. --\r
--- --\r
--- These testcases are experimental ('beta' versions), and they --\r
--- may contain errors. They are offered on an as-is basis. In --\r
--- particular, achieving the same results as the tests here is not --\r
--- a guarantee that an implementation complies with any Standard --\r
--- or specification. The tests are not exhaustive. --\r
--- --\r
--- Please send comments, suggestions, and corrections to the author: --\r
--- Mike Cowlishaw, IBM Fellow --\r
--- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r
--- mfc@uk.ibm.com --\r
-------------------------------------------------------------------------\r
-version: 2.59\r
-\r
-extended: 1\r
-precision: 9\r
-rounding: half_up\r
-maxExponent: 999\r
-minExponent: -999\r
-\r
--- Max |rhs| is 2*(999+9) = 2016\r
-\r
--- Sanity checks\r
-scbx001 scaleb 7.50 10 -> 7.50E+10\r
-scbx002 scaleb 7.50 3 -> 7.50E+3\r
-scbx003 scaleb 7.50 2 -> 750\r
-scbx004 scaleb 7.50 1 -> 75.0\r
-scbx005 scaleb 7.50 0 -> 7.50\r
-scbx006 scaleb 7.50 -1 -> 0.750\r
-scbx007 scaleb 7.50 -2 -> 0.0750\r
-scbx008 scaleb 7.50 -10 -> 7.50E-10\r
-scbx009 scaleb -7.50 3 -> -7.50E+3\r
-scbx010 scaleb -7.50 2 -> -750\r
-scbx011 scaleb -7.50 1 -> -75.0\r
-scbx012 scaleb -7.50 0 -> -7.50\r
-scbx013 scaleb -7.50 -1 -> -0.750\r
-\r
--- Infinities\r
-scbx014 scaleb Infinity 1 -> Infinity\r
-scbx015 scaleb -Infinity 2 -> -Infinity\r
-scbx016 scaleb Infinity -1 -> Infinity\r
-scbx017 scaleb -Infinity -2 -> -Infinity\r
-\r
--- Next two are somewhat undefined in 754r; treat as non-integer\r
-scbx018 scaleb 10 Infinity -> NaN Invalid_operation\r
-scbx019 scaleb 10 -Infinity -> NaN Invalid_operation\r
-\r
--- NaNs are undefined in 754r; assume usual processing\r
--- NaNs, 0 payload\r
-scbx021 scaleb NaN 1 -> NaN\r
-scbx022 scaleb -NaN -1 -> -NaN\r
-scbx023 scaleb sNaN 1 -> NaN Invalid_operation\r
-scbx024 scaleb -sNaN 1 -> -NaN Invalid_operation\r
-scbx025 scaleb 4 NaN -> NaN\r
-scbx026 scaleb -Inf -NaN -> -NaN\r
-scbx027 scaleb 4 sNaN -> NaN Invalid_operation\r
-scbx028 scaleb Inf -sNaN -> -NaN Invalid_operation\r
-\r
--- non-integer RHS\r
-scbx030 scaleb 1.23 1 -> 12.3\r
-scbx031 scaleb 1.23 1.00 -> NaN Invalid_operation\r
-scbx032 scaleb 1.23 1.1 -> NaN Invalid_operation\r
-scbx033 scaleb 1.23 1.01 -> NaN Invalid_operation\r
-scbx034 scaleb 1.23 0.01 -> NaN Invalid_operation\r
-scbx035 scaleb 1.23 0.11 -> NaN Invalid_operation\r
-scbx036 scaleb 1.23 0.999999999 -> NaN Invalid_operation\r
-scbx037 scaleb 1.23 -1 -> 0.123\r
-scbx038 scaleb 1.23 -1.00 -> NaN Invalid_operation\r
-scbx039 scaleb 1.23 -1.1 -> NaN Invalid_operation\r
-scbx040 scaleb 1.23 -1.01 -> NaN Invalid_operation\r
-scbx041 scaleb 1.23 -0.01 -> NaN Invalid_operation\r
-scbx042 scaleb 1.23 -0.11 -> NaN Invalid_operation\r
-scbx043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation\r
-scbx044 scaleb 1.23 0.1 -> NaN Invalid_operation\r
-scbx045 scaleb 1.23 1E+1 -> NaN Invalid_operation\r
-scbx046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation\r
-scbx047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation\r
-\r
-\r
-scbx120 scaleb 1.23 2015 -> Infinity Overflow Inexact Rounded\r
-scbx121 scaleb 1.23 2016 -> Infinity Overflow Inexact Rounded\r
-scbx122 scaleb 1.23 2017 -> NaN Invalid_operation\r
-scbx123 scaleb 1.23 2018 -> NaN Invalid_operation\r
-scbx124 scaleb 1.23 -2015 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped\r
-scbx125 scaleb 1.23 -2016 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped\r
-scbx126 scaleb 1.23 -2017 -> NaN Invalid_operation\r
-scbx127 scaleb 1.23 -2018 -> NaN Invalid_operation\r
-\r
--- NaNs, non-0 payload\r
--- propagating NaNs\r
-scbx861 scaleb NaN01 -Inf -> NaN1\r
-scbx862 scaleb -NaN02 -1000 -> -NaN2\r
-scbx863 scaleb NaN03 1000 -> NaN3\r
-scbx864 scaleb NaN04 Inf -> NaN4\r
-scbx865 scaleb NaN05 NaN61 -> NaN5\r
-scbx866 scaleb -Inf -NaN71 -> -NaN71\r
-scbx867 scaleb -1000 NaN81 -> NaN81\r
-scbx868 scaleb 1000 NaN91 -> NaN91\r
-scbx869 scaleb Inf NaN101 -> NaN101\r
-scbx871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation\r
-scbx872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation\r
-scbx873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation\r
-scbx874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation\r
-scbx875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation\r
-scbx876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation\r
-scbx877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation\r
-scbx878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation\r
-scbx879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation\r
-scbx880 scaleb Inf sNaN231 -> NaN231 Invalid_operation\r
-scbx881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation\r
-\r
--- finites\r
-scbx051 scaleb 7 -2 -> 0.07\r
-scbx052 scaleb -7 -2 -> -0.07\r
-scbx053 scaleb 75 -2 -> 0.75\r
-scbx054 scaleb -75 -2 -> -0.75\r
-scbx055 scaleb 7.50 -2 -> 0.0750\r
-scbx056 scaleb -7.50 -2 -> -0.0750\r
-scbx057 scaleb 7.500 -2 -> 0.07500\r
-scbx058 scaleb -7.500 -2 -> -0.07500\r
-scbx061 scaleb 7 -1 -> 0.7\r
-scbx062 scaleb -7 -1 -> -0.7\r
-scbx063 scaleb 75 -1 -> 7.5\r
-scbx064 scaleb -75 -1 -> -7.5\r
-scbx065 scaleb 7.50 -1 -> 0.750\r
-scbx066 scaleb -7.50 -1 -> -0.750\r
-scbx067 scaleb 7.500 -1 -> 0.7500\r
-scbx068 scaleb -7.500 -1 -> -0.7500\r
-scbx071 scaleb 7 0 -> 7\r
-scbx072 scaleb -7 0 -> -7\r
-scbx073 scaleb 75 0 -> 75\r
-scbx074 scaleb -75 0 -> -75\r
-scbx075 scaleb 7.50 0 -> 7.50\r
-scbx076 scaleb -7.50 0 -> -7.50\r
-scbx077 scaleb 7.500 0 -> 7.500\r
-scbx078 scaleb -7.500 0 -> -7.500\r
-scbx081 scaleb 7 1 -> 7E+1\r
-scbx082 scaleb -7 1 -> -7E+1\r
-scbx083 scaleb 75 1 -> 7.5E+2\r
-scbx084 scaleb -75 1 -> -7.5E+2\r
-scbx085 scaleb 7.50 1 -> 75.0\r
-scbx086 scaleb -7.50 1 -> -75.0\r
-scbx087 scaleb 7.500 1 -> 75.00\r
-scbx088 scaleb -7.500 1 -> -75.00\r
-scbx091 scaleb 7 2 -> 7E+2\r
-scbx092 scaleb -7 2 -> -7E+2\r
-scbx093 scaleb 75 2 -> 7.5E+3\r
-scbx094 scaleb -75 2 -> -7.5E+3\r
-scbx095 scaleb 7.50 2 -> 750\r
-scbx096 scaleb -7.50 2 -> -750\r
-scbx097 scaleb 7.500 2 -> 750.0\r
-scbx098 scaleb -7.500 2 -> -750.0\r
-\r
--- zeros\r
-scbx111 scaleb 0 1 -> 0E+1\r
-scbx112 scaleb -0 2 -> -0E+2\r
-scbx113 scaleb 0E+4 3 -> 0E+7\r
-scbx114 scaleb -0E+4 4 -> -0E+8\r
-scbx115 scaleb 0.0000 5 -> 0E+1\r
-scbx116 scaleb -0.0000 6 -> -0E+2\r
-scbx117 scaleb 0E-141 7 -> 0E-134\r
-scbx118 scaleb -0E-141 8 -> -0E-133\r
-\r
--- Nmax, Nmin, Ntiny\r
-scbx132 scaleb 9.99999999E+999 +999 -> Infinity Overflow Inexact Rounded\r
-scbx133 scaleb 9.99999999E+999 +10 -> Infinity Overflow Inexact Rounded\r
-scbx134 scaleb 9.99999999E+999 +1 -> Infinity Overflow Inexact Rounded\r
-scbx135 scaleb 9.99999999E+999 0 -> 9.99999999E+999\r
-scbx136 scaleb 9.99999999E+999 -1 -> 9.99999999E+998\r
-scbx137 scaleb 1E-999 +1 -> 1E-998\r
-scbx138 scaleb 1E-999 -0 -> 1E-999\r
-scbx139 scaleb 1E-999 -1 -> 1E-1000 Subnormal\r
-scbx140 scaleb 1.00000000E-999 +1 -> 1.00000000E-998\r
-scbx141 scaleb 1.00000000E-999 0 -> 1.00000000E-999\r
-scbx142 scaleb 1.00000000E-999 -1 -> 1.0000000E-1000 Subnormal Rounded\r
-scbx143 scaleb 1E-1007 +1 -> 1E-1006 Subnormal\r
-scbx144 scaleb 1E-1007 -0 -> 1E-1007 Subnormal\r
-scbx145 scaleb 1E-1007 -1 -> 0E-1007 Underflow Subnormal Inexact Rounded Clamped\r
-\r
-scbx150 scaleb -1E-1007 +1 -> -1E-1006 Subnormal\r
-scbx151 scaleb -1E-1007 -0 -> -1E-1007 Subnormal\r
-scbx152 scaleb -1E-1007 -1 -> -0E-1007 Underflow Subnormal Inexact Rounded Clamped\r
-scbx153 scaleb -1.00000000E-999 +1 -> -1.00000000E-998\r
-scbx154 scaleb -1.00000000E-999 +0 -> -1.00000000E-999\r
-scbx155 scaleb -1.00000000E-999 -1 -> -1.0000000E-1000 Subnormal Rounded\r
-scbx156 scaleb -1E-999 +1 -> -1E-998\r
-scbx157 scaleb -1E-999 -0 -> -1E-999\r
-scbx158 scaleb -1E-999 -1 -> -1E-1000 Subnormal\r
-scbx159 scaleb -9.99999999E+999 +1 -> -Infinity Overflow Inexact Rounded\r
-scbx160 scaleb -9.99999999E+999 +0 -> -9.99999999E+999\r
-scbx161 scaleb -9.99999999E+999 -1 -> -9.99999999E+998\r
-scbx162 scaleb -9E+999 +1 -> -Infinity Overflow Inexact Rounded\r
-scbx163 scaleb -1E+999 +1 -> -Infinity Overflow Inexact Rounded\r
-\r
--- Krah examples\r
-precision: 34\r
-maxExponent: 999999999\r
-minExponent: -999999999\r
--- integer overflow in 3.61 or earlier\r
-scbx164 scaleb 1E-999999999 -1200000000 -> NaN Invalid_operation\r
--- out of range\r
-scbx165 scaleb -1E-999999999 +1200000000 -> NaN Invalid_operation\r