]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/test/decimaltestdata/dsEncode.decTest
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / test / decimaltestdata / dsEncode.decTest
CommitLineData
4710c53d 1------------------------------------------------------------------------\r
2-- dsEncode.decTest -- decimal four-byte format testcases --\r
3-- Copyright (c) IBM Corporation, 2000, 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-- [Previously called decimal32.decTest]\r
21version: 2.59\r
22\r
23-- This set of tests is for the four-byte concrete representation.\r
24-- Its characteristics are:\r
25--\r
26-- 1 bit sign\r
27-- 5 bits combination field\r
28-- 6 bits exponent continuation\r
29-- 20 bits coefficient continuation\r
30--\r
31-- Total exponent length 8 bits\r
32-- Total coefficient length 24 bits (7 digits)\r
33--\r
34-- Elimit = 191 (maximum encoded exponent)\r
35-- Emax = 96 (largest exponent value)\r
36-- Emin = -95 (smallest exponent value)\r
37-- bias = 101 (subtracted from encoded exponent) = -Etiny\r
38\r
39-- The testcases here have only exactly representable data on the\r
40-- 'left-hand-side'; rounding from strings is tested in 'base'\r
41-- testcase groups.\r
42\r
43extended: 1\r
44clamp: 1\r
45precision: 7\r
46rounding: half_up\r
47maxExponent: 96\r
48minExponent: -95\r
49\r
50-- General testcases\r
51-- (mostly derived from the Strawman 4 document and examples)\r
52decs001 apply #A23003D0 -> -7.50\r
53decs002 apply -7.50 -> #A23003D0\r
54-- derivative canonical plain strings\r
55decs003 apply #A26003D0 -> -7.50E+3\r
56decs004 apply -7.50E+3 -> #A26003D0\r
57decs005 apply #A25003D0 -> -750\r
58decs006 apply -750 -> #A25003D0\r
59decs007 apply #A24003D0 -> -75.0\r
60decs008 apply -75.0 -> #A24003D0\r
61decs009 apply #A22003D0 -> -0.750\r
62decs010 apply -0.750 -> #A22003D0\r
63decs011 apply #A21003D0 -> -0.0750\r
64decs012 apply -0.0750 -> #A21003D0\r
65decs013 apply #A1f003D0 -> -0.000750\r
66decs014 apply -0.000750 -> #A1f003D0\r
67decs015 apply #A1d003D0 -> -0.00000750\r
68decs016 apply -0.00000750 -> #A1d003D0\r
69decs017 apply #A1c003D0 -> -7.50E-7\r
70decs018 apply -7.50E-7 -> #A1c003D0\r
71\r
72-- Normality\r
73decs020 apply 1234567 -> #2654d2e7\r
74decs021 apply -1234567 -> #a654d2e7\r
75decs022 apply 1111111 -> #26524491\r
76\r
77-- Nmax and similar\r
78decs031 apply 9.999999E+96 -> #77f3fcff\r
79decs032 apply #77f3fcff -> 9.999999E+96\r
80decs033 apply 1.234567E+96 -> #47f4d2e7\r
81decs034 apply #47f4d2e7 -> 1.234567E+96\r
82-- fold-downs (more below)\r
83decs035 apply 1.23E+96 -> #47f4c000 Clamped\r
84decs036 apply #47f4c000 -> 1.230000E+96\r
85decs037 apply 1E+96 -> #47f00000 Clamped\r
86decs038 apply #47f00000 -> 1.000000E+96\r
87\r
88decs051 apply 12345 -> #225049c5\r
89decs052 apply #225049c5 -> 12345\r
90decs053 apply 1234 -> #22500534\r
91decs054 apply #22500534 -> 1234\r
92decs055 apply 123 -> #225000a3\r
93decs056 apply #225000a3 -> 123\r
94decs057 apply 12 -> #22500012\r
95decs058 apply #22500012 -> 12\r
96decs059 apply 1 -> #22500001\r
97decs060 apply #22500001 -> 1\r
98decs061 apply 1.23 -> #223000a3\r
99decs062 apply #223000a3 -> 1.23\r
100decs063 apply 123.45 -> #223049c5\r
101decs064 apply #223049c5 -> 123.45\r
102\r
103-- Nmin and below\r
104decs071 apply 1E-95 -> #00600001\r
105decs072 apply #00600001 -> 1E-95\r
106decs073 apply 1.000000E-95 -> #04000000\r
107decs074 apply #04000000 -> 1.000000E-95\r
108decs075 apply 1.000001E-95 -> #04000001\r
109decs076 apply #04000001 -> 1.000001E-95\r
110\r
111decs077 apply 0.100000E-95 -> #00020000 Subnormal\r
112decs07x apply 1.00000E-96 -> 1.00000E-96 Subnormal\r
113decs078 apply #00020000 -> 1.00000E-96 Subnormal\r
114decs079 apply 0.000010E-95 -> #00000010 Subnormal\r
115decs080 apply #00000010 -> 1.0E-100 Subnormal\r
116decs081 apply 0.000001E-95 -> #00000001 Subnormal\r
117decs082 apply #00000001 -> 1E-101 Subnormal\r
118decs083 apply 1e-101 -> #00000001 Subnormal\r
119decs084 apply #00000001 -> 1E-101 Subnormal\r
120decs08x apply 1e-101 -> 1E-101 Subnormal\r
121\r
122-- underflows cannot be tested; just check edge case\r
123decs090 apply 1e-101 -> #00000001 Subnormal\r
124\r
125-- same again, negatives --\r
126\r
127-- Nmax and similar\r
128decs122 apply -9.999999E+96 -> #f7f3fcff\r
129decs123 apply #f7f3fcff -> -9.999999E+96\r
130decs124 apply -1.234567E+96 -> #c7f4d2e7\r
131decs125 apply #c7f4d2e7 -> -1.234567E+96\r
132-- fold-downs (more below)\r
133decs130 apply -1.23E+96 -> #c7f4c000 Clamped\r
134decs131 apply #c7f4c000 -> -1.230000E+96\r
135decs132 apply -1E+96 -> #c7f00000 Clamped\r
136decs133 apply #c7f00000 -> -1.000000E+96\r
137\r
138decs151 apply -12345 -> #a25049c5\r
139decs152 apply #a25049c5 -> -12345\r
140decs153 apply -1234 -> #a2500534\r
141decs154 apply #a2500534 -> -1234\r
142decs155 apply -123 -> #a25000a3\r
143decs156 apply #a25000a3 -> -123\r
144decs157 apply -12 -> #a2500012\r
145decs158 apply #a2500012 -> -12\r
146decs159 apply -1 -> #a2500001\r
147decs160 apply #a2500001 -> -1\r
148decs161 apply -1.23 -> #a23000a3\r
149decs162 apply #a23000a3 -> -1.23\r
150decs163 apply -123.45 -> #a23049c5\r
151decs164 apply #a23049c5 -> -123.45\r
152\r
153-- Nmin and below\r
154decs171 apply -1E-95 -> #80600001\r
155decs172 apply #80600001 -> -1E-95\r
156decs173 apply -1.000000E-95 -> #84000000\r
157decs174 apply #84000000 -> -1.000000E-95\r
158decs175 apply -1.000001E-95 -> #84000001\r
159decs176 apply #84000001 -> -1.000001E-95\r
160\r
161decs177 apply -0.100000E-95 -> #80020000 Subnormal\r
162decs178 apply #80020000 -> -1.00000E-96 Subnormal\r
163decs179 apply -0.000010E-95 -> #80000010 Subnormal\r
164decs180 apply #80000010 -> -1.0E-100 Subnormal\r
165decs181 apply -0.000001E-95 -> #80000001 Subnormal\r
166decs182 apply #80000001 -> -1E-101 Subnormal\r
167decs183 apply -1e-101 -> #80000001 Subnormal\r
168decs184 apply #80000001 -> -1E-101 Subnormal\r
169\r
170-- underflow edge case\r
171decs190 apply -1e-101 -> #80000001 Subnormal\r
172\r
173-- zeros\r
174decs400 apply 0E-400 -> #00000000 Clamped\r
175decs401 apply 0E-101 -> #00000000\r
176decs402 apply #00000000 -> 0E-101\r
177decs403 apply 0.000000E-95 -> #00000000\r
178decs404 apply #00000000 -> 0E-101\r
179decs405 apply 0E-2 -> #22300000\r
180decs406 apply #22300000 -> 0.00\r
181decs407 apply 0 -> #22500000\r
182decs408 apply #22500000 -> 0\r
183decs409 apply 0E+3 -> #22800000\r
184decs410 apply #22800000 -> 0E+3\r
185decs411 apply 0E+90 -> #43f00000\r
186decs412 apply #43f00000 -> 0E+90\r
187-- clamped zeros...\r
188decs413 apply 0E+91 -> #43f00000 Clamped\r
189decs414 apply #43f00000 -> 0E+90\r
190decs415 apply 0E+96 -> #43f00000 Clamped\r
191decs416 apply #43f00000 -> 0E+90\r
192decs417 apply 0E+400 -> #43f00000 Clamped\r
193decs418 apply #43f00000 -> 0E+90\r
194\r
195-- negative zeros\r
196decs420 apply -0E-400 -> #80000000 Clamped\r
197decs421 apply -0E-101 -> #80000000\r
198decs422 apply #80000000 -> -0E-101\r
199decs423 apply -0.000000E-95 -> #80000000\r
200decs424 apply #80000000 -> -0E-101\r
201decs425 apply -0E-2 -> #a2300000\r
202decs426 apply #a2300000 -> -0.00\r
203decs427 apply -0 -> #a2500000\r
204decs428 apply #a2500000 -> -0\r
205decs429 apply -0E+3 -> #a2800000\r
206decs430 apply #a2800000 -> -0E+3\r
207decs431 apply -0E+90 -> #c3f00000\r
208decs432 apply #c3f00000 -> -0E+90\r
209-- clamped zeros...\r
210decs433 apply -0E+91 -> #c3f00000 Clamped\r
211decs434 apply #c3f00000 -> -0E+90\r
212decs435 apply -0E+96 -> #c3f00000 Clamped\r
213decs436 apply #c3f00000 -> -0E+90\r
214decs437 apply -0E+400 -> #c3f00000 Clamped\r
215decs438 apply #c3f00000 -> -0E+90\r
216\r
217-- Specials\r
218decs500 apply Infinity -> #78000000\r
219decs501 apply #78787878 -> #78000000\r
220decs502 apply #78000000 -> Infinity\r
221decs503 apply #79797979 -> #78000000\r
222decs504 apply #79000000 -> Infinity\r
223decs505 apply #7a7a7a7a -> #78000000\r
224decs506 apply #7a000000 -> Infinity\r
225decs507 apply #7b7b7b7b -> #78000000\r
226decs508 apply #7b000000 -> Infinity\r
227decs509 apply #7c7c7c7c -> #7c0c7c7c\r
228\r
229decs510 apply NaN -> #7c000000\r
230decs511 apply #7c000000 -> NaN\r
231decs512 apply #7d7d7d7d -> #7c0d7d7d\r
232decs513 apply #7d000000 -> NaN\r
233decs514 apply #7e7e7e7e -> #7e0e7c7e\r
234decs515 apply #7e000000 -> sNaN\r
235decs516 apply #7f7f7f7f -> #7e0f7c7f\r
236decs517 apply #7f000000 -> sNaN\r
237decs518 apply #7fffffff -> sNaN999999\r
238decs519 apply #7fffffff -> #7e03fcff\r
239\r
240decs520 apply -Infinity -> #f8000000\r
241decs521 apply #f8787878 -> #f8000000\r
242decs522 apply #f8000000 -> -Infinity\r
243decs523 apply #f9797979 -> #f8000000\r
244decs524 apply #f9000000 -> -Infinity\r
245decs525 apply #fa7a7a7a -> #f8000000\r
246decs526 apply #fa000000 -> -Infinity\r
247decs527 apply #fb7b7b7b -> #f8000000\r
248decs528 apply #fb000000 -> -Infinity\r
249\r
250decs529 apply -NaN -> #fc000000\r
251decs530 apply #fc7c7c7c -> #fc0c7c7c\r
252decs531 apply #fc000000 -> -NaN\r
253decs532 apply #fd7d7d7d -> #fc0d7d7d\r
254decs533 apply #fd000000 -> -NaN\r
255decs534 apply #fe7e7e7e -> #fe0e7c7e\r
256decs535 apply #fe000000 -> -sNaN\r
257decs536 apply #ff7f7f7f -> #fe0f7c7f\r
258decs537 apply #ff000000 -> -sNaN\r
259decs538 apply #ffffffff -> -sNaN999999\r
260decs539 apply #ffffffff -> #fe03fcff\r
261\r
262-- diagnostic NaNs\r
263decs540 apply NaN -> #7c000000\r
264decs541 apply NaN0 -> #7c000000\r
265decs542 apply NaN1 -> #7c000001\r
266decs543 apply NaN12 -> #7c000012\r
267decs544 apply NaN79 -> #7c000079\r
268decs545 apply NaN12345 -> #7c0049c5\r
269decs546 apply NaN123456 -> #7c028e56\r
270decs547 apply NaN799799 -> #7c0f7fdf\r
271decs548 apply NaN999999 -> #7c03fcff\r
272\r
273\r
274-- fold-down full sequence\r
275decs601 apply 1E+96 -> #47f00000 Clamped\r
276decs602 apply #47f00000 -> 1.000000E+96\r
277decs603 apply 1E+95 -> #43f20000 Clamped\r
278decs604 apply #43f20000 -> 1.00000E+95\r
279decs605 apply 1E+94 -> #43f04000 Clamped\r
280decs606 apply #43f04000 -> 1.0000E+94\r
281decs607 apply 1E+93 -> #43f00400 Clamped\r
282decs608 apply #43f00400 -> 1.000E+93\r
283decs609 apply 1E+92 -> #43f00080 Clamped\r
284decs610 apply #43f00080 -> 1.00E+92\r
285decs611 apply 1E+91 -> #43f00010 Clamped\r
286decs612 apply #43f00010 -> 1.0E+91\r
287decs613 apply 1E+90 -> #43f00001\r
288decs614 apply #43f00001 -> 1E+90\r
289\r
290\r
291-- Selected DPD codes\r
292decs700 apply #22500000 -> 0\r
293decs701 apply #22500009 -> 9\r
294decs702 apply #22500010 -> 10\r
295decs703 apply #22500019 -> 19\r
296decs704 apply #22500020 -> 20\r
297decs705 apply #22500029 -> 29\r
298decs706 apply #22500030 -> 30\r
299decs707 apply #22500039 -> 39\r
300decs708 apply #22500040 -> 40\r
301decs709 apply #22500049 -> 49\r
302decs710 apply #22500050 -> 50\r
303decs711 apply #22500059 -> 59\r
304decs712 apply #22500060 -> 60\r
305decs713 apply #22500069 -> 69\r
306decs714 apply #22500070 -> 70\r
307decs715 apply #22500071 -> 71\r
308decs716 apply #22500072 -> 72\r
309decs717 apply #22500073 -> 73\r
310decs718 apply #22500074 -> 74\r
311decs719 apply #22500075 -> 75\r
312decs720 apply #22500076 -> 76\r
313decs721 apply #22500077 -> 77\r
314decs722 apply #22500078 -> 78\r
315decs723 apply #22500079 -> 79\r
316\r
317decs730 apply #2250029e -> 994\r
318decs731 apply #2250029f -> 995\r
319decs732 apply #225002a0 -> 520\r
320decs733 apply #225002a1 -> 521\r
321\r
322-- DPD: one of each of the huffman groups\r
323decs740 apply #225003f7 -> 777\r
324decs741 apply #225003f8 -> 778\r
325decs742 apply #225003eb -> 787\r
326decs743 apply #2250037d -> 877\r
327decs744 apply #2250039f -> 997\r
328decs745 apply #225003bf -> 979\r
329decs746 apply #225003df -> 799\r
330decs747 apply #2250006e -> 888\r
331\r
332\r
333-- DPD all-highs cases (includes the 24 redundant codes)\r
334decs750 apply #2250006e -> 888\r
335decs751 apply #2250016e -> 888\r
336decs752 apply #2250026e -> 888\r
337decs753 apply #2250036e -> 888\r
338decs754 apply #2250006f -> 889\r
339decs755 apply #2250016f -> 889\r
340decs756 apply #2250026f -> 889\r
341decs757 apply #2250036f -> 889\r
342\r
343decs760 apply #2250007e -> 898\r
344decs761 apply #2250017e -> 898\r
345decs762 apply #2250027e -> 898\r
346decs763 apply #2250037e -> 898\r
347decs764 apply #2250007f -> 899\r
348decs765 apply #2250017f -> 899\r
349decs766 apply #2250027f -> 899\r
350decs767 apply #2250037f -> 899\r
351\r
352decs770 apply #225000ee -> 988\r
353decs771 apply #225001ee -> 988\r
354decs772 apply #225002ee -> 988\r
355decs773 apply #225003ee -> 988\r
356decs774 apply #225000ef -> 989\r
357decs775 apply #225001ef -> 989\r
358decs776 apply #225002ef -> 989\r
359decs777 apply #225003ef -> 989\r
360\r
361decs780 apply #225000fe -> 998\r
362decs781 apply #225001fe -> 998\r
363decs782 apply #225002fe -> 998\r
364decs783 apply #225003fe -> 998\r
365decs784 apply #225000ff -> 999\r
366decs785 apply #225001ff -> 999\r
367decs786 apply #225002ff -> 999\r
368decs787 apply #225003ff -> 999\r
369\r
370-- narrowing case\r
371decs790 apply 2.00E-99 -> #00000100 Subnormal\r
372decs791 apply #00000100 -> 2.00E-99 Subnormal\r