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
 | 
						|
 |