summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/tointegral.decTest
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2004-07-01 11:01:35 (GMT)
committerRaymond Hettinger <python@rcn.com>2004-07-01 11:01:35 (GMT)
commit7c85fa4a5203912aca564ce719a0fdd0fd5411e5 (patch)
tree6e36321b63337cb115f3ef1cdea79a7637b78a84 /Lib/test/decimaltestdata/tointegral.decTest
parent2ccf5d689bc1b893fc89ba3f5131a5f504dff1cd (diff)
downloadcpython-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.decTest176
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
+