service plugin and qdecimal library has been added
This commit is contained in:
@@ -0,0 +1,263 @@
|
||||
------------------------------------------------------------------------
|
||||
-- rescale0.decTest -- decimal rescale operation (simplified) --
|
||||
-- Copyright (c) IBM Corporation, 1981, 2008. 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.58
|
||||
|
||||
-- [obsolete] Quantize0.decTest has the improved version
|
||||
|
||||
extended: 0
|
||||
precision: 9
|
||||
rounding: half_up
|
||||
maxExponent: 999
|
||||
minexponent: -999
|
||||
|
||||
res001 rescale 0 0 -> 0
|
||||
res002 rescale 1 0 -> 1
|
||||
res003 rescale 0.1 +2 -> 0E+2 Inexact Rounded
|
||||
res005 rescale 0.1 +1 -> 0E+1 Inexact Rounded
|
||||
res006 rescale 0.1 0 -> 0 Inexact Rounded
|
||||
res007 rescale 0.1 -1 -> 0.1
|
||||
res008 rescale 0.1 -2 -> 0.10
|
||||
res009 rescale 0.1 -3 -> 0.100
|
||||
res010 rescale 0.9 +2 -> 0E+2 Inexact Rounded
|
||||
res011 rescale 0.9 +1 -> 0E+1 Inexact Rounded
|
||||
res012 rescale 0.9 +0 -> 1 Inexact Rounded
|
||||
res013 rescale 0.9 -1 -> 0.9
|
||||
res014 rescale 0.9 -2 -> 0.90
|
||||
res015 rescale 0.9 -3 -> 0.900
|
||||
-- negatives
|
||||
res021 rescale -0 0 -> 0
|
||||
res022 rescale -1 0 -> -1
|
||||
res023 rescale -0.1 +2 -> 0E+2 Inexact Rounded
|
||||
res025 rescale -0.1 +1 -> 0E+1 Inexact Rounded
|
||||
res026 rescale -0.1 0 -> 0 Inexact Rounded
|
||||
res027 rescale -0.1 -1 -> -0.1
|
||||
res028 rescale -0.1 -2 -> -0.10
|
||||
res029 rescale -0.1 -3 -> -0.100
|
||||
res030 rescale -0.4 +2 -> 0E+2 Inexact Rounded
|
||||
res031 rescale -0.4 +1 -> 0E+1 Inexact Rounded
|
||||
res032 rescale -0.4 +0 -> 0 Inexact Rounded
|
||||
res033 rescale -0.4 -1 -> -0.4
|
||||
res034 rescale -0.4 -2 -> -0.40
|
||||
res035 rescale -0.4 -3 -> -0.400
|
||||
res036 rescale -0.5 +2 -> 0E+2 Inexact Rounded
|
||||
res037 rescale -0.5 +1 -> 0E+1 Inexact Rounded
|
||||
res038 rescale -0.5 +0 -> -1 Inexact Rounded
|
||||
res039 rescale -0.5 -1 -> -0.5
|
||||
res040 rescale -0.5 -2 -> -0.50
|
||||
res041 rescale -0.5 -3 -> -0.500
|
||||
res042 rescale -0.9 +2 -> 0E+2 Inexact Rounded
|
||||
res043 rescale -0.9 +1 -> 0E+1 Inexact Rounded
|
||||
res044 rescale -0.9 +0 -> -1 Inexact Rounded
|
||||
res045 rescale -0.9 -1 -> -0.9
|
||||
res046 rescale -0.9 -2 -> -0.90
|
||||
res047 rescale -0.9 -3 -> -0.900
|
||||
|
||||
-- examples from Base Specification
|
||||
res080 rescale 2.17 -3 -> 2.170
|
||||
res081 rescale 2.17 -2 -> 2.17
|
||||
res082 rescale 2.17 -1 -> 2.2 Inexact Rounded
|
||||
res083 rescale 2.17 -0 -> 2 Inexact Rounded
|
||||
res084 rescale 2.17 +1 -> 0E+1 Inexact Rounded
|
||||
res085 rescale 217 -1 -> 217.0
|
||||
res086 rescale 217 0 -> 217
|
||||
res087 rescale 217 +1 -> 2.2E+2 Inexact Rounded
|
||||
res088 rescale 217 +2 -> 2E+2 Inexact Rounded
|
||||
|
||||
-- -ve exponents .. [mostly]
|
||||
res089 rescale 12 +4 -> 0E+4 Inexact Rounded
|
||||
res090 rescale 12 +3 -> 0E+3 Inexact Rounded
|
||||
res091 rescale 12 +2 -> 0E+2 Inexact Rounded
|
||||
res092 rescale 12 +1 -> 1E+1 Inexact Rounded
|
||||
res093 rescale 1.2345 -2 -> 1.23 Inexact Rounded
|
||||
res094 rescale 1.2355 -2 -> 1.24 Inexact Rounded
|
||||
res095 rescale 1.2345 -6 -> 1.234500
|
||||
res096 rescale 9.9999 -2 -> 10.00 Inexact Rounded
|
||||
res097 rescale 0.0001 -2 -> 0.00 Inexact Rounded
|
||||
res098 rescale 0.001 -2 -> 0.00 Inexact Rounded
|
||||
res099 rescale 0.009 -2 -> 0.01 Inexact Rounded
|
||||
res100 rescale 92 +2 -> 1E+2 Inexact Rounded
|
||||
res101 rescale -1 0 -> -1
|
||||
res102 rescale -1 -1 -> -1.0
|
||||
res103 rescale -1 -2 -> -1.00
|
||||
res104 rescale 0 0 -> 0
|
||||
res105 rescale 0 -1 -> 0.0
|
||||
res106 rescale 0 -2 -> 0.00
|
||||
res107 rescale 0.00 0 -> 0
|
||||
res108 rescale 0 +1 -> 0E+1
|
||||
res109 rescale 0 +2 -> 0E+2
|
||||
res110 rescale +1 0 -> 1
|
||||
res111 rescale +1 -1 -> 1.0
|
||||
res112 rescale +1 -2 -> 1.00
|
||||
|
||||
res120 rescale 1.04 -3 -> 1.040
|
||||
res121 rescale 1.04 -2 -> 1.04
|
||||
res122 rescale 1.04 -1 -> 1.0 Inexact Rounded
|
||||
res123 rescale 1.04 0 -> 1 Inexact Rounded
|
||||
res124 rescale 1.05 -3 -> 1.050
|
||||
res125 rescale 1.05 -2 -> 1.05
|
||||
res126 rescale 1.05 -1 -> 1.1 Inexact Rounded
|
||||
res127 rescale 1.05 0 -> 1 Inexact Rounded
|
||||
res128 rescale 1.05 -3 -> 1.050
|
||||
res129 rescale 1.05 -2 -> 1.05
|
||||
res130 rescale 1.05 -1 -> 1.1 Inexact Rounded
|
||||
res131 rescale 1.05 0 -> 1 Inexact Rounded
|
||||
res132 rescale 1.06 -3 -> 1.060
|
||||
res133 rescale 1.06 -2 -> 1.06
|
||||
res134 rescale 1.06 -1 -> 1.1 Inexact Rounded
|
||||
res135 rescale 1.06 0 -> 1 Inexact Rounded
|
||||
|
||||
res140 rescale -10 -2 -> -10.00
|
||||
res141 rescale +1 -2 -> 1.00
|
||||
res142 rescale +10 -2 -> 10.00
|
||||
res143 rescale 1E+10 -2 -> ? Invalid_operation
|
||||
res144 rescale 1E-10 -2 -> 0.00 Inexact Rounded
|
||||
res145 rescale 1E-2 -2 -> 0.01
|
||||
res146 rescale 0E-10 -2 -> 0.00
|
||||
|
||||
res150 rescale 1.0600 -5 -> 1.06000
|
||||
res151 rescale 1.0600 -4 -> 1.0600
|
||||
res152 rescale 1.0600 -3 -> 1.060 Rounded
|
||||
res153 rescale 1.0600 -2 -> 1.06 Rounded
|
||||
res154 rescale 1.0600 -1 -> 1.1 Inexact Rounded
|
||||
res155 rescale 1.0600 0 -> 1 Inexact Rounded
|
||||
|
||||
-- +ve exponents ..
|
||||
res201 rescale -1 +0 -> -1
|
||||
res202 rescale -1 +1 -> 0E+1 Inexact Rounded
|
||||
res203 rescale -1 +2 -> 0E+2 Inexact Rounded
|
||||
res204 rescale 0 +0 -> 0
|
||||
res205 rescale 0 +1 -> 0E+1
|
||||
res206 rescale 0 +2 -> 0E+2
|
||||
res207 rescale +1 +0 -> 1
|
||||
res208 rescale +1 +1 -> 0E+1 Inexact Rounded
|
||||
res209 rescale +1 +2 -> 0E+2 Inexact Rounded
|
||||
|
||||
res220 rescale 1.04 +3 -> 0E+3 Inexact Rounded
|
||||
res221 rescale 1.04 +2 -> 0E+2 Inexact Rounded
|
||||
res222 rescale 1.04 +1 -> 0E+1 Inexact Rounded
|
||||
res223 rescale 1.04 +0 -> 1 Inexact Rounded
|
||||
res224 rescale 1.05 +3 -> 0E+3 Inexact Rounded
|
||||
res225 rescale 1.05 +2 -> 0E+2 Inexact Rounded
|
||||
res226 rescale 1.05 +1 -> 0E+1 Inexact Rounded
|
||||
res227 rescale 1.05 +0 -> 1 Inexact Rounded
|
||||
res228 rescale 1.05 +3 -> 0E+3 Inexact Rounded
|
||||
res229 rescale 1.05 +2 -> 0E+2 Inexact Rounded
|
||||
res230 rescale 1.05 +1 -> 0E+1 Inexact Rounded
|
||||
res231 rescale 1.05 +0 -> 1 Inexact Rounded
|
||||
res232 rescale 1.06 +3 -> 0E+3 Inexact Rounded
|
||||
res233 rescale 1.06 +2 -> 0E+2 Inexact Rounded
|
||||
res234 rescale 1.06 +1 -> 0E+1 Inexact Rounded
|
||||
res235 rescale 1.06 +0 -> 1 Inexact Rounded
|
||||
|
||||
res240 rescale -10 +1 -> -1E+1 Rounded
|
||||
res241 rescale +1 +1 -> 0E+1 Inexact Rounded
|
||||
res242 rescale +10 +1 -> 1E+1 Rounded
|
||||
res243 rescale 1E+1 +1 -> 1E+1 -- underneath this is E+1
|
||||
res244 rescale 1E+2 +1 -> 1.0E+2 -- underneath this is E+1
|
||||
res245 rescale 1E+3 +1 -> 1.00E+3 -- underneath this is E+1
|
||||
res246 rescale 1E+4 +1 -> 1.000E+4 -- underneath this is E+1
|
||||
res247 rescale 1E+5 +1 -> 1.0000E+5 -- underneath this is E+1
|
||||
res248 rescale 1E+6 +1 -> 1.00000E+6 -- underneath this is E+1
|
||||
res249 rescale 1E+7 +1 -> 1.000000E+7 -- underneath this is E+1
|
||||
res250 rescale 1E+8 +1 -> 1.0000000E+8 -- underneath this is E+1
|
||||
res251 rescale 1E+9 +1 -> 1.00000000E+9 -- underneath this is E+1
|
||||
-- next one tries to add 9 zeros
|
||||
res252 rescale 1E+10 +1 -> ? Invalid_operation
|
||||
res253 rescale 1E-10 +1 -> 0E+1 Inexact Rounded
|
||||
res254 rescale 1E-2 +1 -> 0E+1 Inexact Rounded
|
||||
res255 rescale 0E-10 +1 -> 0E+1
|
||||
|
||||
res260 rescale -10 +2 -> 0E+2 Inexact Rounded
|
||||
res261 rescale +1 +2 -> 0E+2 Inexact Rounded
|
||||
res262 rescale +10 +2 -> 0E+2 Inexact Rounded
|
||||
res263 rescale 1E+1 +2 -> 0E+2 Inexact Rounded
|
||||
res264 rescale 1E+2 +2 -> 1E+2
|
||||
res265 rescale 1E+3 +2 -> 1.0E+3
|
||||
res266 rescale 1E+4 +2 -> 1.00E+4
|
||||
res267 rescale 1E+5 +2 -> 1.000E+5
|
||||
res268 rescale 1E+6 +2 -> 1.0000E+6
|
||||
res269 rescale 1E+7 +2 -> 1.00000E+7
|
||||
res270 rescale 1E+8 +2 -> 1.000000E+8
|
||||
res271 rescale 1E+9 +2 -> 1.0000000E+9
|
||||
res272 rescale 1E+10 +2 -> 1.00000000E+10
|
||||
res273 rescale 1E-10 +2 -> 0E+2 Inexact Rounded
|
||||
res274 rescale 1E-2 +2 -> 0E+2 Inexact Rounded
|
||||
res275 rescale 0E-10 +2 -> 0E+2
|
||||
|
||||
res280 rescale -10 +3 -> 0E+3 Inexact Rounded
|
||||
res281 rescale +1 +3 -> 0E+3 Inexact Rounded
|
||||
res282 rescale +10 +3 -> 0E+3 Inexact Rounded
|
||||
res283 rescale 1E+1 +3 -> 0E+3 Inexact Rounded
|
||||
res284 rescale 1E+2 +3 -> 0E+3 Inexact Rounded
|
||||
res285 rescale 1E+3 +3 -> 1E+3
|
||||
res286 rescale 1E+4 +3 -> 1.0E+4
|
||||
res287 rescale 1E+5 +3 -> 1.00E+5
|
||||
res288 rescale 1E+6 +3 -> 1.000E+6
|
||||
res289 rescale 1E+7 +3 -> 1.0000E+7
|
||||
res290 rescale 1E+8 +3 -> 1.00000E+8
|
||||
res291 rescale 1E+9 +3 -> 1.000000E+9
|
||||
res292 rescale 1E+10 +3 -> 1.0000000E+10
|
||||
res293 rescale 1E-10 +3 -> 0E+3 Inexact Rounded
|
||||
res294 rescale 1E-2 +3 -> 0E+3 Inexact Rounded
|
||||
res295 rescale 0E-10 +3 -> 0E+3
|
||||
|
||||
-- some individuals
|
||||
precision: 9
|
||||
res380 rescale 352364.506 -2 -> 352364.51 Inexact Rounded
|
||||
res381 rescale 3523645.06 -2 -> 3523645.06
|
||||
res382 rescale 35236450.6 -2 -> ? Invalid_operation
|
||||
res383 rescale 352364506 -2 -> ? Invalid_operation
|
||||
res384 rescale -352364.506 -2 -> -352364.51 Inexact Rounded
|
||||
res385 rescale -3523645.06 -2 -> -3523645.06
|
||||
res386 rescale -35236450.6 -2 -> ? Invalid_operation
|
||||
res387 rescale -352364506 -2 -> ? Invalid_operation
|
||||
|
||||
-- some baddies
|
||||
res394 rescale 222 +2.00100000000 -> ? Invalid_operation Rounded
|
||||
res395 rescale 222 +2.000001 -> ? Invalid_operation
|
||||
res396 rescale 222 +2.00000000 -> 2E+2 Inexact Rounded
|
||||
res397 rescale 222 +2.000000001 -> ? Inexact Invalid_operation Lost_digits Rounded
|
||||
res398 rescale 222 +2.0000000001 -> ? Inexact Invalid_operation Lost_digits Rounded
|
||||
res399 rescale 222 +2.00000000001 -> ? Inexact Invalid_operation Lost_digits Rounded
|
||||
|
||||
-- lostDigits checks [rhs checks removed]
|
||||
maxexponent: 999
|
||||
minexponent: -999
|
||||
precision: 9
|
||||
res401 rescale 12345678000 +3 -> 1.2345678E+10 Rounded
|
||||
res403 rescale 1234567800 +1 -> 1.23456780E+9 Rounded
|
||||
res405 rescale 1234567890 +1 -> 1.23456789E+9 Rounded
|
||||
res407 rescale 1234567891 +1 -> 1.23456789E+9 Inexact Lost_digits Rounded
|
||||
res409 rescale 12345678901 +2 -> 1.23456789E+10 Inexact Lost_digits Rounded
|
||||
res411 rescale 1234567896 +1 -> 1.23456790E+9 Inexact Lost_digits Rounded
|
||||
|
||||
precision: 15
|
||||
-- still checking for [no] lostDigits
|
||||
res441 rescale 12345678000 +3 -> 1.2345678E+10 Rounded
|
||||
res443 rescale 1234567800 +1 -> 1.23456780E+9 Rounded
|
||||
res445 rescale 1234567890 +1 -> 1.23456789E+9 Rounded
|
||||
res447 rescale 1234567891 +1 -> 1.23456789E+9 Inexact Rounded
|
||||
res449 rescale 12345678901 +2 -> 1.23456789E+10 Inexact Rounded
|
||||
res451 rescale 1234567896 +1 -> 1.23456790E+9 Inexact Rounded
|
||||
|
||||
-- Null tests
|
||||
res900 rescale 10 # -> ? Invalid_operation
|
||||
res901 rescale # 10 -> ? Invalid_operation
|
||||
|
||||
Reference in New Issue
Block a user