1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Files
archived-php-src/ext/bcmath/tests/bcdivmod.phpt
Saki Takamachi f6db576c31 [RFC] ext/bcmath: Added bcdivmod (#15740)
RFC: https://wiki.php.net/rfc/add_bcdivmod_to_bcmath

Added bcdivmod() function and added divmod() method to BcMath\Number class.
2024-09-23 06:43:11 +09:00

47 lines
1.3 KiB
PHP

--TEST--
bcdivmod() function
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$dividends = ["15", "-15", "1", "-9", "14.14", "-16.60", "0.15", "-0.01"];
$divisors = array_merge($dividends, [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
$scales = [0, 10];
foreach ($scales as $scale) {
foreach ($dividends as $firstTerm) {
foreach ($divisors as $secondTerm) {
[$quot, $rem] = bcdivmod($firstTerm, $secondTerm, $scale);
$div_ret = bcdiv($firstTerm, $secondTerm, 0);
$mod_ret = bcmod($firstTerm, $secondTerm, $scale);
if (bccomp($quot, $div_ret) !== 0) {
echo "Div result is incorrect.\n";
var_dump($firstTerm, $secondTerm, $scale, $quot, $rem, $div_ret, $mod_ret);
echo "\n";
}
if (bccomp($rem, $mod_ret) !== 0) {
echo "Mod result is incorrect.\n";
var_dump($firstTerm, $secondTerm, $scale, $quot, $rem, $div_ret, $mod_ret);
echo "\n";
}
}
}
}
echo 'done!';
?>
--EXPECT--
done!