]>
Commit | Line | Data |
---|---|---|
4710c53d | 1 | ------------------------------------------------------------------------\r |
2 | -- ddReduce.decTest -- remove trailing zeros from a decDouble --\r | |
3 | -- Copyright (c) IBM Corporation, 2003, 2008. All rights reserved. --\r | |
4 | ------------------------------------------------------------------------\r | |
5 | -- Please see the document "General Decimal Arithmetic Testcases" --\r | |
6 | -- at http://www2.hursley.ibm.com/decimal for the description of --\r | |
7 | -- these testcases. --\r | |
8 | -- --\r | |
9 | -- These testcases are experimental ('beta' versions), and they --\r | |
10 | -- may contain errors. They are offered on an as-is basis. In --\r | |
11 | -- particular, achieving the same results as the tests here is not --\r | |
12 | -- a guarantee that an implementation complies with any Standard --\r | |
13 | -- or specification. The tests are not exhaustive. --\r | |
14 | -- --\r | |
15 | -- Please send comments, suggestions, and corrections to the author: --\r | |
16 | -- Mike Cowlishaw, IBM Fellow --\r | |
17 | -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r | |
18 | -- mfc@uk.ibm.com --\r | |
19 | ------------------------------------------------------------------------\r | |
20 | version: 2.59\r | |
21 | \r | |
22 | precision: 16\r | |
23 | maxExponent: 384\r | |
24 | minExponent: -383\r | |
25 | extended: 1\r | |
26 | clamp: 1\r | |
27 | rounding: half_even\r | |
28 | \r | |
29 | ddred001 reduce '1' -> '1'\r | |
30 | ddred002 reduce '-1' -> '-1'\r | |
31 | ddred003 reduce '1.00' -> '1'\r | |
32 | ddred004 reduce '-1.00' -> '-1'\r | |
33 | ddred005 reduce '0' -> '0'\r | |
34 | ddred006 reduce '0.00' -> '0'\r | |
35 | ddred007 reduce '00.0' -> '0'\r | |
36 | ddred008 reduce '00.00' -> '0'\r | |
37 | ddred009 reduce '00' -> '0'\r | |
38 | ddred010 reduce '0E+1' -> '0'\r | |
39 | ddred011 reduce '0E+5' -> '0'\r | |
40 | \r | |
41 | ddred012 reduce '-2' -> '-2'\r | |
42 | ddred013 reduce '2' -> '2'\r | |
43 | ddred014 reduce '-2.00' -> '-2'\r | |
44 | ddred015 reduce '2.00' -> '2'\r | |
45 | ddred016 reduce '-0' -> '-0'\r | |
46 | ddred017 reduce '-0.00' -> '-0'\r | |
47 | ddred018 reduce '-00.0' -> '-0'\r | |
48 | ddred019 reduce '-00.00' -> '-0'\r | |
49 | ddred020 reduce '-00' -> '-0'\r | |
50 | ddred021 reduce '-0E+5' -> '-0'\r | |
51 | ddred022 reduce '-0E+1' -> '-0'\r | |
52 | \r | |
53 | ddred030 reduce '+0.1' -> '0.1'\r | |
54 | ddred031 reduce '-0.1' -> '-0.1'\r | |
55 | ddred032 reduce '+0.01' -> '0.01'\r | |
56 | ddred033 reduce '-0.01' -> '-0.01'\r | |
57 | ddred034 reduce '+0.001' -> '0.001'\r | |
58 | ddred035 reduce '-0.001' -> '-0.001'\r | |
59 | ddred036 reduce '+0.000001' -> '0.000001'\r | |
60 | ddred037 reduce '-0.000001' -> '-0.000001'\r | |
61 | ddred038 reduce '+0.000000000001' -> '1E-12'\r | |
62 | ddred039 reduce '-0.000000000001' -> '-1E-12'\r | |
63 | \r | |
64 | ddred041 reduce 1.1 -> 1.1\r | |
65 | ddred042 reduce 1.10 -> 1.1\r | |
66 | ddred043 reduce 1.100 -> 1.1\r | |
67 | ddred044 reduce 1.110 -> 1.11\r | |
68 | ddred045 reduce -1.1 -> -1.1\r | |
69 | ddred046 reduce -1.10 -> -1.1\r | |
70 | ddred047 reduce -1.100 -> -1.1\r | |
71 | ddred048 reduce -1.110 -> -1.11\r | |
72 | ddred049 reduce 9.9 -> 9.9\r | |
73 | ddred050 reduce 9.90 -> 9.9\r | |
74 | ddred051 reduce 9.900 -> 9.9\r | |
75 | ddred052 reduce 9.990 -> 9.99\r | |
76 | ddred053 reduce -9.9 -> -9.9\r | |
77 | ddred054 reduce -9.90 -> -9.9\r | |
78 | ddred055 reduce -9.900 -> -9.9\r | |
79 | ddred056 reduce -9.990 -> -9.99\r | |
80 | \r | |
81 | -- some trailing fractional zeros with zeros in units\r | |
82 | ddred060 reduce 10.0 -> 1E+1\r | |
83 | ddred061 reduce 10.00 -> 1E+1\r | |
84 | ddred062 reduce 100.0 -> 1E+2\r | |
85 | ddred063 reduce 100.00 -> 1E+2\r | |
86 | ddred064 reduce 1.1000E+3 -> 1.1E+3\r | |
87 | ddred065 reduce 1.10000E+3 -> 1.1E+3\r | |
88 | ddred066 reduce -10.0 -> -1E+1\r | |
89 | ddred067 reduce -10.00 -> -1E+1\r | |
90 | ddred068 reduce -100.0 -> -1E+2\r | |
91 | ddred069 reduce -100.00 -> -1E+2\r | |
92 | ddred070 reduce -1.1000E+3 -> -1.1E+3\r | |
93 | ddred071 reduce -1.10000E+3 -> -1.1E+3\r | |
94 | \r | |
95 | -- some insignificant trailing zeros with positive exponent\r | |
96 | ddred080 reduce 10E+1 -> 1E+2\r | |
97 | ddred081 reduce 100E+1 -> 1E+3\r | |
98 | ddred082 reduce 1.0E+2 -> 1E+2\r | |
99 | ddred083 reduce 1.0E+3 -> 1E+3\r | |
100 | ddred084 reduce 1.1E+3 -> 1.1E+3\r | |
101 | ddred085 reduce 1.00E+3 -> 1E+3\r | |
102 | ddred086 reduce 1.10E+3 -> 1.1E+3\r | |
103 | ddred087 reduce -10E+1 -> -1E+2\r | |
104 | ddred088 reduce -100E+1 -> -1E+3\r | |
105 | ddred089 reduce -1.0E+2 -> -1E+2\r | |
106 | ddred090 reduce -1.0E+3 -> -1E+3\r | |
107 | ddred091 reduce -1.1E+3 -> -1.1E+3\r | |
108 | ddred092 reduce -1.00E+3 -> -1E+3\r | |
109 | ddred093 reduce -1.10E+3 -> -1.1E+3\r | |
110 | \r | |
111 | -- some significant trailing zeros, were we to be trimming\r | |
112 | ddred100 reduce 11 -> 11\r | |
113 | ddred101 reduce 10 -> 1E+1\r | |
114 | ddred102 reduce 10. -> 1E+1\r | |
115 | ddred103 reduce 1.1E+1 -> 11\r | |
116 | ddred104 reduce 1.0E+1 -> 1E+1\r | |
117 | ddred105 reduce 1.10E+2 -> 1.1E+2\r | |
118 | ddred106 reduce 1.00E+2 -> 1E+2\r | |
119 | ddred107 reduce 1.100E+3 -> 1.1E+3\r | |
120 | ddred108 reduce 1.000E+3 -> 1E+3\r | |
121 | ddred109 reduce 1.000000E+6 -> 1E+6\r | |
122 | ddred110 reduce -11 -> -11\r | |
123 | ddred111 reduce -10 -> -1E+1\r | |
124 | ddred112 reduce -10. -> -1E+1\r | |
125 | ddred113 reduce -1.1E+1 -> -11\r | |
126 | ddred114 reduce -1.0E+1 -> -1E+1\r | |
127 | ddred115 reduce -1.10E+2 -> -1.1E+2\r | |
128 | ddred116 reduce -1.00E+2 -> -1E+2\r | |
129 | ddred117 reduce -1.100E+3 -> -1.1E+3\r | |
130 | ddred118 reduce -1.000E+3 -> -1E+3\r | |
131 | ddred119 reduce -1.00000E+5 -> -1E+5\r | |
132 | ddred120 reduce -1.000000E+6 -> -1E+6\r | |
133 | ddred121 reduce -10.00000E+6 -> -1E+7\r | |
134 | ddred122 reduce -100.0000E+6 -> -1E+8\r | |
135 | ddred123 reduce -1000.000E+6 -> -1E+9\r | |
136 | ddred124 reduce -10000.00E+6 -> -1E+10\r | |
137 | ddred125 reduce -100000.0E+6 -> -1E+11\r | |
138 | ddred126 reduce -1000000.E+6 -> -1E+12\r | |
139 | \r | |
140 | -- examples from decArith\r | |
141 | ddred140 reduce '2.1' -> '2.1'\r | |
142 | ddred141 reduce '-2.0' -> '-2'\r | |
143 | ddred142 reduce '1.200' -> '1.2'\r | |
144 | ddred143 reduce '-120' -> '-1.2E+2'\r | |
145 | ddred144 reduce '120.00' -> '1.2E+2'\r | |
146 | ddred145 reduce '0.00' -> '0'\r | |
147 | \r | |
148 | -- Nmax, Nmin, Ntiny\r | |
149 | -- note origami effect on some of these\r | |
150 | ddred151 reduce 9.999999999999999E+384 -> 9.999999999999999E+384\r | |
151 | ddred152 reduce 9.999999000000000E+380 -> 9.99999900000E+380\r | |
152 | ddred153 reduce 9.999999999990000E+384 -> 9.999999999990000E+384\r | |
153 | ddred154 reduce 1E-383 -> 1E-383\r | |
154 | ddred155 reduce 1.000000000000000E-383 -> 1E-383\r | |
155 | ddred156 reduce 2.000E-395 -> 2E-395 Subnormal\r | |
156 | ddred157 reduce 1E-398 -> 1E-398 Subnormal\r | |
157 | \r | |
158 | ddred161 reduce -1E-398 -> -1E-398 Subnormal\r | |
159 | ddred162 reduce -2.000E-395 -> -2E-395 Subnormal\r | |
160 | ddred163 reduce -1.000000000000000E-383 -> -1E-383\r | |
161 | ddred164 reduce -1E-383 -> -1E-383\r | |
162 | ddred165 reduce -9.999999000000000E+380 -> -9.99999900000E+380\r | |
163 | ddred166 reduce -9.999999999990000E+384 -> -9.999999999990000E+384\r | |
164 | ddred167 reduce -9.999999999999990E+384 -> -9.999999999999990E+384\r | |
165 | ddred168 reduce -9.999999999999999E+384 -> -9.999999999999999E+384\r | |
166 | ddred169 reduce -9.999999999999990E+384 -> -9.999999999999990E+384\r | |
167 | \r | |
168 | \r | |
169 | -- specials (reduce does not affect payload)\r | |
170 | ddred820 reduce 'Inf' -> 'Infinity'\r | |
171 | ddred821 reduce '-Inf' -> '-Infinity'\r | |
172 | ddred822 reduce NaN -> NaN\r | |
173 | ddred823 reduce sNaN -> NaN Invalid_operation\r | |
174 | ddred824 reduce NaN101 -> NaN101\r | |
175 | ddred825 reduce sNaN010 -> NaN10 Invalid_operation\r | |
176 | ddred827 reduce -NaN -> -NaN\r | |
177 | ddred828 reduce -sNaN -> -NaN Invalid_operation\r | |
178 | ddred829 reduce -NaN101 -> -NaN101\r | |
179 | ddred830 reduce -sNaN010 -> -NaN10 Invalid_operation\r | |
180 | \r | |
181 | -- Null test\r | |
182 | ddred900 reduce # -> NaN Invalid_operation\r |