1------------------------------------------------------------------------ 2-- ddBase.decTest -- base decDouble <--> string conversions -- 3-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- 4------------------------------------------------------------------------ 5-- Please see the document "General Decimal Arithmetic Testcases" -- 6-- at http://www2.hursley.ibm.com/decimal for the description of -- 7-- these testcases. -- 8-- -- 9-- These testcases are experimental ('beta' versions), and they -- 10-- may contain errors. They are offered on an as-is basis. In -- 11-- particular, achieving the same results as the tests here is not -- 12-- a guarantee that an implementation complies with any Standard -- 13-- or specification. The tests are not exhaustive. -- 14-- -- 15-- Please send comments, suggestions, and corrections to the author: -- 16-- Mike Cowlishaw, IBM Fellow -- 17-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- 18-- mfc@uk.ibm.com -- 19------------------------------------------------------------------------ 20version: 2.59 21 22-- This file tests base conversions from string to a decimal number 23-- and back to a string (in Scientific form) 24 25-- Note that unlike other operations the operand is subject to rounding 26-- to conform to emax and precision settings (that is, numbers will 27-- conform to rules and exponent will be in permitted range). The 28-- 'left hand side', therefore, may have numbers that cannot be 29-- represented in a decDouble. Some testcases go to the limit of the 30-- next-wider format, and hence these testcases may also be used to 31-- test narrowing and widening operations. 32 33precision: 16 34maxExponent: 384 35minExponent: -383 36extended: 1 37clamp: 1 38rounding: half_even 39 40ddbas001 toSci 0 -> 0 41ddbas002 toSci 1 -> 1 42ddbas003 toSci 1.0 -> 1.0 43ddbas004 toSci 1.00 -> 1.00 44ddbas005 toSci 10 -> 10 45ddbas006 toSci 1000 -> 1000 46ddbas007 toSci 10.0 -> 10.0 47ddbas008 toSci 10.1 -> 10.1 48ddbas009 toSci 10.4 -> 10.4 49ddbas010 toSci 10.5 -> 10.5 50ddbas011 toSci 10.6 -> 10.6 51ddbas012 toSci 10.9 -> 10.9 52ddbas013 toSci 11.0 -> 11.0 53ddbas014 toSci 1.234 -> 1.234 54ddbas015 toSci 0.123 -> 0.123 55ddbas016 toSci 0.012 -> 0.012 56ddbas017 toSci -0 -> -0 57ddbas018 toSci -0.0 -> -0.0 58ddbas019 toSci -00.00 -> -0.00 59 60ddbas021 toSci -1 -> -1 61ddbas022 toSci -1.0 -> -1.0 62ddbas023 toSci -0.1 -> -0.1 63ddbas024 toSci -9.1 -> -9.1 64ddbas025 toSci -9.11 -> -9.11 65ddbas026 toSci -9.119 -> -9.119 66ddbas027 toSci -9.999 -> -9.999 67 68ddbas030 toSci '123456789.123456' -> '123456789.123456' 69ddbas031 toSci '123456789.000000' -> '123456789.000000' 70ddbas032 toSci '123456789123456' -> '123456789123456' 71ddbas033 toSci '0.0000123456789' -> '0.0000123456789' 72ddbas034 toSci '0.00000123456789' -> '0.00000123456789' 73ddbas035 toSci '0.000000123456789' -> '1.23456789E-7' 74ddbas036 toSci '0.0000000123456789' -> '1.23456789E-8' 75 76ddbas037 toSci '0.123456789012344' -> '0.123456789012344' 77ddbas038 toSci '0.123456789012345' -> '0.123456789012345' 78 79-- test finite bounds (Negs of, then 0, Ntiny, Nmin, other, Nmax) 80ddbsn001 toSci -9.999999999999999E+384 -> -9.999999999999999E+384 81ddbsn002 toSci -1E-383 -> -1E-383 82ddbsn003 toSci -1E-398 -> -1E-398 Subnormal 83ddbsn004 toSci -0 -> -0 84ddbsn005 toSci +0 -> 0 85ddbsn006 toSci +1E-398 -> 1E-398 Subnormal 86ddbsn007 toSci +1E-383 -> 1E-383 87ddbsn008 toSci +9.999999999999999E+384 -> 9.999999999999999E+384 88 89-- String [many more examples are implicitly tested elsewhere] 90-- strings without E cannot generate E in result 91ddbas040 toSci "12" -> '12' 92ddbas041 toSci "-76" -> '-76' 93ddbas042 toSci "12.76" -> '12.76' 94ddbas043 toSci "+12.76" -> '12.76' 95ddbas044 toSci "012.76" -> '12.76' 96ddbas045 toSci "+0.003" -> '0.003' 97ddbas046 toSci "17." -> '17' 98ddbas047 toSci ".5" -> '0.5' 99ddbas048 toSci "044" -> '44' 100ddbas049 toSci "0044" -> '44' 101ddbas050 toSci "0.0005" -> '0.0005' 102ddbas051 toSci "00.00005" -> '0.00005' 103ddbas052 toSci "0.000005" -> '0.000005' 104ddbas053 toSci "0.0000050" -> '0.0000050' 105ddbas054 toSci "0.0000005" -> '5E-7' 106ddbas055 toSci "0.00000005" -> '5E-8' 107ddbas056 toSci "12345678.543210" -> '12345678.543210' 108ddbas057 toSci "2345678.543210" -> '2345678.543210' 109ddbas058 toSci "345678.543210" -> '345678.543210' 110ddbas059 toSci "0345678.54321" -> '345678.54321' 111ddbas060 toSci "345678.5432" -> '345678.5432' 112ddbas061 toSci "+345678.5432" -> '345678.5432' 113ddbas062 toSci "+0345678.5432" -> '345678.5432' 114ddbas063 toSci "+00345678.5432" -> '345678.5432' 115ddbas064 toSci "-345678.5432" -> '-345678.5432' 116ddbas065 toSci "-0345678.5432" -> '-345678.5432' 117ddbas066 toSci "-00345678.5432" -> '-345678.5432' 118-- examples 119ddbas067 toSci "5E-6" -> '0.000005' 120ddbas068 toSci "50E-7" -> '0.0000050' 121ddbas069 toSci "5E-7" -> '5E-7' 122 123-- [No exotics as no Unicode] 124 125-- rounded with dots in all (including edge) places 126ddbas071 toSci .1234567890123456123 -> 0.1234567890123456 Inexact Rounded 127ddbas072 toSci 1.234567890123456123 -> 1.234567890123456 Inexact Rounded 128ddbas073 toSci 12.34567890123456123 -> 12.34567890123456 Inexact Rounded 129ddbas074 toSci 123.4567890123456123 -> 123.4567890123456 Inexact Rounded 130ddbas075 toSci 1234.567890123456123 -> 1234.567890123456 Inexact Rounded 131ddbas076 toSci 12345.67890123456123 -> 12345.67890123456 Inexact Rounded 132ddbas077 toSci 123456.7890123456123 -> 123456.7890123456 Inexact Rounded 133ddbas078 toSci 1234567.890123456123 -> 1234567.890123456 Inexact Rounded 134ddbas079 toSci 12345678.90123456123 -> 12345678.90123456 Inexact Rounded 135ddbas080 toSci 123456789.0123456123 -> 123456789.0123456 Inexact Rounded 136ddbas081 toSci 1234567890.123456123 -> 1234567890.123456 Inexact Rounded 137ddbas082 toSci 12345678901.23456123 -> 12345678901.23456 Inexact Rounded 138ddbas083 toSci 123456789012.3456123 -> 123456789012.3456 Inexact Rounded 139ddbas084 toSci 1234567890123.456123 -> 1234567890123.456 Inexact Rounded 140ddbas085 toSci 12345678901234.56123 -> 12345678901234.56 Inexact Rounded 141ddbas086 toSci 123456789012345.6123 -> 123456789012345.6 Inexact Rounded 142ddbas087 toSci 1234567890123456.123 -> 1234567890123456 Inexact Rounded 143ddbas088 toSci 12345678901234561.23 -> 1.234567890123456E+16 Inexact Rounded 144ddbas089 toSci 123456789012345612.3 -> 1.234567890123456E+17 Inexact Rounded 145ddbas090 toSci 1234567890123456123. -> 1.234567890123456E+18 Inexact Rounded 146 147 148-- Numbers with E 149ddbas130 toSci "0.000E-1" -> '0.0000' 150ddbas131 toSci "0.000E-2" -> '0.00000' 151ddbas132 toSci "0.000E-3" -> '0.000000' 152ddbas133 toSci "0.000E-4" -> '0E-7' 153ddbas134 toSci "0.00E-2" -> '0.0000' 154ddbas135 toSci "0.00E-3" -> '0.00000' 155ddbas136 toSci "0.00E-4" -> '0.000000' 156ddbas137 toSci "0.00E-5" -> '0E-7' 157ddbas138 toSci "+0E+9" -> '0E+9' 158ddbas139 toSci "-0E+9" -> '-0E+9' 159ddbas140 toSci "1E+9" -> '1E+9' 160ddbas141 toSci "1e+09" -> '1E+9' 161ddbas142 toSci "1E+90" -> '1E+90' 162ddbas143 toSci "+1E+009" -> '1E+9' 163ddbas144 toSci "0E+9" -> '0E+9' 164ddbas145 toSci "1E+9" -> '1E+9' 165ddbas146 toSci "1E+09" -> '1E+9' 166ddbas147 toSci "1e+90" -> '1E+90' 167ddbas148 toSci "1E+009" -> '1E+9' 168ddbas149 toSci "000E+9" -> '0E+9' 169ddbas150 toSci "1E9" -> '1E+9' 170ddbas151 toSci "1e09" -> '1E+9' 171ddbas152 toSci "1E90" -> '1E+90' 172ddbas153 toSci "1E009" -> '1E+9' 173ddbas154 toSci "0E9" -> '0E+9' 174ddbas155 toSci "0.000e+0" -> '0.000' 175ddbas156 toSci "0.000E-1" -> '0.0000' 176ddbas157 toSci "4E+9" -> '4E+9' 177ddbas158 toSci "44E+9" -> '4.4E+10' 178ddbas159 toSci "0.73e-7" -> '7.3E-8' 179ddbas160 toSci "00E+9" -> '0E+9' 180ddbas161 toSci "00E-9" -> '0E-9' 181ddbas162 toSci "10E+9" -> '1.0E+10' 182ddbas163 toSci "10E+09" -> '1.0E+10' 183ddbas164 toSci "10e+90" -> '1.0E+91' 184ddbas165 toSci "10E+009" -> '1.0E+10' 185ddbas166 toSci "100e+9" -> '1.00E+11' 186ddbas167 toSci "100e+09" -> '1.00E+11' 187ddbas168 toSci "100E+90" -> '1.00E+92' 188ddbas169 toSci "100e+009" -> '1.00E+11' 189 190ddbas170 toSci "1.265" -> '1.265' 191ddbas171 toSci "1.265E-20" -> '1.265E-20' 192ddbas172 toSci "1.265E-8" -> '1.265E-8' 193ddbas173 toSci "1.265E-4" -> '0.0001265' 194ddbas174 toSci "1.265E-3" -> '0.001265' 195ddbas175 toSci "1.265E-2" -> '0.01265' 196ddbas176 toSci "1.265E-1" -> '0.1265' 197ddbas177 toSci "1.265E-0" -> '1.265' 198ddbas178 toSci "1.265E+1" -> '12.65' 199ddbas179 toSci "1.265E+2" -> '126.5' 200ddbas180 toSci "1.265E+3" -> '1265' 201ddbas181 toSci "1.265E+4" -> '1.265E+4' 202ddbas182 toSci "1.265E+8" -> '1.265E+8' 203ddbas183 toSci "1.265E+20" -> '1.265E+20' 204 205ddbas190 toSci "12.65" -> '12.65' 206ddbas191 toSci "12.65E-20" -> '1.265E-19' 207ddbas192 toSci "12.65E-8" -> '1.265E-7' 208ddbas193 toSci "12.65E-4" -> '0.001265' 209ddbas194 toSci "12.65E-3" -> '0.01265' 210ddbas195 toSci "12.65E-2" -> '0.1265' 211ddbas196 toSci "12.65E-1" -> '1.265' 212ddbas197 toSci "12.65E-0" -> '12.65' 213ddbas198 toSci "12.65E+1" -> '126.5' 214ddbas199 toSci "12.65E+2" -> '1265' 215ddbas200 toSci "12.65E+3" -> '1.265E+4' 216ddbas201 toSci "12.65E+4" -> '1.265E+5' 217ddbas202 toSci "12.65E+8" -> '1.265E+9' 218ddbas203 toSci "12.65E+20" -> '1.265E+21' 219 220ddbas210 toSci "126.5" -> '126.5' 221ddbas211 toSci "126.5E-20" -> '1.265E-18' 222ddbas212 toSci "126.5E-8" -> '0.000001265' 223ddbas213 toSci "126.5E-4" -> '0.01265' 224ddbas214 toSci "126.5E-3" -> '0.1265' 225ddbas215 toSci "126.5E-2" -> '1.265' 226ddbas216 toSci "126.5E-1" -> '12.65' 227ddbas217 toSci "126.5E-0" -> '126.5' 228ddbas218 toSci "126.5E+1" -> '1265' 229ddbas219 toSci "126.5E+2" -> '1.265E+4' 230ddbas220 toSci "126.5E+3" -> '1.265E+5' 231ddbas221 toSci "126.5E+4" -> '1.265E+6' 232ddbas222 toSci "126.5E+8" -> '1.265E+10' 233ddbas223 toSci "126.5E+20" -> '1.265E+22' 234 235ddbas230 toSci "1265" -> '1265' 236ddbas231 toSci "1265E-20" -> '1.265E-17' 237ddbas232 toSci "1265E-8" -> '0.00001265' 238ddbas233 toSci "1265E-4" -> '0.1265' 239ddbas234 toSci "1265E-3" -> '1.265' 240ddbas235 toSci "1265E-2" -> '12.65' 241ddbas236 toSci "1265E-1" -> '126.5' 242ddbas237 toSci "1265E-0" -> '1265' 243ddbas238 toSci "1265E+1" -> '1.265E+4' 244ddbas239 toSci "1265E+2" -> '1.265E+5' 245ddbas240 toSci "1265E+3" -> '1.265E+6' 246ddbas241 toSci "1265E+4" -> '1.265E+7' 247ddbas242 toSci "1265E+8" -> '1.265E+11' 248ddbas243 toSci "1265E+20" -> '1.265E+23' 249ddbas244 toSci "1265E-9" -> '0.000001265' 250ddbas245 toSci "1265E-10" -> '1.265E-7' 251ddbas246 toSci "1265E-11" -> '1.265E-8' 252ddbas247 toSci "1265E-12" -> '1.265E-9' 253 254ddbas250 toSci "0.1265" -> '0.1265' 255ddbas251 toSci "0.1265E-20" -> '1.265E-21' 256ddbas252 toSci "0.1265E-8" -> '1.265E-9' 257ddbas253 toSci "0.1265E-4" -> '0.00001265' 258ddbas254 toSci "0.1265E-3" -> '0.0001265' 259ddbas255 toSci "0.1265E-2" -> '0.001265' 260ddbas256 toSci "0.1265E-1" -> '0.01265' 261ddbas257 toSci "0.1265E-0" -> '0.1265' 262ddbas258 toSci "0.1265E+1" -> '1.265' 263ddbas259 toSci "0.1265E+2" -> '12.65' 264ddbas260 toSci "0.1265E+3" -> '126.5' 265ddbas261 toSci "0.1265E+4" -> '1265' 266ddbas262 toSci "0.1265E+8" -> '1.265E+7' 267ddbas263 toSci "0.1265E+20" -> '1.265E+19' 268 269-- some more negative zeros [systematic tests below] 270ddbas290 toSci "-0.000E-1" -> '-0.0000' 271ddbas291 toSci "-0.000E-2" -> '-0.00000' 272ddbas292 toSci "-0.000E-3" -> '-0.000000' 273ddbas293 toSci "-0.000E-4" -> '-0E-7' 274ddbas294 toSci "-0.00E-2" -> '-0.0000' 275ddbas295 toSci "-0.00E-3" -> '-0.00000' 276ddbas296 toSci "-0.0E-2" -> '-0.000' 277ddbas297 toSci "-0.0E-3" -> '-0.0000' 278ddbas298 toSci "-0E-2" -> '-0.00' 279ddbas299 toSci "-0E-3" -> '-0.000' 280 281-- Engineering notation tests 282ddbas301 toSci 10e12 -> 1.0E+13 283ddbas302 toEng 10e12 -> 10E+12 284ddbas303 toSci 10e11 -> 1.0E+12 285ddbas304 toEng 10e11 -> 1.0E+12 286ddbas305 toSci 10e10 -> 1.0E+11 287ddbas306 toEng 10e10 -> 100E+9 288ddbas307 toSci 10e9 -> 1.0E+10 289ddbas308 toEng 10e9 -> 10E+9 290ddbas309 toSci 10e8 -> 1.0E+9 291ddbas310 toEng 10e8 -> 1.0E+9 292ddbas311 toSci 10e7 -> 1.0E+8 293ddbas312 toEng 10e7 -> 100E+6 294ddbas313 toSci 10e6 -> 1.0E+7 295ddbas314 toEng 10e6 -> 10E+6 296ddbas315 toSci 10e5 -> 1.0E+6 297ddbas316 toEng 10e5 -> 1.0E+6 298ddbas317 toSci 10e4 -> 1.0E+5 299ddbas318 toEng 10e4 -> 100E+3 300ddbas319 toSci 10e3 -> 1.0E+4 301ddbas320 toEng 10e3 -> 10E+3 302ddbas321 toSci 10e2 -> 1.0E+3 303ddbas322 toEng 10e2 -> 1.0E+3 304ddbas323 toSci 10e1 -> 1.0E+2 305ddbas324 toEng 10e1 -> 100 306ddbas325 toSci 10e0 -> 10 307ddbas326 toEng 10e0 -> 10 308ddbas327 toSci 10e-1 -> 1.0 309ddbas328 toEng 10e-1 -> 1.0 310ddbas329 toSci 10e-2 -> 0.10 311ddbas330 toEng 10e-2 -> 0.10 312ddbas331 toSci 10e-3 -> 0.010 313ddbas332 toEng 10e-3 -> 0.010 314ddbas333 toSci 10e-4 -> 0.0010 315ddbas334 toEng 10e-4 -> 0.0010 316ddbas335 toSci 10e-5 -> 0.00010 317ddbas336 toEng 10e-5 -> 0.00010 318ddbas337 toSci 10e-6 -> 0.000010 319ddbas338 toEng 10e-6 -> 0.000010 320ddbas339 toSci 10e-7 -> 0.0000010 321ddbas340 toEng 10e-7 -> 0.0000010 322ddbas341 toSci 10e-8 -> 1.0E-7 323ddbas342 toEng 10e-8 -> 100E-9 324ddbas343 toSci 10e-9 -> 1.0E-8 325ddbas344 toEng 10e-9 -> 10E-9 326ddbas345 toSci 10e-10 -> 1.0E-9 327ddbas346 toEng 10e-10 -> 1.0E-9 328ddbas347 toSci 10e-11 -> 1.0E-10 329ddbas348 toEng 10e-11 -> 100E-12 330ddbas349 toSci 10e-12 -> 1.0E-11 331ddbas350 toEng 10e-12 -> 10E-12 332ddbas351 toSci 10e-13 -> 1.0E-12 333ddbas352 toEng 10e-13 -> 1.0E-12 334 335ddbas361 toSci 7E12 -> 7E+12 336ddbas362 toEng 7E12 -> 7E+12 337ddbas363 toSci 7E11 -> 7E+11 338ddbas364 toEng 7E11 -> 700E+9 339ddbas365 toSci 7E10 -> 7E+10 340ddbas366 toEng 7E10 -> 70E+9 341ddbas367 toSci 7E9 -> 7E+9 342ddbas368 toEng 7E9 -> 7E+9 343ddbas369 toSci 7E8 -> 7E+8 344ddbas370 toEng 7E8 -> 700E+6 345ddbas371 toSci 7E7 -> 7E+7 346ddbas372 toEng 7E7 -> 70E+6 347ddbas373 toSci 7E6 -> 7E+6 348ddbas374 toEng 7E6 -> 7E+6 349ddbas375 toSci 7E5 -> 7E+5 350ddbas376 toEng 7E5 -> 700E+3 351ddbas377 toSci 7E4 -> 7E+4 352ddbas378 toEng 7E4 -> 70E+3 353ddbas379 toSci 7E3 -> 7E+3 354ddbas380 toEng 7E3 -> 7E+3 355ddbas381 toSci 7E2 -> 7E+2 356ddbas382 toEng 7E2 -> 700 357ddbas383 toSci 7E1 -> 7E+1 358ddbas384 toEng 7E1 -> 70 359ddbas385 toSci 7E0 -> 7 360ddbas386 toEng 7E0 -> 7 361ddbas387 toSci 7E-1 -> 0.7 362ddbas388 toEng 7E-1 -> 0.7 363ddbas389 toSci 7E-2 -> 0.07 364ddbas390 toEng 7E-2 -> 0.07 365ddbas391 toSci 7E-3 -> 0.007 366ddbas392 toEng 7E-3 -> 0.007 367ddbas393 toSci 7E-4 -> 0.0007 368ddbas394 toEng 7E-4 -> 0.0007 369ddbas395 toSci 7E-5 -> 0.00007 370ddbas396 toEng 7E-5 -> 0.00007 371ddbas397 toSci 7E-6 -> 0.000007 372ddbas398 toEng 7E-6 -> 0.000007 373ddbas399 toSci 7E-7 -> 7E-7 374ddbas400 toEng 7E-7 -> 700E-9 375ddbas401 toSci 7E-8 -> 7E-8 376ddbas402 toEng 7E-8 -> 70E-9 377ddbas403 toSci 7E-9 -> 7E-9 378ddbas404 toEng 7E-9 -> 7E-9 379ddbas405 toSci 7E-10 -> 7E-10 380ddbas406 toEng 7E-10 -> 700E-12 381ddbas407 toSci 7E-11 -> 7E-11 382ddbas408 toEng 7E-11 -> 70E-12 383ddbas409 toSci 7E-12 -> 7E-12 384ddbas410 toEng 7E-12 -> 7E-12 385ddbas411 toSci 7E-13 -> 7E-13 386ddbas412 toEng 7E-13 -> 700E-15 387 388-- Exacts remain exact up to precision .. 389rounding: half_up 390ddbas420 toSci 100 -> 100 391ddbas421 toEng 100 -> 100 392ddbas422 toSci 1000 -> 1000 393ddbas423 toEng 1000 -> 1000 394ddbas424 toSci 999.9 -> 999.9 395ddbas425 toEng 999.9 -> 999.9 396ddbas426 toSci 1000.0 -> 1000.0 397ddbas427 toEng 1000.0 -> 1000.0 398ddbas428 toSci 1000.1 -> 1000.1 399ddbas429 toEng 1000.1 -> 1000.1 400ddbas430 toSci 10000 -> 10000 401ddbas431 toEng 10000 -> 10000 402ddbas432 toSci 100000 -> 100000 403ddbas433 toEng 100000 -> 100000 404ddbas434 toSci 1000000 -> 1000000 405ddbas435 toEng 1000000 -> 1000000 406ddbas436 toSci 10000000 -> 10000000 407ddbas437 toEng 10000000 -> 10000000 408ddbas438 toSci 100000000 -> 100000000 409ddbas439 toEng 1000000000000000 -> 1000000000000000 410ddbas440 toSci 10000000000000000 -> 1.000000000000000E+16 Rounded 411ddbas441 toEng 10000000000000000 -> 10.00000000000000E+15 Rounded 412ddbas442 toSci 10000000000000001 -> 1.000000000000000E+16 Rounded Inexact 413ddbas443 toEng 10000000000000001 -> 10.00000000000000E+15 Rounded Inexact 414ddbas444 toSci 10000000000000003 -> 1.000000000000000E+16 Rounded Inexact 415ddbas445 toEng 10000000000000003 -> 10.00000000000000E+15 Rounded Inexact 416ddbas446 toSci 10000000000000005 -> 1.000000000000001E+16 Rounded Inexact 417ddbas447 toEng 10000000000000005 -> 10.00000000000001E+15 Rounded Inexact 418ddbas448 toSci 100000000000000050 -> 1.000000000000001E+17 Rounded Inexact 419ddbas449 toEng 100000000000000050 -> 100.0000000000001E+15 Rounded Inexact 420ddbas450 toSci 10000000000000009 -> 1.000000000000001E+16 Rounded Inexact 421ddbas451 toEng 10000000000000009 -> 10.00000000000001E+15 Rounded Inexact 422ddbas452 toSci 100000000000000000 -> 1.000000000000000E+17 Rounded 423ddbas453 toEng 100000000000000000 -> 100.0000000000000E+15 Rounded 424ddbas454 toSci 100000000000000003 -> 1.000000000000000E+17 Rounded Inexact 425ddbas455 toEng 100000000000000003 -> 100.0000000000000E+15 Rounded Inexact 426ddbas456 toSci 100000000000000005 -> 1.000000000000000E+17 Rounded Inexact 427ddbas457 toEng 100000000000000005 -> 100.0000000000000E+15 Rounded Inexact 428ddbas458 toSci 100000000000000009 -> 1.000000000000000E+17 Rounded Inexact 429ddbas459 toEng 100000000000000009 -> 100.0000000000000E+15 Rounded Inexact 430ddbas460 toSci 1000000000000000000 -> 1.000000000000000E+18 Rounded 431ddbas461 toEng 1000000000000000000 -> 1.000000000000000E+18 Rounded 432ddbas462 toSci 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact 433ddbas463 toEng 1000000000000000300 -> 1.000000000000000E+18 Rounded Inexact 434ddbas464 toSci 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact 435ddbas465 toEng 1000000000000000500 -> 1.000000000000001E+18 Rounded Inexact 436ddbas466 toSci 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact 437ddbas467 toEng 1000000000000000900 -> 1.000000000000001E+18 Rounded Inexact 438ddbas468 toSci 10000000000000000000 -> 1.000000000000000E+19 Rounded 439ddbas469 toEng 10000000000000000000 -> 10.00000000000000E+18 Rounded 440ddbas470 toSci 10000000000000003000 -> 1.000000000000000E+19 Rounded Inexact 441ddbas471 toEng 10000000000000003000 -> 10.00000000000000E+18 Rounded Inexact 442ddbas472 toSci 10000000000000005000 -> 1.000000000000001E+19 Rounded Inexact 443ddbas473 toEng 10000000000000005000 -> 10.00000000000001E+18 Rounded Inexact 444ddbas474 toSci 10000000000000009000 -> 1.000000000000001E+19 Rounded Inexact 445ddbas475 toEng 10000000000000009000 -> 10.00000000000001E+18 Rounded Inexact 446 447-- check rounding modes heeded 448rounding: ceiling 449ddbsr401 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 450ddbsr402 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact 451ddbsr403 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact 452ddbsr404 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact 453rounding: up 454ddbsr405 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 455ddbsr406 toSci 1.11111111111234549 -> 1.111111111112346 Rounded Inexact 456ddbsr407 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact 457ddbsr408 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact 458rounding: floor 459ddbsr410 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 460ddbsr411 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact 461ddbsr412 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact 462ddbsr413 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact 463rounding: half_down 464ddbsr415 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 465ddbsr416 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact 466ddbsr417 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact 467ddbsr418 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact 468ddbsr419 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact 469rounding: half_even 470ddbsr421 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 471ddbsr422 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact 472ddbsr423 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact 473ddbsr424 toSci 1.11111111111234650 -> 1.111111111112346 Rounded Inexact 474ddbsr425 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact 475rounding: down 476ddbsr426 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 477ddbsr427 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact 478ddbsr428 toSci 1.11111111111234550 -> 1.111111111112345 Rounded Inexact 479ddbsr429 toSci 1.11111111111234551 -> 1.111111111112345 Rounded Inexact 480rounding: half_up 481ddbsr431 toSci 1.1111111111123450 -> 1.111111111112345 Rounded 482ddbsr432 toSci 1.11111111111234549 -> 1.111111111112345 Rounded Inexact 483ddbsr433 toSci 1.11111111111234550 -> 1.111111111112346 Rounded Inexact 484ddbsr434 toSci 1.11111111111234650 -> 1.111111111112347 Rounded Inexact 485ddbsr435 toSci 1.11111111111234551 -> 1.111111111112346 Rounded Inexact 486-- negatives 487rounding: ceiling 488ddbsr501 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 489ddbsr502 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact 490ddbsr503 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact 491ddbsr504 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact 492rounding: up 493ddbsr505 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 494ddbsr506 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact 495ddbsr507 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact 496ddbsr508 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact 497rounding: floor 498ddbsr510 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 499ddbsr511 toSci -1.11111111111234549 -> -1.111111111112346 Rounded Inexact 500ddbsr512 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact 501ddbsr513 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact 502rounding: half_down 503ddbsr515 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 504ddbsr516 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact 505ddbsr517 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact 506ddbsr518 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact 507ddbsr519 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact 508rounding: half_even 509ddbsr521 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 510ddbsr522 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact 511ddbsr523 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact 512ddbsr524 toSci -1.11111111111234650 -> -1.111111111112346 Rounded Inexact 513ddbsr525 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact 514rounding: down 515ddbsr526 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 516ddbsr527 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact 517ddbsr528 toSci -1.11111111111234550 -> -1.111111111112345 Rounded Inexact 518ddbsr529 toSci -1.11111111111234551 -> -1.111111111112345 Rounded Inexact 519rounding: half_up 520ddbsr531 toSci -1.1111111111123450 -> -1.111111111112345 Rounded 521ddbsr532 toSci -1.11111111111234549 -> -1.111111111112345 Rounded Inexact 522ddbsr533 toSci -1.11111111111234550 -> -1.111111111112346 Rounded Inexact 523ddbsr534 toSci -1.11111111111234650 -> -1.111111111112347 Rounded Inexact 524ddbsr535 toSci -1.11111111111234551 -> -1.111111111112346 Rounded Inexact 525 526rounding: half_even 527 528-- The 'baddies' tests from DiagBigDecimal, plus some new ones 529ddbas500 toSci '1..2' -> NaN Conversion_syntax 530ddbas501 toSci '.' -> NaN Conversion_syntax 531ddbas502 toSci '..' -> NaN Conversion_syntax 532ddbas503 toSci '++1' -> NaN Conversion_syntax 533ddbas504 toSci '--1' -> NaN Conversion_syntax 534ddbas505 toSci '-+1' -> NaN Conversion_syntax 535ddbas506 toSci '+-1' -> NaN Conversion_syntax 536ddbas507 toSci '12e' -> NaN Conversion_syntax 537ddbas508 toSci '12e++' -> NaN Conversion_syntax 538ddbas509 toSci '12f4' -> NaN Conversion_syntax 539ddbas510 toSci ' +1' -> NaN Conversion_syntax 540ddbas511 toSci '+ 1' -> NaN Conversion_syntax 541ddbas512 toSci '12 ' -> NaN Conversion_syntax 542ddbas513 toSci ' + 1' -> NaN Conversion_syntax 543ddbas514 toSci ' - 1 ' -> NaN Conversion_syntax 544ddbas515 toSci 'x' -> NaN Conversion_syntax 545ddbas516 toSci '-1-' -> NaN Conversion_syntax 546ddbas517 toSci '12-' -> NaN Conversion_syntax 547ddbas518 toSci '3+' -> NaN Conversion_syntax 548ddbas519 toSci '' -> NaN Conversion_syntax 549ddbas520 toSci '1e-' -> NaN Conversion_syntax 550ddbas521 toSci '7e99999a' -> NaN Conversion_syntax 551ddbas522 toSci '7e123567890x' -> NaN Conversion_syntax 552ddbas523 toSci '7e12356789012x' -> NaN Conversion_syntax 553ddbas524 toSci '' -> NaN Conversion_syntax 554ddbas525 toSci 'e100' -> NaN Conversion_syntax 555ddbas526 toSci '\u0e5a' -> NaN Conversion_syntax 556ddbas527 toSci '\u0b65' -> NaN Conversion_syntax 557ddbas528 toSci '123,65' -> NaN Conversion_syntax 558ddbas529 toSci '1.34.5' -> NaN Conversion_syntax 559ddbas530 toSci '.123.5' -> NaN Conversion_syntax 560ddbas531 toSci '01.35.' -> NaN Conversion_syntax 561ddbas532 toSci '01.35-' -> NaN Conversion_syntax 562ddbas533 toSci '0000..' -> NaN Conversion_syntax 563ddbas534 toSci '.0000.' -> NaN Conversion_syntax 564ddbas535 toSci '00..00' -> NaN Conversion_syntax 565ddbas536 toSci '111e*123' -> NaN Conversion_syntax 566ddbas537 toSci '111e123-' -> NaN Conversion_syntax 567ddbas538 toSci '111e+12+' -> NaN Conversion_syntax 568ddbas539 toSci '111e1-3-' -> NaN Conversion_syntax 569ddbas540 toSci '111e1*23' -> NaN Conversion_syntax 570ddbas541 toSci '111e1e+3' -> NaN Conversion_syntax 571ddbas542 toSci '1e1.0' -> NaN Conversion_syntax 572ddbas543 toSci '1e123e' -> NaN Conversion_syntax 573ddbas544 toSci 'ten' -> NaN Conversion_syntax 574ddbas545 toSci 'ONE' -> NaN Conversion_syntax 575ddbas546 toSci '1e.1' -> NaN Conversion_syntax 576ddbas547 toSci '1e1.' -> NaN Conversion_syntax 577ddbas548 toSci '1ee' -> NaN Conversion_syntax 578ddbas549 toSci 'e+1' -> NaN Conversion_syntax 579ddbas550 toSci '1.23.4' -> NaN Conversion_syntax 580ddbas551 toSci '1.2.1' -> NaN Conversion_syntax 581ddbas552 toSci '1E+1.2' -> NaN Conversion_syntax 582ddbas553 toSci '1E+1.2.3' -> NaN Conversion_syntax 583ddbas554 toSci '1E++1' -> NaN Conversion_syntax 584ddbas555 toSci '1E--1' -> NaN Conversion_syntax 585ddbas556 toSci '1E+-1' -> NaN Conversion_syntax 586ddbas557 toSci '1E-+1' -> NaN Conversion_syntax 587ddbas558 toSci '1E''1' -> NaN Conversion_syntax 588ddbas559 toSci "1E""1" -> NaN Conversion_syntax 589ddbas560 toSci "1E""""" -> NaN Conversion_syntax 590-- Near-specials 591ddbas561 toSci "qNaN" -> NaN Conversion_syntax 592ddbas562 toSci "NaNq" -> NaN Conversion_syntax 593ddbas563 toSci "NaNs" -> NaN Conversion_syntax 594ddbas564 toSci "Infi" -> NaN Conversion_syntax 595ddbas565 toSci "Infin" -> NaN Conversion_syntax 596ddbas566 toSci "Infini" -> NaN Conversion_syntax 597ddbas567 toSci "Infinit" -> NaN Conversion_syntax 598ddbas568 toSci "-Infinit" -> NaN Conversion_syntax 599ddbas569 toSci "0Inf" -> NaN Conversion_syntax 600ddbas570 toSci "9Inf" -> NaN Conversion_syntax 601ddbas571 toSci "-0Inf" -> NaN Conversion_syntax 602ddbas572 toSci "-9Inf" -> NaN Conversion_syntax 603ddbas573 toSci "-sNa" -> NaN Conversion_syntax 604ddbas574 toSci "xNaN" -> NaN Conversion_syntax 605ddbas575 toSci "0sNaN" -> NaN Conversion_syntax 606 607-- some baddies with dots and Es and dots and specials 608ddbas576 toSci 'e+1' -> NaN Conversion_syntax 609ddbas577 toSci '.e+1' -> NaN Conversion_syntax 610ddbas578 toSci '+.e+1' -> NaN Conversion_syntax 611ddbas579 toSci '-.e+' -> NaN Conversion_syntax 612ddbas580 toSci '-.e' -> NaN Conversion_syntax 613ddbas581 toSci 'E+1' -> NaN Conversion_syntax 614ddbas582 toSci '.E+1' -> NaN Conversion_syntax 615ddbas583 toSci '+.E+1' -> NaN Conversion_syntax 616ddbas584 toSci '-.E+' -> NaN Conversion_syntax 617ddbas585 toSci '-.E' -> NaN Conversion_syntax 618 619ddbas586 toSci '.NaN' -> NaN Conversion_syntax 620ddbas587 toSci '-.NaN' -> NaN Conversion_syntax 621ddbas588 toSci '+.sNaN' -> NaN Conversion_syntax 622ddbas589 toSci '+.Inf' -> NaN Conversion_syntax 623ddbas590 toSci '.Infinity' -> NaN Conversion_syntax 624 625-- Zeros 626ddbas601 toSci 0.000000000 -> 0E-9 627ddbas602 toSci 0.00000000 -> 0E-8 628ddbas603 toSci 0.0000000 -> 0E-7 629ddbas604 toSci 0.000000 -> 0.000000 630ddbas605 toSci 0.00000 -> 0.00000 631ddbas606 toSci 0.0000 -> 0.0000 632ddbas607 toSci 0.000 -> 0.000 633ddbas608 toSci 0.00 -> 0.00 634ddbas609 toSci 0.0 -> 0.0 635ddbas610 toSci .0 -> 0.0 636ddbas611 toSci 0. -> 0 637ddbas612 toSci -.0 -> -0.0 638ddbas613 toSci -0. -> -0 639ddbas614 toSci -0.0 -> -0.0 640ddbas615 toSci -0.00 -> -0.00 641ddbas616 toSci -0.000 -> -0.000 642ddbas617 toSci -0.0000 -> -0.0000 643ddbas618 toSci -0.00000 -> -0.00000 644ddbas619 toSci -0.000000 -> -0.000000 645ddbas620 toSci -0.0000000 -> -0E-7 646ddbas621 toSci -0.00000000 -> -0E-8 647ddbas622 toSci -0.000000000 -> -0E-9 648 649ddbas630 toSci 0.00E+0 -> 0.00 650ddbas631 toSci 0.00E+1 -> 0.0 651ddbas632 toSci 0.00E+2 -> 0 652ddbas633 toSci 0.00E+3 -> 0E+1 653ddbas634 toSci 0.00E+4 -> 0E+2 654ddbas635 toSci 0.00E+5 -> 0E+3 655ddbas636 toSci 0.00E+6 -> 0E+4 656ddbas637 toSci 0.00E+7 -> 0E+5 657ddbas638 toSci 0.00E+8 -> 0E+6 658ddbas639 toSci 0.00E+9 -> 0E+7 659 660ddbas640 toSci 0.0E+0 -> 0.0 661ddbas641 toSci 0.0E+1 -> 0 662ddbas642 toSci 0.0E+2 -> 0E+1 663ddbas643 toSci 0.0E+3 -> 0E+2 664ddbas644 toSci 0.0E+4 -> 0E+3 665ddbas645 toSci 0.0E+5 -> 0E+4 666ddbas646 toSci 0.0E+6 -> 0E+5 667ddbas647 toSci 0.0E+7 -> 0E+6 668ddbas648 toSci 0.0E+8 -> 0E+7 669ddbas649 toSci 0.0E+9 -> 0E+8 670 671ddbas650 toSci 0E+0 -> 0 672ddbas651 toSci 0E+1 -> 0E+1 673ddbas652 toSci 0E+2 -> 0E+2 674ddbas653 toSci 0E+3 -> 0E+3 675ddbas654 toSci 0E+4 -> 0E+4 676ddbas655 toSci 0E+5 -> 0E+5 677ddbas656 toSci 0E+6 -> 0E+6 678ddbas657 toSci 0E+7 -> 0E+7 679ddbas658 toSci 0E+8 -> 0E+8 680ddbas659 toSci 0E+9 -> 0E+9 681 682ddbas660 toSci 0.0E-0 -> 0.0 683ddbas661 toSci 0.0E-1 -> 0.00 684ddbas662 toSci 0.0E-2 -> 0.000 685ddbas663 toSci 0.0E-3 -> 0.0000 686ddbas664 toSci 0.0E-4 -> 0.00000 687ddbas665 toSci 0.0E-5 -> 0.000000 688ddbas666 toSci 0.0E-6 -> 0E-7 689ddbas667 toSci 0.0E-7 -> 0E-8 690ddbas668 toSci 0.0E-8 -> 0E-9 691ddbas669 toSci 0.0E-9 -> 0E-10 692 693ddbas670 toSci 0.00E-0 -> 0.00 694ddbas671 toSci 0.00E-1 -> 0.000 695ddbas672 toSci 0.00E-2 -> 0.0000 696ddbas673 toSci 0.00E-3 -> 0.00000 697ddbas674 toSci 0.00E-4 -> 0.000000 698ddbas675 toSci 0.00E-5 -> 0E-7 699ddbas676 toSci 0.00E-6 -> 0E-8 700ddbas677 toSci 0.00E-7 -> 0E-9 701ddbas678 toSci 0.00E-8 -> 0E-10 702ddbas679 toSci 0.00E-9 -> 0E-11 703 704ddbas680 toSci 000000. -> 0 705ddbas681 toSci 00000. -> 0 706ddbas682 toSci 0000. -> 0 707ddbas683 toSci 000. -> 0 708ddbas684 toSci 00. -> 0 709ddbas685 toSci 0. -> 0 710ddbas686 toSci +00000. -> 0 711ddbas687 toSci -00000. -> -0 712ddbas688 toSci +0. -> 0 713ddbas689 toSci -0. -> -0 714 715-- Specials 716ddbas700 toSci "NaN" -> NaN 717ddbas701 toSci "nan" -> NaN 718ddbas702 toSci "nAn" -> NaN 719ddbas703 toSci "NAN" -> NaN 720ddbas704 toSci "+NaN" -> NaN 721ddbas705 toSci "+nan" -> NaN 722ddbas706 toSci "+nAn" -> NaN 723ddbas707 toSci "+NAN" -> NaN 724ddbas708 toSci "-NaN" -> -NaN 725ddbas709 toSci "-nan" -> -NaN 726ddbas710 toSci "-nAn" -> -NaN 727ddbas711 toSci "-NAN" -> -NaN 728ddbas712 toSci 'NaN0' -> NaN 729ddbas713 toSci 'NaN1' -> NaN1 730ddbas714 toSci 'NaN12' -> NaN12 731ddbas715 toSci 'NaN123' -> NaN123 732ddbas716 toSci 'NaN1234' -> NaN1234 733ddbas717 toSci 'NaN01' -> NaN1 734ddbas718 toSci 'NaN012' -> NaN12 735ddbas719 toSci 'NaN0123' -> NaN123 736ddbas720 toSci 'NaN01234' -> NaN1234 737ddbas721 toSci 'NaN001' -> NaN1 738ddbas722 toSci 'NaN0012' -> NaN12 739ddbas723 toSci 'NaN00123' -> NaN123 740ddbas724 toSci 'NaN001234' -> NaN1234 741ddbas725 toSci 'NaN1234567890123456' -> NaN Conversion_syntax 742ddbas726 toSci 'NaN123e+1' -> NaN Conversion_syntax 743ddbas727 toSci 'NaN12.45' -> NaN Conversion_syntax 744ddbas728 toSci 'NaN-12' -> NaN Conversion_syntax 745ddbas729 toSci 'NaN+12' -> NaN Conversion_syntax 746 747ddbas730 toSci "sNaN" -> sNaN 748ddbas731 toSci "snan" -> sNaN 749ddbas732 toSci "SnAn" -> sNaN 750ddbas733 toSci "SNAN" -> sNaN 751ddbas734 toSci "+sNaN" -> sNaN 752ddbas735 toSci "+snan" -> sNaN 753ddbas736 toSci "+SnAn" -> sNaN 754ddbas737 toSci "+SNAN" -> sNaN 755ddbas738 toSci "-sNaN" -> -sNaN 756ddbas739 toSci "-snan" -> -sNaN 757ddbas740 toSci "-SnAn" -> -sNaN 758ddbas741 toSci "-SNAN" -> -sNaN 759ddbas742 toSci 'sNaN0000' -> sNaN 760ddbas743 toSci 'sNaN7' -> sNaN7 761ddbas744 toSci 'sNaN007234' -> sNaN7234 762ddbas745 toSci 'sNaN7234561234567890' -> NaN Conversion_syntax 763ddbas746 toSci 'sNaN72.45' -> NaN Conversion_syntax 764ddbas747 toSci 'sNaN-72' -> NaN Conversion_syntax 765 766ddbas748 toSci "Inf" -> Infinity 767ddbas749 toSci "inf" -> Infinity 768ddbas750 toSci "iNf" -> Infinity 769ddbas751 toSci "INF" -> Infinity 770ddbas752 toSci "+Inf" -> Infinity 771ddbas753 toSci "+inf" -> Infinity 772ddbas754 toSci "+iNf" -> Infinity 773ddbas755 toSci "+INF" -> Infinity 774ddbas756 toSci "-Inf" -> -Infinity 775ddbas757 toSci "-inf" -> -Infinity 776ddbas758 toSci "-iNf" -> -Infinity 777ddbas759 toSci "-INF" -> -Infinity 778 779ddbas760 toSci "Infinity" -> Infinity 780ddbas761 toSci "infinity" -> Infinity 781ddbas762 toSci "iNfInItY" -> Infinity 782ddbas763 toSci "INFINITY" -> Infinity 783ddbas764 toSci "+Infinity" -> Infinity 784ddbas765 toSci "+infinity" -> Infinity 785ddbas766 toSci "+iNfInItY" -> Infinity 786ddbas767 toSci "+INFINITY" -> Infinity 787ddbas768 toSci "-Infinity" -> -Infinity 788ddbas769 toSci "-infinity" -> -Infinity 789ddbas770 toSci "-iNfInItY" -> -Infinity 790ddbas771 toSci "-INFINITY" -> -Infinity 791 792-- Specials and zeros for toEng 793ddbast772 toEng "NaN" -> NaN 794ddbast773 toEng "-Infinity" -> -Infinity 795ddbast774 toEng "-sNaN" -> -sNaN 796ddbast775 toEng "-NaN" -> -NaN 797ddbast776 toEng "+Infinity" -> Infinity 798ddbast778 toEng "+sNaN" -> sNaN 799ddbast779 toEng "+NaN" -> NaN 800ddbast780 toEng "INFINITY" -> Infinity 801ddbast781 toEng "SNAN" -> sNaN 802ddbast782 toEng "NAN" -> NaN 803ddbast783 toEng "infinity" -> Infinity 804ddbast784 toEng "snan" -> sNaN 805ddbast785 toEng "nan" -> NaN 806ddbast786 toEng "InFINITY" -> Infinity 807ddbast787 toEng "SnAN" -> sNaN 808ddbast788 toEng "nAN" -> NaN 809ddbast789 toEng "iNfinity" -> Infinity 810ddbast790 toEng "sNan" -> sNaN 811ddbast791 toEng "Nan" -> NaN 812ddbast792 toEng "Infinity" -> Infinity 813ddbast793 toEng "sNaN" -> sNaN 814 815-- Zero toEng, etc. 816ddbast800 toEng 0e+1 -> "0.00E+3" -- doc example 817 818ddbast801 toEng 0.000000000 -> 0E-9 819ddbast802 toEng 0.00000000 -> 0.00E-6 820ddbast803 toEng 0.0000000 -> 0.0E-6 821ddbast804 toEng 0.000000 -> 0.000000 822ddbast805 toEng 0.00000 -> 0.00000 823ddbast806 toEng 0.0000 -> 0.0000 824ddbast807 toEng 0.000 -> 0.000 825ddbast808 toEng 0.00 -> 0.00 826ddbast809 toEng 0.0 -> 0.0 827ddbast810 toEng .0 -> 0.0 828ddbast811 toEng 0. -> 0 829ddbast812 toEng -.0 -> -0.0 830ddbast813 toEng -0. -> -0 831ddbast814 toEng -0.0 -> -0.0 832ddbast815 toEng -0.00 -> -0.00 833ddbast816 toEng -0.000 -> -0.000 834ddbast817 toEng -0.0000 -> -0.0000 835ddbast818 toEng -0.00000 -> -0.00000 836ddbast819 toEng -0.000000 -> -0.000000 837ddbast820 toEng -0.0000000 -> -0.0E-6 838ddbast821 toEng -0.00000000 -> -0.00E-6 839ddbast822 toEng -0.000000000 -> -0E-9 840 841ddbast830 toEng 0.00E+0 -> 0.00 842ddbast831 toEng 0.00E+1 -> 0.0 843ddbast832 toEng 0.00E+2 -> 0 844ddbast833 toEng 0.00E+3 -> 0.00E+3 845ddbast834 toEng 0.00E+4 -> 0.0E+3 846ddbast835 toEng 0.00E+5 -> 0E+3 847ddbast836 toEng 0.00E+6 -> 0.00E+6 848ddbast837 toEng 0.00E+7 -> 0.0E+6 849ddbast838 toEng 0.00E+8 -> 0E+6 850ddbast839 toEng 0.00E+9 -> 0.00E+9 851 852ddbast840 toEng 0.0E+0 -> 0.0 853ddbast841 toEng 0.0E+1 -> 0 854ddbast842 toEng 0.0E+2 -> 0.00E+3 855ddbast843 toEng 0.0E+3 -> 0.0E+3 856ddbast844 toEng 0.0E+4 -> 0E+3 857ddbast845 toEng 0.0E+5 -> 0.00E+6 858ddbast846 toEng 0.0E+6 -> 0.0E+6 859ddbast847 toEng 0.0E+7 -> 0E+6 860ddbast848 toEng 0.0E+8 -> 0.00E+9 861ddbast849 toEng 0.0E+9 -> 0.0E+9 862 863ddbast850 toEng 0E+0 -> 0 864ddbast851 toEng 0E+1 -> 0.00E+3 865ddbast852 toEng 0E+2 -> 0.0E+3 866ddbast853 toEng 0E+3 -> 0E+3 867ddbast854 toEng 0E+4 -> 0.00E+6 868ddbast855 toEng 0E+5 -> 0.0E+6 869ddbast856 toEng 0E+6 -> 0E+6 870ddbast857 toEng 0E+7 -> 0.00E+9 871ddbast858 toEng 0E+8 -> 0.0E+9 872ddbast859 toEng 0E+9 -> 0E+9 873 874ddbast860 toEng 0.0E-0 -> 0.0 875ddbast861 toEng 0.0E-1 -> 0.00 876ddbast862 toEng 0.0E-2 -> 0.000 877ddbast863 toEng 0.0E-3 -> 0.0000 878ddbast864 toEng 0.0E-4 -> 0.00000 879ddbast865 toEng 0.0E-5 -> 0.000000 880ddbast866 toEng 0.0E-6 -> 0.0E-6 881ddbast867 toEng 0.0E-7 -> 0.00E-6 882ddbast868 toEng 0.0E-8 -> 0E-9 883ddbast869 toEng 0.0E-9 -> 0.0E-9 884 885ddbast870 toEng 0.00E-0 -> 0.00 886ddbast871 toEng 0.00E-1 -> 0.000 887ddbast872 toEng 0.00E-2 -> 0.0000 888ddbast873 toEng 0.00E-3 -> 0.00000 889ddbast874 toEng 0.00E-4 -> 0.000000 890ddbast875 toEng 0.00E-5 -> 0.0E-6 891ddbast876 toEng 0.00E-6 -> 0.00E-6 892ddbast877 toEng 0.00E-7 -> 0E-9 893ddbast878 toEng 0.00E-8 -> 0.0E-9 894ddbast879 toEng 0.00E-9 -> 0.00E-9 895 896-- long input strings 897ddbas801 tosci '01234567890123456' -> 1234567890123456 898ddbas802 tosci '001234567890123456' -> 1234567890123456 899ddbas803 tosci '0001234567890123456' -> 1234567890123456 900ddbas804 tosci '00001234567890123456' -> 1234567890123456 901ddbas805 tosci '000001234567890123456' -> 1234567890123456 902ddbas806 tosci '0000001234567890123456' -> 1234567890123456 903ddbas807 tosci '00000001234567890123456' -> 1234567890123456 904ddbas808 tosci '000000001234567890123456' -> 1234567890123456 905ddbas809 tosci '0000000001234567890123456' -> 1234567890123456 906ddbas810 tosci '00000000001234567890123456' -> 1234567890123456 907 908ddbas811 tosci '0.1234567890123456' -> 0.1234567890123456 909ddbas812 tosci '0.01234567890123456' -> 0.01234567890123456 910ddbas813 tosci '0.001234567890123456' -> 0.001234567890123456 911ddbas814 tosci '0.0001234567890123456' -> 0.0001234567890123456 912ddbas815 tosci '0.00001234567890123456' -> 0.00001234567890123456 913ddbas816 tosci '0.000001234567890123456' -> 0.000001234567890123456 914ddbas817 tosci '0.0000001234567890123456' -> 1.234567890123456E-7 915ddbas818 tosci '0.00000001234567890123456' -> 1.234567890123456E-8 916ddbas819 tosci '0.000000001234567890123456' -> 1.234567890123456E-9 917ddbas820 tosci '0.0000000001234567890123456' -> 1.234567890123456E-10 918 919ddbas821 tosci '12345678901234567890' -> 1.234567890123457E+19 Inexact Rounded 920ddbas822 tosci '123456789012345678901' -> 1.234567890123457E+20 Inexact Rounded 921ddbas823 tosci '1234567890123456789012' -> 1.234567890123457E+21 Inexact Rounded 922ddbas824 tosci '12345678901234567890123' -> 1.234567890123457E+22 Inexact Rounded 923ddbas825 tosci '123456789012345678901234' -> 1.234567890123457E+23 Inexact Rounded 924ddbas826 tosci '1234567890123456789012345' -> 1.234567890123457E+24 Inexact Rounded 925ddbas827 tosci '12345678901234567890123456' -> 1.234567890123457E+25 Inexact Rounded 926ddbas828 tosci '123456789012345678901234567' -> 1.234567890123457E+26 Inexact Rounded 927ddbas829 tosci '1234567890123456789012345678' -> 1.234567890123457E+27 Inexact Rounded 928 929-- subnormals and overflows 930ddbas906 toSci '99e999999999' -> Infinity Overflow Inexact Rounded 931ddbas907 toSci '999e999999999' -> Infinity Overflow Inexact Rounded 932ddbas908 toSci '0.9e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 933ddbas909 toSci '0.09e-999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 934ddbas910 toSci '0.1e1000000000' -> Infinity Overflow Inexact Rounded 935ddbas911 toSci '10e-1000000000' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 936ddbas912 toSci '0.9e9999999999' -> Infinity Overflow Inexact Rounded 937ddbas913 toSci '99e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 938ddbas914 toSci '111e9999999999' -> Infinity Overflow Inexact Rounded 939ddbas915 toSci '1111e-9999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 940ddbas916 toSci '1111e-99999999999' -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 941ddbas917 toSci '7e1000000000' -> Infinity Overflow Inexact Rounded 942-- negatives the same 943ddbas918 toSci '-99e999999999' -> -Infinity Overflow Inexact Rounded 944ddbas919 toSci '-999e999999999' -> -Infinity Overflow Inexact Rounded 945ddbas920 toSci '-0.9e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 946ddbas921 toSci '-0.09e-999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 947ddbas922 toSci '-0.1e1000000000' -> -Infinity Overflow Inexact Rounded 948ddbas923 toSci '-10e-1000000000' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 949ddbas924 toSci '-0.9e9999999999' -> -Infinity Overflow Inexact Rounded 950ddbas925 toSci '-99e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 951ddbas926 toSci '-111e9999999999' -> -Infinity Overflow Inexact Rounded 952ddbas927 toSci '-1111e-9999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 953ddbas928 toSci '-1111e-99999999999' -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 954ddbas929 toSci '-7e1000000000' -> -Infinity Overflow Inexact Rounded 955 956-- overflow results at different rounding modes 957rounding: ceiling 958ddbas930 toSci '7e10000' -> Infinity Overflow Inexact Rounded 959ddbas931 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded 960rounding: up 961ddbas932 toSci '7e10000' -> Infinity Overflow Inexact Rounded 962ddbas933 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded 963rounding: down 964ddbas934 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded 965ddbas935 toSci '-7e10000' -> -9.999999999999999E+384 Overflow Inexact Rounded 966rounding: floor 967ddbas936 toSci '7e10000' -> 9.999999999999999E+384 Overflow Inexact Rounded 968ddbas937 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded 969 970rounding: half_up 971ddbas938 toSci '7e10000' -> Infinity Overflow Inexact Rounded 972ddbas939 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded 973rounding: half_even 974ddbas940 toSci '7e10000' -> Infinity Overflow Inexact Rounded 975ddbas941 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded 976rounding: half_down 977ddbas942 toSci '7e10000' -> Infinity Overflow Inexact Rounded 978ddbas943 toSci '-7e10000' -> -Infinity Overflow Inexact Rounded 979 980rounding: half_even 981 982-- Now check 854/754r some subnormals and underflow to 0 983ddbem400 toSci 1.0000E-383 -> 1.0000E-383 984ddbem401 toSci 0.1E-394 -> 1E-395 Subnormal 985ddbem402 toSci 0.1000E-394 -> 1.000E-395 Subnormal 986ddbem403 toSci 0.0100E-394 -> 1.00E-396 Subnormal 987ddbem404 toSci 0.0010E-394 -> 1.0E-397 Subnormal 988ddbem405 toSci 0.0001E-394 -> 1E-398 Subnormal 989ddbem406 toSci 0.00010E-394 -> 1E-398 Subnormal Rounded 990ddbem407 toSci 0.00013E-394 -> 1E-398 Underflow Subnormal Inexact Rounded 991ddbem408 toSci 0.00015E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 992ddbem409 toSci 0.00017E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 993ddbem410 toSci 0.00023E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 994ddbem411 toSci 0.00025E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 995ddbem412 toSci 0.00027E-394 -> 3E-398 Underflow Subnormal Inexact Rounded 996ddbem413 toSci 0.000149E-394 -> 1E-398 Underflow Subnormal Inexact Rounded 997ddbem414 toSci 0.000150E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 998ddbem415 toSci 0.000151E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 999ddbem416 toSci 0.000249E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 1000ddbem417 toSci 0.000250E-394 -> 2E-398 Underflow Subnormal Inexact Rounded 1001ddbem418 toSci 0.000251E-394 -> 3E-398 Underflow Subnormal Inexact Rounded 1002ddbem419 toSci 0.00009E-394 -> 1E-398 Underflow Subnormal Inexact Rounded 1003ddbem420 toSci 0.00005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1004ddbem421 toSci 0.00003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1005ddbem422 toSci 0.000009E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1006ddbem423 toSci 0.000005E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1007ddbem424 toSci 0.000003E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1008 1009ddbem425 toSci 0.001049E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded 1010ddbem426 toSci 0.001050E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded 1011ddbem427 toSci 0.001051E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded 1012ddbem428 toSci 0.001149E-394 -> 1.1E-397 Underflow Subnormal Inexact Rounded 1013ddbem429 toSci 0.001150E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded 1014ddbem430 toSci 0.001151E-394 -> 1.2E-397 Underflow Subnormal Inexact Rounded 1015 1016ddbem432 toSci 0.010049E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded 1017ddbem433 toSci 0.010050E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded 1018ddbem434 toSci 0.010051E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded 1019ddbem435 toSci 0.010149E-394 -> 1.01E-396 Underflow Subnormal Inexact Rounded 1020ddbem436 toSci 0.010150E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded 1021ddbem437 toSci 0.010151E-394 -> 1.02E-396 Underflow Subnormal Inexact Rounded 1022 1023ddbem440 toSci 0.10103E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded 1024ddbem441 toSci 0.10105E-394 -> 1.010E-395 Underflow Subnormal Inexact Rounded 1025ddbem442 toSci 0.10107E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded 1026ddbem443 toSci 0.10113E-394 -> 1.011E-395 Underflow Subnormal Inexact Rounded 1027ddbem444 toSci 0.10115E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded 1028ddbem445 toSci 0.10117E-394 -> 1.012E-395 Underflow Subnormal Inexact Rounded 1029 1030ddbem450 toSci 1.10730E-395 -> 1.107E-395 Underflow Subnormal Inexact Rounded 1031ddbem451 toSci 1.10750E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded 1032ddbem452 toSci 1.10770E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded 1033ddbem453 toSci 1.10830E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded 1034ddbem454 toSci 1.10850E-395 -> 1.108E-395 Underflow Subnormal Inexact Rounded 1035ddbem455 toSci 1.10870E-395 -> 1.109E-395 Underflow Subnormal Inexact Rounded 1036 1037-- make sure sign OK 1038ddbem456 toSci -0.10103E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded 1039ddbem457 toSci -0.10105E-394 -> -1.010E-395 Underflow Subnormal Inexact Rounded 1040ddbem458 toSci -0.10107E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded 1041ddbem459 toSci -0.10113E-394 -> -1.011E-395 Underflow Subnormal Inexact Rounded 1042ddbem460 toSci -0.10115E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded 1043ddbem461 toSci -0.10117E-394 -> -1.012E-395 Underflow Subnormal Inexact Rounded 1044 1045-- '999s' cases 1046ddbem464 toSci 999999E-395 -> 9.99999E-390 Subnormal 1047ddbem465 toSci 99999.0E-394 -> 9.99990E-390 Subnormal 1048ddbem466 toSci 99999.E-394 -> 9.9999E-390 Subnormal 1049ddbem467 toSci 9999.9E-394 -> 9.9999E-391 Subnormal 1050ddbem468 toSci 999.99E-394 -> 9.9999E-392 Subnormal 1051ddbem469 toSci 99.999E-394 -> 9.9999E-393 Subnormal 1052ddbem470 toSci 9.9999E-394 -> 9.9999E-394 Subnormal 1053ddbem471 toSci 0.99999E-394 -> 1.0000E-394 Underflow Subnormal Inexact Rounded 1054ddbem472 toSci 0.099999E-394 -> 1.000E-395 Underflow Subnormal Inexact Rounded 1055ddbem473 toSci 0.0099999E-394 -> 1.00E-396 Underflow Subnormal Inexact Rounded 1056ddbem474 toSci 0.00099999E-394 -> 1.0E-397 Underflow Subnormal Inexact Rounded 1057ddbem475 toSci 0.000099999E-394 -> 1E-398 Underflow Subnormal Inexact Rounded 1058ddbem476 toSci 0.0000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1059ddbem477 toSci 0.00000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1060ddbem478 toSci 0.000000099999E-394 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1061 1062-- Exponents with insignificant leading zeros 1063ddbas1001 toSci 1e999999999 -> Infinity Overflow Inexact Rounded 1064ddbas1002 toSci 1e0999999999 -> Infinity Overflow Inexact Rounded 1065ddbas1003 toSci 1e00999999999 -> Infinity Overflow Inexact Rounded 1066ddbas1004 toSci 1e000999999999 -> Infinity Overflow Inexact Rounded 1067ddbas1005 toSci 1e000000000000999999999 -> Infinity Overflow Inexact Rounded 1068ddbas1006 toSci 1e000000000001000000007 -> Infinity Overflow Inexact Rounded 1069ddbas1007 toSci 1e-999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1070ddbas1008 toSci 1e-0999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1071ddbas1009 toSci 1e-00999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1072ddbas1010 toSci 1e-000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1073ddbas1011 toSci 1e-000000000000999999999 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1074ddbas1012 toSci 1e-000000000001000000007 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1075 1076-- check for double-rounded subnormals 1077ddbas1041 toSci 1.1111111111152444E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow 1078ddbas1042 toSci 1.1111111111152445E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow 1079ddbas1043 toSci 1.1111111111152446E-384 -> 1.11111111111524E-384 Inexact Rounded Subnormal Underflow 1080 1081-- clamped large normals 1082ddbas1070 toSci 1E+369 -> 1E+369 1083ddbas1071 toSci 1E+370 -> 1.0E+370 Clamped 1084ddbas1072 toSci 1E+378 -> 1.000000000E+378 Clamped 1085ddbas1073 toSci 1E+384 -> 1.000000000000000E+384 Clamped 1086ddbas1074 toSci 1E+385 -> Infinity Overflow Inexact Rounded 1087 1088 1089-- clamped zeros [see also clamp.decTest] 1090ddbas1075 toSci 0e+10000 -> 0E+369 Clamped 1091ddbas1076 toSci 0e-10000 -> 0E-398 Clamped 1092ddbas1077 toSci -0e+10000 -> -0E+369 Clamped 1093ddbas1078 toSci -0e-10000 -> -0E-398 Clamped 1094 1095-- extreme values from next-wider 1096ddbas1101 toSci -9.99999999999999999999999999999999E+6144 -> -Infinity Overflow Inexact Rounded 1097ddbas1102 toSci -1E-6143 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped 1098ddbas1103 toSci -1E-6176 -> -0E-398 Inexact Rounded Subnormal Underflow Clamped 1099ddbas1104 toSci -0 -> -0 1100ddbas1105 toSci +0 -> 0 1101ddbas1106 toSci +1E-6176 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped 1102ddbas1107 toSci +1E-6173 -> 0E-398 Inexact Rounded Subnormal Underflow Clamped 1103ddbas1108 toSci +9.99999999999999999999999999999999E+6144 -> Infinity Overflow Inexact Rounded 1104 1105