1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
|
------------------------------------------------------------------------
-- normalize.decTest -- remove trailing zeros --
-- Copyright (c) IBM Corporation, 2003. All rights reserved. --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases" --
-- at http://www2.hursley.ibm.com/decimal for the description of --
-- these testcases. --
-- --
-- These testcases are experimental ('beta' versions), and they --
-- may contain errors. They are offered on an as-is basis. In --
-- particular, achieving the same results as the tests here is not --
-- a guarantee that an implementation complies with any Standard --
-- or specification. The tests are not exhaustive. --
-- --
-- Please send comments, suggestions, and corrections to the author: --
-- Mike Cowlishaw, IBM Fellow --
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.39
extended: 1
precision: 9
rounding: half_up
maxExponent: 999
minexponent: -999
nrmx001 normalize '1' -> '1'
nrmx002 normalize '-1' -> '-1'
nrmx003 normalize '1.00' -> '1'
nrmx004 normalize '-1.00' -> '-1'
nrmx005 normalize '0' -> '0'
nrmx006 normalize '0.00' -> '0'
nrmx007 normalize '00.0' -> '0'
nrmx008 normalize '00.00' -> '0'
nrmx009 normalize '00' -> '0'
nrmx010 normalize '0E+1' -> '0'
nrmx011 normalize '0E+5' -> '0'
nrmx012 normalize '-2' -> '-2'
nrmx013 normalize '2' -> '2'
nrmx014 normalize '-2.00' -> '-2'
nrmx015 normalize '2.00' -> '2'
nrmx016 normalize '-0' -> '-0'
nrmx017 normalize '-0.00' -> '-0'
nrmx018 normalize '-00.0' -> '-0'
nrmx019 normalize '-00.00' -> '-0'
nrmx020 normalize '-00' -> '-0'
nrmx021 normalize '-0E+5' -> '-0'
nrmx022 normalize '-0E+1' -> '-0'
nrmx030 normalize '+0.1' -> '0.1'
nrmx031 normalize '-0.1' -> '-0.1'
nrmx032 normalize '+0.01' -> '0.01'
nrmx033 normalize '-0.01' -> '-0.01'
nrmx034 normalize '+0.001' -> '0.001'
nrmx035 normalize '-0.001' -> '-0.001'
nrmx036 normalize '+0.000001' -> '0.000001'
nrmx037 normalize '-0.000001' -> '-0.000001'
nrmx038 normalize '+0.000000000001' -> '1E-12'
nrmx039 normalize '-0.000000000001' -> '-1E-12'
nrmx041 normalize 1.1 -> 1.1
nrmx042 normalize 1.10 -> 1.1
nrmx043 normalize 1.100 -> 1.1
nrmx044 normalize 1.110 -> 1.11
nrmx045 normalize -1.1 -> -1.1
nrmx046 normalize -1.10 -> -1.1
nrmx047 normalize -1.100 -> -1.1
nrmx048 normalize -1.110 -> -1.11
nrmx049 normalize 9.9 -> 9.9
nrmx050 normalize 9.90 -> 9.9
nrmx051 normalize 9.900 -> 9.9
nrmx052 normalize 9.990 -> 9.99
nrmx053 normalize -9.9 -> -9.9
nrmx054 normalize -9.90 -> -9.9
nrmx055 normalize -9.900 -> -9.9
nrmx056 normalize -9.990 -> -9.99
-- some trailing fractional zeros with zeros in units
nrmx060 normalize 10.0 -> 1E+1
nrmx061 normalize 10.00 -> 1E+1
nrmx062 normalize 100.0 -> 1E+2
nrmx063 normalize 100.00 -> 1E+2
nrmx064 normalize 1.1000E+3 -> 1.1E+3
nrmx065 normalize 1.10000E+3 -> 1.1E+3
nrmx066 normalize -10.0 -> -1E+1
nrmx067 normalize -10.00 -> -1E+1
nrmx068 normalize -100.0 -> -1E+2
nrmx069 normalize -100.00 -> -1E+2
nrmx070 normalize -1.1000E+3 -> -1.1E+3
nrmx071 normalize -1.10000E+3 -> -1.1E+3
-- some insignificant trailing zeros with positive exponent
nrmx080 normalize 10E+1 -> 1E+2
nrmx081 normalize 100E+1 -> 1E+3
nrmx082 normalize 1.0E+2 -> 1E+2
nrmx083 normalize 1.0E+3 -> 1E+3
nrmx084 normalize 1.1E+3 -> 1.1E+3
nrmx085 normalize 1.00E+3 -> 1E+3
nrmx086 normalize 1.10E+3 -> 1.1E+3
nrmx087 normalize -10E+1 -> -1E+2
nrmx088 normalize -100E+1 -> -1E+3
nrmx089 normalize -1.0E+2 -> -1E+2
nrmx090 normalize -1.0E+3 -> -1E+3
nrmx091 normalize -1.1E+3 -> -1.1E+3
nrmx092 normalize -1.00E+3 -> -1E+3
nrmx093 normalize -1.10E+3 -> -1.1E+3
-- some significant trailing zeros, were we to be trimming
nrmx100 normalize 11 -> 11
nrmx101 normalize 10 -> 1E+1
nrmx102 normalize 10. -> 1E+1
nrmx103 normalize 1.1E+1 -> 11
nrmx104 normalize 1.0E+1 -> 1E+1
nrmx105 normalize 1.10E+2 -> 1.1E+2
nrmx106 normalize 1.00E+2 -> 1E+2
nrmx107 normalize 1.100E+3 -> 1.1E+3
nrmx108 normalize 1.000E+3 -> 1E+3
nrmx109 normalize 1.000000E+6 -> 1E+6
nrmx110 normalize -11 -> -11
nrmx111 normalize -10 -> -1E+1
nrmx112 normalize -10. -> -1E+1
nrmx113 normalize -1.1E+1 -> -11
nrmx114 normalize -1.0E+1 -> -1E+1
nrmx115 normalize -1.10E+2 -> -1.1E+2
nrmx116 normalize -1.00E+2 -> -1E+2
nrmx117 normalize -1.100E+3 -> -1.1E+3
nrmx118 normalize -1.000E+3 -> -1E+3
nrmx119 normalize -1.00000E+5 -> -1E+5
nrmx120 normalize -1.000000E+6 -> -1E+6
nrmx121 normalize -10.00000E+6 -> -1E+7
nrmx122 normalize -100.0000E+6 -> -1E+8
nrmx123 normalize -1000.000E+6 -> -1E+9
nrmx124 normalize -10000.00E+6 -> -1E+10
nrmx125 normalize -100000.0E+6 -> -1E+11
nrmx126 normalize -1000000.E+6 -> -1E+12
-- examples from decArith
nrmx140 normalize '2.1' -> '2.1'
nrmx141 normalize '-2.0' -> '-2'
nrmx142 normalize '1.200' -> '1.2'
nrmx143 normalize '-120' -> '-1.2E+2'
nrmx144 normalize '120.00' -> '1.2E+2'
nrmx145 normalize '0.00' -> '0'
-- overflow tests
maxexponent: 999999999
minexponent: -999999999
precision: 3
nrmx160 normalize 9.999E+999999999 -> Infinity Inexact Overflow Rounded
nrmx161 normalize -9.999E+999999999 -> -Infinity Inexact Overflow Rounded
-- subnormals and underflow
precision: 3
maxexponent: 999
minexponent: -999
nrmx210 normalize 1.00E-999 -> 1E-999
nrmx211 normalize 0.1E-999 -> 1E-1000 Subnormal
nrmx212 normalize 0.10E-999 -> 1E-1000 Subnormal
nrmx213 normalize 0.100E-999 -> 1E-1000 Subnormal Rounded
nrmx214 normalize 0.01E-999 -> 1E-1001 Subnormal
-- next is rounded to Emin
nrmx215 normalize 0.999E-999 -> 1E-999 Inexact Rounded Subnormal Underflow
nrmx216 normalize 0.099E-999 -> 1E-1000 Inexact Rounded Subnormal Underflow
nrmx217 normalize 0.009E-999 -> 1E-1001 Inexact Rounded Subnormal Underflow
nrmx218 normalize 0.001E-999 -> 0 Inexact Rounded Subnormal Underflow
nrmx219 normalize 0.0009E-999 -> 0 Inexact Rounded Subnormal Underflow
nrmx220 normalize 0.0001E-999 -> 0 Inexact Rounded Subnormal Underflow
nrmx230 normalize -1.00E-999 -> -1E-999
nrmx231 normalize -0.1E-999 -> -1E-1000 Subnormal
nrmx232 normalize -0.10E-999 -> -1E-1000 Subnormal
nrmx233 normalize -0.100E-999 -> -1E-1000 Subnormal Rounded
nrmx234 normalize -0.01E-999 -> -1E-1001 Subnormal
-- next is rounded to Emin
nrmx235 normalize -0.999E-999 -> -1E-999 Inexact Rounded Subnormal Underflow
nrmx236 normalize -0.099E-999 -> -1E-1000 Inexact Rounded Subnormal Underflow
nrmx237 normalize -0.009E-999 -> -1E-1001 Inexact Rounded Subnormal Underflow
nrmx238 normalize -0.001E-999 -> -0 Inexact Rounded Subnormal Underflow
nrmx239 normalize -0.0009E-999 -> -0 Inexact Rounded Subnormal Underflow
nrmx240 normalize -0.0001E-999 -> -0 Inexact Rounded Subnormal Underflow
-- more reshaping
precision: 9
nrmx260 normalize '56260E-10' -> '0.000005626'
nrmx261 normalize '56260E-5' -> '0.5626'
nrmx262 normalize '56260E-2' -> '562.6'
nrmx263 normalize '56260E-1' -> '5626'
nrmx265 normalize '56260E-0' -> '5.626E+4'
nrmx266 normalize '56260E+0' -> '5.626E+4'
nrmx267 normalize '56260E+1' -> '5.626E+5'
nrmx268 normalize '56260E+2' -> '5.626E+6'
nrmx269 normalize '56260E+3' -> '5.626E+7'
nrmx270 normalize '56260E+4' -> '5.626E+8'
nrmx271 normalize '56260E+5' -> '5.626E+9'
nrmx272 normalize '56260E+6' -> '5.626E+10'
nrmx280 normalize '-56260E-10' -> '-0.000005626'
nrmx281 normalize '-56260E-5' -> '-0.5626'
nrmx282 normalize '-56260E-2' -> '-562.6'
nrmx283 normalize '-56260E-1' -> '-5626'
nrmx285 normalize '-56260E-0' -> '-5.626E+4'
nrmx286 normalize '-56260E+0' -> '-5.626E+4'
nrmx287 normalize '-56260E+1' -> '-5.626E+5'
nrmx288 normalize '-56260E+2' -> '-5.626E+6'
nrmx289 normalize '-56260E+3' -> '-5.626E+7'
nrmx290 normalize '-56260E+4' -> '-5.626E+8'
nrmx291 normalize '-56260E+5' -> '-5.626E+9'
nrmx292 normalize '-56260E+6' -> '-5.626E+10'
-- specials
nrmx820 normalize 'Inf' -> 'Infinity'
nrmx821 normalize '-Inf' -> '-Infinity'
nrmx822 normalize NaN -> NaN
nrmx823 normalize sNaN -> NaN Invalid_operation
nrmx824 normalize NaN101 -> NaN101
nrmx825 normalize sNaN010 -> NaN10 Invalid_operation
nrmx827 normalize -NaN -> -NaN
nrmx828 normalize -sNaN -> -NaN Invalid_operation
nrmx829 normalize -NaN101 -> -NaN101
nrmx830 normalize -sNaN010 -> -NaN10 Invalid_operation
-- Null test
nrmx900 normalize # -> NaN Invalid_operation
|