1 ------------------------------------------------------------------------
\r
2 -- nextminus.decTest -- decimal next that is less [754r nextdown] --
\r
3 -- Copyright (c) IBM Corporation, 1981, 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
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
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
28 nextm001 nextminus 0.999999995 -> 0.999999994
\r
29 nextm002 nextminus 0.999999996 -> 0.999999995
\r
30 nextm003 nextminus 0.999999997 -> 0.999999996
\r
31 nextm004 nextminus 0.999999998 -> 0.999999997
\r
32 nextm005 nextminus 0.999999999 -> 0.999999998
\r
33 nextm006 nextminus 1.00000000 -> 0.999999999
\r
34 nextm007 nextminus 1.0 -> 0.999999999
\r
35 nextm008 nextminus 1 -> 0.999999999
\r
36 nextm009 nextminus 1.00000001 -> 1.00000000
\r
37 nextm010 nextminus 1.00000002 -> 1.00000001
\r
38 nextm011 nextminus 1.00000003 -> 1.00000002
\r
39 nextm012 nextminus 1.00000004 -> 1.00000003
\r
40 nextm013 nextminus 1.00000005 -> 1.00000004
\r
41 nextm014 nextminus 1.00000006 -> 1.00000005
\r
42 nextm015 nextminus 1.00000007 -> 1.00000006
\r
43 nextm016 nextminus 1.00000008 -> 1.00000007
\r
44 nextm017 nextminus 1.00000009 -> 1.00000008
\r
45 nextm018 nextminus 1.00000010 -> 1.00000009
\r
46 nextm019 nextminus 1.00000011 -> 1.00000010
\r
47 nextm020 nextminus 1.00000012 -> 1.00000011
\r
49 nextm021 nextminus -0.999999995 -> -0.999999996
\r
50 nextm022 nextminus -0.999999996 -> -0.999999997
\r
51 nextm023 nextminus -0.999999997 -> -0.999999998
\r
52 nextm024 nextminus -0.999999998 -> -0.999999999
\r
53 nextm025 nextminus -0.999999999 -> -1.00000000
\r
54 nextm026 nextminus -1.00000000 -> -1.00000001
\r
55 nextm027 nextminus -1.0 -> -1.00000001
\r
56 nextm028 nextminus -1 -> -1.00000001
\r
57 nextm029 nextminus -1.00000001 -> -1.00000002
\r
58 nextm030 nextminus -1.00000002 -> -1.00000003
\r
59 nextm031 nextminus -1.00000003 -> -1.00000004
\r
60 nextm032 nextminus -1.00000004 -> -1.00000005
\r
61 nextm033 nextminus -1.00000005 -> -1.00000006
\r
62 nextm034 nextminus -1.00000006 -> -1.00000007
\r
63 nextm035 nextminus -1.00000007 -> -1.00000008
\r
64 nextm036 nextminus -1.00000008 -> -1.00000009
\r
65 nextm037 nextminus -1.00000009 -> -1.00000010
\r
66 nextm038 nextminus -1.00000010 -> -1.00000011
\r
67 nextm039 nextminus -1.00000011 -> -1.00000012
\r
69 -- input operand is >precision
\r
70 nextm041 nextminus 1.00000010998 -> 1.00000010
\r
71 nextm042 nextminus 1.00000010999 -> 1.00000010
\r
72 nextm043 nextminus 1.00000011000 -> 1.00000010
\r
73 nextm044 nextminus 1.00000011001 -> 1.00000011
\r
74 nextm045 nextminus 1.00000011002 -> 1.00000011
\r
75 nextm046 nextminus 1.00000011002 -> 1.00000011
\r
76 nextm047 nextminus 1.00000011052 -> 1.00000011
\r
77 nextm048 nextminus 1.00000011552 -> 1.00000011
\r
78 nextm049 nextminus -1.00000010998 -> -1.00000011
\r
79 nextm050 nextminus -1.00000010999 -> -1.00000011
\r
80 nextm051 nextminus -1.00000011000 -> -1.00000012
\r
81 nextm052 nextminus -1.00000011001 -> -1.00000012
\r
82 nextm053 nextminus -1.00000011002 -> -1.00000012
\r
83 nextm054 nextminus -1.00000011002 -> -1.00000012
\r
84 nextm055 nextminus -1.00000011052 -> -1.00000012
\r
85 nextm056 nextminus -1.00000011552 -> -1.00000012
\r
86 -- ultra-tiny inputs
\r
87 nextm060 nextminus 1E-99999 -> 0E-391
\r
88 nextm061 nextminus 1E-999999999 -> 0E-391
\r
89 nextm062 nextminus 1E-391 -> 0E-391
\r
90 nextm063 nextminus -1E-99999 -> -1E-391
\r
91 nextm064 nextminus -1E-999999999 -> -1E-391
\r
92 nextm065 nextminus -1E-391 -> -2E-391
\r
95 nextm100 nextminus -0 -> -1E-391
\r
96 nextm101 nextminus 0 -> -1E-391
\r
97 nextm102 nextminus 0.00 -> -1E-391
\r
98 nextm103 nextminus -0.00 -> -1E-391
\r
99 nextm104 nextminus 0E-300 -> -1E-391
\r
100 nextm105 nextminus 0E+300 -> -1E-391
\r
101 nextm106 nextminus 0E+30000 -> -1E-391
\r
102 nextm107 nextminus -0E+30000 -> -1E-391
\r
108 nextm150 nextminus Inf -> 9.99999999E+999
\r
109 nextm151 nextminus -Inf -> -Infinity
\r
110 nextm152 nextminus NaN -> NaN
\r
111 nextm153 nextminus sNaN -> NaN Invalid_operation
\r
112 nextm154 nextminus NaN77 -> NaN77
\r
113 nextm155 nextminus sNaN88 -> NaN88 Invalid_operation
\r
114 nextm156 nextminus -NaN -> -NaN
\r
115 nextm157 nextminus -sNaN -> -NaN Invalid_operation
\r
116 nextm158 nextminus -NaN77 -> -NaN77
\r
117 nextm159 nextminus -sNaN88 -> -NaN88 Invalid_operation
\r
119 -- Nmax, Nmin, Ntiny, subnormals
\r
120 nextm170 nextminus 9.99999999E+999 -> 9.99999998E+999
\r
121 nextm171 nextminus 9.99999998E+999 -> 9.99999997E+999
\r
122 nextm172 nextminus 1E-999 -> 9.9999999E-1000
\r
123 nextm173 nextminus 1.00000000E-999 -> 9.9999999E-1000
\r
124 nextm174 nextminus 9E-1007 -> 8E-1007
\r
125 nextm175 nextminus 9.9E-1006 -> 9.8E-1006
\r
126 nextm176 nextminus 9.9999E-1003 -> 9.9998E-1003
\r
127 nextm177 nextminus 9.9999999E-1000 -> 9.9999998E-1000
\r
128 nextm178 nextminus 9.9999998E-1000 -> 9.9999997E-1000
\r
129 nextm179 nextminus 9.9999997E-1000 -> 9.9999996E-1000
\r
130 nextm180 nextminus 0E-1007 -> -1E-1007
\r
131 nextm181 nextminus 1E-1007 -> 0E-1007
\r
132 nextm182 nextminus 2E-1007 -> 1E-1007
\r
134 nextm183 nextminus -0E-1007 -> -1E-1007
\r
135 nextm184 nextminus -1E-1007 -> -2E-1007
\r
136 nextm185 nextminus -2E-1007 -> -3E-1007
\r
137 nextm186 nextminus -10E-1007 -> -1.1E-1006
\r
138 nextm187 nextminus -100E-1007 -> -1.01E-1005
\r
139 nextm188 nextminus -100000E-1007 -> -1.00001E-1002
\r
140 nextm189 nextminus -1.0000E-999 -> -1.00000001E-999
\r
141 nextm190 nextminus -1.00000000E-999 -> -1.00000001E-999
\r
142 nextm191 nextminus -1E-999 -> -1.00000001E-999
\r
143 nextm192 nextminus -9.99999998E+999 -> -9.99999999E+999
\r
144 nextm193 nextminus -9.99999999E+999 -> -Infinity
\r
147 nextm900 nextminus # -> NaN Invalid_operation
\r