diff options
author | Raymond Hettinger <python@rcn.com> | 2004-07-01 11:01:35 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2004-07-01 11:01:35 (GMT) |
commit | 7c85fa4a5203912aca564ce719a0fdd0fd5411e5 (patch) | |
tree | 6e36321b63337cb115f3ef1cdea79a7637b78a84 /Lib/test/decimaltestdata/tointegral.decTest | |
parent | 2ccf5d689bc1b893fc89ba3f5131a5f504dff1cd (diff) | |
download | cpython-7c85fa4a5203912aca564ce719a0fdd0fd5411e5.zip cpython-7c85fa4a5203912aca564ce719a0fdd0fd5411e5.tar.gz cpython-7c85fa4a5203912aca564ce719a0fdd0fd5411e5.tar.bz2 |
Move Decimal from the sandbox into production.
Diffstat (limited to 'Lib/test/decimaltestdata/tointegral.decTest')
-rw-r--r-- | Lib/test/decimaltestdata/tointegral.decTest | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/Lib/test/decimaltestdata/tointegral.decTest b/Lib/test/decimaltestdata/tointegral.decTest new file mode 100644 index 0000000..8ba1e7c --- /dev/null +++ b/Lib/test/decimaltestdata/tointegral.decTest @@ -0,0 +1,176 @@ +------------------------------------------------------------------------ +-- tointegral.decTest -- round decimal to integral value -- +-- Copyright (c) IBM Corporation, 2001, 2003. 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.38 + +-- This set of tests tests the extended specification 'round-to-integral +-- value' operation (from IEEE 854, later modified in 754r). +-- All non-zero results are defined as being those from either copy or +-- quantize, so those are assumed to have been tested. +-- Note that 754r requires that Inexact not be set, and we similarly +-- assume Rounded is not set. + +extended: 1 +precision: 9 +rounding: half_up +maxExponent: 999 +minExponent: -999 + +intx001 tointegral 0 -> 0 +intx002 tointegral 0.0 -> 0 +intx003 tointegral 0.1 -> 0 +intx004 tointegral 0.2 -> 0 +intx005 tointegral 0.3 -> 0 +intx006 tointegral 0.4 -> 0 +intx007 tointegral 0.5 -> 1 +intx008 tointegral 0.6 -> 1 +intx009 tointegral 0.7 -> 1 +intx010 tointegral 0.8 -> 1 +intx011 tointegral 0.9 -> 1 +intx012 tointegral 1 -> 1 +intx013 tointegral 1.0 -> 1 +intx014 tointegral 1.1 -> 1 +intx015 tointegral 1.2 -> 1 +intx016 tointegral 1.3 -> 1 +intx017 tointegral 1.4 -> 1 +intx018 tointegral 1.5 -> 2 +intx019 tointegral 1.6 -> 2 +intx020 tointegral 1.7 -> 2 +intx021 tointegral 1.8 -> 2 +intx022 tointegral 1.9 -> 2 +-- negatives +intx031 tointegral -0 -> -0 +intx032 tointegral -0.0 -> -0 +intx033 tointegral -0.1 -> -0 +intx034 tointegral -0.2 -> -0 +intx035 tointegral -0.3 -> -0 +intx036 tointegral -0.4 -> -0 +intx037 tointegral -0.5 -> -1 +intx038 tointegral -0.6 -> -1 +intx039 tointegral -0.7 -> -1 +intx040 tointegral -0.8 -> -1 +intx041 tointegral -0.9 -> -1 +intx042 tointegral -1 -> -1 +intx043 tointegral -1.0 -> -1 +intx044 tointegral -1.1 -> -1 +intx045 tointegral -1.2 -> -1 +intx046 tointegral -1.3 -> -1 +intx047 tointegral -1.4 -> -1 +intx048 tointegral -1.5 -> -2 +intx049 tointegral -1.6 -> -2 +intx050 tointegral -1.7 -> -2 +intx051 tointegral -1.8 -> -2 +intx052 tointegral -1.9 -> -2 +-- next two would be NaN using quantize(x, 0) +intx053 tointegral 10E+30 -> 1.0E+31 +intx054 tointegral -10E+30 -> -1.0E+31 + +-- numbers around precision +precision: 9 +intx060 tointegral '56267E-10' -> '0' +intx061 tointegral '56267E-5' -> '1' +intx062 tointegral '56267E-2' -> '563' +intx063 tointegral '56267E-1' -> '5627' +intx065 tointegral '56267E-0' -> '56267' +intx066 tointegral '56267E+0' -> '56267' +intx067 tointegral '56267E+1' -> '5.6267E+5' +intx068 tointegral '56267E+2' -> '5.6267E+6' +intx069 tointegral '56267E+3' -> '5.6267E+7' +intx070 tointegral '56267E+4' -> '5.6267E+8' +intx071 tointegral '56267E+5' -> '5.6267E+9' +intx072 tointegral '56267E+6' -> '5.6267E+10' +intx073 tointegral '1.23E+96' -> '1.23E+96' +intx074 tointegral '1.23E+384' -> '1.23E+384' +intx075 tointegral '1.23E+999' -> '1.23E+999' + +intx080 tointegral '-56267E-10' -> '-0' +intx081 tointegral '-56267E-5' -> '-1' +intx082 tointegral '-56267E-2' -> '-563' +intx083 tointegral '-56267E-1' -> '-5627' +intx085 tointegral '-56267E-0' -> '-56267' +intx086 tointegral '-56267E+0' -> '-56267' +intx087 tointegral '-56267E+1' -> '-5.6267E+5' +intx088 tointegral '-56267E+2' -> '-5.6267E+6' +intx089 tointegral '-56267E+3' -> '-5.6267E+7' +intx090 tointegral '-56267E+4' -> '-5.6267E+8' +intx091 tointegral '-56267E+5' -> '-5.6267E+9' +intx092 tointegral '-56267E+6' -> '-5.6267E+10' +intx093 tointegral '-1.23E+96' -> '-1.23E+96' +intx094 tointegral '-1.23E+384' -> '-1.23E+384' +intx095 tointegral '-1.23E+999' -> '-1.23E+999' + +-- subnormal inputs +intx100 tointegral 1E-999 -> 0 +intx101 tointegral 0.1E-999 -> 0 +intx102 tointegral 0.01E-999 -> 0 +intx103 tointegral 0E-999 -> 0 + +-- specials and zeros +intx120 tointegral 'Inf' -> Infinity +intx121 tointegral '-Inf' -> -Infinity +intx122 tointegral NaN -> NaN +intx123 tointegral sNaN -> NaN Invalid_operation +intx124 tointegral 0 -> 0 +intx125 tointegral -0 -> -0 +intx126 tointegral 0.000 -> 0 +intx127 tointegral 0.00 -> 0 +intx128 tointegral 0.0 -> 0 +intx129 tointegral 0 -> 0 +intx130 tointegral 0E-3 -> 0 +intx131 tointegral 0E-2 -> 0 +intx132 tointegral 0E-1 -> 0 +intx133 tointegral 0E-0 -> 0 +intx134 tointegral 0E+1 -> 0E+1 +intx135 tointegral 0E+2 -> 0E+2 +intx136 tointegral 0E+3 -> 0E+3 +intx137 tointegral 0E+4 -> 0E+4 +intx138 tointegral 0E+5 -> 0E+5 +intx139 tointegral -0.000 -> -0 +intx140 tointegral -0.00 -> -0 +intx141 tointegral -0.0 -> -0 +intx142 tointegral -0 -> -0 +intx143 tointegral -0E-3 -> -0 +intx144 tointegral -0E-2 -> -0 +intx145 tointegral -0E-1 -> -0 +intx146 tointegral -0E-0 -> -0 +intx147 tointegral -0E+1 -> -0E+1 +intx148 tointegral -0E+2 -> -0E+2 +intx149 tointegral -0E+3 -> -0E+3 +intx150 tointegral -0E+4 -> -0E+4 +intx151 tointegral -0E+5 -> -0E+5 +-- propagating NaNs +intx152 tointegral NaN808 -> NaN808 +intx153 tointegral sNaN080 -> NaN80 Invalid_operation +intx154 tointegral -NaN808 -> -NaN808 +intx155 tointegral -sNaN080 -> -NaN80 Invalid_operation +intx156 tointegral -NaN -> -NaN +intx157 tointegral -sNaN -> -NaN Invalid_operation + +-- examples +rounding: half_up +precision: 9 +intx200 tointegral 2.1 -> 2 +intx201 tointegral 100 -> 100 +intx202 tointegral 100.0 -> 100 +intx203 tointegral 101.5 -> 102 +intx204 tointegral -101.5 -> -102 +intx205 tointegral 10E+5 -> 1.0E+6 +intx206 tointegral 7.89E+77 -> 7.89E+77 +intx207 tointegral -Inf -> -Infinity + |