1--TEST--
2Test sprintf() function : usage variations - scientific formats with integer values
3--FILE--
4<?php
5/* Prototype  : string sprintf(string $format [, mixed $arg1 [, mixed ...]])
6 * Description: Return a formatted string
7 * Source code: ext/standard/formatted_print.c
8*/
9
10echo "*** Testing sprintf() : scientific formats with integer values ***\n";
11
12// array of integer values
13$integer_values = array(
14  0,
15  1,
16  -1,
17  -2147483648, // max negative integer value
18  -2147483647,
19  2147483647,  // max positive integer value
20  2147483640,
21  0x123B,      // integer as hexadecimal
22  0x12ab,
23  0Xfff,
24  0XFA,
25  -0x80000000, // max negative integer as hexadecimal
26  0x7fffffff,  // max postive integer as hexadecimal
27  0x7FFFFFFF,  // max postive integer as hexadecimal
28  0123,        // integer as octal
29  01912,       // should be quivalent to octal 1
30  -020000000000, // max negative integer as octal
31  017777777777  // max positive integer as octal
32);
33
34// array of scientific formats
35$scientific_formats = array(
36  "%e", "%he", "%le",
37  "%Le", " %e", "%e ",
38  "\t%e", "\n%e", "%4e",
39  "%30e", "%[0-1]", "%*e"
40);
41
42$count = 1;
43foreach($integer_values as $integer_value) {
44  echo "\n-- Iteration $count --\n";
45
46  foreach($scientific_formats as $format) {
47    var_dump( sprintf($format, $integer_value) );
48  }
49  $count++;
50};
51
52echo "Done";
53?>
54--EXPECTF--
55*** Testing sprintf() : scientific formats with integer values ***
56
57-- Iteration 1 --
58string(11) "0.000000e+0"
59string(1) "e"
60string(11) "0.000000e+0"
61string(1) "e"
62string(12) " 0.000000e+0"
63string(12) "0.000000e+0 "
64string(12) "	0.000000e+0"
65string(12) "
660.000000e+0"
67string(11) "0.000000e+0"
68string(30) "                   0.000000e+0"
69string(4) "0-1]"
70string(1) "e"
71
72-- Iteration 2 --
73string(11) "1.000000e+0"
74string(1) "e"
75string(11) "1.000000e+0"
76string(1) "e"
77string(12) " 1.000000e+0"
78string(12) "1.000000e+0 "
79string(12) "	1.000000e+0"
80string(12) "
811.000000e+0"
82string(11) "1.000000e+0"
83string(30) "                   1.000000e+0"
84string(4) "0-1]"
85string(1) "e"
86
87-- Iteration 3 --
88string(12) "-1.000000e+0"
89string(1) "e"
90string(12) "-1.000000e+0"
91string(1) "e"
92string(13) " -1.000000e+0"
93string(13) "-1.000000e+0 "
94string(13) "	-1.000000e+0"
95string(13) "
96-1.000000e+0"
97string(12) "-1.000000e+0"
98string(30) "                  -1.000000e+0"
99string(4) "0-1]"
100string(1) "e"
101
102-- Iteration 4 --
103string(12) "-2.147484e+9"
104string(1) "e"
105string(12) "-2.147484e+9"
106string(1) "e"
107string(13) " -2.147484e+9"
108string(13) "-2.147484e+9 "
109string(13) "	-2.147484e+9"
110string(13) "
111-2.147484e+9"
112string(12) "-2.147484e+9"
113string(30) "                  -2.147484e+9"
114string(4) "0-1]"
115string(1) "e"
116
117-- Iteration 5 --
118string(12) "-2.147484e+9"
119string(1) "e"
120string(12) "-2.147484e+9"
121string(1) "e"
122string(13) " -2.147484e+9"
123string(13) "-2.147484e+9 "
124string(13) "	-2.147484e+9"
125string(13) "
126-2.147484e+9"
127string(12) "-2.147484e+9"
128string(30) "                  -2.147484e+9"
129string(4) "0-1]"
130string(1) "e"
131
132-- Iteration 6 --
133string(11) "2.147484e+9"
134string(1) "e"
135string(11) "2.147484e+9"
136string(1) "e"
137string(12) " 2.147484e+9"
138string(12) "2.147484e+9 "
139string(12) "	2.147484e+9"
140string(12) "
1412.147484e+9"
142string(11) "2.147484e+9"
143string(30) "                   2.147484e+9"
144string(4) "0-1]"
145string(1) "e"
146
147-- Iteration 7 --
148string(11) "2.147484e+9"
149string(1) "e"
150string(11) "2.147484e+9"
151string(1) "e"
152string(12) " 2.147484e+9"
153string(12) "2.147484e+9 "
154string(12) "	2.147484e+9"
155string(12) "
1562.147484e+9"
157string(11) "2.147484e+9"
158string(30) "                   2.147484e+9"
159string(4) "0-1]"
160string(1) "e"
161
162-- Iteration 8 --
163string(11) "4.667000e+3"
164string(1) "e"
165string(11) "4.667000e+3"
166string(1) "e"
167string(12) " 4.667000e+3"
168string(12) "4.667000e+3 "
169string(12) "	4.667000e+3"
170string(12) "
1714.667000e+3"
172string(11) "4.667000e+3"
173string(30) "                   4.667000e+3"
174string(4) "0-1]"
175string(1) "e"
176
177-- Iteration 9 --
178string(11) "4.779000e+3"
179string(1) "e"
180string(11) "4.779000e+3"
181string(1) "e"
182string(12) " 4.779000e+3"
183string(12) "4.779000e+3 "
184string(12) "	4.779000e+3"
185string(12) "
1864.779000e+3"
187string(11) "4.779000e+3"
188string(30) "                   4.779000e+3"
189string(4) "0-1]"
190string(1) "e"
191
192-- Iteration 10 --
193string(11) "4.095000e+3"
194string(1) "e"
195string(11) "4.095000e+3"
196string(1) "e"
197string(12) " 4.095000e+3"
198string(12) "4.095000e+3 "
199string(12) "	4.095000e+3"
200string(12) "
2014.095000e+3"
202string(11) "4.095000e+3"
203string(30) "                   4.095000e+3"
204string(4) "0-1]"
205string(1) "e"
206
207-- Iteration 11 --
208string(11) "2.500000e+2"
209string(1) "e"
210string(11) "2.500000e+2"
211string(1) "e"
212string(12) " 2.500000e+2"
213string(12) "2.500000e+2 "
214string(12) "	2.500000e+2"
215string(12) "
2162.500000e+2"
217string(11) "2.500000e+2"
218string(30) "                   2.500000e+2"
219string(4) "0-1]"
220string(1) "e"
221
222-- Iteration 12 --
223string(12) "-2.147484e+9"
224string(1) "e"
225string(12) "-2.147484e+9"
226string(1) "e"
227string(13) " -2.147484e+9"
228string(13) "-2.147484e+9 "
229string(13) "	-2.147484e+9"
230string(13) "
231-2.147484e+9"
232string(12) "-2.147484e+9"
233string(30) "                  -2.147484e+9"
234string(4) "0-1]"
235string(1) "e"
236
237-- Iteration 13 --
238string(11) "2.147484e+9"
239string(1) "e"
240string(11) "2.147484e+9"
241string(1) "e"
242string(12) " 2.147484e+9"
243string(12) "2.147484e+9 "
244string(12) "	2.147484e+9"
245string(12) "
2462.147484e+9"
247string(11) "2.147484e+9"
248string(30) "                   2.147484e+9"
249string(4) "0-1]"
250string(1) "e"
251
252-- Iteration 14 --
253string(11) "2.147484e+9"
254string(1) "e"
255string(11) "2.147484e+9"
256string(1) "e"
257string(12) " 2.147484e+9"
258string(12) "2.147484e+9 "
259string(12) "	2.147484e+9"
260string(12) "
2612.147484e+9"
262string(11) "2.147484e+9"
263string(30) "                   2.147484e+9"
264string(4) "0-1]"
265string(1) "e"
266
267-- Iteration 15 --
268string(11) "8.300000e+1"
269string(1) "e"
270string(11) "8.300000e+1"
271string(1) "e"
272string(12) " 8.300000e+1"
273string(12) "8.300000e+1 "
274string(12) "	8.300000e+1"
275string(12) "
2768.300000e+1"
277string(11) "8.300000e+1"
278string(30) "                   8.300000e+1"
279string(4) "0-1]"
280string(1) "e"
281
282-- Iteration 16 --
283string(11) "1.000000e+0"
284string(1) "e"
285string(11) "1.000000e+0"
286string(1) "e"
287string(12) " 1.000000e+0"
288string(12) "1.000000e+0 "
289string(12) "	1.000000e+0"
290string(12) "
2911.000000e+0"
292string(11) "1.000000e+0"
293string(30) "                   1.000000e+0"
294string(4) "0-1]"
295string(1) "e"
296
297-- Iteration 17 --
298string(12) "-2.147484e+9"
299string(1) "e"
300string(12) "-2.147484e+9"
301string(1) "e"
302string(13) " -2.147484e+9"
303string(13) "-2.147484e+9 "
304string(13) "	-2.147484e+9"
305string(13) "
306-2.147484e+9"
307string(12) "-2.147484e+9"
308string(30) "                  -2.147484e+9"
309string(4) "0-1]"
310string(1) "e"
311
312-- Iteration 18 --
313string(11) "2.147484e+9"
314string(1) "e"
315string(11) "2.147484e+9"
316string(1) "e"
317string(12) " 2.147484e+9"
318string(12) "2.147484e+9 "
319string(12) "	2.147484e+9"
320string(12) "
3212.147484e+9"
322string(11) "2.147484e+9"
323string(30) "                   2.147484e+9"
324string(4) "0-1]"
325string(1) "e"
326Done