You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
241 lines
9.6 KiB
Plaintext
241 lines
9.6 KiB
Plaintext
------------------------------------------------------------------------
|
|
-- divideint0.decTest -- decimal integer division (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
|
|
|
|
extended: 0
|
|
precision: 9
|
|
rounding: half_up
|
|
maxExponent: 999
|
|
minexponent: -999
|
|
|
|
dvi001 divideint 1 1 -> 1
|
|
dvi002 divideint 2 1 -> 2
|
|
dvi003 divideint 1 2 -> 0
|
|
dvi004 divideint 2 2 -> 1
|
|
dvi005 divideint 0 1 -> 0
|
|
dvi006 divideint 0 2 -> 0
|
|
dvi007 divideint 1 3 -> 0
|
|
dvi008 divideint 2 3 -> 0
|
|
dvi009 divideint 3 3 -> 1
|
|
|
|
dvi010 divideint 2.4 1 -> 2
|
|
dvi011 divideint 2.4 -1 -> -2
|
|
dvi012 divideint -2.4 1 -> -2
|
|
dvi013 divideint -2.4 -1 -> 2
|
|
dvi014 divideint 2.40 1 -> 2
|
|
dvi015 divideint 2.400 1 -> 2
|
|
dvi016 divideint 2.4 2 -> 1
|
|
dvi017 divideint 2.400 2 -> 1
|
|
dvi018 divideint 2. 2 -> 1
|
|
dvi019 divideint 20 20 -> 1
|
|
|
|
dvi020 divideint 187 187 -> 1
|
|
dvi021 divideint 5 2 -> 2
|
|
dvi022 divideint 5 2.0 -> 2
|
|
dvi023 divideint 5 2.000 -> 2
|
|
dvi024 divideint 5 0.200 -> 25
|
|
dvi025 divideint 5 0.200 -> 25
|
|
|
|
dvi030 divideint 1 2 -> 0
|
|
dvi031 divideint 1 4 -> 0
|
|
dvi032 divideint 1 8 -> 0
|
|
dvi033 divideint 1 16 -> 0
|
|
dvi034 divideint 1 32 -> 0
|
|
dvi035 divideint 1 64 -> 0
|
|
dvi040 divideint 1 -2 -> 0
|
|
dvi041 divideint 1 -4 -> 0
|
|
dvi042 divideint 1 -8 -> 0
|
|
dvi043 divideint 1 -16 -> 0
|
|
dvi044 divideint 1 -32 -> 0
|
|
dvi045 divideint 1 -64 -> 0
|
|
dvi050 divideint -1 2 -> 0
|
|
dvi051 divideint -1 4 -> 0
|
|
dvi052 divideint -1 8 -> 0
|
|
dvi053 divideint -1 16 -> 0
|
|
dvi054 divideint -1 32 -> 0
|
|
dvi055 divideint -1 64 -> 0
|
|
dvi060 divideint -1 -2 -> 0
|
|
dvi061 divideint -1 -4 -> 0
|
|
dvi062 divideint -1 -8 -> 0
|
|
dvi063 divideint -1 -16 -> 0
|
|
dvi064 divideint -1 -32 -> 0
|
|
dvi065 divideint -1 -64 -> 0
|
|
|
|
-- some lostDigits cases here
|
|
dvi070 divideint 999999999 1 -> 999999999
|
|
dvi071 divideint 999999999.4 1 -> 999999999 Inexact Lost_digits Rounded
|
|
dvi072 divideint 999999999.5 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi073 divideint 999999999.9 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi074 divideint 999999999.999 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
precision: 6
|
|
dvi080 divideint 999999999 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi081 divideint 99999999 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi082 divideint 9999999 1 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi083 divideint 999999 1 -> 999999
|
|
dvi084 divideint 99999 1 -> 99999
|
|
dvi085 divideint 9999 1 -> 9999
|
|
dvi086 divideint 999 1 -> 999
|
|
dvi087 divideint 99 1 -> 99
|
|
dvi088 divideint 9 1 -> 9
|
|
|
|
precision: 9
|
|
dvi090 divideint 0. 1 -> 0
|
|
dvi091 divideint .0 1 -> 0
|
|
dvi092 divideint 0.00 1 -> 0
|
|
dvi093 divideint 0.00E+9 1 -> 0
|
|
dvi094 divideint 0.0000E-50 1 -> 0
|
|
|
|
dvi100 divideint 1 1 -> 1
|
|
dvi101 divideint 1 2 -> 0
|
|
dvi102 divideint 1 3 -> 0
|
|
dvi103 divideint 1 4 -> 0
|
|
dvi104 divideint 1 5 -> 0
|
|
dvi105 divideint 1 6 -> 0
|
|
dvi106 divideint 1 7 -> 0
|
|
dvi107 divideint 1 8 -> 0
|
|
dvi108 divideint 1 9 -> 0
|
|
dvi109 divideint 1 10 -> 0
|
|
dvi110 divideint 1 1 -> 1
|
|
dvi111 divideint 2 1 -> 2
|
|
dvi112 divideint 3 1 -> 3
|
|
dvi113 divideint 4 1 -> 4
|
|
dvi114 divideint 5 1 -> 5
|
|
dvi115 divideint 6 1 -> 6
|
|
dvi116 divideint 7 1 -> 7
|
|
dvi117 divideint 8 1 -> 8
|
|
dvi118 divideint 9 1 -> 9
|
|
dvi119 divideint 10 1 -> 10
|
|
|
|
-- from DiagBigDecimal
|
|
dvi131 divideint 101.3 1 -> 101
|
|
dvi132 divideint 101.0 1 -> 101
|
|
dvi133 divideint 101.3 3 -> 33
|
|
dvi134 divideint 101.0 3 -> 33
|
|
dvi135 divideint 2.4 1 -> 2
|
|
dvi136 divideint 2.400 1 -> 2
|
|
dvi137 divideint 18 18 -> 1
|
|
dvi138 divideint 1120 1000 -> 1
|
|
dvi139 divideint 2.4 2 -> 1
|
|
dvi140 divideint 2.400 2 -> 1
|
|
dvi141 divideint 0.5 2.000 -> 0
|
|
dvi142 divideint 8.005 7 -> 1
|
|
dvi143 divideint 5 2 -> 2
|
|
dvi144 divideint 0 2 -> 0
|
|
dvi145 divideint 0.00 2 -> 0
|
|
|
|
-- Others
|
|
dvi150 divideint 12345 4.999 -> 2469
|
|
dvi151 divideint 12345 4.99 -> 2473
|
|
dvi152 divideint 12345 4.9 -> 2519
|
|
dvi153 divideint 12345 5 -> 2469
|
|
dvi154 divideint 12345 5.1 -> 2420
|
|
dvi155 divideint 12345 5.01 -> 2464
|
|
dvi156 divideint 12345 5.001 -> 2468
|
|
dvi157 divideint 101 7.6 -> 13
|
|
|
|
|
|
-- Various flavours of divideint by 0
|
|
maxexponent: 999999999
|
|
minexponent: -999999999
|
|
dvi201 divideint 0 0 -> ? Division_undefined
|
|
dvi202 divideint 0.0E5 0 -> ? Division_undefined
|
|
dvi203 divideint 0.000 0 -> ? Division_undefined
|
|
dvi204 divideint 0.0001 0 -> ? Division_by_zero
|
|
dvi205 divideint 0.01 0 -> ? Division_by_zero
|
|
dvi206 divideint 0.1 0 -> ? Division_by_zero
|
|
dvi207 divideint 1 0 -> ? Division_by_zero
|
|
dvi208 divideint 1 0.0 -> ? Division_by_zero
|
|
dvi209 divideint 10 0.0 -> ? Division_by_zero
|
|
dvi210 divideint 1E+100 0.0 -> ? Division_by_zero
|
|
dvi211 divideint 1E+1000 0 -> ? Division_by_zero
|
|
|
|
-- test some cases that are close to exponent overflow
|
|
maxexponent: 999999999
|
|
minexponent: -999999999
|
|
dvi270 divideint 1 1e999999999 -> 0
|
|
dvi271 divideint 1 0.9e999999999 -> 0
|
|
dvi272 divideint 1 0.99e999999999 -> 0
|
|
dvi273 divideint 1 0.999999999e999999999 -> 0
|
|
dvi274 divideint 9e999999999 1 -> ? Division_impossible
|
|
dvi275 divideint 9.9e999999999 1 -> ? Division_impossible
|
|
dvi276 divideint 9.99e999999999 1 -> ? Division_impossible
|
|
dvi277 divideint 9.99999999e999999999 1 -> ? Division_impossible
|
|
|
|
dvi280 divideint 0.1 9e-999999999 -> ? Division_impossible
|
|
dvi281 divideint 0.1 99e-999999999 -> ? Division_impossible
|
|
dvi282 divideint 0.1 999e-999999999 -> ? Division_impossible
|
|
|
|
dvi283 divideint 0.1 9e-999999998 -> ? Division_impossible
|
|
dvi284 divideint 0.1 99e-999999998 -> ? Division_impossible
|
|
dvi285 divideint 0.1 999e-999999998 -> ? Division_impossible
|
|
dvi286 divideint 0.1 999e-999999997 -> ? Division_impossible
|
|
dvi287 divideint 0.1 9999e-999999997 -> ? Division_impossible
|
|
dvi288 divideint 0.1 99999e-999999997 -> ? Division_impossible
|
|
|
|
|
|
-- overflow and underflow tests [from divide]
|
|
maxexponent: 999999999
|
|
minexponent: -999999999
|
|
dvi330 divideint +1.23456789012345E-0 9E+999999999 -> 0 Inexact Lost_digits Rounded
|
|
dvi331 divideint 9E+999999999 +0.23456789012345E-0 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi332 divideint +0.100 9E+999999999 -> 0
|
|
dvi333 divideint 9E-999999999 +9.100 -> 0
|
|
dvi335 divideint -1.23456789012345E-0 9E+999999999 -> 0 Inexact Lost_digits Rounded
|
|
dvi336 divideint 9E+999999999 -0.83456789012345E-0 -> ? Division_impossible Inexact Lost_digits Rounded
|
|
dvi337 divideint -0.100 9E+999999999 -> 0
|
|
dvi338 divideint 9E-999999999 -9.100 -> 0
|
|
|
|
-- lostDigits checks
|
|
maxexponent: 999
|
|
minexponent: -999
|
|
precision: 9
|
|
dvi401 divideint 12345678000 100 -> 123456780 Rounded
|
|
dvi402 divideint 1 12345678000 -> 0 Rounded
|
|
dvi403 divideint 1234567800 10 -> 123456780 Rounded
|
|
dvi404 divideint 1 1234567800 -> 0 Rounded
|
|
dvi405 divideint 1234567890 10 -> 123456789 Rounded
|
|
dvi406 divideint 1 1234567890 -> 0 Rounded
|
|
dvi407 divideint 1234567891 10 -> 123456789 Inexact Lost_digits Rounded
|
|
dvi408 divideint 1 1234567891 -> 0 Inexact Lost_digits Rounded
|
|
dvi409 divideint 12345678901 100 -> 123456789 Inexact Lost_digits Rounded
|
|
dvi410 divideint 1 12345678901 -> 0 Inexact Lost_digits Rounded
|
|
dvi411 divideint 1234567896 10 -> 123456790 Inexact Lost_digits Rounded
|
|
dvi412 divideint 1 1234567896 -> 0 Inexact Lost_digits Rounded
|
|
|
|
precision: 15
|
|
-- still checking for [no] lostDigits
|
|
dvi441 divideint 12345678000 1 -> 12345678000
|
|
dvi442 divideint 1 12345678000 -> 0
|
|
dvi443 divideint 1234567800 1 -> 1234567800
|
|
dvi444 divideint 1 1234567800 -> 0
|
|
dvi445 divideint 1234567890 1 -> 1234567890
|
|
dvi446 divideint 1 1234567890 -> 0
|
|
dvi447 divideint 1234567891 1 -> 1234567891
|
|
dvi448 divideint 1 1234567891 -> 0
|
|
dvi449 divideint 12345678901 1 -> 12345678901
|
|
dvi450 divideint 1 12345678901 -> 0
|
|
dvi451 divideint 1234567896 1 -> 1234567896
|
|
dvi452 divideint 1 1234567896 -> 0
|
|
|
|
-- Null tests
|
|
dvi900 divideint 10 # -> ? Invalid_operation
|
|
dvi901 divideint # 10 -> ? Invalid_operation
|
|
|