1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
------------------------------------------------------------------------
-- integer.decTest -- round decimal to integer --
-- 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.26
-- This set of tests tests the extended specification 'round-to-integer'
-- operation (from IEEE 854). All non-zero results are defined as
-- being those from either plus or rescale, so those are assumed to have
-- been tested.
extended: 1
precision: 9
rounding: half_up
maxExponent: 999
minExponent: -999
intx001 integer 0 -> 0
intx002 integer 0.0 -> 0
intx003 integer 0.1 -> 0 Rounded Inexact
intx004 integer 0.2 -> 0 Rounded Inexact
intx005 integer 0.3 -> 0 Rounded Inexact
intx006 integer 0.4 -> 0 Rounded Inexact
intx007 integer 0.5 -> 1 Rounded Inexact
intx008 integer 0.6 -> 1 Rounded Inexact
intx009 integer 0.7 -> 1 Rounded Inexact
intx010 integer 0.8 -> 1 Rounded Inexact
intx011 integer 0.9 -> 1 Rounded Inexact
intx012 integer 1 -> 1
intx013 integer 1.0 -> 1 Rounded
intx014 integer 1.1 -> 1 Rounded Inexact
intx015 integer 1.2 -> 1 Rounded Inexact
intx016 integer 1.3 -> 1 Rounded Inexact
intx017 integer 1.4 -> 1 Rounded Inexact
intx018 integer 1.5 -> 2 Rounded Inexact
intx019 integer 1.6 -> 2 Rounded Inexact
intx020 integer 1.7 -> 2 Rounded Inexact
intx021 integer 1.8 -> 2 Rounded Inexact
intx022 integer 1.9 -> 2 Rounded Inexact
-- negatives
intx031 integer -0 -> -0
intx032 integer -0.0 -> -0
intx033 integer -0.1 -> -0 Rounded Inexact
intx034 integer -0.2 -> -0 Rounded Inexact
intx035 integer -0.3 -> -0 Rounded Inexact
intx036 integer -0.4 -> -0 Rounded Inexact
intx037 integer -0.5 -> -1 Rounded Inexact
intx038 integer -0.6 -> -1 Rounded Inexact
intx039 integer -0.7 -> -1 Rounded Inexact
intx040 integer -0.8 -> -1 Rounded Inexact
intx041 integer -0.9 -> -1 Rounded Inexact
intx042 integer -1 -> -1
intx043 integer -1.0 -> -1 Rounded
intx044 integer -1.1 -> -1 Rounded Inexact
intx045 integer -1.2 -> -1 Rounded Inexact
intx046 integer -1.3 -> -1 Rounded Inexact
intx047 integer -1.4 -> -1 Rounded Inexact
intx048 integer -1.5 -> -2 Rounded Inexact
intx049 integer -1.6 -> -2 Rounded Inexact
intx050 integer -1.7 -> -2 Rounded Inexact
intx051 integer -1.8 -> -2 Rounded Inexact
intx052 integer -1.9 -> -2 Rounded Inexact
intx053 integer 10E+30 -> NaN Invalid_operation
intx054 integer -10E+30 -> NaN Invalid_operation
-- numbers around precision
precision: 9
intx060 integer '56267E-10' -> '0' Inexact Rounded
intx061 integer '56267E-5' -> '1' Inexact Rounded
intx062 integer '56267E-2' -> '563' Inexact Rounded
intx063 integer '56267E-1' -> '5627' Inexact Rounded
intx065 integer '56267E-0' -> '56267'
intx066 integer '56267E+0' -> '56267'
intx067 integer '56267E+1' -> '562670'
intx068 integer '56267E+2' -> '5626700'
intx069 integer '56267E+3' -> '56267000'
intx070 integer '56267E+4' -> '562670000'
intx071 integer '56267E+5' -> NaN Invalid_operation
intx072 integer '56267E+6' -> NaN Invalid_operation
intx080 integer '-56267E-10' -> '-0' Inexact Rounded
intx081 integer '-56267E-5' -> '-1' Inexact Rounded
intx082 integer '-56267E-2' -> '-563' Inexact Rounded
intx083 integer '-56267E-1' -> '-5627' Inexact Rounded
intx085 integer '-56267E-0' -> '-56267'
intx086 integer '-56267E+0' -> '-56267'
intx087 integer '-56267E+1' -> '-562670'
intx088 integer '-56267E+2' -> '-5626700'
intx089 integer '-56267E+3' -> '-56267000'
intx090 integer '-56267E+4' -> '-562670000'
intx091 integer '-56267E+5' -> NaN Invalid_operation
intx092 integer '-56267E+6' -> NaN Invalid_operation
-- specials and zeros
intx120 integer 'Inf' -> NaN Invalid_operation
intx121 integer '-Inf' -> NaN Invalid_operation
intx122 integer NaN -> NaN
intx123 integer sNaN -> NaN Invalid_operation
intx124 integer 0 -> 0
intx125 integer -0 -> -0
intx126 integer 0.000 -> 0
intx127 integer 0.00 -> 0
intx128 integer 0.0 -> 0
intx129 integer 0 -> 0
intx130 integer 0E-3 -> 0
intx131 integer 0E-2 -> 0
intx132 integer 0E-1 -> 0
intx133 integer 0E-0 -> 0
intx134 integer 0E+1 -> 0
intx135 integer 0E+2 -> 0
intx136 integer 0E+3 -> 0
intx137 integer 0E+4 -> 0
intx138 integer 0E+5 -> 0
intx139 integer -0.000 -> -0
intx140 integer -0.00 -> -0
intx141 integer -0.0 -> -0
intx142 integer -0 -> -0
intx143 integer -0E-3 -> -0
intx144 integer -0E-2 -> -0
intx145 integer -0E-1 -> -0
intx146 integer -0E-0 -> -0
intx147 integer -0E+1 -> -0
intx148 integer -0E+2 -> -0
intx149 integer -0E+3 -> -0
intx150 integer -0E+4 -> -0
intx151 integer -0E+5 -> -0
-- examples
rounding: half_up
precision: 9
intx200 integer 2.1 -> 2 Rounded Inexact
intx201 integer 100 -> 100
intx202 integer 100.0 -> 100 Rounded
intx203 integer 101.5 -> 102 Rounded Inexact
intx204 integer -101.5 -> -102 Rounded Inexact
intx205 integer 10E+5 -> 1000000
|