mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Tests improvement for round() modes (#11996)
* Improved the tests for round() function * Add EOL on the file ending
This commit is contained in:
@@ -2,37 +2,286 @@
|
||||
round() with different rounding modes
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump (round (2.5, 0, PHP_ROUND_HALF_UP));
|
||||
var_dump (round (2.5, 0, PHP_ROUND_HALF_DOWN));
|
||||
var_dump (round (2.5, 0, PHP_ROUND_HALF_EVEN));
|
||||
var_dump (round (2.5, 0, PHP_ROUND_HALF_ODD));
|
||||
var_dump (round (-2.5, 0, PHP_ROUND_HALF_UP));
|
||||
var_dump (round (-2.5, 0, PHP_ROUND_HALF_DOWN));
|
||||
var_dump (round (-2.5, 0, PHP_ROUND_HALF_EVEN));
|
||||
var_dump (round (-2.5, 0, PHP_ROUND_HALF_ODD));
|
||||
var_dump (round (3.5, 0, PHP_ROUND_HALF_UP));
|
||||
var_dump (round (3.5, 0, PHP_ROUND_HALF_DOWN));
|
||||
var_dump (round (3.5, 0, PHP_ROUND_HALF_EVEN));
|
||||
var_dump (round (3.5, 0, PHP_ROUND_HALF_ODD));
|
||||
var_dump (round (-3.5, 0, PHP_ROUND_HALF_UP));
|
||||
var_dump (round (-3.5, 0, PHP_ROUND_HALF_DOWN));
|
||||
var_dump (round (-3.5, 0, PHP_ROUND_HALF_EVEN));
|
||||
var_dump (round (-3.5, 0, PHP_ROUND_HALF_ODD));
|
||||
$modes = [
|
||||
"PHP_ROUND_HALF_UP" => PHP_ROUND_HALF_UP,
|
||||
"PHP_ROUND_HALF_DOWN" => PHP_ROUND_HALF_DOWN,
|
||||
"PHP_ROUND_HALF_EVEN" => PHP_ROUND_HALF_EVEN,
|
||||
"PHP_ROUND_HALF_ODD" => PHP_ROUND_HALF_ODD,
|
||||
];
|
||||
|
||||
$numbers = [
|
||||
2.5,
|
||||
-2.5,
|
||||
3.5,
|
||||
-3.5,
|
||||
7,
|
||||
-7,
|
||||
0.61,
|
||||
0.69,
|
||||
0,
|
||||
1.9999,
|
||||
-1.9999,
|
||||
0.0001,
|
||||
-0.0001,
|
||||
];
|
||||
$precisions = [0, 1, 2, 10];
|
||||
|
||||
foreach ($modes as $modeKey => $mode) {
|
||||
echo "mode: $modeKey\n";
|
||||
foreach ($precisions as $precision) {
|
||||
echo "\tprecision: $precision\n";
|
||||
foreach ($numbers as $number) {
|
||||
$result = round($number, $precision);
|
||||
echo "\t\t" .
|
||||
str_pad($number, 7, " ", STR_PAD_LEFT) .
|
||||
" => $result\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
float(3)
|
||||
float(2)
|
||||
float(2)
|
||||
float(3)
|
||||
float(-3)
|
||||
float(-2)
|
||||
float(-2)
|
||||
float(-3)
|
||||
float(4)
|
||||
float(3)
|
||||
float(4)
|
||||
float(3)
|
||||
float(-4)
|
||||
float(-3)
|
||||
float(-4)
|
||||
float(-3)
|
||||
mode: PHP_ROUND_HALF_UP
|
||||
precision: 0
|
||||
2.5 => 3
|
||||
-2.5 => -3
|
||||
3.5 => 4
|
||||
-3.5 => -4
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 1
|
||||
0.69 => 1
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 1
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.6
|
||||
0.69 => 0.7
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 2
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 10
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 1.9999
|
||||
-1.9999 => -1.9999
|
||||
0.0001 => 0.0001
|
||||
-0.0001 => -0.0001
|
||||
|
||||
mode: PHP_ROUND_HALF_DOWN
|
||||
precision: 0
|
||||
2.5 => 3
|
||||
-2.5 => -3
|
||||
3.5 => 4
|
||||
-3.5 => -4
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 1
|
||||
0.69 => 1
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 1
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.6
|
||||
0.69 => 0.7
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 2
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 10
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 1.9999
|
||||
-1.9999 => -1.9999
|
||||
0.0001 => 0.0001
|
||||
-0.0001 => -0.0001
|
||||
|
||||
mode: PHP_ROUND_HALF_EVEN
|
||||
precision: 0
|
||||
2.5 => 3
|
||||
-2.5 => -3
|
||||
3.5 => 4
|
||||
-3.5 => -4
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 1
|
||||
0.69 => 1
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 1
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.6
|
||||
0.69 => 0.7
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 2
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 10
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 1.9999
|
||||
-1.9999 => -1.9999
|
||||
0.0001 => 0.0001
|
||||
-0.0001 => -0.0001
|
||||
|
||||
mode: PHP_ROUND_HALF_ODD
|
||||
precision: 0
|
||||
2.5 => 3
|
||||
-2.5 => -3
|
||||
3.5 => 4
|
||||
-3.5 => -4
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 1
|
||||
0.69 => 1
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 1
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.6
|
||||
0.69 => 0.7
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 2
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 2
|
||||
-1.9999 => -2
|
||||
0.0001 => 0
|
||||
-0.0001 => -0
|
||||
|
||||
precision: 10
|
||||
2.5 => 2.5
|
||||
-2.5 => -2.5
|
||||
3.5 => 3.5
|
||||
-3.5 => -3.5
|
||||
7 => 7
|
||||
-7 => -7
|
||||
0.61 => 0.61
|
||||
0.69 => 0.69
|
||||
0 => 0
|
||||
1.9999 => 1.9999
|
||||
-1.9999 => -1.9999
|
||||
0.0001 => 0.0001
|
||||
-0.0001 => -0.0001
|
||||
|
||||
Reference in New Issue
Block a user