Start packaging the bz2 python module as it is needed for building Qt5
[profile/ivi/python.git] / Lib / test / decimaltestdata / clamp.decTest
1 ------------------------------------------------------------------------
2 -- clamp.decTest -- clamped exponent tests (format-independent)       --
3 -- Copyright (c) IBM Corporation, 2000, 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 ------------------------------------------------------------------------
20 version: 2.59
21
22 -- This set of tests uses the same limits as the 8-byte concrete
23 -- representation, but applies clamping without using format-specific
24 -- conversions.
25
26 extended:    1
27 precision:   16
28 rounding:    half_even
29 maxExponent: 384
30 minExponent: -383
31 clamp:       1
32
33 -- General testcases
34
35 -- Normality
36 clam010 apply   1234567890123456   ->  1234567890123456
37 clam011 apply   1234567890123456.0 ->  1234567890123456 Rounded
38 clam012 apply   1234567890123456.1 ->  1234567890123456 Rounded Inexact
39 clam013 apply  -1234567890123456   -> -1234567890123456
40 clam014 apply  -1234567890123456.0 -> -1234567890123456 Rounded
41 clam015 apply  -1234567890123456.1 -> -1234567890123456 Rounded Inexact
42
43
44 -- Nmax and similar
45 clam022 apply   9.999999999999999E+384  -> 9.999999999999999E+384
46 clam024 apply   1.234567890123456E+384  -> 1.234567890123456E+384
47 -- fold-downs (more below)
48 clam030 apply   1.23E+384               -> 1.230000000000000E+384 Clamped
49 clam032 apply   1E+384                  -> 1.000000000000000E+384 Clamped
50
51 clam051 apply   12345                   -> 12345
52 clam053 apply   1234                    -> 1234
53 clam055 apply   123                     -> 123
54 clam057 apply   12                      -> 12
55 clam059 apply   1                       -> 1
56 clam061 apply   1.23                    -> 1.23
57 clam063 apply   123.45                  -> 123.45
58
59 -- Nmin and below
60 clam071 apply   1E-383                  -> 1E-383
61 clam073 apply   1.000000000000000E-383  -> 1.000000000000000E-383
62 clam075 apply   1.000000000000001E-383  -> 1.000000000000001E-383
63
64 clam077 apply   0.100000000000000E-383  -> 1.00000000000000E-384  Subnormal
65 clam079 apply   0.000000000000010E-383  -> 1.0E-397               Subnormal
66 clam081 apply   0.00000000000001E-383   -> 1E-397                 Subnormal
67 clam083 apply   0.000000000000001E-383  -> 1E-398                 Subnormal
68
69 -- underflows
70 clam090 apply   1e-398                  -> #0000000000000001  Subnormal
71 clam091 apply   1.9e-398                -> #0000000000000002  Subnormal Underflow Inexact Rounded
72 clam092 apply   1.1e-398                -> #0000000000000001  Subnormal Underflow Inexact Rounded
73 clam093 apply   1.00000000001e-398      -> #0000000000000001  Subnormal Underflow Inexact Rounded
74 clam094 apply   1.00000000000001e-398   -> #0000000000000001  Subnormal Underflow Inexact Rounded
75 clam095 apply   1.000000000000001e-398  -> #0000000000000001  Subnormal Underflow Inexact Rounded
76 clam096 apply   0.1e-398                -> #0000000000000000  Subnormal Underflow Inexact Rounded Clamped
77 clam097 apply   0.00000000001e-398      -> #0000000000000000  Subnormal Underflow Inexact Rounded Clamped
78 clam098 apply   0.00000000000001e-398   -> #0000000000000000  Subnormal Underflow Inexact Rounded Clamped
79 clam099 apply   0.000000000000001e-398  -> #0000000000000000  Subnormal Underflow Inexact Rounded Clamped
80
81 -- Same again, negatives
82 -- Nmax and similar
83 clam122 apply  -9.999999999999999E+384  -> -9.999999999999999E+384
84 clam124 apply  -1.234567890123456E+384  -> -1.234567890123456E+384
85 -- fold-downs (more below)
86 clam130 apply  -1.23E+384               -> -1.230000000000000E+384 Clamped
87 clam132 apply  -1E+384                  -> -1.000000000000000E+384 Clamped
88
89 clam151 apply  -12345                   -> -12345
90 clam153 apply  -1234                    -> -1234
91 clam155 apply  -123                     -> -123
92 clam157 apply  -12                      -> -12
93 clam159 apply  -1                       -> -1
94 clam161 apply  -1.23                    -> -1.23
95 clam163 apply  -123.45                  -> -123.45
96
97 -- Nmin and below
98 clam171 apply  -1E-383                  -> -1E-383
99 clam173 apply  -1.000000000000000E-383  -> -1.000000000000000E-383
100 clam175 apply  -1.000000000000001E-383  -> -1.000000000000001E-383
101
102 clam177 apply  -0.100000000000000E-383  -> -1.00000000000000E-384  Subnormal
103 clam179 apply  -0.000000000000010E-383  -> -1.0E-397               Subnormal
104 clam181 apply  -0.00000000000001E-383   -> -1E-397                 Subnormal
105 clam183 apply  -0.000000000000001E-383  -> -1E-398                 Subnormal
106
107 -- underflows
108 clam189 apply   -1e-398                 -> #8000000000000001  Subnormal
109 clam190 apply   -1.0e-398               -> #8000000000000001  Subnormal Rounded
110 clam191 apply   -1.9e-398               -> #8000000000000002  Subnormal Underflow Inexact Rounded
111 clam192 apply   -1.1e-398               -> #8000000000000001  Subnormal Underflow Inexact Rounded
112 clam193 apply   -1.00000000001e-398     -> #8000000000000001  Subnormal Underflow Inexact Rounded
113 clam194 apply   -1.00000000000001e-398  -> #8000000000000001  Subnormal Underflow Inexact Rounded
114 clam195 apply   -1.000000000000001e-398 -> #8000000000000001  Subnormal Underflow Inexact Rounded
115 clam196 apply   -0.1e-398               -> #8000000000000000  Subnormal Underflow Inexact Rounded Clamped
116 clam197 apply   -0.00000000001e-398     -> #8000000000000000  Subnormal Underflow Inexact Rounded Clamped
117 clam198 apply   -0.00000000000001e-398  -> #8000000000000000  Subnormal Underflow Inexact Rounded Clamped
118 clam199 apply   -0.000000000000001e-398 -> #8000000000000000  Subnormal Underflow Inexact Rounded Clamped
119
120 -- zeros
121 clam401 apply   0E-500                  -> 0E-398  Clamped
122 clam402 apply   0E-400                  -> 0E-398  Clamped
123 clam403 apply   0E-398                  -> 0E-398
124 clam404 apply   0.000000000000000E-383  -> 0E-398
125 clam405 apply   0E-2                    ->  0.00
126 clam406 apply   0                       -> 0
127 clam407 apply   0E+3                    -> 0E+3
128 clam408 apply   0E+369                  -> 0E+369
129 -- clamped zeros...
130 clam410 apply   0E+370                  -> 0E+369 Clamped
131 clam411 apply   0E+384                  -> 0E+369 Clamped
132 clam412 apply   0E+400                  -> 0E+369 Clamped
133 clam413 apply   0E+500                  -> 0E+369 Clamped
134
135 -- negative zeros
136 clam420 apply   -0E-500                 -> -0E-398 Clamped
137 clam421 apply   -0E-400                 -> -0E-398 Clamped
138 clam422 apply   -0E-398                 -> -0E-398
139 clam423 apply   -0.000000000000000E-383 -> -0E-398
140 clam424 apply   -0E-2                   -> -0.00
141 clam425 apply   -0                      -> -0
142 clam426 apply   -0E+3                   -> -0E+3
143 clam427 apply   -0E+369                 -> -0E+369
144 -- clamped zeros...
145 clam431 apply   -0E+370                 -> -0E+369 Clamped
146 clam432 apply   -0E+384                 -> -0E+369 Clamped
147 clam433 apply   -0E+400                 -> -0E+369 Clamped
148 clam434 apply   -0E+500                 -> -0E+369 Clamped
149
150 -- fold-down full sequence
151 clam601 apply   1E+384                  -> 1.000000000000000E+384 Clamped
152 clam603 apply   1E+383                  -> 1.00000000000000E+383 Clamped
153 clam605 apply   1E+382                  -> 1.0000000000000E+382 Clamped
154 clam607 apply   1E+381                  -> 1.000000000000E+381 Clamped
155 clam609 apply   1E+380                  -> 1.00000000000E+380 Clamped
156 clam611 apply   1E+379                  -> 1.0000000000E+379 Clamped
157 clam613 apply   1E+378                  -> 1.000000000E+378 Clamped
158 clam615 apply   1E+377                  -> 1.00000000E+377 Clamped
159 clam617 apply   1E+376                  -> 1.0000000E+376 Clamped
160 clam619 apply   1E+375                  -> 1.000000E+375 Clamped
161 clam621 apply   1E+374                  -> 1.00000E+374 Clamped
162 clam623 apply   1E+373                  -> 1.0000E+373 Clamped
163 clam625 apply   1E+372                  -> 1.000E+372 Clamped
164 clam627 apply   1E+371                  -> 1.00E+371 Clamped
165 clam629 apply   1E+370                  -> 1.0E+370 Clamped
166 clam631 apply   1E+369                  -> 1E+369
167 clam633 apply   1E+368                  -> 1E+368
168 -- same with 9s
169 clam641 apply   9E+384                  -> 9.000000000000000E+384 Clamped
170 clam643 apply   9E+383                  -> 9.00000000000000E+383 Clamped
171 clam645 apply   9E+382                  -> 9.0000000000000E+382 Clamped
172 clam647 apply   9E+381                  -> 9.000000000000E+381 Clamped
173 clam649 apply   9E+380                  -> 9.00000000000E+380 Clamped
174 clam651 apply   9E+379                  -> 9.0000000000E+379 Clamped
175 clam653 apply   9E+378                  -> 9.000000000E+378 Clamped
176 clam655 apply   9E+377                  -> 9.00000000E+377 Clamped
177 clam657 apply   9E+376                  -> 9.0000000E+376 Clamped
178 clam659 apply   9E+375                  -> 9.000000E+375 Clamped
179 clam661 apply   9E+374                  -> 9.00000E+374 Clamped
180 clam663 apply   9E+373                  -> 9.0000E+373 Clamped
181 clam665 apply   9E+372                  -> 9.000E+372 Clamped
182 clam667 apply   9E+371                  -> 9.00E+371 Clamped
183 clam669 apply   9E+370                  -> 9.0E+370 Clamped
184 clam671 apply   9E+369                  -> 9E+369
185 clam673 apply   9E+368                  -> 9E+368
186
187 -- subnormals clamped to 0-Etiny
188 precision:   16
189 maxExponent: 384
190 minExponent: -383
191 clam681 apply 7E-398     -> 7E-398 Subnormal
192 clam682 apply 0E-398     -> 0E-398
193 clam683 apply 7E-399     -> 1E-398 Subnormal Underflow Inexact Rounded
194 clam684 apply 4E-399     -> 0E-398 Clamped Subnormal Underflow Inexact Rounded
195 clam685 apply 7E-400     -> 0E-398 Clamped Subnormal Underflow Inexact Rounded
196 clam686 apply 7E-401     -> 0E-398 Clamped Subnormal Underflow Inexact Rounded
197 clam687 apply 0E-399     -> 0E-398 Clamped
198 clam688 apply 0E-400     -> 0E-398 Clamped
199 clam689 apply 0E-401     -> 0E-398 Clamped
200
201 -- example from documentation
202 precision:   7
203 rounding:    half_even
204 maxExponent: +96
205 minExponent: -95
206
207 clamp:       0
208 clam700 apply   1.23E+96                -> 1.23E+96
209
210 clamp:       1
211 clam701 apply   1.23E+96                -> 1.230000E+96 Clamped