+++ /dev/null
-------------------------------------------------------------------------\r
--- tointegral.decTest -- round decimal to integral value --\r
--- Copyright (c) IBM Corporation, 2001, 2008. All rights reserved. --\r
-------------------------------------------------------------------------\r
--- Please see the document "General Decimal Arithmetic Testcases" --\r
--- at http://www2.hursley.ibm.com/decimal for the description of --\r
--- these testcases. --\r
--- --\r
--- These testcases are experimental ('beta' versions), and they --\r
--- may contain errors. They are offered on an as-is basis. In --\r
--- particular, achieving the same results as the tests here is not --\r
--- a guarantee that an implementation complies with any Standard --\r
--- or specification. The tests are not exhaustive. --\r
--- --\r
--- Please send comments, suggestions, and corrections to the author: --\r
--- Mike Cowlishaw, IBM Fellow --\r
--- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r
--- mfc@uk.ibm.com --\r
-------------------------------------------------------------------------\r
-version: 2.59\r
-\r
--- This set of tests tests the extended specification 'round-to-integral\r
--- value' operation (from IEEE 854, later modified in 754r).\r
--- All non-zero results are defined as being those from either copy or\r
--- quantize, so those are assumed to have been tested.\r
--- Note that 754r requires that Inexact not be set, and we similarly\r
--- assume Rounded is not set.\r
-\r
-extended: 1\r
-precision: 9\r
-rounding: half_up\r
-maxExponent: 999\r
-minExponent: -999\r
-\r
-intx001 tointegral 0 -> 0\r
-intx002 tointegral 0.0 -> 0\r
-intx003 tointegral 0.1 -> 0\r
-intx004 tointegral 0.2 -> 0\r
-intx005 tointegral 0.3 -> 0\r
-intx006 tointegral 0.4 -> 0\r
-intx007 tointegral 0.5 -> 1\r
-intx008 tointegral 0.6 -> 1\r
-intx009 tointegral 0.7 -> 1\r
-intx010 tointegral 0.8 -> 1\r
-intx011 tointegral 0.9 -> 1\r
-intx012 tointegral 1 -> 1\r
-intx013 tointegral 1.0 -> 1\r
-intx014 tointegral 1.1 -> 1\r
-intx015 tointegral 1.2 -> 1\r
-intx016 tointegral 1.3 -> 1\r
-intx017 tointegral 1.4 -> 1\r
-intx018 tointegral 1.5 -> 2\r
-intx019 tointegral 1.6 -> 2\r
-intx020 tointegral 1.7 -> 2\r
-intx021 tointegral 1.8 -> 2\r
-intx022 tointegral 1.9 -> 2\r
--- negatives\r
-intx031 tointegral -0 -> -0\r
-intx032 tointegral -0.0 -> -0\r
-intx033 tointegral -0.1 -> -0\r
-intx034 tointegral -0.2 -> -0\r
-intx035 tointegral -0.3 -> -0\r
-intx036 tointegral -0.4 -> -0\r
-intx037 tointegral -0.5 -> -1\r
-intx038 tointegral -0.6 -> -1\r
-intx039 tointegral -0.7 -> -1\r
-intx040 tointegral -0.8 -> -1\r
-intx041 tointegral -0.9 -> -1\r
-intx042 tointegral -1 -> -1\r
-intx043 tointegral -1.0 -> -1\r
-intx044 tointegral -1.1 -> -1\r
-intx045 tointegral -1.2 -> -1\r
-intx046 tointegral -1.3 -> -1\r
-intx047 tointegral -1.4 -> -1\r
-intx048 tointegral -1.5 -> -2\r
-intx049 tointegral -1.6 -> -2\r
-intx050 tointegral -1.7 -> -2\r
-intx051 tointegral -1.8 -> -2\r
-intx052 tointegral -1.9 -> -2\r
--- next two would be NaN using quantize(x, 0)\r
-intx053 tointegral 10E+30 -> 1.0E+31\r
-intx054 tointegral -10E+30 -> -1.0E+31\r
-\r
--- numbers around precision\r
-precision: 9\r
-intx060 tointegral '56267E-10' -> '0'\r
-intx061 tointegral '56267E-5' -> '1'\r
-intx062 tointegral '56267E-2' -> '563'\r
-intx063 tointegral '56267E-1' -> '5627'\r
-intx065 tointegral '56267E-0' -> '56267'\r
-intx066 tointegral '56267E+0' -> '56267'\r
-intx067 tointegral '56267E+1' -> '5.6267E+5'\r
-intx068 tointegral '56267E+2' -> '5.6267E+6'\r
-intx069 tointegral '56267E+3' -> '5.6267E+7'\r
-intx070 tointegral '56267E+4' -> '5.6267E+8'\r
-intx071 tointegral '56267E+5' -> '5.6267E+9'\r
-intx072 tointegral '56267E+6' -> '5.6267E+10'\r
-intx073 tointegral '1.23E+96' -> '1.23E+96'\r
-intx074 tointegral '1.23E+384' -> '1.23E+384'\r
-intx075 tointegral '1.23E+999' -> '1.23E+999'\r
-\r
-intx080 tointegral '-56267E-10' -> '-0'\r
-intx081 tointegral '-56267E-5' -> '-1'\r
-intx082 tointegral '-56267E-2' -> '-563'\r
-intx083 tointegral '-56267E-1' -> '-5627'\r
-intx085 tointegral '-56267E-0' -> '-56267'\r
-intx086 tointegral '-56267E+0' -> '-56267'\r
-intx087 tointegral '-56267E+1' -> '-5.6267E+5'\r
-intx088 tointegral '-56267E+2' -> '-5.6267E+6'\r
-intx089 tointegral '-56267E+3' -> '-5.6267E+7'\r
-intx090 tointegral '-56267E+4' -> '-5.6267E+8'\r
-intx091 tointegral '-56267E+5' -> '-5.6267E+9'\r
-intx092 tointegral '-56267E+6' -> '-5.6267E+10'\r
-intx093 tointegral '-1.23E+96' -> '-1.23E+96'\r
-intx094 tointegral '-1.23E+384' -> '-1.23E+384'\r
-intx095 tointegral '-1.23E+999' -> '-1.23E+999'\r
-\r
--- subnormal inputs\r
-intx100 tointegral 1E-999 -> 0\r
-intx101 tointegral 0.1E-999 -> 0\r
-intx102 tointegral 0.01E-999 -> 0\r
-intx103 tointegral 0E-999 -> 0\r
-\r
--- specials and zeros\r
-intx120 tointegral 'Inf' -> Infinity\r
-intx121 tointegral '-Inf' -> -Infinity\r
-intx122 tointegral NaN -> NaN\r
-intx123 tointegral sNaN -> NaN Invalid_operation\r
-intx124 tointegral 0 -> 0\r
-intx125 tointegral -0 -> -0\r
-intx126 tointegral 0.000 -> 0\r
-intx127 tointegral 0.00 -> 0\r
-intx128 tointegral 0.0 -> 0\r
-intx129 tointegral 0 -> 0\r
-intx130 tointegral 0E-3 -> 0\r
-intx131 tointegral 0E-2 -> 0\r
-intx132 tointegral 0E-1 -> 0\r
-intx133 tointegral 0E-0 -> 0\r
-intx134 tointegral 0E+1 -> 0E+1\r
-intx135 tointegral 0E+2 -> 0E+2\r
-intx136 tointegral 0E+3 -> 0E+3\r
-intx137 tointegral 0E+4 -> 0E+4\r
-intx138 tointegral 0E+5 -> 0E+5\r
-intx139 tointegral -0.000 -> -0\r
-intx140 tointegral -0.00 -> -0\r
-intx141 tointegral -0.0 -> -0\r
-intx142 tointegral -0 -> -0\r
-intx143 tointegral -0E-3 -> -0\r
-intx144 tointegral -0E-2 -> -0\r
-intx145 tointegral -0E-1 -> -0\r
-intx146 tointegral -0E-0 -> -0\r
-intx147 tointegral -0E+1 -> -0E+1\r
-intx148 tointegral -0E+2 -> -0E+2\r
-intx149 tointegral -0E+3 -> -0E+3\r
-intx150 tointegral -0E+4 -> -0E+4\r
-intx151 tointegral -0E+5 -> -0E+5\r
--- propagating NaNs\r
-intx152 tointegral NaN808 -> NaN808\r
-intx153 tointegral sNaN080 -> NaN80 Invalid_operation\r
-intx154 tointegral -NaN808 -> -NaN808\r
-intx155 tointegral -sNaN080 -> -NaN80 Invalid_operation\r
-intx156 tointegral -NaN -> -NaN\r
-intx157 tointegral -sNaN -> -NaN Invalid_operation\r
-\r
--- examples\r
-rounding: half_up\r
-precision: 9\r
-intx200 tointegral 2.1 -> 2\r
-intx201 tointegral 100 -> 100\r
-intx202 tointegral 100.0 -> 100\r
-intx203 tointegral 101.5 -> 102\r
-intx204 tointegral -101.5 -> -102\r
-intx205 tointegral 10E+5 -> 1.0E+6\r
-intx206 tointegral 7.89E+77 -> 7.89E+77\r
-intx207 tointegral -Inf -> -Infinity\r
-\r
-\r
--- all rounding modes\r
-rounding: half_even\r
-\r
-intx210 tointegral 55.5 -> 56\r
-intx211 tointegral 56.5 -> 56\r
-intx212 tointegral 57.5 -> 58\r
-intx213 tointegral -55.5 -> -56\r
-intx214 tointegral -56.5 -> -56\r
-intx215 tointegral -57.5 -> -58\r
-\r
-rounding: half_up\r
-\r
-intx220 tointegral 55.5 -> 56\r
-intx221 tointegral 56.5 -> 57\r
-intx222 tointegral 57.5 -> 58\r
-intx223 tointegral -55.5 -> -56\r
-intx224 tointegral -56.5 -> -57\r
-intx225 tointegral -57.5 -> -58\r
-\r
-rounding: half_down\r
-\r
-intx230 tointegral 55.5 -> 55\r
-intx231 tointegral 56.5 -> 56\r
-intx232 tointegral 57.5 -> 57\r
-intx233 tointegral -55.5 -> -55\r
-intx234 tointegral -56.5 -> -56\r
-intx235 tointegral -57.5 -> -57\r
-\r
-rounding: up\r
-\r
-intx240 tointegral 55.3 -> 56\r
-intx241 tointegral 56.3 -> 57\r
-intx242 tointegral 57.3 -> 58\r
-intx243 tointegral -55.3 -> -56\r
-intx244 tointegral -56.3 -> -57\r
-intx245 tointegral -57.3 -> -58\r
-\r
-rounding: down\r
-\r
-intx250 tointegral 55.7 -> 55\r
-intx251 tointegral 56.7 -> 56\r
-intx252 tointegral 57.7 -> 57\r
-intx253 tointegral -55.7 -> -55\r
-intx254 tointegral -56.7 -> -56\r
-intx255 tointegral -57.7 -> -57\r
-\r
-rounding: ceiling\r
-\r
-intx260 tointegral 55.3 -> 56\r
-intx261 tointegral 56.3 -> 57\r
-intx262 tointegral 57.3 -> 58\r
-intx263 tointegral -55.3 -> -55\r
-intx264 tointegral -56.3 -> -56\r
-intx265 tointegral -57.3 -> -57\r
-\r
-rounding: floor\r
-\r
-intx270 tointegral 55.7 -> 55\r
-intx271 tointegral 56.7 -> 56\r
-intx272 tointegral 57.7 -> 57\r
-intx273 tointegral -55.7 -> -56\r
-intx274 tointegral -56.7 -> -57\r
-intx275 tointegral -57.7 -> -58\r
-\r