Skip to content

Commit 6ee2a63

Browse files
authored
Tests improvement for round() modes (#11996)
* Improved the tests for round() function * Add EOL on the file ending
1 parent 0fd226c commit 6ee2a63

File tree

1 file changed

+281
-32
lines changed

1 file changed

+281
-32
lines changed

ext/standard/tests/math/round_modes.phpt

+281-32
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,286 @@
22
round() with different rounding modes
33
--FILE--
44
<?php
5-
var_dump (round (2.5, 0, PHP_ROUND_HALF_UP));
6-
var_dump (round (2.5, 0, PHP_ROUND_HALF_DOWN));
7-
var_dump (round (2.5, 0, PHP_ROUND_HALF_EVEN));
8-
var_dump (round (2.5, 0, PHP_ROUND_HALF_ODD));
9-
var_dump (round (-2.5, 0, PHP_ROUND_HALF_UP));
10-
var_dump (round (-2.5, 0, PHP_ROUND_HALF_DOWN));
11-
var_dump (round (-2.5, 0, PHP_ROUND_HALF_EVEN));
12-
var_dump (round (-2.5, 0, PHP_ROUND_HALF_ODD));
13-
var_dump (round (3.5, 0, PHP_ROUND_HALF_UP));
14-
var_dump (round (3.5, 0, PHP_ROUND_HALF_DOWN));
15-
var_dump (round (3.5, 0, PHP_ROUND_HALF_EVEN));
16-
var_dump (round (3.5, 0, PHP_ROUND_HALF_ODD));
17-
var_dump (round (-3.5, 0, PHP_ROUND_HALF_UP));
18-
var_dump (round (-3.5, 0, PHP_ROUND_HALF_DOWN));
19-
var_dump (round (-3.5, 0, PHP_ROUND_HALF_EVEN));
20-
var_dump (round (-3.5, 0, PHP_ROUND_HALF_ODD));
5+
$modes = [
6+
"PHP_ROUND_HALF_UP" => PHP_ROUND_HALF_UP,
7+
"PHP_ROUND_HALF_DOWN" => PHP_ROUND_HALF_DOWN,
8+
"PHP_ROUND_HALF_EVEN" => PHP_ROUND_HALF_EVEN,
9+
"PHP_ROUND_HALF_ODD" => PHP_ROUND_HALF_ODD,
10+
];
11+
12+
$numbers = [
13+
2.5,
14+
-2.5,
15+
3.5,
16+
-3.5,
17+
7,
18+
-7,
19+
0.61,
20+
0.69,
21+
0,
22+
1.9999,
23+
-1.9999,
24+
0.0001,
25+
-0.0001,
26+
];
27+
$precisions = [0, 1, 2, 10];
28+
29+
foreach ($modes as $modeKey => $mode) {
30+
echo "mode: $modeKey\n";
31+
foreach ($precisions as $precision) {
32+
echo "\tprecision: $precision\n";
33+
foreach ($numbers as $number) {
34+
$result = round($number, $precision);
35+
echo "\t\t" .
36+
str_pad($number, 7, " ", STR_PAD_LEFT) .
37+
" => $result\n";
38+
}
39+
echo "\n";
40+
}
41+
}
42+
2143
?>
2244
--EXPECT--
23-
float(3)
24-
float(2)
25-
float(2)
26-
float(3)
27-
float(-3)
28-
float(-2)
29-
float(-2)
30-
float(-3)
31-
float(4)
32-
float(3)
33-
float(4)
34-
float(3)
35-
float(-4)
36-
float(-3)
37-
float(-4)
38-
float(-3)
45+
mode: PHP_ROUND_HALF_UP
46+
precision: 0
47+
2.5 => 3
48+
-2.5 => -3
49+
3.5 => 4
50+
-3.5 => -4
51+
7 => 7
52+
-7 => -7
53+
0.61 => 1
54+
0.69 => 1
55+
0 => 0
56+
1.9999 => 2
57+
-1.9999 => -2
58+
0.0001 => 0
59+
-0.0001 => -0
60+
61+
precision: 1
62+
2.5 => 2.5
63+
-2.5 => -2.5
64+
3.5 => 3.5
65+
-3.5 => -3.5
66+
7 => 7
67+
-7 => -7
68+
0.61 => 0.6
69+
0.69 => 0.7
70+
0 => 0
71+
1.9999 => 2
72+
-1.9999 => -2
73+
0.0001 => 0
74+
-0.0001 => -0
75+
76+
precision: 2
77+
2.5 => 2.5
78+
-2.5 => -2.5
79+
3.5 => 3.5
80+
-3.5 => -3.5
81+
7 => 7
82+
-7 => -7
83+
0.61 => 0.61
84+
0.69 => 0.69
85+
0 => 0
86+
1.9999 => 2
87+
-1.9999 => -2
88+
0.0001 => 0
89+
-0.0001 => -0
90+
91+
precision: 10
92+
2.5 => 2.5
93+
-2.5 => -2.5
94+
3.5 => 3.5
95+
-3.5 => -3.5
96+
7 => 7
97+
-7 => -7
98+
0.61 => 0.61
99+
0.69 => 0.69
100+
0 => 0
101+
1.9999 => 1.9999
102+
-1.9999 => -1.9999
103+
0.0001 => 0.0001
104+
-0.0001 => -0.0001
105+
106+
mode: PHP_ROUND_HALF_DOWN
107+
precision: 0
108+
2.5 => 3
109+
-2.5 => -3
110+
3.5 => 4
111+
-3.5 => -4
112+
7 => 7
113+
-7 => -7
114+
0.61 => 1
115+
0.69 => 1
116+
0 => 0
117+
1.9999 => 2
118+
-1.9999 => -2
119+
0.0001 => 0
120+
-0.0001 => -0
121+
122+
precision: 1
123+
2.5 => 2.5
124+
-2.5 => -2.5
125+
3.5 => 3.5
126+
-3.5 => -3.5
127+
7 => 7
128+
-7 => -7
129+
0.61 => 0.6
130+
0.69 => 0.7
131+
0 => 0
132+
1.9999 => 2
133+
-1.9999 => -2
134+
0.0001 => 0
135+
-0.0001 => -0
136+
137+
precision: 2
138+
2.5 => 2.5
139+
-2.5 => -2.5
140+
3.5 => 3.5
141+
-3.5 => -3.5
142+
7 => 7
143+
-7 => -7
144+
0.61 => 0.61
145+
0.69 => 0.69
146+
0 => 0
147+
1.9999 => 2
148+
-1.9999 => -2
149+
0.0001 => 0
150+
-0.0001 => -0
151+
152+
precision: 10
153+
2.5 => 2.5
154+
-2.5 => -2.5
155+
3.5 => 3.5
156+
-3.5 => -3.5
157+
7 => 7
158+
-7 => -7
159+
0.61 => 0.61
160+
0.69 => 0.69
161+
0 => 0
162+
1.9999 => 1.9999
163+
-1.9999 => -1.9999
164+
0.0001 => 0.0001
165+
-0.0001 => -0.0001
166+
167+
mode: PHP_ROUND_HALF_EVEN
168+
precision: 0
169+
2.5 => 3
170+
-2.5 => -3
171+
3.5 => 4
172+
-3.5 => -4
173+
7 => 7
174+
-7 => -7
175+
0.61 => 1
176+
0.69 => 1
177+
0 => 0
178+
1.9999 => 2
179+
-1.9999 => -2
180+
0.0001 => 0
181+
-0.0001 => -0
182+
183+
precision: 1
184+
2.5 => 2.5
185+
-2.5 => -2.5
186+
3.5 => 3.5
187+
-3.5 => -3.5
188+
7 => 7
189+
-7 => -7
190+
0.61 => 0.6
191+
0.69 => 0.7
192+
0 => 0
193+
1.9999 => 2
194+
-1.9999 => -2
195+
0.0001 => 0
196+
-0.0001 => -0
197+
198+
precision: 2
199+
2.5 => 2.5
200+
-2.5 => -2.5
201+
3.5 => 3.5
202+
-3.5 => -3.5
203+
7 => 7
204+
-7 => -7
205+
0.61 => 0.61
206+
0.69 => 0.69
207+
0 => 0
208+
1.9999 => 2
209+
-1.9999 => -2
210+
0.0001 => 0
211+
-0.0001 => -0
212+
213+
precision: 10
214+
2.5 => 2.5
215+
-2.5 => -2.5
216+
3.5 => 3.5
217+
-3.5 => -3.5
218+
7 => 7
219+
-7 => -7
220+
0.61 => 0.61
221+
0.69 => 0.69
222+
0 => 0
223+
1.9999 => 1.9999
224+
-1.9999 => -1.9999
225+
0.0001 => 0.0001
226+
-0.0001 => -0.0001
227+
228+
mode: PHP_ROUND_HALF_ODD
229+
precision: 0
230+
2.5 => 3
231+
-2.5 => -3
232+
3.5 => 4
233+
-3.5 => -4
234+
7 => 7
235+
-7 => -7
236+
0.61 => 1
237+
0.69 => 1
238+
0 => 0
239+
1.9999 => 2
240+
-1.9999 => -2
241+
0.0001 => 0
242+
-0.0001 => -0
243+
244+
precision: 1
245+
2.5 => 2.5
246+
-2.5 => -2.5
247+
3.5 => 3.5
248+
-3.5 => -3.5
249+
7 => 7
250+
-7 => -7
251+
0.61 => 0.6
252+
0.69 => 0.7
253+
0 => 0
254+
1.9999 => 2
255+
-1.9999 => -2
256+
0.0001 => 0
257+
-0.0001 => -0
258+
259+
precision: 2
260+
2.5 => 2.5
261+
-2.5 => -2.5
262+
3.5 => 3.5
263+
-3.5 => -3.5
264+
7 => 7
265+
-7 => -7
266+
0.61 => 0.61
267+
0.69 => 0.69
268+
0 => 0
269+
1.9999 => 2
270+
-1.9999 => -2
271+
0.0001 => 0
272+
-0.0001 => -0
273+
274+
precision: 10
275+
2.5 => 2.5
276+
-2.5 => -2.5
277+
3.5 => 3.5
278+
-3.5 => -3.5
279+
7 => 7
280+
-7 => -7
281+
0.61 => 0.61
282+
0.69 => 0.69
283+
0 => 0
284+
1.9999 => 1.9999
285+
-1.9999 => -1.9999
286+
0.0001 => 0.0001
287+
-0.0001 => -0.0001

0 commit comments

Comments
 (0)