1------------------------------------------------------------------------
2-- nextplus.decTest -- decimal next that is greater [754r nextup]     --
3-- Copyright (c) IBM Corporation, 1981, 2008.  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.59
21
22extended:    1
23precision:   9
24rounding:    half_up
25maxExponent: 384
26minexponent: -383
27
28nextp001 nextplus  0.999999995 ->   0.999999996
29nextp002 nextplus  0.999999996 ->   0.999999997
30nextp003 nextplus  0.999999997 ->   0.999999998
31nextp004 nextplus  0.999999998 ->   0.999999999
32nextp005 nextplus  0.999999999 ->   1.00000000
33nextp006 nextplus  1.00000000  ->   1.00000001
34nextp007 nextplus  1.0         ->   1.00000001
35nextp008 nextplus  1           ->   1.00000001
36nextp009 nextplus  1.00000001  ->   1.00000002
37nextp010 nextplus  1.00000002  ->   1.00000003
38nextp011 nextplus  1.00000003  ->   1.00000004
39nextp012 nextplus  1.00000004  ->   1.00000005
40nextp013 nextplus  1.00000005  ->   1.00000006
41nextp014 nextplus  1.00000006  ->   1.00000007
42nextp015 nextplus  1.00000007  ->   1.00000008
43nextp016 nextplus  1.00000008  ->   1.00000009
44nextp017 nextplus  1.00000009  ->   1.00000010
45nextp018 nextplus  1.00000010  ->   1.00000011
46nextp019 nextplus  1.00000011  ->   1.00000012
47
48nextp021 nextplus -0.999999995 ->  -0.999999994
49nextp022 nextplus -0.999999996 ->  -0.999999995
50nextp023 nextplus -0.999999997 ->  -0.999999996
51nextp024 nextplus -0.999999998 ->  -0.999999997
52nextp025 nextplus -0.999999999 ->  -0.999999998
53nextp026 nextplus -1.00000000  ->  -0.999999999
54nextp027 nextplus -1.0         ->  -0.999999999
55nextp028 nextplus -1           ->  -0.999999999
56nextp029 nextplus -1.00000001  ->  -1.00000000
57nextp030 nextplus -1.00000002  ->  -1.00000001
58nextp031 nextplus -1.00000003  ->  -1.00000002
59nextp032 nextplus -1.00000004  ->  -1.00000003
60nextp033 nextplus -1.00000005  ->  -1.00000004
61nextp034 nextplus -1.00000006  ->  -1.00000005
62nextp035 nextplus -1.00000007  ->  -1.00000006
63nextp036 nextplus -1.00000008  ->  -1.00000007
64nextp037 nextplus -1.00000009  ->  -1.00000008
65nextp038 nextplus -1.00000010  ->  -1.00000009
66nextp039 nextplus -1.00000011  ->  -1.00000010
67nextp040 nextplus -1.00000012  ->  -1.00000011
68
69-- input operand is >precision
70nextp041 nextplus  1.00000010998  ->   1.00000011
71nextp042 nextplus  1.00000010999  ->   1.00000011
72nextp043 nextplus  1.00000011000  ->   1.00000012
73nextp044 nextplus  1.00000011001  ->   1.00000012
74nextp045 nextplus  1.00000011002  ->   1.00000012
75nextp046 nextplus  1.00000011002  ->   1.00000012
76nextp047 nextplus  1.00000011052  ->   1.00000012
77nextp048 nextplus  1.00000011552  ->   1.00000012
78nextp049 nextplus -1.00000010998  ->  -1.00000010
79nextp050 nextplus -1.00000010999  ->  -1.00000010
80nextp051 nextplus -1.00000011000  ->  -1.00000010
81nextp052 nextplus -1.00000011001  ->  -1.00000011
82nextp053 nextplus -1.00000011002  ->  -1.00000011
83nextp054 nextplus -1.00000011002  ->  -1.00000011
84nextp055 nextplus -1.00000011052  ->  -1.00000011
85nextp056 nextplus -1.00000011552  ->  -1.00000011
86-- ultra-tiny inputs
87nextp060 nextplus  1E-99999       ->   1E-391
88nextp061 nextplus  1E-999999999   ->   1E-391
89nextp062 nextplus  1E-391         ->   2E-391
90nextp063 nextplus -1E-99999       ->  -0E-391
91nextp064 nextplus -1E-999999999   ->  -0E-391
92nextp065 nextplus -1E-391         ->  -0E-391
93
94-- Zeros
95nextp100 nextplus  0           ->  1E-391
96nextp101 nextplus  0.00        ->  1E-391
97nextp102 nextplus  0E-300      ->  1E-391
98nextp103 nextplus  0E+300      ->  1E-391
99nextp104 nextplus  0E+30000    ->  1E-391
100nextp105 nextplus -0           ->  1E-391
101nextp106 nextplus -0.00        ->  1E-391
102nextp107 nextplus -0E-300      ->  1E-391
103nextp108 nextplus -0E+300      ->  1E-391
104nextp109 nextplus -0E+30000    ->  1E-391
105
106maxExponent: 999
107minexponent: -999
108precision: 9
109-- specials
110nextp150 nextplus   Inf    ->  Infinity
111nextp151 nextplus  -Inf    -> -9.99999999E+999
112nextp152 nextplus   NaN    ->  NaN
113nextp153 nextplus  sNaN    ->  NaN   Invalid_operation
114nextp154 nextplus   NaN77  ->  NaN77
115nextp155 nextplus  sNaN88  ->  NaN88 Invalid_operation
116nextp156 nextplus  -NaN    -> -NaN
117nextp157 nextplus -sNaN    -> -NaN   Invalid_operation
118nextp158 nextplus  -NaN77  -> -NaN77
119nextp159 nextplus -sNaN88  -> -NaN88 Invalid_operation
120
121-- Nmax, Nmin, Ntiny, subnormals
122nextp170 nextplus  9.99999999E+999   -> Infinity
123nextp171 nextplus  9.99999998E+999   -> 9.99999999E+999
124nextp172 nextplus  1E-999            -> 1.00000001E-999
125nextp173 nextplus  1.00000000E-999   -> 1.00000001E-999
126nextp174 nextplus  9E-1007           -> 1.0E-1006
127nextp175 nextplus  9.9E-1006         -> 1.00E-1005
128nextp176 nextplus  9.9999E-1003      -> 1.00000E-1002
129nextp177 nextplus  9.9999999E-1000   -> 1.00000000E-999
130nextp178 nextplus  9.9999998E-1000   -> 9.9999999E-1000
131nextp179 nextplus  9.9999997E-1000   -> 9.9999998E-1000
132nextp180 nextplus  0E-1007           -> 1E-1007
133nextp181 nextplus  1E-1007           -> 2E-1007
134nextp182 nextplus  2E-1007           -> 3E-1007
135
136nextp183 nextplus  -0E-1007          ->  1E-1007
137nextp184 nextplus  -1E-1007          -> -0E-1007
138nextp185 nextplus  -2E-1007          -> -1E-1007
139nextp186 nextplus  -10E-1007         -> -9E-1007
140nextp187 nextplus  -100E-1007        -> -9.9E-1006
141nextp188 nextplus  -100000E-1007     -> -9.9999E-1003
142nextp189 nextplus  -1.0000E-999      -> -9.9999999E-1000
143nextp190 nextplus  -1.00000000E-999  -> -9.9999999E-1000
144nextp191 nextplus  -1E-999           -> -9.9999999E-1000
145nextp192 nextplus  -9.99999998E+999  -> -9.99999997E+999
146nextp193 nextplus  -9.99999999E+999  -> -9.99999998E+999
147
148-- Null tests
149nextp900 nextplus  # -> NaN Invalid_operation
150
151