blob: b661d0e1df5c04e6d137ab277f9dd7d42e42c593 [file] [log] [blame]
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001------------------------------------------------------------------------
2-- integer.decTest -- round decimal to integer --
3-- Copyright (c) IBM Corporation, 2001, 2003. All rights reserved. --
4------------------------------------------------------------------------
5-- Please see the document "General Decimal Arithmetic Testcases" --
6-- at http://www2.hursley.ibm.com/decimal for the description of --
7-- these testcases. --
8-- --
9-- These testcases are experimental ('beta' versions), and they --
10-- may contain errors. They are offered on an as-is basis. In --
11-- particular, achieving the same results as the tests here is not --
12-- a guarantee that an implementation complies with any Standard --
13-- or specification. The tests are not exhaustive. --
14-- --
15-- Please send comments, suggestions, and corrections to the author: --
16-- Mike Cowlishaw, IBM Fellow --
17-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
18-- mfc@uk.ibm.com --
19------------------------------------------------------------------------
20version: 2.26
21
22-- This set of tests tests the extended specification 'round-to-integer'
23-- operation (from IEEE 854). All non-zero results are defined as
24-- being those from either plus or rescale, so those are assumed to have
25-- been tested.
26
27extended: 1
28precision: 9
29rounding: half_up
30maxExponent: 999
31minExponent: -999
32
33intx001 integer 0 -> 0
34intx002 integer 0.0 -> 0
35intx003 integer 0.1 -> 0 Rounded Inexact
36intx004 integer 0.2 -> 0 Rounded Inexact
37intx005 integer 0.3 -> 0 Rounded Inexact
38intx006 integer 0.4 -> 0 Rounded Inexact
39intx007 integer 0.5 -> 1 Rounded Inexact
40intx008 integer 0.6 -> 1 Rounded Inexact
41intx009 integer 0.7 -> 1 Rounded Inexact
42intx010 integer 0.8 -> 1 Rounded Inexact
43intx011 integer 0.9 -> 1 Rounded Inexact
44intx012 integer 1 -> 1
45intx013 integer 1.0 -> 1 Rounded
46intx014 integer 1.1 -> 1 Rounded Inexact
47intx015 integer 1.2 -> 1 Rounded Inexact
48intx016 integer 1.3 -> 1 Rounded Inexact
49intx017 integer 1.4 -> 1 Rounded Inexact
50intx018 integer 1.5 -> 2 Rounded Inexact
51intx019 integer 1.6 -> 2 Rounded Inexact
52intx020 integer 1.7 -> 2 Rounded Inexact
53intx021 integer 1.8 -> 2 Rounded Inexact
54intx022 integer 1.9 -> 2 Rounded Inexact
55-- negatives
56intx031 integer -0 -> -0
57intx032 integer -0.0 -> -0
58intx033 integer -0.1 -> -0 Rounded Inexact
59intx034 integer -0.2 -> -0 Rounded Inexact
60intx035 integer -0.3 -> -0 Rounded Inexact
61intx036 integer -0.4 -> -0 Rounded Inexact
62intx037 integer -0.5 -> -1 Rounded Inexact
63intx038 integer -0.6 -> -1 Rounded Inexact
64intx039 integer -0.7 -> -1 Rounded Inexact
65intx040 integer -0.8 -> -1 Rounded Inexact
66intx041 integer -0.9 -> -1 Rounded Inexact
67intx042 integer -1 -> -1
68intx043 integer -1.0 -> -1 Rounded
69intx044 integer -1.1 -> -1 Rounded Inexact
70intx045 integer -1.2 -> -1 Rounded Inexact
71intx046 integer -1.3 -> -1 Rounded Inexact
72intx047 integer -1.4 -> -1 Rounded Inexact
73intx048 integer -1.5 -> -2 Rounded Inexact
74intx049 integer -1.6 -> -2 Rounded Inexact
75intx050 integer -1.7 -> -2 Rounded Inexact
76intx051 integer -1.8 -> -2 Rounded Inexact
77intx052 integer -1.9 -> -2 Rounded Inexact
78intx053 integer 10E+30 -> NaN Invalid_operation
79intx054 integer -10E+30 -> NaN Invalid_operation
80
81-- numbers around precision
82precision: 9
83intx060 integer '56267E-10' -> '0' Inexact Rounded
84intx061 integer '56267E-5' -> '1' Inexact Rounded
85intx062 integer '56267E-2' -> '563' Inexact Rounded
86intx063 integer '56267E-1' -> '5627' Inexact Rounded
87intx065 integer '56267E-0' -> '56267'
88intx066 integer '56267E+0' -> '56267'
89intx067 integer '56267E+1' -> '562670'
90intx068 integer '56267E+2' -> '5626700'
91intx069 integer '56267E+3' -> '56267000'
92intx070 integer '56267E+4' -> '562670000'
93intx071 integer '56267E+5' -> NaN Invalid_operation
94intx072 integer '56267E+6' -> NaN Invalid_operation
95intx080 integer '-56267E-10' -> '-0' Inexact Rounded
96intx081 integer '-56267E-5' -> '-1' Inexact Rounded
97intx082 integer '-56267E-2' -> '-563' Inexact Rounded
98intx083 integer '-56267E-1' -> '-5627' Inexact Rounded
99intx085 integer '-56267E-0' -> '-56267'
100intx086 integer '-56267E+0' -> '-56267'
101intx087 integer '-56267E+1' -> '-562670'
102intx088 integer '-56267E+2' -> '-5626700'
103intx089 integer '-56267E+3' -> '-56267000'
104intx090 integer '-56267E+4' -> '-562670000'
105intx091 integer '-56267E+5' -> NaN Invalid_operation
106intx092 integer '-56267E+6' -> NaN Invalid_operation
107
108-- specials and zeros
109intx120 integer 'Inf' -> NaN Invalid_operation
110intx121 integer '-Inf' -> NaN Invalid_operation
111intx122 integer NaN -> NaN
112intx123 integer sNaN -> NaN Invalid_operation
113intx124 integer 0 -> 0
114intx125 integer -0 -> -0
115intx126 integer 0.000 -> 0
116intx127 integer 0.00 -> 0
117intx128 integer 0.0 -> 0
118intx129 integer 0 -> 0
119intx130 integer 0E-3 -> 0
120intx131 integer 0E-2 -> 0
121intx132 integer 0E-1 -> 0
122intx133 integer 0E-0 -> 0
123intx134 integer 0E+1 -> 0
124intx135 integer 0E+2 -> 0
125intx136 integer 0E+3 -> 0
126intx137 integer 0E+4 -> 0
127intx138 integer 0E+5 -> 0
128intx139 integer -0.000 -> -0
129intx140 integer -0.00 -> -0
130intx141 integer -0.0 -> -0
131intx142 integer -0 -> -0
132intx143 integer -0E-3 -> -0
133intx144 integer -0E-2 -> -0
134intx145 integer -0E-1 -> -0
135intx146 integer -0E-0 -> -0
136intx147 integer -0E+1 -> -0
137intx148 integer -0E+2 -> -0
138intx149 integer -0E+3 -> -0
139intx150 integer -0E+4 -> -0
140intx151 integer -0E+5 -> -0
141
142-- examples
143rounding: half_up
144precision: 9
145intx200 integer 2.1 -> 2 Rounded Inexact
146intx201 integer 100 -> 100
147intx202 integer 100.0 -> 100 Rounded
148intx203 integer 101.5 -> 102 Rounded Inexact
149intx204 integer -101.5 -> -102 Rounded Inexact
150intx205 integer 10E+5 -> 1000000
151