2004-07-01 08:01:35 -03:00
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- remainderNear.decTest -- decimal remainder-near (IEEE remainder) --
|
2008-07-31 13:32:12 -03:00
|
|
|
-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
|
2004-07-01 08:01:35 -03:00
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- 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 --
|
|
|
|
------------------------------------------------------------------------
|
2009-10-08 13:33:06 -03:00
|
|
|
version: 2.59
|
2004-07-01 08:01:35 -03:00
|
|
|
|
|
|
|
extended: 1
|
|
|
|
precision: 9
|
|
|
|
rounding: half_up
|
|
|
|
maxExponent: 384
|
|
|
|
minexponent: -383
|
|
|
|
|
|
|
|
rmnx001 remaindernear 1 1 -> 0
|
|
|
|
rmnx002 remaindernear 2 1 -> 0
|
|
|
|
rmnx003 remaindernear 1 2 -> 1
|
|
|
|
rmnx004 remaindernear 2 2 -> 0
|
|
|
|
rmnx005 remaindernear 0 1 -> 0
|
|
|
|
rmnx006 remaindernear 0 2 -> 0
|
|
|
|
rmnx007 remaindernear 1 3 -> 1
|
|
|
|
rmnx008 remaindernear 2 3 -> -1
|
|
|
|
rmnx009 remaindernear 3 3 -> 0
|
|
|
|
|
|
|
|
rmnx010 remaindernear 2.4 1 -> 0.4
|
|
|
|
rmnx011 remaindernear 2.4 -1 -> 0.4
|
|
|
|
rmnx012 remaindernear -2.4 1 -> -0.4
|
|
|
|
rmnx013 remaindernear -2.4 -1 -> -0.4
|
|
|
|
rmnx014 remaindernear 2.40 1 -> 0.40
|
|
|
|
rmnx015 remaindernear 2.400 1 -> 0.400
|
|
|
|
rmnx016 remaindernear 2.4 2 -> 0.4
|
|
|
|
rmnx017 remaindernear 2.400 2 -> 0.400
|
|
|
|
rmnx018 remaindernear 2. 2 -> 0
|
|
|
|
rmnx019 remaindernear 20 20 -> 0
|
|
|
|
|
|
|
|
rmnx020 remaindernear 187 187 -> 0
|
|
|
|
rmnx021 remaindernear 5 2 -> 1
|
|
|
|
rmnx022 remaindernear 5 2.0 -> 1.0
|
|
|
|
rmnx023 remaindernear 5 2.000 -> 1.000
|
|
|
|
rmnx024 remaindernear 5 0.200 -> 0.000
|
|
|
|
rmnx025 remaindernear 5 0.200 -> 0.000
|
|
|
|
|
|
|
|
rmnx030 remaindernear 1 2 -> 1
|
|
|
|
rmnx031 remaindernear 1 4 -> 1
|
|
|
|
rmnx032 remaindernear 1 8 -> 1
|
|
|
|
rmnx033 remaindernear 1 16 -> 1
|
|
|
|
rmnx034 remaindernear 1 32 -> 1
|
|
|
|
rmnx035 remaindernear 1 64 -> 1
|
|
|
|
rmnx040 remaindernear 1 -2 -> 1
|
|
|
|
rmnx041 remaindernear 1 -4 -> 1
|
|
|
|
rmnx042 remaindernear 1 -8 -> 1
|
|
|
|
rmnx043 remaindernear 1 -16 -> 1
|
|
|
|
rmnx044 remaindernear 1 -32 -> 1
|
|
|
|
rmnx045 remaindernear 1 -64 -> 1
|
|
|
|
rmnx050 remaindernear -1 2 -> -1
|
|
|
|
rmnx051 remaindernear -1 4 -> -1
|
|
|
|
rmnx052 remaindernear -1 8 -> -1
|
|
|
|
rmnx053 remaindernear -1 16 -> -1
|
|
|
|
rmnx054 remaindernear -1 32 -> -1
|
|
|
|
rmnx055 remaindernear -1 64 -> -1
|
|
|
|
rmnx060 remaindernear -1 -2 -> -1
|
|
|
|
rmnx061 remaindernear -1 -4 -> -1
|
|
|
|
rmnx062 remaindernear -1 -8 -> -1
|
|
|
|
rmnx063 remaindernear -1 -16 -> -1
|
|
|
|
rmnx064 remaindernear -1 -32 -> -1
|
|
|
|
rmnx065 remaindernear -1 -64 -> -1
|
|
|
|
|
|
|
|
rmnx066 remaindernear 999999997 1 -> 0
|
|
|
|
rmnx067 remaindernear 999999997.4 1 -> 0.4
|
|
|
|
rmnx068 remaindernear 999999997.5 1 -> -0.5
|
|
|
|
rmnx069 remaindernear 999999997.9 1 -> -0.1
|
|
|
|
rmnx070 remaindernear 999999997.999 1 -> -0.001
|
|
|
|
|
|
|
|
rmnx071 remaindernear 999999998 1 -> 0
|
|
|
|
rmnx072 remaindernear 999999998.4 1 -> 0.4
|
|
|
|
rmnx073 remaindernear 999999998.5 1 -> 0.5
|
|
|
|
rmnx074 remaindernear 999999998.9 1 -> -0.1
|
|
|
|
rmnx075 remaindernear 999999998.999 1 -> -0.001
|
|
|
|
|
|
|
|
rmnx076 remaindernear 999999999 1 -> 0
|
|
|
|
rmnx077 remaindernear 999999999.4 1 -> 0.4
|
|
|
|
rmnx078 remaindernear 999999999.5 1 -> NaN Division_impossible
|
|
|
|
rmnx079 remaindernear 999999999.9 1 -> NaN Division_impossible
|
|
|
|
rmnx080 remaindernear 999999999.999 1 -> NaN Division_impossible
|
|
|
|
|
|
|
|
precision: 6
|
|
|
|
rmnx081 remaindernear 999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx082 remaindernear 99999999 1 -> NaN Division_impossible
|
|
|
|
rmnx083 remaindernear 9999999 1 -> NaN Division_impossible
|
|
|
|
rmnx084 remaindernear 999999 1 -> 0
|
|
|
|
rmnx085 remaindernear 99999 1 -> 0
|
|
|
|
rmnx086 remaindernear 9999 1 -> 0
|
|
|
|
rmnx087 remaindernear 999 1 -> 0
|
|
|
|
rmnx088 remaindernear 99 1 -> 0
|
|
|
|
rmnx089 remaindernear 9 1 -> 0
|
|
|
|
|
|
|
|
precision: 9
|
|
|
|
rmnx090 remaindernear 0. 1 -> 0
|
|
|
|
rmnx091 remaindernear .0 1 -> 0.0
|
|
|
|
rmnx092 remaindernear 0.00 1 -> 0.00
|
|
|
|
rmnx093 remaindernear 0.00E+9 1 -> 0
|
|
|
|
rmnx094 remaindernear 0.0000E-50 1 -> 0E-54
|
|
|
|
|
|
|
|
|
|
|
|
-- Various flavours of remaindernear by 0
|
|
|
|
precision: 9
|
|
|
|
maxexponent: 999999999
|
|
|
|
minexponent: -999999999
|
|
|
|
rmnx101 remaindernear 0 0 -> NaN Division_undefined
|
|
|
|
rmnx102 remaindernear 0 -0 -> NaN Division_undefined
|
|
|
|
rmnx103 remaindernear -0 0 -> NaN Division_undefined
|
|
|
|
rmnx104 remaindernear -0 -0 -> NaN Division_undefined
|
|
|
|
rmnx105 remaindernear 0.0E5 0 -> NaN Division_undefined
|
|
|
|
rmnx106 remaindernear 0.000 0 -> NaN Division_undefined
|
|
|
|
-- [Some think this next group should be Division_by_zero exception,
|
|
|
|
-- but IEEE 854 is explicit that it is Invalid operation .. for
|
|
|
|
-- remaindernear-near, anyway]
|
|
|
|
rmnx107 remaindernear 0.0001 0 -> NaN Invalid_operation
|
|
|
|
rmnx108 remaindernear 0.01 0 -> NaN Invalid_operation
|
|
|
|
rmnx109 remaindernear 0.1 0 -> NaN Invalid_operation
|
|
|
|
rmnx110 remaindernear 1 0 -> NaN Invalid_operation
|
|
|
|
rmnx111 remaindernear 1 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx112 remaindernear 10 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx113 remaindernear 1E+100 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx114 remaindernear 1E+1000 0 -> NaN Invalid_operation
|
|
|
|
rmnx115 remaindernear 0.0001 -0 -> NaN Invalid_operation
|
|
|
|
rmnx116 remaindernear 0.01 -0 -> NaN Invalid_operation
|
|
|
|
rmnx119 remaindernear 0.1 -0 -> NaN Invalid_operation
|
|
|
|
rmnx120 remaindernear 1 -0 -> NaN Invalid_operation
|
|
|
|
rmnx121 remaindernear 1 -0.0 -> NaN Invalid_operation
|
|
|
|
rmnx122 remaindernear 10 -0.0 -> NaN Invalid_operation
|
|
|
|
rmnx123 remaindernear 1E+100 -0.0 -> NaN Invalid_operation
|
|
|
|
rmnx124 remaindernear 1E+1000 -0 -> NaN Invalid_operation
|
|
|
|
-- and zeros on left
|
|
|
|
rmnx130 remaindernear 0 1 -> 0
|
|
|
|
rmnx131 remaindernear 0 -1 -> 0
|
|
|
|
rmnx132 remaindernear 0.0 1 -> 0.0
|
|
|
|
rmnx133 remaindernear 0.0 -1 -> 0.0
|
|
|
|
rmnx134 remaindernear -0 1 -> -0
|
|
|
|
rmnx135 remaindernear -0 -1 -> -0
|
|
|
|
rmnx136 remaindernear -0.0 1 -> -0.0
|
|
|
|
rmnx137 remaindernear -0.0 -1 -> -0.0
|
|
|
|
|
|
|
|
-- 0.5ers
|
|
|
|
rmmx143 remaindernear 0.5 2 -> 0.5
|
|
|
|
rmmx144 remaindernear 0.5 2.1 -> 0.5
|
|
|
|
rmmx145 remaindernear 0.5 2.01 -> 0.50
|
|
|
|
rmmx146 remaindernear 0.5 2.001 -> 0.500
|
|
|
|
rmmx147 remaindernear 0.50 2 -> 0.50
|
|
|
|
rmmx148 remaindernear 0.50 2.01 -> 0.50
|
|
|
|
rmmx149 remaindernear 0.50 2.001 -> 0.500
|
|
|
|
|
|
|
|
-- some differences from remainder
|
|
|
|
rmnx150 remaindernear 0.4 1.020 -> 0.400
|
|
|
|
rmnx151 remaindernear 0.50 1.020 -> 0.500
|
|
|
|
rmnx152 remaindernear 0.51 1.020 -> 0.510
|
|
|
|
rmnx153 remaindernear 0.52 1.020 -> -0.500
|
|
|
|
rmnx154 remaindernear 0.6 1.020 -> -0.420
|
|
|
|
rmnx155 remaindernear 0.49 1 -> 0.49
|
|
|
|
rmnx156 remaindernear 0.50 1 -> 0.50
|
|
|
|
rmnx157 remaindernear 1.50 1 -> -0.50
|
|
|
|
rmnx158 remaindernear 2.50 1 -> 0.50
|
|
|
|
rmnx159 remaindernear 9.50 1 -> -0.50
|
|
|
|
rmnx160 remaindernear 0.51 1 -> -0.49
|
|
|
|
|
|
|
|
-- the nasty division-by-1 cases
|
|
|
|
rmnx161 remaindernear 0.4 1 -> 0.4
|
|
|
|
rmnx162 remaindernear 0.45 1 -> 0.45
|
|
|
|
rmnx163 remaindernear 0.455 1 -> 0.455
|
|
|
|
rmnx164 remaindernear 0.4555 1 -> 0.4555
|
|
|
|
rmnx165 remaindernear 0.45555 1 -> 0.45555
|
|
|
|
rmnx166 remaindernear 0.455555 1 -> 0.455555
|
|
|
|
rmnx167 remaindernear 0.4555555 1 -> 0.4555555
|
|
|
|
rmnx168 remaindernear 0.45555555 1 -> 0.45555555
|
|
|
|
rmnx169 remaindernear 0.455555555 1 -> 0.455555555
|
|
|
|
-- with spill...
|
|
|
|
rmnx171 remaindernear 0.5 1 -> 0.5
|
|
|
|
rmnx172 remaindernear 0.55 1 -> -0.45
|
|
|
|
rmnx173 remaindernear 0.555 1 -> -0.445
|
|
|
|
rmnx174 remaindernear 0.5555 1 -> -0.4445
|
|
|
|
rmnx175 remaindernear 0.55555 1 -> -0.44445
|
|
|
|
rmnx176 remaindernear 0.555555 1 -> -0.444445
|
|
|
|
rmnx177 remaindernear 0.5555555 1 -> -0.4444445
|
|
|
|
rmnx178 remaindernear 0.55555555 1 -> -0.44444445
|
|
|
|
rmnx179 remaindernear 0.555555555 1 -> -0.444444445
|
|
|
|
|
|
|
|
-- progression
|
|
|
|
rmnx180 remaindernear 1 1 -> 0
|
|
|
|
rmnx181 remaindernear 1 2 -> 1
|
|
|
|
rmnx182 remaindernear 1 3 -> 1
|
|
|
|
rmnx183 remaindernear 1 4 -> 1
|
|
|
|
rmnx184 remaindernear 1 5 -> 1
|
|
|
|
rmnx185 remaindernear 1 6 -> 1
|
|
|
|
rmnx186 remaindernear 1 7 -> 1
|
|
|
|
rmnx187 remaindernear 1 8 -> 1
|
|
|
|
rmnx188 remaindernear 1 9 -> 1
|
|
|
|
rmnx189 remaindernear 1 10 -> 1
|
|
|
|
rmnx190 remaindernear 1 1 -> 0
|
|
|
|
rmnx191 remaindernear 2 1 -> 0
|
|
|
|
rmnx192 remaindernear 3 1 -> 0
|
|
|
|
rmnx193 remaindernear 4 1 -> 0
|
|
|
|
rmnx194 remaindernear 5 1 -> 0
|
|
|
|
rmnx195 remaindernear 6 1 -> 0
|
|
|
|
rmnx196 remaindernear 7 1 -> 0
|
|
|
|
rmnx197 remaindernear 8 1 -> 0
|
|
|
|
rmnx198 remaindernear 9 1 -> 0
|
|
|
|
rmnx199 remaindernear 10 1 -> 0
|
|
|
|
|
|
|
|
|
|
|
|
-- Various flavours of remaindernear by 0
|
|
|
|
maxexponent: 999999999
|
|
|
|
minexponent: -999999999
|
|
|
|
rmnx201 remaindernear 0 0 -> NaN Division_undefined
|
|
|
|
rmnx202 remaindernear 0.0E5 0 -> NaN Division_undefined
|
|
|
|
rmnx203 remaindernear 0.000 0 -> NaN Division_undefined
|
|
|
|
rmnx204 remaindernear 0.0001 0 -> NaN Invalid_operation
|
|
|
|
rmnx205 remaindernear 0.01 0 -> NaN Invalid_operation
|
|
|
|
rmnx206 remaindernear 0.1 0 -> NaN Invalid_operation
|
|
|
|
rmnx207 remaindernear 1 0 -> NaN Invalid_operation
|
|
|
|
rmnx208 remaindernear 1 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx209 remaindernear 10 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx210 remaindernear 1E+100 0.0 -> NaN Invalid_operation
|
|
|
|
rmnx211 remaindernear 1E+1000 0 -> NaN Invalid_operation
|
|
|
|
|
|
|
|
-- tests from the extended specification
|
|
|
|
rmnx221 remaindernear 2.1 3 -> -0.9
|
|
|
|
rmnx222 remaindernear 10 6 -> -2
|
|
|
|
rmnx223 remaindernear 10 3 -> 1
|
|
|
|
rmnx224 remaindernear -10 3 -> -1
|
|
|
|
rmnx225 remaindernear 10.2 1 -> 0.2
|
|
|
|
rmnx226 remaindernear 10 0.3 -> 0.1
|
|
|
|
rmnx227 remaindernear 3.6 1.3 -> -0.3
|
|
|
|
|
|
|
|
-- some differences from remainder
|
|
|
|
rmnx231 remaindernear 0.4 1.020 -> 0.400
|
|
|
|
rmnx232 remaindernear 0.50 1.020 -> 0.500
|
|
|
|
rmnx233 remaindernear 0.51 1.020 -> 0.510
|
|
|
|
rmnx234 remaindernear 0.52 1.020 -> -0.500
|
|
|
|
rmnx235 remaindernear 0.6 1.020 -> -0.420
|
|
|
|
|
|
|
|
-- test some cases that are close to exponent overflow
|
|
|
|
maxexponent: 999999999
|
|
|
|
minexponent: -999999999
|
|
|
|
rmnx270 remaindernear 1 1e999999999 -> 1
|
|
|
|
rmnx271 remaindernear 1 0.9e999999999 -> 1
|
|
|
|
rmnx272 remaindernear 1 0.99e999999999 -> 1
|
|
|
|
rmnx273 remaindernear 1 0.999999999e999999999 -> 1
|
|
|
|
rmnx274 remaindernear 9e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx275 remaindernear 9.9e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx276 remaindernear 9.99e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx277 remaindernear 9.99999999e999999999 1 -> NaN Division_impossible
|
|
|
|
|
|
|
|
rmnx280 remaindernear 0.1 9e-999999999 -> NaN Division_impossible
|
|
|
|
rmnx281 remaindernear 0.1 99e-999999999 -> NaN Division_impossible
|
|
|
|
rmnx282 remaindernear 0.1 999e-999999999 -> NaN Division_impossible
|
|
|
|
|
|
|
|
rmnx283 remaindernear 0.1 9e-999999998 -> NaN Division_impossible
|
|
|
|
rmnx284 remaindernear 0.1 99e-999999998 -> NaN Division_impossible
|
|
|
|
rmnx285 remaindernear 0.1 999e-999999998 -> NaN Division_impossible
|
|
|
|
rmnx286 remaindernear 0.1 999e-999999997 -> NaN Division_impossible
|
|
|
|
rmnx287 remaindernear 0.1 9999e-999999997 -> NaN Division_impossible
|
|
|
|
rmnx288 remaindernear 0.1 99999e-999999997 -> NaN Division_impossible
|
|
|
|
|
|
|
|
-- rmnx3xx are from DiagBigDecimal
|
|
|
|
rmnx301 remaindernear 1 3 -> 1
|
|
|
|
rmnx302 remaindernear 5 5 -> 0
|
|
|
|
rmnx303 remaindernear 13 10 -> 3
|
|
|
|
rmnx304 remaindernear 13 50 -> 13
|
|
|
|
rmnx305 remaindernear 13 100 -> 13
|
|
|
|
rmnx306 remaindernear 13 1000 -> 13
|
|
|
|
rmnx307 remaindernear .13 1 -> 0.13
|
|
|
|
rmnx308 remaindernear 0.133 1 -> 0.133
|
|
|
|
rmnx309 remaindernear 0.1033 1 -> 0.1033
|
|
|
|
rmnx310 remaindernear 1.033 1 -> 0.033
|
|
|
|
rmnx311 remaindernear 10.33 1 -> 0.33
|
|
|
|
rmnx312 remaindernear 10.33 10 -> 0.33
|
|
|
|
rmnx313 remaindernear 103.3 1 -> 0.3
|
|
|
|
rmnx314 remaindernear 133 10 -> 3
|
|
|
|
rmnx315 remaindernear 1033 10 -> 3
|
|
|
|
rmnx316 remaindernear 1033 50 -> -17
|
|
|
|
rmnx317 remaindernear 101.0 3 -> -1.0
|
|
|
|
rmnx318 remaindernear 102.0 3 -> 0.0
|
|
|
|
rmnx319 remaindernear 103.0 3 -> 1.0
|
|
|
|
rmnx320 remaindernear 2.40 1 -> 0.40
|
|
|
|
rmnx321 remaindernear 2.400 1 -> 0.400
|
|
|
|
rmnx322 remaindernear 2.4 1 -> 0.4
|
|
|
|
rmnx323 remaindernear 2.4 2 -> 0.4
|
|
|
|
rmnx324 remaindernear 2.400 2 -> 0.400
|
|
|
|
rmnx325 remaindernear 1 0.3 -> 0.1
|
|
|
|
rmnx326 remaindernear 1 0.30 -> 0.10
|
|
|
|
rmnx327 remaindernear 1 0.300 -> 0.100
|
|
|
|
rmnx328 remaindernear 1 0.3000 -> 0.1000
|
|
|
|
rmnx329 remaindernear 1.0 0.3 -> 0.1
|
|
|
|
rmnx330 remaindernear 1.00 0.3 -> 0.10
|
|
|
|
rmnx331 remaindernear 1.000 0.3 -> 0.100
|
|
|
|
rmnx332 remaindernear 1.0000 0.3 -> 0.1000
|
|
|
|
rmnx333 remaindernear 0.5 2 -> 0.5
|
|
|
|
rmnx334 remaindernear 0.5 2.1 -> 0.5
|
|
|
|
rmnx335 remaindernear 0.5 2.01 -> 0.50
|
|
|
|
rmnx336 remaindernear 0.5 2.001 -> 0.500
|
|
|
|
rmnx337 remaindernear 0.50 2 -> 0.50
|
|
|
|
rmnx338 remaindernear 0.50 2.01 -> 0.50
|
|
|
|
rmnx339 remaindernear 0.50 2.001 -> 0.500
|
|
|
|
|
|
|
|
rmnx340 remaindernear 0.5 0.5000001 -> -1E-7
|
|
|
|
rmnx341 remaindernear 0.5 0.50000001 -> -1E-8
|
|
|
|
rmnx342 remaindernear 0.5 0.500000001 -> -1E-9
|
|
|
|
rmnx343 remaindernear 0.5 0.5000000001 -> -1E-10
|
|
|
|
rmnx344 remaindernear 0.5 0.50000000001 -> -1E-11
|
|
|
|
rmnx345 remaindernear 0.5 0.4999999 -> 1E-7
|
|
|
|
rmnx346 remaindernear 0.5 0.49999999 -> 1E-8
|
|
|
|
rmnx347 remaindernear 0.5 0.499999999 -> 1E-9
|
|
|
|
rmnx348 remaindernear 0.5 0.4999999999 -> 1E-10
|
|
|
|
rmnx349 remaindernear 0.5 0.49999999999 -> 1E-11
|
|
|
|
|
|
|
|
rmnx350 remaindernear 0.03 7 -> 0.03
|
|
|
|
rmnx351 remaindernear 5 2 -> 1
|
|
|
|
rmnx352 remaindernear 4.1 2 -> 0.1
|
|
|
|
rmnx353 remaindernear 4.01 2 -> 0.01
|
|
|
|
rmnx354 remaindernear 4.001 2 -> 0.001
|
|
|
|
rmnx355 remaindernear 4.0001 2 -> 0.0001
|
|
|
|
rmnx356 remaindernear 4.00001 2 -> 0.00001
|
|
|
|
rmnx357 remaindernear 4.000001 2 -> 0.000001
|
|
|
|
rmnx358 remaindernear 4.0000001 2 -> 1E-7
|
|
|
|
|
|
|
|
rmnx360 remaindernear 1.2 0.7345 -> -0.2690
|
|
|
|
rmnx361 remaindernear 0.8 12 -> 0.8
|
|
|
|
rmnx362 remaindernear 0.8 0.2 -> 0.0
|
|
|
|
rmnx363 remaindernear 0.8 0.3 -> -0.1
|
|
|
|
rmnx364 remaindernear 0.800 12 -> 0.800
|
|
|
|
rmnx365 remaindernear 0.800 1.7 -> 0.800
|
|
|
|
rmnx366 remaindernear 2.400 2 -> 0.400
|
|
|
|
|
|
|
|
precision: 6
|
|
|
|
rmnx371 remaindernear 2.400 2 -> 0.400
|
|
|
|
precision: 3
|
|
|
|
rmnx372 remaindernear 12345678900000 12e+12 -> 3.46E+11 Inexact Rounded
|
|
|
|
|
|
|
|
precision: 5
|
|
|
|
rmnx381 remaindernear 12345 1 -> 0
|
|
|
|
rmnx382 remaindernear 12345 1.0001 -> -0.2344
|
|
|
|
rmnx383 remaindernear 12345 1.001 -> -0.333
|
|
|
|
rmnx384 remaindernear 12345 1.01 -> -0.23
|
|
|
|
rmnx385 remaindernear 12345 1.1 -> -0.3
|
|
|
|
rmnx386 remaindernear 12355 4 -> -1
|
|
|
|
rmnx387 remaindernear 12345 4 -> 1
|
|
|
|
rmnx388 remaindernear 12355 4.0001 -> -1.3089
|
|
|
|
rmnx389 remaindernear 12345 4.0001 -> 0.6914
|
|
|
|
rmnx390 remaindernear 12345 4.9 -> 1.9
|
|
|
|
rmnx391 remaindernear 12345 4.99 -> -0.26
|
|
|
|
rmnx392 remaindernear 12345 4.999 -> 2.469
|
|
|
|
rmnx393 remaindernear 12345 4.9999 -> 0.2469
|
|
|
|
rmnx394 remaindernear 12345 5 -> 0
|
|
|
|
rmnx395 remaindernear 12345 5.0001 -> -0.2469
|
|
|
|
rmnx396 remaindernear 12345 5.001 -> -2.469
|
|
|
|
rmnx397 remaindernear 12345 5.01 -> 0.36
|
|
|
|
rmnx398 remaindernear 12345 5.1 -> -2.1
|
|
|
|
|
|
|
|
precision: 9
|
|
|
|
-- some nasty division-by-1 cases [some similar above]
|
|
|
|
rmnx401 remaindernear 0.4 1 -> 0.4
|
|
|
|
rmnx402 remaindernear 0.45 1 -> 0.45
|
|
|
|
rmnx403 remaindernear 0.455 1 -> 0.455
|
|
|
|
rmnx404 remaindernear 0.4555 1 -> 0.4555
|
|
|
|
rmnx405 remaindernear 0.45555 1 -> 0.45555
|
|
|
|
rmnx406 remaindernear 0.455555 1 -> 0.455555
|
|
|
|
rmnx407 remaindernear 0.4555555 1 -> 0.4555555
|
|
|
|
rmnx408 remaindernear 0.45555555 1 -> 0.45555555
|
|
|
|
rmnx409 remaindernear 0.455555555 1 -> 0.455555555
|
|
|
|
|
|
|
|
-- some tricky LHSs
|
|
|
|
rmnx420 remaindernear 99999999.999999999 1E+8 -> -1E-9
|
|
|
|
rmnx421 remaindernear 999999999.999999999 1E+9 -> -1E-9
|
|
|
|
precision: 9
|
|
|
|
rmnx430 remaindernear 0.455555555 1 -> 0.455555555
|
|
|
|
precision: 8
|
|
|
|
rmnx431 remaindernear 0.455555555 1 -> 0.45555556 Inexact Rounded
|
|
|
|
precision: 7
|
|
|
|
rmnx432 remaindernear 0.455555555 1 -> 0.4555556 Inexact Rounded
|
|
|
|
precision: 6
|
|
|
|
rmnx433 remaindernear 0.455555555 1 -> 0.455556 Inexact Rounded
|
|
|
|
precision: 5
|
|
|
|
rmnx434 remaindernear 0.455555555 1 -> 0.45556 Inexact Rounded
|
|
|
|
precision: 4
|
|
|
|
rmnx435 remaindernear 0.455555555 1 -> 0.4556 Inexact Rounded
|
|
|
|
precision: 3
|
|
|
|
rmnx436 remaindernear 0.455555555 1 -> 0.456 Inexact Rounded
|
|
|
|
precision: 2
|
|
|
|
rmnx437 remaindernear 0.455555555 1 -> 0.46 Inexact Rounded
|
|
|
|
precision: 1
|
|
|
|
rmnx438 remaindernear 0.455555555 1 -> 0.5 Inexact Rounded
|
|
|
|
|
|
|
|
-- early tests; from text descriptions
|
|
|
|
precision: 9
|
|
|
|
rmnx601 remaindernear 10 6 -> -2
|
|
|
|
rmnx602 remaindernear -10 6 -> 2
|
|
|
|
rmnx603 remaindernear 11 3 -> -1
|
|
|
|
rmnx604 remaindernear 11 5 -> 1
|
|
|
|
rmnx605 remaindernear 7.7 8 -> -0.3
|
|
|
|
rmnx606 remaindernear 31.5 3 -> 1.5 -- i=10
|
|
|
|
rmnx607 remaindernear 34.5 3 -> -1.5 -- i=11
|
|
|
|
|
Merged revisions 59107-59186 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
(Note: some conflicts in the PCbuild9 directory reverted. Sorry Christian!)
........
r59120 | christian.heimes | 2007-11-22 03:21:16 -0800 (Thu, 22 Nov 2007) | 3 lines
Backport of the PCbuild9 directory from the py3k branch.
I've finished the last task for the PCbuild9 directory today. I don't think there is much left to do. Now you can all play around with the shiny new VS 2008 and try the PGO builds. I was able to get a speed improvement of about 10% on py3k.
Have fun! :)
........
r59126 | brett.cannon | 2007-11-22 16:06:51 -0800 (Thu, 22 Nov 2007) | 2 lines
Fix a bug in the test for using __loader__.get_data().
........
r59131 | christian.heimes | 2007-11-22 23:05:03 -0800 (Thu, 22 Nov 2007) | 1 line
Backport of PCbuild9 fixes from py3k r59130
........
r59132 | christian.heimes | 2007-11-23 01:10:36 -0800 (Fri, 23 Nov 2007) | 2 lines
Applied patch #1754273 and #1754271 from Thomas Glee
The patches are adding deprecation warnings for back ticks and <>
........
r59133 | christian.heimes | 2007-11-23 04:12:02 -0800 (Fri, 23 Nov 2007) | 2 lines
Fixed problems in the last commit. Filenames and line numbers weren't reported correctly.
Backquotes still don't report the correct file. The AST nodes only contain the line number but not the file name.
........
r59134 | christian.heimes | 2007-11-23 04:16:35 -0800 (Fri, 23 Nov 2007) | 1 line
How did the comment get there?
........
r59135 | christian.heimes | 2007-11-23 05:25:31 -0800 (Fri, 23 Nov 2007) | 1 line
And yet another fix for the patch. Paul Moore has send me a note that I've missed a declaration. The additional code has moved the declaration in the middle of the block.
........
r59136 | andrew.kuchling | 2007-11-23 05:37:39 -0800 (Fri, 23 Nov 2007) | 1 line
Add item
........
r59137 | skip.montanaro | 2007-11-23 09:08:35 -0800 (Fri, 23 Nov 2007) | 2 lines
Make trace and doctest play nice together (issue 1429818). Will backport.
........
r59139 | skip.montanaro | 2007-11-23 09:12:47 -0800 (Fri, 23 Nov 2007) | 1 line
issue 1429818
........
r59144 | facundo.batista | 2007-11-23 09:59:00 -0800 (Fri, 23 Nov 2007) | 10 lines
Major change in the internal structure of the Decimal
number: now it does not store the mantissa as a tuple
of numbers, but as a string.
This avoids a lot of conversions, and achieves a
speedup of 40%. The API remains intact.
Thanks Mark Dickinson.
........
r59146 | facundo.batista | 2007-11-23 10:14:50 -0800 (Fri, 23 Nov 2007) | 3 lines
Test cases from Cowlishaw, v2.57. All are pased cleanly.
........
r59156 | christian.heimes | 2007-11-23 17:36:02 -0800 (Fri, 23 Nov 2007) | 2 lines
Added filename to compiling struct based on Martin's suggestion.
I'm wonder why I was trying to add the filename to the node all the time. The compiling struct is more obvious.
........
r59158 | christian.heimes | 2007-11-23 17:53:59 -0800 (Fri, 23 Nov 2007) | 2 lines
Backport of fixes from py3k branch
svn merge -r59131:HEAD ../../py3k/PCbuild9/ .
........
r59159 | skip.montanaro | 2007-11-23 20:29:08 -0800 (Fri, 23 Nov 2007) | 1 line
revert change that breaks test_doctest (which I forgot to run - sorry)
........
r59162 | skip.montanaro | 2007-11-23 20:31:15 -0800 (Fri, 23 Nov 2007) | 1 line
revert
........
r59164 | georg.brandl | 2007-11-24 03:31:46 -0800 (Sat, 24 Nov 2007) | 3 lines
#1344: document that you need to open std{in,out,err} with PIPE if you want
communicate() to work as described.
........
r59165 | georg.brandl | 2007-11-24 03:39:13 -0800 (Sat, 24 Nov 2007) | 2 lines
#1467: fix documentation for TestResult.add{Error,Failure}.
........
r59166 | georg.brandl | 2007-11-24 03:42:14 -0800 (Sat, 24 Nov 2007) | 2 lines
#1355: remove mention of PyXML from xml.dom docs.
........
r59169 | amaury.forgeotdarc | 2007-11-24 05:20:22 -0800 (Sat, 24 Nov 2007) | 2 lines
Warning "<> not supported in 3.x" should be enabled only when the -3 option is set.
........
r59170 | amaury.forgeotdarc | 2007-11-24 05:44:17 -0800 (Sat, 24 Nov 2007) | 3 lines
Issue #1445: Fix a SystemError when accessing the ``cell_contents``
attribute of an empty cell object. Now a ValueError is raised.
........
r59172 | georg.brandl | 2007-11-24 05:56:09 -0800 (Sat, 24 Nov 2007) | 3 lines
#1735632: add O_NOATIME constant to os module.
Also document a few other O_ constants that were missing from documentation.
........
r59173 | skip.montanaro | 2007-11-24 06:30:47 -0800 (Sat, 24 Nov 2007) | 1 line
back in these go - thanks to Titus Brown for the fix
........
r59176 | martin.v.loewis | 2007-11-24 10:33:40 -0800 (Sat, 24 Nov 2007) | 2 lines
Bug #1494: Document that appendChild removes first.
........
r59186 | guido.van.rossum | 2007-11-26 14:16:49 -0800 (Mon, 26 Nov 2007) | 2 lines
A thread-less variant of brownian.py, submitted by Michele Simoniato.
........
2007-11-26 19:23:18 -04:00
|
|
|
-- zero signs
|
|
|
|
rmnx650 remaindernear 1 1 -> 0
|
|
|
|
rmnx651 remaindernear -1 1 -> -0
|
|
|
|
rmnx652 remaindernear 1 -1 -> 0
|
|
|
|
rmnx653 remaindernear -1 -1 -> -0
|
|
|
|
rmnx654 remaindernear 0 1 -> 0
|
|
|
|
rmnx655 remaindernear -0 1 -> -0
|
|
|
|
rmnx656 remaindernear 0 -1 -> 0
|
|
|
|
rmnx657 remaindernear -0 -1 -> -0
|
|
|
|
rmnx658 remaindernear 0.00 1 -> 0.00
|
|
|
|
rmnx659 remaindernear -0.00 1 -> -0.00
|
|
|
|
|
2004-07-01 08:01:35 -03:00
|
|
|
-- Specials
|
|
|
|
rmnx680 remaindernear Inf -Inf -> NaN Invalid_operation
|
|
|
|
rmnx681 remaindernear Inf -1000 -> NaN Invalid_operation
|
|
|
|
rmnx682 remaindernear Inf -1 -> NaN Invalid_operation
|
|
|
|
rmnx683 remaindernear Inf 0 -> NaN Invalid_operation
|
|
|
|
rmnx684 remaindernear Inf -0 -> NaN Invalid_operation
|
|
|
|
rmnx685 remaindernear Inf 1 -> NaN Invalid_operation
|
|
|
|
rmnx686 remaindernear Inf 1000 -> NaN Invalid_operation
|
|
|
|
rmnx687 remaindernear Inf Inf -> NaN Invalid_operation
|
|
|
|
rmnx688 remaindernear -1000 Inf -> -1000
|
|
|
|
rmnx689 remaindernear -Inf Inf -> NaN Invalid_operation
|
|
|
|
rmnx691 remaindernear -1 Inf -> -1
|
|
|
|
rmnx692 remaindernear 0 Inf -> 0
|
|
|
|
rmnx693 remaindernear -0 Inf -> -0
|
|
|
|
rmnx694 remaindernear 1 Inf -> 1
|
|
|
|
rmnx695 remaindernear 1000 Inf -> 1000
|
|
|
|
rmnx696 remaindernear Inf Inf -> NaN Invalid_operation
|
|
|
|
|
|
|
|
rmnx700 remaindernear -Inf -Inf -> NaN Invalid_operation
|
|
|
|
rmnx701 remaindernear -Inf -1000 -> NaN Invalid_operation
|
|
|
|
rmnx702 remaindernear -Inf -1 -> NaN Invalid_operation
|
|
|
|
rmnx703 remaindernear -Inf -0 -> NaN Invalid_operation
|
|
|
|
rmnx704 remaindernear -Inf 0 -> NaN Invalid_operation
|
|
|
|
rmnx705 remaindernear -Inf 1 -> NaN Invalid_operation
|
|
|
|
rmnx706 remaindernear -Inf 1000 -> NaN Invalid_operation
|
|
|
|
rmnx707 remaindernear -Inf Inf -> NaN Invalid_operation
|
|
|
|
rmnx708 remaindernear -Inf -Inf -> NaN Invalid_operation
|
|
|
|
rmnx709 remaindernear -1000 Inf -> -1000
|
|
|
|
rmnx710 remaindernear -1 -Inf -> -1
|
|
|
|
rmnx711 remaindernear -0 -Inf -> -0
|
|
|
|
rmnx712 remaindernear 0 -Inf -> 0
|
|
|
|
rmnx713 remaindernear 1 -Inf -> 1
|
|
|
|
rmnx714 remaindernear 1000 -Inf -> 1000
|
|
|
|
rmnx715 remaindernear Inf -Inf -> NaN Invalid_operation
|
|
|
|
|
|
|
|
rmnx721 remaindernear NaN -Inf -> NaN
|
|
|
|
rmnx722 remaindernear NaN -1000 -> NaN
|
|
|
|
rmnx723 remaindernear NaN -1 -> NaN
|
|
|
|
rmnx724 remaindernear NaN -0 -> NaN
|
|
|
|
rmnx725 remaindernear NaN 0 -> NaN
|
|
|
|
rmnx726 remaindernear NaN 1 -> NaN
|
|
|
|
rmnx727 remaindernear NaN 1000 -> NaN
|
|
|
|
rmnx728 remaindernear NaN Inf -> NaN
|
|
|
|
rmnx729 remaindernear NaN NaN -> NaN
|
|
|
|
rmnx730 remaindernear -Inf NaN -> NaN
|
|
|
|
rmnx731 remaindernear -1000 NaN -> NaN
|
|
|
|
rmnx732 remaindernear -1 -NaN -> -NaN
|
|
|
|
rmnx733 remaindernear -0 NaN -> NaN
|
|
|
|
rmnx734 remaindernear 0 NaN -> NaN
|
|
|
|
rmnx735 remaindernear 1 NaN -> NaN
|
|
|
|
rmnx736 remaindernear 1000 NaN -> NaN
|
|
|
|
rmnx737 remaindernear Inf NaN -> NaN
|
|
|
|
|
|
|
|
rmnx741 remaindernear sNaN -Inf -> NaN Invalid_operation
|
|
|
|
rmnx742 remaindernear sNaN -1000 -> NaN Invalid_operation
|
|
|
|
rmnx743 remaindernear -sNaN -1 -> -NaN Invalid_operation
|
|
|
|
rmnx744 remaindernear sNaN -0 -> NaN Invalid_operation
|
|
|
|
rmnx745 remaindernear sNaN 0 -> NaN Invalid_operation
|
|
|
|
rmnx746 remaindernear sNaN 1 -> NaN Invalid_operation
|
|
|
|
rmnx747 remaindernear sNaN 1000 -> NaN Invalid_operation
|
|
|
|
rmnx749 remaindernear sNaN NaN -> NaN Invalid_operation
|
|
|
|
rmnx750 remaindernear sNaN sNaN -> NaN Invalid_operation
|
|
|
|
rmnx751 remaindernear NaN sNaN -> NaN Invalid_operation
|
|
|
|
rmnx752 remaindernear -Inf sNaN -> NaN Invalid_operation
|
|
|
|
rmnx753 remaindernear -1000 sNaN -> NaN Invalid_operation
|
|
|
|
rmnx754 remaindernear -1 sNaN -> NaN Invalid_operation
|
|
|
|
rmnx755 remaindernear -0 -sNaN -> -NaN Invalid_operation
|
|
|
|
rmnx756 remaindernear 0 sNaN -> NaN Invalid_operation
|
|
|
|
rmnx757 remaindernear 1 sNaN -> NaN Invalid_operation
|
|
|
|
rmnx758 remaindernear 1000 sNaN -> NaN Invalid_operation
|
|
|
|
rmnx759 remaindernear Inf sNaN -> NaN Invalid_operation
|
|
|
|
rmnx760 remaindernear NaN sNaN -> NaN Invalid_operation
|
|
|
|
|
|
|
|
-- propaging NaNs
|
|
|
|
rmnx761 remaindernear NaN1 NaN7 -> NaN1
|
|
|
|
rmnx762 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
|
|
|
|
rmnx763 remaindernear NaN3 -sNaN9 -> -NaN9 Invalid_operation
|
|
|
|
rmnx764 remaindernear sNaN4 sNaN10 -> NaN4 Invalid_operation
|
|
|
|
rmnx765 remaindernear 15 NaN11 -> NaN11
|
|
|
|
rmnx766 remaindernear NaN6 NaN12 -> NaN6
|
|
|
|
rmnx767 remaindernear Inf -NaN13 -> -NaN13
|
|
|
|
rmnx768 remaindernear NaN14 -Inf -> NaN14
|
|
|
|
rmnx769 remaindernear 0 NaN15 -> NaN15
|
|
|
|
rmnx770 remaindernear -NaN16 -0 -> -NaN16
|
|
|
|
|
|
|
|
-- test some cases that are close to exponent overflow
|
|
|
|
maxexponent: 999999999
|
|
|
|
minexponent: -999999999
|
|
|
|
rmnx780 remaindernear 1 1e999999999 -> 1
|
|
|
|
rmnx781 remaindernear 1 0.9e999999999 -> 1
|
|
|
|
rmnx782 remaindernear 1 0.99e999999999 -> 1
|
|
|
|
rmnx783 remaindernear 1 0.999999999e999999999 -> 1
|
|
|
|
rmnx784 remaindernear 9e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx785 remaindernear 9.9e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx786 remaindernear 9.99e999999999 1 -> NaN Division_impossible
|
|
|
|
rmnx787 remaindernear 9.99999999e999999999 1 -> NaN Division_impossible
|
|
|
|
|
|
|
|
|
|
|
|
-- overflow and underflow tests [from divide]
|
|
|
|
precision: 9
|
|
|
|
maxexponent: 999999999
|
|
|
|
minexponent: -999999999
|
|
|
|
rmnx790 remaindernear +1.23456789012345E-0 9E+999999999 -> 1.23456789 Inexact Rounded
|
|
|
|
rmnx791 remaindernear 9E+999999999 +0.23456789012345E-0 -> NaN Division_impossible
|
|
|
|
rmnx792 remaindernear +0.100 9E+999999999 -> 0.100
|
|
|
|
rmnx793 remaindernear 9E-999999999 +9.100 -> 9E-999999999
|
|
|
|
rmnx795 remaindernear -1.23456789012345E-0 9E+999999999 -> -1.23456789 Inexact Rounded
|
|
|
|
rmnx796 remaindernear 9E+999999999 -0.83456789012345E-0 -> NaN Division_impossible
|
|
|
|
rmnx797 remaindernear -0.100 9E+999999999 -> -0.100
|
|
|
|
rmnx798 remaindernear 9E-999999999 -9.100 -> 9E-999999999
|
|
|
|
|
|
|
|
-- long operands checks
|
|
|
|
maxexponent: 999
|
|
|
|
minexponent: -999
|
|
|
|
precision: 9
|
|
|
|
rmnx801 remaindernear 12345678000 100 -> 0
|
|
|
|
rmnx802 remaindernear 1 12345678000 -> 1
|
|
|
|
rmnx803 remaindernear 1234567800 10 -> 0
|
|
|
|
rmnx804 remaindernear 1 1234567800 -> 1
|
|
|
|
rmnx805 remaindernear 1234567890 10 -> 0
|
|
|
|
rmnx806 remaindernear 1 1234567890 -> 1
|
|
|
|
rmnx807 remaindernear 1234567891 10 -> 1
|
|
|
|
rmnx808 remaindernear 1 1234567891 -> 1
|
|
|
|
rmnx809 remaindernear 12345678901 100 -> 1
|
|
|
|
rmnx810 remaindernear 1 12345678901 -> 1
|
|
|
|
rmnx811 remaindernear 1234567896 10 -> -4
|
|
|
|
rmnx812 remaindernear 1 1234567896 -> 1
|
|
|
|
|
|
|
|
precision: 15
|
|
|
|
rmnx841 remaindernear 12345678000 100 -> 0
|
|
|
|
rmnx842 remaindernear 1 12345678000 -> 1
|
|
|
|
rmnx843 remaindernear 1234567800 10 -> 0
|
|
|
|
rmnx844 remaindernear 1 1234567800 -> 1
|
|
|
|
rmnx845 remaindernear 1234567890 10 -> 0
|
|
|
|
rmnx846 remaindernear 1 1234567890 -> 1
|
|
|
|
rmnx847 remaindernear 1234567891 10 -> 1
|
|
|
|
rmnx848 remaindernear 1 1234567891 -> 1
|
|
|
|
rmnx849 remaindernear 12345678901 100 -> 1
|
|
|
|
rmnx850 remaindernear 1 12345678901 -> 1
|
|
|
|
rmnx851 remaindernear 1234567896 10 -> -4
|
|
|
|
rmnx852 remaindernear 1 1234567896 -> 1
|
|
|
|
|
|
|
|
-- Null tests
|
|
|
|
rmnx900 remaindernear 10 # -> NaN Invalid_operation
|
|
|
|
rmnx901 remaindernear # 10 -> NaN Invalid_operation
|