1--TEST--
2Test sprintf() function : usage variations - unsigned formats with float values
3--SKIPIF--
4<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?>
5--FILE--
6<?php
7/* Prototype  : string sprintf(string $format [, mixed $arg1 [, mixed ...]])
8 * Description: Return a formatted string
9 * Source code: ext/standard/formatted_print.c
10*/
11
12echo "*** Testing sprintf() : unsigned formats with float values ***\n";
13
14// array of float values
15$float_values = array(
16  2147483647,
17  0x800000001, // float value, beyond max positive int
18  020000000001, // float value, beyond max positive int
19  0.0,
20  -0.1,
21  1.0,
22  +1e5,
23  +5e+5,
24  +0e-5,
25  -1e5,
26  -1e+5,
27  -1e-2,
28  1e5,
29  1E8,
30  -1E9,
31  10.0000000000000000005,
32  10.5e+5
33);
34
35// array of unsigned formats
36$unsigned_formats = array(
37  "%u", "%hu", "%lu",
38  "%Lu", " %u", "%u ",
39  "\t%u", "\n%u", "%4u",
40  "%30u", "%[0-9]", "%*u"
41);
42
43$count = 1;
44foreach($float_values as $float_value) {
45  echo "\n-- Iteration $count --\n";
46
47  foreach($unsigned_formats as $format) {
48    var_dump( sprintf($format, $float_value) );
49  }
50  $count++;
51};
52
53echo "Done";
54?>
55--EXPECT--
56*** Testing sprintf() : unsigned formats with float values ***
57
58-- Iteration 1 --
59string(10) "2147483647"
60string(1) "u"
61string(10) "2147483647"
62string(1) "u"
63string(11) " 2147483647"
64string(11) "2147483647 "
65string(11) "	2147483647"
66string(11) "
672147483647"
68string(10) "2147483647"
69string(30) "                    2147483647"
70string(4) "0-9]"
71string(1) "u"
72
73-- Iteration 2 --
74string(11) "34359738369"
75string(1) "u"
76string(11) "34359738369"
77string(1) "u"
78string(12) " 34359738369"
79string(12) "34359738369 "
80string(12) "	34359738369"
81string(12) "
8234359738369"
83string(11) "34359738369"
84string(30) "                   34359738369"
85string(4) "0-9]"
86string(1) "u"
87
88-- Iteration 3 --
89string(10) "2147483649"
90string(1) "u"
91string(10) "2147483649"
92string(1) "u"
93string(11) " 2147483649"
94string(11) "2147483649 "
95string(11) "	2147483649"
96string(11) "
972147483649"
98string(10) "2147483649"
99string(30) "                    2147483649"
100string(4) "0-9]"
101string(1) "u"
102
103-- Iteration 4 --
104string(1) "0"
105string(1) "u"
106string(1) "0"
107string(1) "u"
108string(2) " 0"
109string(2) "0 "
110string(2) "	0"
111string(2) "
1120"
113string(4) "   0"
114string(30) "                             0"
115string(4) "0-9]"
116string(1) "u"
117
118-- Iteration 5 --
119string(1) "0"
120string(1) "u"
121string(1) "0"
122string(1) "u"
123string(2) " 0"
124string(2) "0 "
125string(2) "	0"
126string(2) "
1270"
128string(4) "   0"
129string(30) "                             0"
130string(4) "0-9]"
131string(1) "u"
132
133-- Iteration 6 --
134string(1) "1"
135string(1) "u"
136string(1) "1"
137string(1) "u"
138string(2) " 1"
139string(2) "1 "
140string(2) "	1"
141string(2) "
1421"
143string(4) "   1"
144string(30) "                             1"
145string(4) "0-9]"
146string(1) "u"
147
148-- Iteration 7 --
149string(6) "100000"
150string(1) "u"
151string(6) "100000"
152string(1) "u"
153string(7) " 100000"
154string(7) "100000 "
155string(7) "	100000"
156string(7) "
157100000"
158string(6) "100000"
159string(30) "                        100000"
160string(4) "0-9]"
161string(1) "u"
162
163-- Iteration 8 --
164string(6) "500000"
165string(1) "u"
166string(6) "500000"
167string(1) "u"
168string(7) " 500000"
169string(7) "500000 "
170string(7) "	500000"
171string(7) "
172500000"
173string(6) "500000"
174string(30) "                        500000"
175string(4) "0-9]"
176string(1) "u"
177
178-- Iteration 9 --
179string(1) "0"
180string(1) "u"
181string(1) "0"
182string(1) "u"
183string(2) " 0"
184string(2) "0 "
185string(2) "	0"
186string(2) "
1870"
188string(4) "   0"
189string(30) "                             0"
190string(4) "0-9]"
191string(1) "u"
192
193-- Iteration 10 --
194string(20) "18446744073709451616"
195string(1) "u"
196string(20) "18446744073709451616"
197string(1) "u"
198string(21) " 18446744073709451616"
199string(21) "18446744073709451616 "
200string(21) "	18446744073709451616"
201string(21) "
20218446744073709451616"
203string(20) "18446744073709451616"
204string(30) "          18446744073709451616"
205string(4) "0-9]"
206string(1) "u"
207
208-- Iteration 11 --
209string(20) "18446744073709451616"
210string(1) "u"
211string(20) "18446744073709451616"
212string(1) "u"
213string(21) " 18446744073709451616"
214string(21) "18446744073709451616 "
215string(21) "	18446744073709451616"
216string(21) "
21718446744073709451616"
218string(20) "18446744073709451616"
219string(30) "          18446744073709451616"
220string(4) "0-9]"
221string(1) "u"
222
223-- Iteration 12 --
224string(1) "0"
225string(1) "u"
226string(1) "0"
227string(1) "u"
228string(2) " 0"
229string(2) "0 "
230string(2) "	0"
231string(2) "
2320"
233string(4) "   0"
234string(30) "                             0"
235string(4) "0-9]"
236string(1) "u"
237
238-- Iteration 13 --
239string(6) "100000"
240string(1) "u"
241string(6) "100000"
242string(1) "u"
243string(7) " 100000"
244string(7) "100000 "
245string(7) "	100000"
246string(7) "
247100000"
248string(6) "100000"
249string(30) "                        100000"
250string(4) "0-9]"
251string(1) "u"
252
253-- Iteration 14 --
254string(9) "100000000"
255string(1) "u"
256string(9) "100000000"
257string(1) "u"
258string(10) " 100000000"
259string(10) "100000000 "
260string(10) "	100000000"
261string(10) "
262100000000"
263string(9) "100000000"
264string(30) "                     100000000"
265string(4) "0-9]"
266string(1) "u"
267
268-- Iteration 15 --
269string(20) "18446744072709551616"
270string(1) "u"
271string(20) "18446744072709551616"
272string(1) "u"
273string(21) " 18446744072709551616"
274string(21) "18446744072709551616 "
275string(21) "	18446744072709551616"
276string(21) "
27718446744072709551616"
278string(20) "18446744072709551616"
279string(30) "          18446744072709551616"
280string(4) "0-9]"
281string(1) "u"
282
283-- Iteration 16 --
284string(2) "10"
285string(1) "u"
286string(2) "10"
287string(1) "u"
288string(3) " 10"
289string(3) "10 "
290string(3) "	10"
291string(3) "
29210"
293string(4) "  10"
294string(30) "                            10"
295string(4) "0-9]"
296string(1) "u"
297
298-- Iteration 17 --
299string(7) "1050000"
300string(1) "u"
301string(7) "1050000"
302string(1) "u"
303string(8) " 1050000"
304string(8) "1050000 "
305string(8) "	1050000"
306string(8) "
3071050000"
308string(7) "1050000"
309string(30) "                       1050000"
310string(4) "0-9]"
311string(1) "u"
312Done
313