1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Extend tests of bcmath extension (#11563)

Add coverage for:

 * different formats of zero (0, 0.0)
 * small integers and decimals
 * large integers and large decimals with large fractional part
 * negative numbers for all of the above ones
This commit is contained in:
Jorg Adam Sowa
2023-07-05 18:43:30 +02:00
committed by GitHub
parent f16b34f1d0
commit ee22612856
30 changed files with 4296 additions and 120 deletions

View File

@@ -6,15 +6,342 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcadd("1", "2"),"\n";
echo bcadd("-1", "5", 4),"\n";
echo bcadd("-1", "-5", 4),"\n";
echo bcadd("1", "-5", 4),"\n";
echo bcadd("1928372132132819737213", "8728932001983192837219398127471", 2),"\n";
require(__DIR__ . "/run_bcmath_tests_function.inc");
$leftSummands = ["15", "-15", "1", "-9", "14.14", "-16.60", "0.15", "-0.01"];
$rightSummands = array_merge($leftSummands, [
"0",
"0.00",
"-0",
"-0.00",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($leftSummands, $rightSummands, "+", bcadd(...));
?>
--EXPECT--
3
4.0000
-6.0000
-4.0000
8728932003911564969352217864684.00
Number "15" (scale 0)
15 + 15 = 30
15 + -15 = 0
15 + 1 = 16
15 + -9 = 6
15 + 14.14 = 29
15 + -16.60 = -1
15 + 0.15 = 15
15 + -0.01 = 14
15 + 0 = 15
15 + 0.00 = 15
15 + -0 = 15
15 + -0.00 = 15
15 + 15151324141414.412312232141241 = 15151324141429
15 + -132132245132134.1515123765412 = -132132245132119
15 + 141241241241241248267654747412 = 141241241241241248267654747427
15 + -149143276547656984948124912 = -149143276547656984948124897
15 + 0.1322135476547459213732911312 = 15
15 + -0.123912932193769965476541321 = 14
Number "-15" (scale 0)
-15 + 15 = 0
-15 + -15 = -30
-15 + 1 = -14
-15 + -9 = -24
-15 + 14.14 = 0
-15 + -16.60 = -31
-15 + 0.15 = -14
-15 + -0.01 = -15
-15 + 0 = -15
-15 + 0.00 = -15
-15 + -0 = -15
-15 + -0.00 = -15
-15 + 15151324141414.412312232141241 = 15151324141399
-15 + -132132245132134.1515123765412 = -132132245132149
-15 + 141241241241241248267654747412 = 141241241241241248267654747397
-15 + -149143276547656984948124912 = -149143276547656984948124927
-15 + 0.1322135476547459213732911312 = -14
-15 + -0.123912932193769965476541321 = -15
Number "1" (scale 0)
1 + 15 = 16
1 + -15 = -14
1 + 1 = 2
1 + -9 = -8
1 + 14.14 = 15
1 + -16.60 = -15
1 + 0.15 = 1
1 + -0.01 = 0
1 + 0 = 1
1 + 0.00 = 1
1 + -0 = 1
1 + -0.00 = 1
1 + 15151324141414.412312232141241 = 15151324141415
1 + -132132245132134.1515123765412 = -132132245132133
1 + 141241241241241248267654747412 = 141241241241241248267654747413
1 + -149143276547656984948124912 = -149143276547656984948124911
1 + 0.1322135476547459213732911312 = 1
1 + -0.123912932193769965476541321 = 0
Number "-9" (scale 0)
-9 + 15 = 6
-9 + -15 = -24
-9 + 1 = -8
-9 + -9 = -18
-9 + 14.14 = 5
-9 + -16.60 = -25
-9 + 0.15 = -8
-9 + -0.01 = -9
-9 + 0 = -9
-9 + 0.00 = -9
-9 + -0 = -9
-9 + -0.00 = -9
-9 + 15151324141414.412312232141241 = 15151324141405
-9 + -132132245132134.1515123765412 = -132132245132143
-9 + 141241241241241248267654747412 = 141241241241241248267654747403
-9 + -149143276547656984948124912 = -149143276547656984948124921
-9 + 0.1322135476547459213732911312 = -8
-9 + -0.123912932193769965476541321 = -9
Number "14.14" (scale 0)
14.14 + 15 = 29
14.14 + -15 = 0
14.14 + 1 = 15
14.14 + -9 = 5
14.14 + 14.14 = 28
14.14 + -16.60 = -2
14.14 + 0.15 = 14
14.14 + -0.01 = 14
14.14 + 0 = 14
14.14 + 0.00 = 14
14.14 + -0 = 14
14.14 + -0.00 = 14
14.14 + 15151324141414.412312232141241 = 15151324141428
14.14 + -132132245132134.1515123765412 = -132132245132120
14.14 + 141241241241241248267654747412 = 141241241241241248267654747426
14.14 + -149143276547656984948124912 = -149143276547656984948124897
14.14 + 0.1322135476547459213732911312 = 14
14.14 + -0.123912932193769965476541321 = 14
Number "-16.60" (scale 0)
-16.60 + 15 = -1
-16.60 + -15 = -31
-16.60 + 1 = -15
-16.60 + -9 = -25
-16.60 + 14.14 = -2
-16.60 + -16.60 = -33
-16.60 + 0.15 = -16
-16.60 + -0.01 = -16
-16.60 + 0 = -16
-16.60 + 0.00 = -16
-16.60 + -0 = -16
-16.60 + -0.00 = -16
-16.60 + 15151324141414.412312232141241 = 15151324141397
-16.60 + -132132245132134.1515123765412 = -132132245132150
-16.60 + 141241241241241248267654747412 = 141241241241241248267654747395
-16.60 + -149143276547656984948124912 = -149143276547656984948124928
-16.60 + 0.1322135476547459213732911312 = -16
-16.60 + -0.123912932193769965476541321 = -16
Number "0.15" (scale 0)
0.15 + 15 = 15
0.15 + -15 = -14
0.15 + 1 = 1
0.15 + -9 = -8
0.15 + 14.14 = 14
0.15 + -16.60 = -16
0.15 + 0.15 = 0
0.15 + -0.01 = 0
0.15 + 0 = 0
0.15 + 0.00 = 0
0.15 + -0 = 0
0.15 + -0.00 = 0
0.15 + 15151324141414.412312232141241 = 15151324141414
0.15 + -132132245132134.1515123765412 = -132132245132134
0.15 + 141241241241241248267654747412 = 141241241241241248267654747412
0.15 + -149143276547656984948124912 = -149143276547656984948124911
0.15 + 0.1322135476547459213732911312 = 0
0.15 + -0.123912932193769965476541321 = 0
Number "-0.01" (scale 0)
-0.01 + 15 = 14
-0.01 + -15 = -15
-0.01 + 1 = 0
-0.01 + -9 = -9
-0.01 + 14.14 = 14
-0.01 + -16.60 = -16
-0.01 + 0.15 = 0
-0.01 + -0.01 = 0
-0.01 + 0 = 0
-0.01 + 0.00 = 0
-0.01 + -0 = 0
-0.01 + -0.00 = 0
-0.01 + 15151324141414.412312232141241 = 15151324141414
-0.01 + -132132245132134.1515123765412 = -132132245132134
-0.01 + 141241241241241248267654747412 = 141241241241241248267654747411
-0.01 + -149143276547656984948124912 = -149143276547656984948124912
-0.01 + 0.1322135476547459213732911312 = 0
-0.01 + -0.123912932193769965476541321 = 0
Number "15" (scale 10)
15 + 15 = 30.0000000000
15 + -15 = 0.0000000000
15 + 1 = 16.0000000000
15 + -9 = 6.0000000000
15 + 14.14 = 29.1400000000
15 + -16.60 = -1.6000000000
15 + 0.15 = 15.1500000000
15 + -0.01 = 14.9900000000
15 + 0 = 15.0000000000
15 + 0.00 = 15.0000000000
15 + -0 = 15.0000000000
15 + -0.00 = 15.0000000000
15 + 15151324141414.412312232141241 = 15151324141429.4123122321
15 + -132132245132134.1515123765412 = -132132245132119.1515123765
15 + 141241241241241248267654747412 = 141241241241241248267654747427.0000000000
15 + -149143276547656984948124912 = -149143276547656984948124897.0000000000
15 + 0.1322135476547459213732911312 = 15.1322135476
15 + -0.123912932193769965476541321 = 14.8760870678
Number "-15" (scale 10)
-15 + 15 = 0.0000000000
-15 + -15 = -30.0000000000
-15 + 1 = -14.0000000000
-15 + -9 = -24.0000000000
-15 + 14.14 = -0.8600000000
-15 + -16.60 = -31.6000000000
-15 + 0.15 = -14.8500000000
-15 + -0.01 = -15.0100000000
-15 + 0 = -15.0000000000
-15 + 0.00 = -15.0000000000
-15 + -0 = -15.0000000000
-15 + -0.00 = -15.0000000000
-15 + 15151324141414.412312232141241 = 15151324141399.4123122321
-15 + -132132245132134.1515123765412 = -132132245132149.1515123765
-15 + 141241241241241248267654747412 = 141241241241241248267654747397.0000000000
-15 + -149143276547656984948124912 = -149143276547656984948124927.0000000000
-15 + 0.1322135476547459213732911312 = -14.8677864523
-15 + -0.123912932193769965476541321 = -15.1239129321
Number "1" (scale 10)
1 + 15 = 16.0000000000
1 + -15 = -14.0000000000
1 + 1 = 2.0000000000
1 + -9 = -8.0000000000
1 + 14.14 = 15.1400000000
1 + -16.60 = -15.6000000000
1 + 0.15 = 1.1500000000
1 + -0.01 = 0.9900000000
1 + 0 = 1.0000000000
1 + 0.00 = 1.0000000000
1 + -0 = 1.0000000000
1 + -0.00 = 1.0000000000
1 + 15151324141414.412312232141241 = 15151324141415.4123122321
1 + -132132245132134.1515123765412 = -132132245132133.1515123765
1 + 141241241241241248267654747412 = 141241241241241248267654747413.0000000000
1 + -149143276547656984948124912 = -149143276547656984948124911.0000000000
1 + 0.1322135476547459213732911312 = 1.1322135476
1 + -0.123912932193769965476541321 = 0.8760870678
Number "-9" (scale 10)
-9 + 15 = 6.0000000000
-9 + -15 = -24.0000000000
-9 + 1 = -8.0000000000
-9 + -9 = -18.0000000000
-9 + 14.14 = 5.1400000000
-9 + -16.60 = -25.6000000000
-9 + 0.15 = -8.8500000000
-9 + -0.01 = -9.0100000000
-9 + 0 = -9.0000000000
-9 + 0.00 = -9.0000000000
-9 + -0 = -9.0000000000
-9 + -0.00 = -9.0000000000
-9 + 15151324141414.412312232141241 = 15151324141405.4123122321
-9 + -132132245132134.1515123765412 = -132132245132143.1515123765
-9 + 141241241241241248267654747412 = 141241241241241248267654747403.0000000000
-9 + -149143276547656984948124912 = -149143276547656984948124921.0000000000
-9 + 0.1322135476547459213732911312 = -8.8677864523
-9 + -0.123912932193769965476541321 = -9.1239129321
Number "14.14" (scale 10)
14.14 + 15 = 29.1400000000
14.14 + -15 = -0.8600000000
14.14 + 1 = 15.1400000000
14.14 + -9 = 5.1400000000
14.14 + 14.14 = 28.2800000000
14.14 + -16.60 = -2.4600000000
14.14 + 0.15 = 14.2900000000
14.14 + -0.01 = 14.1300000000
14.14 + 0 = 14.1400000000
14.14 + 0.00 = 14.1400000000
14.14 + -0 = 14.1400000000
14.14 + -0.00 = 14.1400000000
14.14 + 15151324141414.412312232141241 = 15151324141428.5523122321
14.14 + -132132245132134.1515123765412 = -132132245132120.0115123765
14.14 + 141241241241241248267654747412 = 141241241241241248267654747426.1400000000
14.14 + -149143276547656984948124912 = -149143276547656984948124897.8600000000
14.14 + 0.1322135476547459213732911312 = 14.2722135476
14.14 + -0.123912932193769965476541321 = 14.0160870678
Number "-16.60" (scale 10)
-16.60 + 15 = -1.6000000000
-16.60 + -15 = -31.6000000000
-16.60 + 1 = -15.6000000000
-16.60 + -9 = -25.6000000000
-16.60 + 14.14 = -2.4600000000
-16.60 + -16.60 = -33.2000000000
-16.60 + 0.15 = -16.4500000000
-16.60 + -0.01 = -16.6100000000
-16.60 + 0 = -16.6000000000
-16.60 + 0.00 = -16.6000000000
-16.60 + -0 = -16.6000000000
-16.60 + -0.00 = -16.6000000000
-16.60 + 15151324141414.412312232141241 = 15151324141397.8123122321
-16.60 + -132132245132134.1515123765412 = -132132245132150.7515123765
-16.60 + 141241241241241248267654747412 = 141241241241241248267654747395.4000000000
-16.60 + -149143276547656984948124912 = -149143276547656984948124928.6000000000
-16.60 + 0.1322135476547459213732911312 = -16.4677864523
-16.60 + -0.123912932193769965476541321 = -16.7239129321
Number "0.15" (scale 10)
0.15 + 15 = 15.1500000000
0.15 + -15 = -14.8500000000
0.15 + 1 = 1.1500000000
0.15 + -9 = -8.8500000000
0.15 + 14.14 = 14.2900000000
0.15 + -16.60 = -16.4500000000
0.15 + 0.15 = 0.3000000000
0.15 + -0.01 = 0.1400000000
0.15 + 0 = 0.1500000000
0.15 + 0.00 = 0.1500000000
0.15 + -0 = 0.1500000000
0.15 + -0.00 = 0.1500000000
0.15 + 15151324141414.412312232141241 = 15151324141414.5623122321
0.15 + -132132245132134.1515123765412 = -132132245132134.0015123765
0.15 + 141241241241241248267654747412 = 141241241241241248267654747412.1500000000
0.15 + -149143276547656984948124912 = -149143276547656984948124911.8500000000
0.15 + 0.1322135476547459213732911312 = 0.2822135476
0.15 + -0.123912932193769965476541321 = 0.0260870678
Number "-0.01" (scale 10)
-0.01 + 15 = 14.9900000000
-0.01 + -15 = -15.0100000000
-0.01 + 1 = 0.9900000000
-0.01 + -9 = -9.0100000000
-0.01 + 14.14 = 14.1300000000
-0.01 + -16.60 = -16.6100000000
-0.01 + 0.15 = 0.1400000000
-0.01 + -0.01 = -0.0200000000
-0.01 + 0 = -0.0100000000
-0.01 + 0.00 = -0.0100000000
-0.01 + -0 = -0.0100000000
-0.01 + -0.00 = -0.0100000000
-0.01 + 15151324141414.412312232141241 = 15151324141414.4023122321
-0.01 + -132132245132134.1515123765412 = -132132245132134.1615123765
-0.01 + 141241241241241248267654747412 = 141241241241241248267654747411.9900000000
-0.01 + -149143276547656984948124912 = -149143276547656984948124912.0100000000
-0.01 + 0.1322135476547459213732911312 = 0.1222135476
-0.01 + -0.123912932193769965476541321 = -0.1339129321

View File

@@ -0,0 +1,276 @@
--TEST--
bcadd() function with large numbers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$leftSummands = [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
$rightSummands = array_merge($leftSummands, [
"0",
"0.00",
"-0",
"-0.00",
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
]);
run_bcmath_tests($leftSummands, $rightSummands, "+", bcadd(...));
?>
--EXPECT--
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 + 15151324141414.412312232141241 = 30302648282828
15151324141414.412312232141241 + -132132245132134.1515123765412 = -116980920990719
15151324141414.412312232141241 + 141241241241241248267654747412 = 141241241241241263418978888826
15151324141414.412312232141241 + -149143276547656984948124912 = -149143276547641833623983497
15151324141414.412312232141241 + 0.1322135476547459213732911312 = 15151324141414
15151324141414.412312232141241 + -0.123912932193769965476541321 = 15151324141414
15151324141414.412312232141241 + 0 = 15151324141414
15151324141414.412312232141241 + 0.00 = 15151324141414
15151324141414.412312232141241 + -0 = 15151324141414
15151324141414.412312232141241 + -0.00 = 15151324141414
15151324141414.412312232141241 + 15 = 15151324141429
15151324141414.412312232141241 + -15 = 15151324141399
15151324141414.412312232141241 + 1 = 15151324141415
15151324141414.412312232141241 + -9 = 15151324141405
15151324141414.412312232141241 + 14.14 = 15151324141428
15151324141414.412312232141241 + -16.60 = 15151324141397
15151324141414.412312232141241 + 0.15 = 15151324141414
15151324141414.412312232141241 + -0.01 = 15151324141414
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 + 15151324141414.412312232141241 = -116980920990719
-132132245132134.1515123765412 + -132132245132134.1515123765412 = -264264490264268
-132132245132134.1515123765412 + 141241241241241248267654747412 = 141241241241241116135409615277
-132132245132134.1515123765412 + -149143276547656984948124912 = -149143276547789117193257046
-132132245132134.1515123765412 + 0.1322135476547459213732911312 = -132132245132134
-132132245132134.1515123765412 + -0.123912932193769965476541321 = -132132245132134
-132132245132134.1515123765412 + 0 = -132132245132134
-132132245132134.1515123765412 + 0.00 = -132132245132134
-132132245132134.1515123765412 + -0 = -132132245132134
-132132245132134.1515123765412 + -0.00 = -132132245132134
-132132245132134.1515123765412 + 15 = -132132245132119
-132132245132134.1515123765412 + -15 = -132132245132149
-132132245132134.1515123765412 + 1 = -132132245132133
-132132245132134.1515123765412 + -9 = -132132245132143
-132132245132134.1515123765412 + 14.14 = -132132245132120
-132132245132134.1515123765412 + -16.60 = -132132245132150
-132132245132134.1515123765412 + 0.15 = -132132245132134
-132132245132134.1515123765412 + -0.01 = -132132245132134
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 + 15151324141414.412312232141241 = 141241241241241263418978888826
141241241241241248267654747412 + -132132245132134.1515123765412 = 141241241241241116135409615277
141241241241241248267654747412 + 141241241241241248267654747412 = 282482482482482496535309494824
141241241241241248267654747412 + -149143276547656984948124912 = 141092097964693591282706622500
141241241241241248267654747412 + 0.1322135476547459213732911312 = 141241241241241248267654747412
141241241241241248267654747412 + -0.123912932193769965476541321 = 141241241241241248267654747411
141241241241241248267654747412 + 0 = 141241241241241248267654747412
141241241241241248267654747412 + 0.00 = 141241241241241248267654747412
141241241241241248267654747412 + -0 = 141241241241241248267654747412
141241241241241248267654747412 + -0.00 = 141241241241241248267654747412
141241241241241248267654747412 + 15 = 141241241241241248267654747427
141241241241241248267654747412 + -15 = 141241241241241248267654747397
141241241241241248267654747412 + 1 = 141241241241241248267654747413
141241241241241248267654747412 + -9 = 141241241241241248267654747403
141241241241241248267654747412 + 14.14 = 141241241241241248267654747426
141241241241241248267654747412 + -16.60 = 141241241241241248267654747395
141241241241241248267654747412 + 0.15 = 141241241241241248267654747412
141241241241241248267654747412 + -0.01 = 141241241241241248267654747411
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 + 15151324141414.412312232141241 = -149143276547641833623983497
-149143276547656984948124912 + -132132245132134.1515123765412 = -149143276547789117193257046
-149143276547656984948124912 + 141241241241241248267654747412 = 141092097964693591282706622500
-149143276547656984948124912 + -149143276547656984948124912 = -298286553095313969896249824
-149143276547656984948124912 + 0.1322135476547459213732911312 = -149143276547656984948124911
-149143276547656984948124912 + -0.123912932193769965476541321 = -149143276547656984948124912
-149143276547656984948124912 + 0 = -149143276547656984948124912
-149143276547656984948124912 + 0.00 = -149143276547656984948124912
-149143276547656984948124912 + -0 = -149143276547656984948124912
-149143276547656984948124912 + -0.00 = -149143276547656984948124912
-149143276547656984948124912 + 15 = -149143276547656984948124897
-149143276547656984948124912 + -15 = -149143276547656984948124927
-149143276547656984948124912 + 1 = -149143276547656984948124911
-149143276547656984948124912 + -9 = -149143276547656984948124921
-149143276547656984948124912 + 14.14 = -149143276547656984948124897
-149143276547656984948124912 + -16.60 = -149143276547656984948124928
-149143276547656984948124912 + 0.15 = -149143276547656984948124911
-149143276547656984948124912 + -0.01 = -149143276547656984948124912
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 + 15151324141414.412312232141241 = 15151324141414
0.1322135476547459213732911312 + -132132245132134.1515123765412 = -132132245132134
0.1322135476547459213732911312 + 141241241241241248267654747412 = 141241241241241248267654747412
0.1322135476547459213732911312 + -149143276547656984948124912 = -149143276547656984948124911
0.1322135476547459213732911312 + 0.1322135476547459213732911312 = 0
0.1322135476547459213732911312 + -0.123912932193769965476541321 = 0
0.1322135476547459213732911312 + 0 = 0
0.1322135476547459213732911312 + 0.00 = 0
0.1322135476547459213732911312 + -0 = 0
0.1322135476547459213732911312 + -0.00 = 0
0.1322135476547459213732911312 + 15 = 15
0.1322135476547459213732911312 + -15 = -14
0.1322135476547459213732911312 + 1 = 1
0.1322135476547459213732911312 + -9 = -8
0.1322135476547459213732911312 + 14.14 = 14
0.1322135476547459213732911312 + -16.60 = -16
0.1322135476547459213732911312 + 0.15 = 0
0.1322135476547459213732911312 + -0.01 = 0
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 + 15151324141414.412312232141241 = 15151324141414
-0.123912932193769965476541321 + -132132245132134.1515123765412 = -132132245132134
-0.123912932193769965476541321 + 141241241241241248267654747412 = 141241241241241248267654747411
-0.123912932193769965476541321 + -149143276547656984948124912 = -149143276547656984948124912
-0.123912932193769965476541321 + 0.1322135476547459213732911312 = 0
-0.123912932193769965476541321 + -0.123912932193769965476541321 = 0
-0.123912932193769965476541321 + 0 = 0
-0.123912932193769965476541321 + 0.00 = 0
-0.123912932193769965476541321 + -0 = 0
-0.123912932193769965476541321 + -0.00 = 0
-0.123912932193769965476541321 + 15 = 14
-0.123912932193769965476541321 + -15 = -15
-0.123912932193769965476541321 + 1 = 0
-0.123912932193769965476541321 + -9 = -9
-0.123912932193769965476541321 + 14.14 = 14
-0.123912932193769965476541321 + -16.60 = -16
-0.123912932193769965476541321 + 0.15 = 0
-0.123912932193769965476541321 + -0.01 = 0
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 + 15151324141414.412312232141241 = 30302648282828.8246244642
15151324141414.412312232141241 + -132132245132134.1515123765412 = -116980920990719.7392001443
15151324141414.412312232141241 + 141241241241241248267654747412 = 141241241241241263418978888826.4123122321
15151324141414.412312232141241 + -149143276547656984948124912 = -149143276547641833623983497.5876877678
15151324141414.412312232141241 + 0.1322135476547459213732911312 = 15151324141414.5445257797
15151324141414.412312232141241 + -0.123912932193769965476541321 = 15151324141414.2883992999
15151324141414.412312232141241 + 0 = 15151324141414.4123122321
15151324141414.412312232141241 + 0.00 = 15151324141414.4123122321
15151324141414.412312232141241 + -0 = 15151324141414.4123122321
15151324141414.412312232141241 + -0.00 = 15151324141414.4123122321
15151324141414.412312232141241 + 15 = 15151324141429.4123122321
15151324141414.412312232141241 + -15 = 15151324141399.4123122321
15151324141414.412312232141241 + 1 = 15151324141415.4123122321
15151324141414.412312232141241 + -9 = 15151324141405.4123122321
15151324141414.412312232141241 + 14.14 = 15151324141428.5523122321
15151324141414.412312232141241 + -16.60 = 15151324141397.8123122321
15151324141414.412312232141241 + 0.15 = 15151324141414.5623122321
15151324141414.412312232141241 + -0.01 = 15151324141414.4023122321
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 + 15151324141414.412312232141241 = -116980920990719.7392001443
-132132245132134.1515123765412 + -132132245132134.1515123765412 = -264264490264268.3030247530
-132132245132134.1515123765412 + 141241241241241248267654747412 = 141241241241241116135409615277.8484876234
-132132245132134.1515123765412 + -149143276547656984948124912 = -149143276547789117193257046.1515123765
-132132245132134.1515123765412 + 0.1322135476547459213732911312 = -132132245132134.0192988288
-132132245132134.1515123765412 + -0.123912932193769965476541321 = -132132245132134.2754253087
-132132245132134.1515123765412 + 0 = -132132245132134.1515123765
-132132245132134.1515123765412 + 0.00 = -132132245132134.1515123765
-132132245132134.1515123765412 + -0 = -132132245132134.1515123765
-132132245132134.1515123765412 + -0.00 = -132132245132134.1515123765
-132132245132134.1515123765412 + 15 = -132132245132119.1515123765
-132132245132134.1515123765412 + -15 = -132132245132149.1515123765
-132132245132134.1515123765412 + 1 = -132132245132133.1515123765
-132132245132134.1515123765412 + -9 = -132132245132143.1515123765
-132132245132134.1515123765412 + 14.14 = -132132245132120.0115123765
-132132245132134.1515123765412 + -16.60 = -132132245132150.7515123765
-132132245132134.1515123765412 + 0.15 = -132132245132134.0015123765
-132132245132134.1515123765412 + -0.01 = -132132245132134.1615123765
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 + 15151324141414.412312232141241 = 141241241241241263418978888826.4123122321
141241241241241248267654747412 + -132132245132134.1515123765412 = 141241241241241116135409615277.8484876234
141241241241241248267654747412 + 141241241241241248267654747412 = 282482482482482496535309494824.0000000000
141241241241241248267654747412 + -149143276547656984948124912 = 141092097964693591282706622500.0000000000
141241241241241248267654747412 + 0.1322135476547459213732911312 = 141241241241241248267654747412.1322135476
141241241241241248267654747412 + -0.123912932193769965476541321 = 141241241241241248267654747411.8760870678
141241241241241248267654747412 + 0 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 + 0.00 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 + -0 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 + -0.00 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 + 15 = 141241241241241248267654747427.0000000000
141241241241241248267654747412 + -15 = 141241241241241248267654747397.0000000000
141241241241241248267654747412 + 1 = 141241241241241248267654747413.0000000000
141241241241241248267654747412 + -9 = 141241241241241248267654747403.0000000000
141241241241241248267654747412 + 14.14 = 141241241241241248267654747426.1400000000
141241241241241248267654747412 + -16.60 = 141241241241241248267654747395.4000000000
141241241241241248267654747412 + 0.15 = 141241241241241248267654747412.1500000000
141241241241241248267654747412 + -0.01 = 141241241241241248267654747411.9900000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 + 15151324141414.412312232141241 = -149143276547641833623983497.5876877678
-149143276547656984948124912 + -132132245132134.1515123765412 = -149143276547789117193257046.1515123765
-149143276547656984948124912 + 141241241241241248267654747412 = 141092097964693591282706622500.0000000000
-149143276547656984948124912 + -149143276547656984948124912 = -298286553095313969896249824.0000000000
-149143276547656984948124912 + 0.1322135476547459213732911312 = -149143276547656984948124911.8677864523
-149143276547656984948124912 + -0.123912932193769965476541321 = -149143276547656984948124912.1239129321
-149143276547656984948124912 + 0 = -149143276547656984948124912.0000000000
-149143276547656984948124912 + 0.00 = -149143276547656984948124912.0000000000
-149143276547656984948124912 + -0 = -149143276547656984948124912.0000000000
-149143276547656984948124912 + -0.00 = -149143276547656984948124912.0000000000
-149143276547656984948124912 + 15 = -149143276547656984948124897.0000000000
-149143276547656984948124912 + -15 = -149143276547656984948124927.0000000000
-149143276547656984948124912 + 1 = -149143276547656984948124911.0000000000
-149143276547656984948124912 + -9 = -149143276547656984948124921.0000000000
-149143276547656984948124912 + 14.14 = -149143276547656984948124897.8600000000
-149143276547656984948124912 + -16.60 = -149143276547656984948124928.6000000000
-149143276547656984948124912 + 0.15 = -149143276547656984948124911.8500000000
-149143276547656984948124912 + -0.01 = -149143276547656984948124912.0100000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 + 15151324141414.412312232141241 = 15151324141414.5445257797
0.1322135476547459213732911312 + -132132245132134.1515123765412 = -132132245132134.0192988288
0.1322135476547459213732911312 + 141241241241241248267654747412 = 141241241241241248267654747412.1322135476
0.1322135476547459213732911312 + -149143276547656984948124912 = -149143276547656984948124911.8677864523
0.1322135476547459213732911312 + 0.1322135476547459213732911312 = 0.2644270953
0.1322135476547459213732911312 + -0.123912932193769965476541321 = 0.0083006154
0.1322135476547459213732911312 + 0 = 0.1322135476
0.1322135476547459213732911312 + 0.00 = 0.1322135476
0.1322135476547459213732911312 + -0 = 0.1322135476
0.1322135476547459213732911312 + -0.00 = 0.1322135476
0.1322135476547459213732911312 + 15 = 15.1322135476
0.1322135476547459213732911312 + -15 = -14.8677864523
0.1322135476547459213732911312 + 1 = 1.1322135476
0.1322135476547459213732911312 + -9 = -8.8677864523
0.1322135476547459213732911312 + 14.14 = 14.2722135476
0.1322135476547459213732911312 + -16.60 = -16.4677864523
0.1322135476547459213732911312 + 0.15 = 0.2822135476
0.1322135476547459213732911312 + -0.01 = 0.1222135476
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 + 15151324141414.412312232141241 = 15151324141414.2883992999
-0.123912932193769965476541321 + -132132245132134.1515123765412 = -132132245132134.2754253087
-0.123912932193769965476541321 + 141241241241241248267654747412 = 141241241241241248267654747411.8760870678
-0.123912932193769965476541321 + -149143276547656984948124912 = -149143276547656984948124912.1239129321
-0.123912932193769965476541321 + 0.1322135476547459213732911312 = 0.0083006154
-0.123912932193769965476541321 + -0.123912932193769965476541321 = -0.2478258643
-0.123912932193769965476541321 + 0 = -0.1239129321
-0.123912932193769965476541321 + 0.00 = -0.1239129321
-0.123912932193769965476541321 + -0 = -0.1239129321
-0.123912932193769965476541321 + -0.00 = -0.1239129321
-0.123912932193769965476541321 + 15 = 14.8760870678
-0.123912932193769965476541321 + -15 = -15.1239129321
-0.123912932193769965476541321 + 1 = 0.8760870678
-0.123912932193769965476541321 + -9 = -9.1239129321
-0.123912932193769965476541321 + 14.14 = 14.0160870678
-0.123912932193769965476541321 + -16.60 = -16.7239129321
-0.123912932193769965476541321 + 0.15 = 0.0260870678
-0.123912932193769965476541321 + -0.01 = -0.1339129321

View File

@@ -1,22 +0,0 @@
--TEST--
bcadd() with non-integers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=5
--FILE--
<?php
echo bcadd("2.2", "4.3", "2")."\n";
echo bcadd("2.2", "4.3", 2)."\n";
echo bcadd("2.2", "-7.3", "1")."\n";
echo bcadd("2.2", "-7.3", 1)."\n";
echo bcadd("-4.27", "7.3")."\n";
echo bcadd("-4.27", "-7.3");
?>
--EXPECT--
6.50
6.50
-5.1
-5.1
3.03000
-11.57000

View File

@@ -0,0 +1,191 @@
--TEST--
bcadd() function with number zero
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$leftSummands = ["0", "0.00", "-0", "-0.00"];
$rightSummands = array_merge($leftSummands, [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($leftSummands, $rightSummands, "+", bcadd(...));
?>
--EXPECT--
Number "0" (scale 0)
0 + 0 = 0
0 + 0.00 = 0
0 + -0 = 0
0 + -0.00 = 0
0 + 15 = 15
0 + -15 = -15
0 + 1 = 1
0 + -9 = -9
0 + 14.14 = 14
0 + -16.60 = -16
0 + 0.15 = 0
0 + -0.01 = 0
0 + 15151324141414.412312232141241 = 15151324141414
0 + -132132245132134.1515123765412 = -132132245132134
0 + 141241241241241248267654747412 = 141241241241241248267654747412
0 + -149143276547656984948124912 = -149143276547656984948124912
0 + 0.1322135476547459213732911312 = 0
0 + -0.123912932193769965476541321 = 0
Number "0.00" (scale 0)
0.00 + 0 = 0
0.00 + 0.00 = 0
0.00 + -0 = 0
0.00 + -0.00 = 0
0.00 + 15 = 15
0.00 + -15 = -15
0.00 + 1 = 1
0.00 + -9 = -9
0.00 + 14.14 = 14
0.00 + -16.60 = -16
0.00 + 0.15 = 0
0.00 + -0.01 = 0
0.00 + 15151324141414.412312232141241 = 15151324141414
0.00 + -132132245132134.1515123765412 = -132132245132134
0.00 + 141241241241241248267654747412 = 141241241241241248267654747412
0.00 + -149143276547656984948124912 = -149143276547656984948124912
0.00 + 0.1322135476547459213732911312 = 0
0.00 + -0.123912932193769965476541321 = 0
Number "-0" (scale 0)
-0 + 0 = 0
-0 + 0.00 = 0
-0 + -0 = 0
-0 + -0.00 = 0
-0 + 15 = 15
-0 + -15 = -15
-0 + 1 = 1
-0 + -9 = -9
-0 + 14.14 = 14
-0 + -16.60 = -16
-0 + 0.15 = 0
-0 + -0.01 = 0
-0 + 15151324141414.412312232141241 = 15151324141414
-0 + -132132245132134.1515123765412 = -132132245132134
-0 + 141241241241241248267654747412 = 141241241241241248267654747412
-0 + -149143276547656984948124912 = -149143276547656984948124912
-0 + 0.1322135476547459213732911312 = 0
-0 + -0.123912932193769965476541321 = 0
Number "-0.00" (scale 0)
-0.00 + 0 = 0
-0.00 + 0.00 = 0
-0.00 + -0 = 0
-0.00 + -0.00 = 0
-0.00 + 15 = 15
-0.00 + -15 = -15
-0.00 + 1 = 1
-0.00 + -9 = -9
-0.00 + 14.14 = 14
-0.00 + -16.60 = -16
-0.00 + 0.15 = 0
-0.00 + -0.01 = 0
-0.00 + 15151324141414.412312232141241 = 15151324141414
-0.00 + -132132245132134.1515123765412 = -132132245132134
-0.00 + 141241241241241248267654747412 = 141241241241241248267654747412
-0.00 + -149143276547656984948124912 = -149143276547656984948124912
-0.00 + 0.1322135476547459213732911312 = 0
-0.00 + -0.123912932193769965476541321 = 0
Number "0" (scale 10)
0 + 0 = 0.0000000000
0 + 0.00 = 0.0000000000
0 + -0 = 0.0000000000
0 + -0.00 = 0.0000000000
0 + 15 = 15.0000000000
0 + -15 = -15.0000000000
0 + 1 = 1.0000000000
0 + -9 = -9.0000000000
0 + 14.14 = 14.1400000000
0 + -16.60 = -16.6000000000
0 + 0.15 = 0.1500000000
0 + -0.01 = -0.0100000000
0 + 15151324141414.412312232141241 = 15151324141414.4123122321
0 + -132132245132134.1515123765412 = -132132245132134.1515123765
0 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
0 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
0 + 0.1322135476547459213732911312 = 0.1322135476
0 + -0.123912932193769965476541321 = -0.1239129321
Number "0.00" (scale 10)
0.00 + 0 = 0.0000000000
0.00 + 0.00 = 0.0000000000
0.00 + -0 = 0.0000000000
0.00 + -0.00 = 0.0000000000
0.00 + 15 = 15.0000000000
0.00 + -15 = -15.0000000000
0.00 + 1 = 1.0000000000
0.00 + -9 = -9.0000000000
0.00 + 14.14 = 14.1400000000
0.00 + -16.60 = -16.6000000000
0.00 + 0.15 = 0.1500000000
0.00 + -0.01 = -0.0100000000
0.00 + 15151324141414.412312232141241 = 15151324141414.4123122321
0.00 + -132132245132134.1515123765412 = -132132245132134.1515123765
0.00 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
0.00 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
0.00 + 0.1322135476547459213732911312 = 0.1322135476
0.00 + -0.123912932193769965476541321 = -0.1239129321
Number "-0" (scale 10)
-0 + 0 = 0.0000000000
-0 + 0.00 = 0.0000000000
-0 + -0 = 0.0000000000
-0 + -0.00 = 0.0000000000
-0 + 15 = 15.0000000000
-0 + -15 = -15.0000000000
-0 + 1 = 1.0000000000
-0 + -9 = -9.0000000000
-0 + 14.14 = 14.1400000000
-0 + -16.60 = -16.6000000000
-0 + 0.15 = 0.1500000000
-0 + -0.01 = -0.0100000000
-0 + 15151324141414.412312232141241 = 15151324141414.4123122321
-0 + -132132245132134.1515123765412 = -132132245132134.1515123765
-0 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
-0 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
-0 + 0.1322135476547459213732911312 = 0.1322135476
-0 + -0.123912932193769965476541321 = -0.1239129321
Number "-0.00" (scale 10)
-0.00 + 0 = 0.0000000000
-0.00 + 0.00 = 0.0000000000
-0.00 + -0 = 0.0000000000
-0.00 + -0.00 = 0.0000000000
-0.00 + 15 = 15.0000000000
-0.00 + -15 = -15.0000000000
-0.00 + 1 = 1.0000000000
-0.00 + -9 = -9.0000000000
-0.00 + 14.14 = 14.1400000000
-0.00 + -16.60 = -16.6000000000
-0.00 + 0.15 = 0.1500000000
-0.00 + -0.01 = -0.0100000000
-0.00 + 15151324141414.412312232141241 = 15151324141414.4123122321
-0.00 + -132132245132134.1515123765412 = -132132245132134.1515123765
-0.00 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
-0.00 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
-0.00 + 0.1322135476547459213732911312 = 0.1322135476
-0.00 + -0.123912932193769965476541321 = -0.1239129321

View File

@@ -6,13 +6,20 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bccomp("-1", "5", 4),"\n";
echo bccomp("1928372132132819737213", "8728932001983192837219398127471"),"\n";
echo bccomp("1.00000000000000000001", "1", 2),"\n";
echo bccomp("97321", "2321"),"\n";
echo bccomp("-1", "5", 4), "\n";
echo bccomp("1928372132132819737213", "8728932001983192837219398127471"), "\n";
echo bccomp("1.00000000000000000001", "1", 2), "\n";
echo bccomp("97321", "2321"), "\n";
echo bccomp("0", "14"), "\n";
echo bccomp("1", "0"), "\n";
echo bccomp("0.000", "0", 3), "\n";
?>
--EXPECT--
-1
-1
0
1
-1
1
0

View File

@@ -6,11 +6,13 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bccomp("2.2", "2.2", "2")."\n";
echo bccomp("2.32", "2.2", "2")."\n";
echo bccomp("2.29", "2.3", "2");
echo bccomp("2.2", "2.2", "2") . "\n";
echo bccomp("2.32", "2.2", "2") . "\n";
echo bccomp("2.29", "2.3", "2") . "\n";
echo bccomp("2.29", "0", "2") . "\n";
?>
--EXPECT--
0
1
-1
1

View File

@@ -6,12 +6,13 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bccomp("-2", "-2")."\n";
echo bccomp("-2", "2", "1")."\n";
echo bccomp("-2.29", "-2.3", "2")."\n";
echo bccomp("-2.29", "2.3", "2")."\n";
echo bccomp("2.29", "-2.3", "2")."\n";
echo bccomp("-2.29", "-2.3", "1");
echo bccomp("-2", "-2") . "\n";
echo bccomp("-2", "2", "1") . "\n";
echo bccomp("-2.29", "-2.3", "2") . "\n";
echo bccomp("-2.29", "2.3", "2") . "\n";
echo bccomp("2.29", "-2.3", "2") . "\n";
echo bccomp("-2.29", "-2.3", "1") . "\n";
echo bccomp("-2.29", "0", "1") . "\n";
?>
--EXPECT--
0
@@ -20,3 +21,4 @@ echo bccomp("-2.29", "-2.3", "1");
-1
1
1
-1

View File

@@ -6,13 +6,274 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcdiv("1", "2"),"\n";
echo bcdiv("1", "2", 2),"\n";
echo bcdiv("-1", "5", 4),"\n";
echo bcdiv("8728932001983192837219398127471", "1928372132132819737213", 2),"\n";
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",
]);
run_bcmath_tests($dividends, $divisors, "/", bcdiv(...));
?>
--EXPECT--
0
0.50
-0.2000
4526580661.75
Number "15" (scale 0)
15 / 15 = 1
15 / -15 = -1
15 / 1 = 15
15 / -9 = -1
15 / 14.14 = 1
15 / -16.60 = 0
15 / 0.15 = 100
15 / -0.01 = -1500
15 / 15151324141414.412312232141241 = 0
15 / -132132245132134.1515123765412 = 0
15 / 141241241241241248267654747412 = 0
15 / -149143276547656984948124912 = 0
15 / 0.1322135476547459213732911312 = 113
15 / -0.123912932193769965476541321 = -121
Number "-15" (scale 0)
-15 / 15 = -1
-15 / -15 = 1
-15 / 1 = -15
-15 / -9 = 1
-15 / 14.14 = -1
-15 / -16.60 = 0
-15 / 0.15 = -100
-15 / -0.01 = 1500
-15 / 15151324141414.412312232141241 = 0
-15 / -132132245132134.1515123765412 = 0
-15 / 141241241241241248267654747412 = 0
-15 / -149143276547656984948124912 = 0
-15 / 0.1322135476547459213732911312 = -113
-15 / -0.123912932193769965476541321 = 121
Number "1" (scale 0)
1 / 15 = 0
1 / -15 = 0
1 / 1 = 1
1 / -9 = 0
1 / 14.14 = 0
1 / -16.60 = 0
1 / 0.15 = 6
1 / -0.01 = -100
1 / 15151324141414.412312232141241 = 0
1 / -132132245132134.1515123765412 = 0
1 / 141241241241241248267654747412 = 0
1 / -149143276547656984948124912 = 0
1 / 0.1322135476547459213732911312 = 7
1 / -0.123912932193769965476541321 = -8
Number "-9" (scale 0)
-9 / 15 = 0
-9 / -15 = 0
-9 / 1 = -9
-9 / -9 = 1
-9 / 14.14 = 0
-9 / -16.60 = 0
-9 / 0.15 = -60
-9 / -0.01 = 900
-9 / 15151324141414.412312232141241 = 0
-9 / -132132245132134.1515123765412 = 0
-9 / 141241241241241248267654747412 = 0
-9 / -149143276547656984948124912 = 0
-9 / 0.1322135476547459213732911312 = -68
-9 / -0.123912932193769965476541321 = 72
Number "14.14" (scale 0)
14.14 / 15 = 0
14.14 / -15 = 0
14.14 / 1 = 14
14.14 / -9 = -1
14.14 / 14.14 = 1
14.14 / -16.60 = 0
14.14 / 0.15 = 94
14.14 / -0.01 = -1414
14.14 / 15151324141414.412312232141241 = 0
14.14 / -132132245132134.1515123765412 = 0
14.14 / 141241241241241248267654747412 = 0
14.14 / -149143276547656984948124912 = 0
14.14 / 0.1322135476547459213732911312 = 106
14.14 / -0.123912932193769965476541321 = -114
Number "-16.60" (scale 0)
-16.60 / 15 = -1
-16.60 / -15 = 1
-16.60 / 1 = -16
-16.60 / -9 = 1
-16.60 / 14.14 = -1
-16.60 / -16.60 = 1
-16.60 / 0.15 = -110
-16.60 / -0.01 = 1660
-16.60 / 15151324141414.412312232141241 = 0
-16.60 / -132132245132134.1515123765412 = 0
-16.60 / 141241241241241248267654747412 = 0
-16.60 / -149143276547656984948124912 = 0
-16.60 / 0.1322135476547459213732911312 = -125
-16.60 / -0.123912932193769965476541321 = 133
Number "0.15" (scale 0)
0.15 / 15 = 0
0.15 / -15 = 0
0.15 / 1 = 0
0.15 / -9 = 0
0.15 / 14.14 = 0
0.15 / -16.60 = 0
0.15 / 0.15 = 1
0.15 / -0.01 = -15
0.15 / 15151324141414.412312232141241 = 0
0.15 / -132132245132134.1515123765412 = 0
0.15 / 141241241241241248267654747412 = 0
0.15 / -149143276547656984948124912 = 0
0.15 / 0.1322135476547459213732911312 = 1
0.15 / -0.123912932193769965476541321 = -1
Number "-0.01" (scale 0)
-0.01 / 15 = 0
-0.01 / -15 = 0
-0.01 / 1 = 0
-0.01 / -9 = 0
-0.01 / 14.14 = 0
-0.01 / -16.60 = 0
-0.01 / 0.15 = 0
-0.01 / -0.01 = 1
-0.01 / 15151324141414.412312232141241 = 0
-0.01 / -132132245132134.1515123765412 = 0
-0.01 / 141241241241241248267654747412 = 0
-0.01 / -149143276547656984948124912 = 0
-0.01 / 0.1322135476547459213732911312 = 0
-0.01 / -0.123912932193769965476541321 = 0
Number "15" (scale 10)
15 / 15 = 1.0000000000
15 / -15 = -1.0000000000
15 / 1 = 15.0000000000
15 / -9 = -1.6666666666
15 / 14.14 = 1.0608203677
15 / -16.60 = -0.9036144578
15 / 0.15 = 100.0000000000
15 / -0.01 = -1500.0000000000
15 / 15151324141414.412312232141241 = 0.0000000000
15 / -132132245132134.1515123765412 = 0.0000000000
15 / 141241241241241248267654747412 = 0.0000000000
15 / -149143276547656984948124912 = 0.0000000000
15 / 0.1322135476547459213732911312 = 113.4528213339
15 / -0.123912932193769965476541321 = -121.0527402946
Number "-15" (scale 10)
-15 / 15 = -1.0000000000
-15 / -15 = 1.0000000000
-15 / 1 = -15.0000000000
-15 / -9 = 1.6666666666
-15 / 14.14 = -1.0608203677
-15 / -16.60 = 0.9036144578
-15 / 0.15 = -100.0000000000
-15 / -0.01 = 1500.0000000000
-15 / 15151324141414.412312232141241 = 0.0000000000
-15 / -132132245132134.1515123765412 = 0.0000000000
-15 / 141241241241241248267654747412 = 0.0000000000
-15 / -149143276547656984948124912 = 0.0000000000
-15 / 0.1322135476547459213732911312 = -113.4528213339
-15 / -0.123912932193769965476541321 = 121.0527402946
Number "1" (scale 10)
1 / 15 = 0.0666666666
1 / -15 = -0.0666666666
1 / 1 = 1.0000000000
1 / -9 = -0.1111111111
1 / 14.14 = 0.0707213578
1 / -16.60 = -0.0602409638
1 / 0.15 = 6.6666666666
1 / -0.01 = -100.0000000000
1 / 15151324141414.412312232141241 = 0.0000000000
1 / -132132245132134.1515123765412 = 0.0000000000
1 / 141241241241241248267654747412 = 0.0000000000
1 / -149143276547656984948124912 = 0.0000000000
1 / 0.1322135476547459213732911312 = 7.5635214222
1 / -0.123912932193769965476541321 = -8.0701826863
Number "-9" (scale 10)
-9 / 15 = -0.6000000000
-9 / -15 = 0.6000000000
-9 / 1 = -9.0000000000
-9 / -9 = 1.0000000000
-9 / 14.14 = -0.6364922206
-9 / -16.60 = 0.5421686746
-9 / 0.15 = -60.0000000000
-9 / -0.01 = 900.0000000000
-9 / 15151324141414.412312232141241 = 0.0000000000
-9 / -132132245132134.1515123765412 = 0.0000000000
-9 / 141241241241241248267654747412 = 0.0000000000
-9 / -149143276547656984948124912 = 0.0000000000
-9 / 0.1322135476547459213732911312 = -68.0716928003
-9 / -0.123912932193769965476541321 = 72.6316441767
Number "14.14" (scale 10)
14.14 / 15 = 0.9426666666
14.14 / -15 = -0.9426666666
14.14 / 1 = 14.1400000000
14.14 / -9 = -1.5711111111
14.14 / 14.14 = 1.0000000000
14.14 / -16.60 = -0.8518072289
14.14 / 0.15 = 94.2666666666
14.14 / -0.01 = -1414.0000000000
14.14 / 15151324141414.412312232141241 = 0.0000000000
14.14 / -132132245132134.1515123765412 = 0.0000000000
14.14 / 141241241241241248267654747412 = 0.0000000000
14.14 / -149143276547656984948124912 = 0.0000000000
14.14 / 0.1322135476547459213732911312 = 106.9481929107
14.14 / -0.123912932193769965476541321 = -114.1123831844
Number "-16.60" (scale 10)
-16.60 / 15 = -1.1066666666
-16.60 / -15 = 1.1066666666
-16.60 / 1 = -16.6000000000
-16.60 / -9 = 1.8444444444
-16.60 / 14.14 = -1.1739745403
-16.60 / -16.60 = 1.0000000000
-16.60 / 0.15 = -110.6666666666
-16.60 / -0.01 = 1660.0000000000
-16.60 / 15151324141414.412312232141241 = 0.0000000000
-16.60 / -132132245132134.1515123765412 = 0.0000000000
-16.60 / 141241241241241248267654747412 = 0.0000000000
-16.60 / -149143276547656984948124912 = 0.0000000000
-16.60 / 0.1322135476547459213732911312 = -125.5544556095
-16.60 / -0.123912932193769965476541321 = 133.9650325927
Number "0.15" (scale 10)
0.15 / 15 = 0.0100000000
0.15 / -15 = -0.0100000000
0.15 / 1 = 0.1500000000
0.15 / -9 = -0.0166666666
0.15 / 14.14 = 0.0106082036
0.15 / -16.60 = -0.0090361445
0.15 / 0.15 = 1.0000000000
0.15 / -0.01 = -15.0000000000
0.15 / 15151324141414.412312232141241 = 0.0000000000
0.15 / -132132245132134.1515123765412 = 0.0000000000
0.15 / 141241241241241248267654747412 = 0.0000000000
0.15 / -149143276547656984948124912 = 0.0000000000
0.15 / 0.1322135476547459213732911312 = 1.1345282133
0.15 / -0.123912932193769965476541321 = -1.2105274029
Number "-0.01" (scale 10)
-0.01 / 15 = -0.0006666666
-0.01 / -15 = 0.0006666666
-0.01 / 1 = -0.0100000000
-0.01 / -9 = 0.0011111111
-0.01 / 14.14 = -0.0007072135
-0.01 / -16.60 = 0.0006024096
-0.01 / 0.15 = -0.0666666666
-0.01 / -0.01 = 1.0000000000
-0.01 / 15151324141414.412312232141241 = 0.0000000000
-0.01 / -132132245132134.1515123765412 = 0.0000000000
-0.01 / 141241241241241248267654747412 = 0.0000000000
-0.01 / -149143276547656984948124912 = 0.0000000000
-0.01 / 0.1322135476547459213732911312 = -0.0756352142
-0.01 / -0.123912932193769965476541321 = 0.0807018268

View File

@@ -13,6 +13,20 @@ try {
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
try {
bcdiv('10.99', '0.00');
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
try {
bcdiv('10.99', '-0.00');
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
?>
--EXPECT--
Division by zero
Division by zero
Division by zero

View File

@@ -0,0 +1,224 @@
--TEST--
bcdiv() function with large numbers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$dividends = [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
$divisors = array_merge($dividends, [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
]);
run_bcmath_tests($dividends, $divisors, "/", bcdiv(...));
?>
--EXPECT--
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 / 15151324141414.412312232141241 = 1
15151324141414.412312232141241 / -132132245132134.1515123765412 = 0
15151324141414.412312232141241 / 141241241241241248267654747412 = 0
15151324141414.412312232141241 / -149143276547656984948124912 = 0
15151324141414.412312232141241 / 0.1322135476547459213732911312 = 114597364719231
15151324141414.412312232141241 / -0.123912932193769965476541321 = -122273953760705
15151324141414.412312232141241 / 15 = 1010088276094
15151324141414.412312232141241 / -15 = -1010088276094
15151324141414.412312232141241 / 1 = 15151324141414
15151324141414.412312232141241 / -9 = -1683480460157
15151324141414.412312232141241 / 14.14 = 1071522216507
15151324141414.412312232141241 / -16.60 = -912730369964
15151324141414.412312232141241 / 0.15 = 101008827609429
15151324141414.412312232141241 / -0.01 = -1515132414141441
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 / 15151324141414.412312232141241 = -8
-132132245132134.1515123765412 / -132132245132134.1515123765412 = 1
-132132245132134.1515123765412 / 141241241241241248267654747412 = 0
-132132245132134.1515123765412 / -149143276547656984948124912 = 0
-132132245132134.1515123765412 / 0.1322135476547459213732911312 = -999385066628541
-132132245132134.1515123765412 / -0.123912932193769965476541321 = 1066331356968545
-132132245132134.1515123765412 / 15 = -8808816342142
-132132245132134.1515123765412 / -15 = 8808816342142
-132132245132134.1515123765412 / 1 = -132132245132134
-132132245132134.1515123765412 / -9 = 14681360570237
-132132245132134.1515123765412 / 14.14 = -9344571791522
-132132245132134.1515123765412 / -16.60 = 7959773803140
-132132245132134.1515123765412 / 0.15 = -880881634214227
-132132245132134.1515123765412 / -0.01 = 13213224513213415
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 / 15151324141414.412312232141241 = 9322039441765651
141241241241241248267654747412 / -132132245132134.1515123765412 = -1068938479778330
141241241241241248267654747412 / 141241241241241248267654747412 = 1
141241241241241248267654747412 / -149143276547656984948124912 = -947
141241241241241248267654747412 / 0.1322135476547459213732911312 = 1068281153835079546834811315187
141241241241241248267654747412 / -0.123912932193769965476541321 = -1139842619657922251471288994015
141241241241241248267654747412 / 15 = 9416082749416083217843649827
141241241241241248267654747412 / -15 = -9416082749416083217843649827
141241241241241248267654747412 / 1 = 141241241241241248267654747412
141241241241241248267654747412 / -9 = -15693471249026805363072749712
141241241241241248267654747412 / 14.14 = 9988772365009989269282513961
141241241241241248267654747412 / -16.60 = -8508508508508508931786430566
141241241241241248267654747412 / 0.15 = 941608274941608321784364982746
141241241241241248267654747412 / -0.01 = -14124124124124124826765474741200
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 / 15151324141414.412312232141241 = -9843580346881
-149143276547656984948124912 / -132132245132134.1515123765412 = 1128742468566
-149143276547656984948124912 / 141241241241241248267654747412 = 0
-149143276547656984948124912 / -149143276547656984948124912 = 1
-149143276547656984948124912 / 0.1322135476547459213732911312 = -1128048367154629906735882014
-149143276547656984948124912 / -0.123912932193769965476541321 = 1203613488174364568320268735
-149143276547656984948124912 / 15 = -9942885103177132329874994
-149143276547656984948124912 / -15 = 9942885103177132329874994
-149143276547656984948124912 / 1 = -149143276547656984948124912
-149143276547656984948124912 / -9 = 16571475171961887216458323
-149143276547656984948124912 / 14.14 = -10547615031658909826600064
-149143276547656984948124912 / -16.60 = 8984534731786565358320777
-149143276547656984948124912 / 0.15 = -994288510317713232987499413
-149143276547656984948124912 / -0.01 = 14914327654765698494812491200
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 / 15151324141414.412312232141241 = 0
0.1322135476547459213732911312 / -132132245132134.1515123765412 = 0
0.1322135476547459213732911312 / 141241241241241248267654747412 = 0
0.1322135476547459213732911312 / -149143276547656984948124912 = 0
0.1322135476547459213732911312 / 0.1322135476547459213732911312 = 1
0.1322135476547459213732911312 / -0.123912932193769965476541321 = -1
0.1322135476547459213732911312 / 15 = 0
0.1322135476547459213732911312 / -15 = 0
0.1322135476547459213732911312 / 1 = 0
0.1322135476547459213732911312 / -9 = 0
0.1322135476547459213732911312 / 14.14 = 0
0.1322135476547459213732911312 / -16.60 = 0
0.1322135476547459213732911312 / 0.15 = 0
0.1322135476547459213732911312 / -0.01 = -13
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 / 15151324141414.412312232141241 = 0
-0.123912932193769965476541321 / -132132245132134.1515123765412 = 0
-0.123912932193769965476541321 / 141241241241241248267654747412 = 0
-0.123912932193769965476541321 / -149143276547656984948124912 = 0
-0.123912932193769965476541321 / 0.1322135476547459213732911312 = 0
-0.123912932193769965476541321 / -0.123912932193769965476541321 = 1
-0.123912932193769965476541321 / 15 = 0
-0.123912932193769965476541321 / -15 = 0
-0.123912932193769965476541321 / 1 = 0
-0.123912932193769965476541321 / -9 = 0
-0.123912932193769965476541321 / 14.14 = 0
-0.123912932193769965476541321 / -16.60 = 0
-0.123912932193769965476541321 / 0.15 = 0
-0.123912932193769965476541321 / -0.01 = 12
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 / 15151324141414.412312232141241 = 1.0000000000
15151324141414.412312232141241 / -132132245132134.1515123765412 = -0.1146678778
15151324141414.412312232141241 / 141241241241241248267654747412 = 0.0000000000
15151324141414.412312232141241 / -149143276547656984948124912 = 0.0000000000
15151324141414.412312232141241 / 0.1322135476547459213732911312 = 114597364719231.4957119169
15151324141414.412312232141241 / -0.123912932193769965476541321 = -122273953760705.0772823300
15151324141414.412312232141241 / 15 = 1010088276094.2941541488
15151324141414.412312232141241 / -15 = -1010088276094.2941541488
15151324141414.412312232141241 / 1 = 15151324141414.4123122321
15151324141414.412312232141241 / -9 = -1683480460157.1569235813
15151324141414.412312232141241 / 14.14 = 1071522216507.3841804973
15151324141414.412312232141241 / -16.60 = -912730369964.7236332669
15151324141414.412312232141241 / 0.15 = 101008827609429.4154148809
15151324141414.412312232141241 / -0.01 = -1515132414141441.2312232141
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 / 15151324141414.412312232141241 = -8.7208381194
-132132245132134.1515123765412 / -132132245132134.1515123765412 = 1.0000000000
-132132245132134.1515123765412 / 141241241241241248267654747412 = 0.0000000000
-132132245132134.1515123765412 / -149143276547656984948124912 = 0.0000000000
-132132245132134.1515123765412 / 0.1322135476547459213732911312 = -999385066628541.8940917146
-132132245132134.1515123765412 / -0.123912932193769965476541321 = 1066331356968545.9568177107
-132132245132134.1515123765412 / 15 = -8808816342142.2767674917
-132132245132134.1515123765412 / -15 = 8808816342142.2767674917
-132132245132134.1515123765412 / 1 = -132132245132134.1515123765
-132132245132134.1515123765412 / -9 = 14681360570237.1279458196
-132132245132134.1515123765412 / 14.14 = -9344571791522.9244351044
-132132245132134.1515123765412 / -16.60 = 7959773803140.6115368901
-132132245132134.1515123765412 / 0.15 = -880881634214227.6767491769
-132132245132134.1515123765412 / -0.01 = 13213224513213415.1512376541
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 / 15151324141414.412312232141241 = 9322039441765651.5733487418
141241241241241248267654747412 / -132132245132134.1515123765412 = -1068938479778330.9382445997
141241241241241248267654747412 / 141241241241241248267654747412 = 1.0000000000
141241241241241248267654747412 / -149143276547656984948124912 = -947.0171536435
141241241241241248267654747412 / 0.1322135476547459213732911312 = 1068281153835079546834811315187.2460414102
141241241241241248267654747412 / -0.123912932193769965476541321 = -1139842619657922251471288994015.5745430452
141241241241241248267654747412 / 15 = 9416082749416083217843649827.4666666666
141241241241241248267654747412 / -15 = -9416082749416083217843649827.4666666666
141241241241241248267654747412 / 1 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 / -9 = -15693471249026805363072749712.4444444444
141241241241241248267654747412 / 14.14 = 9988772365009989269282513961.2446958981
141241241241241248267654747412 / -16.60 = -8508508508508508931786430566.9879518072
141241241241241248267654747412 / 0.15 = 941608274941608321784364982746.6666666666
141241241241241248267654747412 / -0.01 = -14124124124124124826765474741200.0000000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 / 15151324141414.412312232141241 = -9843580346881.4246956668
-149143276547656984948124912 / -132132245132134.1515123765412 = 1128742468566.3333472319
-149143276547656984948124912 / 141241241241241248267654747412 = -0.0010559470
-149143276547656984948124912 / -149143276547656984948124912 = 1.0000000000
-149143276547656984948124912 / 0.1322135476547459213732911312 = -1128048367154629906735882014.2432613477
-149143276547656984948124912 / -0.123912932193769965476541321 = 1203613488174364568320268735.7225301437
-149143276547656984948124912 / 15 = -9942885103177132329874994.1333333333
-149143276547656984948124912 / -15 = 9942885103177132329874994.1333333333
-149143276547656984948124912 / 1 = -149143276547656984948124912.0000000000
-149143276547656984948124912 / -9 = 16571475171961887216458323.5555555555
-149143276547656984948124912 / 14.14 = -10547615031658909826600064.4978783592
-149143276547656984948124912 / -16.60 = 8984534731786565358320777.8313253012
-149143276547656984948124912 / 0.15 = -994288510317713232987499413.3333333333
-149143276547656984948124912 / -0.01 = 14914327654765698494812491200.0000000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 / 15151324141414.412312232141241 = 0.0000000000
0.1322135476547459213732911312 / -132132245132134.1515123765412 = 0.0000000000
0.1322135476547459213732911312 / 141241241241241248267654747412 = 0.0000000000
0.1322135476547459213732911312 / -149143276547656984948124912 = 0.0000000000
0.1322135476547459213732911312 / 0.1322135476547459213732911312 = 1.0000000000
0.1322135476547459213732911312 / -0.123912932193769965476541321 = -1.0669874831
0.1322135476547459213732911312 / 15 = 0.0088142365
0.1322135476547459213732911312 / -15 = -0.0088142365
0.1322135476547459213732911312 / 1 = 0.1322135476
0.1322135476547459213732911312 / -9 = -0.0146903941
0.1322135476547459213732911312 / 14.14 = 0.0093503216
0.1322135476547459213732911312 / -16.60 = -0.0079646715
0.1322135476547459213732911312 / 0.15 = 0.8814236510
0.1322135476547459213732911312 / -0.01 = -13.2213547654
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 / 15151324141414.412312232141241 = 0.0000000000
-0.123912932193769965476541321 / -132132245132134.1515123765412 = 0.0000000000
-0.123912932193769965476541321 / 141241241241241248267654747412 = 0.0000000000
-0.123912932193769965476541321 / -149143276547656984948124912 = 0.0000000000
-0.123912932193769965476541321 / 0.1322135476547459213732911312 = -0.9372181171
-0.123912932193769965476541321 / -0.123912932193769965476541321 = 1.0000000000
-0.123912932193769965476541321 / 15 = -0.0082608621
-0.123912932193769965476541321 / -15 = 0.0082608621
-0.123912932193769965476541321 / 1 = -0.1239129321
-0.123912932193769965476541321 / -9 = 0.0137681035
-0.123912932193769965476541321 / 14.14 = -0.0087632908
-0.123912932193769965476541321 / -16.60 = 0.0074646344
-0.123912932193769965476541321 / 0.15 = -0.8260862146
-0.123912932193769965476541321 / -0.01 = 12.3912932193

View File

@@ -0,0 +1,159 @@
--TEST--
bcdiv() function with number zero
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$dividends = ["0", "0.00", "-0", "-0.00"];
$divisors = [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
run_bcmath_tests($dividends, $divisors, "/", bcdiv(...));
?>
--EXPECT--
Number "0" (scale 0)
0 / 15 = 0
0 / -15 = 0
0 / 1 = 0
0 / -9 = 0
0 / 14.14 = 0
0 / -16.60 = 0
0 / 0.15 = 0
0 / -0.01 = 0
0 / 15151324141414.412312232141241 = 0
0 / -132132245132134.1515123765412 = 0
0 / 141241241241241248267654747412 = 0
0 / -149143276547656984948124912 = 0
0 / 0.1322135476547459213732911312 = 0
0 / -0.123912932193769965476541321 = 0
Number "0.00" (scale 0)
0.00 / 15 = 0
0.00 / -15 = 0
0.00 / 1 = 0
0.00 / -9 = 0
0.00 / 14.14 = 0
0.00 / -16.60 = 0
0.00 / 0.15 = 0
0.00 / -0.01 = 0
0.00 / 15151324141414.412312232141241 = 0
0.00 / -132132245132134.1515123765412 = 0
0.00 / 141241241241241248267654747412 = 0
0.00 / -149143276547656984948124912 = 0
0.00 / 0.1322135476547459213732911312 = 0
0.00 / -0.123912932193769965476541321 = 0
Number "-0" (scale 0)
-0 / 15 = 0
-0 / -15 = 0
-0 / 1 = 0
-0 / -9 = 0
-0 / 14.14 = 0
-0 / -16.60 = 0
-0 / 0.15 = 0
-0 / -0.01 = 0
-0 / 15151324141414.412312232141241 = 0
-0 / -132132245132134.1515123765412 = 0
-0 / 141241241241241248267654747412 = 0
-0 / -149143276547656984948124912 = 0
-0 / 0.1322135476547459213732911312 = 0
-0 / -0.123912932193769965476541321 = 0
Number "-0.00" (scale 0)
-0.00 / 15 = 0
-0.00 / -15 = 0
-0.00 / 1 = 0
-0.00 / -9 = 0
-0.00 / 14.14 = 0
-0.00 / -16.60 = 0
-0.00 / 0.15 = 0
-0.00 / -0.01 = 0
-0.00 / 15151324141414.412312232141241 = 0
-0.00 / -132132245132134.1515123765412 = 0
-0.00 / 141241241241241248267654747412 = 0
-0.00 / -149143276547656984948124912 = 0
-0.00 / 0.1322135476547459213732911312 = 0
-0.00 / -0.123912932193769965476541321 = 0
Number "0" (scale 10)
0 / 15 = 0.0000000000
0 / -15 = 0.0000000000
0 / 1 = 0.0000000000
0 / -9 = 0.0000000000
0 / 14.14 = 0.0000000000
0 / -16.60 = 0.0000000000
0 / 0.15 = 0.0000000000
0 / -0.01 = 0.0000000000
0 / 15151324141414.412312232141241 = 0.0000000000
0 / -132132245132134.1515123765412 = 0.0000000000
0 / 141241241241241248267654747412 = 0.0000000000
0 / -149143276547656984948124912 = 0.0000000000
0 / 0.1322135476547459213732911312 = 0.0000000000
0 / -0.123912932193769965476541321 = 0.0000000000
Number "0.00" (scale 10)
0.00 / 15 = 0.0000000000
0.00 / -15 = 0.0000000000
0.00 / 1 = 0.0000000000
0.00 / -9 = 0.0000000000
0.00 / 14.14 = 0.0000000000
0.00 / -16.60 = 0.0000000000
0.00 / 0.15 = 0.0000000000
0.00 / -0.01 = 0.0000000000
0.00 / 15151324141414.412312232141241 = 0.0000000000
0.00 / -132132245132134.1515123765412 = 0.0000000000
0.00 / 141241241241241248267654747412 = 0.0000000000
0.00 / -149143276547656984948124912 = 0.0000000000
0.00 / 0.1322135476547459213732911312 = 0.0000000000
0.00 / -0.123912932193769965476541321 = 0.0000000000
Number "-0" (scale 10)
-0 / 15 = 0.0000000000
-0 / -15 = 0.0000000000
-0 / 1 = 0.0000000000
-0 / -9 = 0.0000000000
-0 / 14.14 = 0.0000000000
-0 / -16.60 = 0.0000000000
-0 / 0.15 = 0.0000000000
-0 / -0.01 = 0.0000000000
-0 / 15151324141414.412312232141241 = 0.0000000000
-0 / -132132245132134.1515123765412 = 0.0000000000
-0 / 141241241241241248267654747412 = 0.0000000000
-0 / -149143276547656984948124912 = 0.0000000000
-0 / 0.1322135476547459213732911312 = 0.0000000000
-0 / -0.123912932193769965476541321 = 0.0000000000
Number "-0.00" (scale 10)
-0.00 / 15 = 0.0000000000
-0.00 / -15 = 0.0000000000
-0.00 / 1 = 0.0000000000
-0.00 / -9 = 0.0000000000
-0.00 / 14.14 = 0.0000000000
-0.00 / -16.60 = 0.0000000000
-0.00 / 0.15 = 0.0000000000
-0.00 / -0.01 = 0.0000000000
-0.00 / 15151324141414.412312232141241 = 0.0000000000
-0.00 / -132132245132134.1515123765412 = 0.0000000000
-0.00 / 141241241241241248267654747412 = 0.0000000000
-0.00 / -149143276547656984948124912 = 0.0000000000
-0.00 / 0.1322135476547459213732911312 = 0.0000000000
-0.00 / -0.123912932193769965476541321 = 0.0000000000

View File

@@ -6,15 +6,274 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcmod("11", "2"),"\n";
echo bcmod("-1", "5"),"\n";
echo bcmod("8728932001983192837219398127471", "1928372132132819737213"),"\n";
echo bcmod("3.5", "4", 1),"\n";
echo bcmod("1071", "357.5"),"\n";
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",
]);
run_bcmath_tests($dividends, $divisors, "mod", bcmod(...));
?>
--EXPECT--
1
-1
1459434331351930289678
3.5
356
Number "15" (scale 0)
15 mod 15 = 0
15 mod -15 = 0
15 mod 1 = 0
15 mod -9 = 6
15 mod 14.14 = 0
15 mod -16.60 = 15
15 mod 0.15 = 0
15 mod -0.01 = 0
15 mod 15151324141414.412312232141241 = 15
15 mod -132132245132134.1515123765412 = 15
15 mod 141241241241241248267654747412 = 15
15 mod -149143276547656984948124912 = 15
15 mod 0.1322135476547459213732911312 = 0
15 mod -0.123912932193769965476541321 = 0
Number "-15" (scale 0)
-15 mod 15 = 0
-15 mod -15 = 0
-15 mod 1 = 0
-15 mod -9 = -6
-15 mod 14.14 = 0
-15 mod -16.60 = -15
-15 mod 0.15 = 0
-15 mod -0.01 = 0
-15 mod 15151324141414.412312232141241 = -15
-15 mod -132132245132134.1515123765412 = -15
-15 mod 141241241241241248267654747412 = -15
-15 mod -149143276547656984948124912 = -15
-15 mod 0.1322135476547459213732911312 = 0
-15 mod -0.123912932193769965476541321 = 0
Number "1" (scale 0)
1 mod 15 = 1
1 mod -15 = 1
1 mod 1 = 0
1 mod -9 = 1
1 mod 14.14 = 1
1 mod -16.60 = 1
1 mod 0.15 = 0
1 mod -0.01 = 0
1 mod 15151324141414.412312232141241 = 1
1 mod -132132245132134.1515123765412 = 1
1 mod 141241241241241248267654747412 = 1
1 mod -149143276547656984948124912 = 1
1 mod 0.1322135476547459213732911312 = 0
1 mod -0.123912932193769965476541321 = 0
Number "-9" (scale 0)
-9 mod 15 = -9
-9 mod -15 = -9
-9 mod 1 = 0
-9 mod -9 = 0
-9 mod 14.14 = -9
-9 mod -16.60 = -9
-9 mod 0.15 = 0
-9 mod -0.01 = 0
-9 mod 15151324141414.412312232141241 = -9
-9 mod -132132245132134.1515123765412 = -9
-9 mod 141241241241241248267654747412 = -9
-9 mod -149143276547656984948124912 = -9
-9 mod 0.1322135476547459213732911312 = 0
-9 mod -0.123912932193769965476541321 = 0
Number "14.14" (scale 0)
14.14 mod 15 = 14
14.14 mod -15 = 14
14.14 mod 1 = 0
14.14 mod -9 = 5
14.14 mod 14.14 = 0
14.14 mod -16.60 = 14
14.14 mod 0.15 = 0
14.14 mod -0.01 = 0
14.14 mod 15151324141414.412312232141241 = 14
14.14 mod -132132245132134.1515123765412 = 14
14.14 mod 141241241241241248267654747412 = 14
14.14 mod -149143276547656984948124912 = 14
14.14 mod 0.1322135476547459213732911312 = 0
14.14 mod -0.123912932193769965476541321 = 0
Number "-16.60" (scale 0)
-16.60 mod 15 = -1
-16.60 mod -15 = -1
-16.60 mod 1 = 0
-16.60 mod -9 = -7
-16.60 mod 14.14 = -2
-16.60 mod -16.60 = 0
-16.60 mod 0.15 = 0
-16.60 mod -0.01 = 0
-16.60 mod 15151324141414.412312232141241 = -16
-16.60 mod -132132245132134.1515123765412 = -16
-16.60 mod 141241241241241248267654747412 = -16
-16.60 mod -149143276547656984948124912 = -16
-16.60 mod 0.1322135476547459213732911312 = 0
-16.60 mod -0.123912932193769965476541321 = 0
Number "0.15" (scale 0)
0.15 mod 15 = 0
0.15 mod -15 = 0
0.15 mod 1 = 0
0.15 mod -9 = 0
0.15 mod 14.14 = 0
0.15 mod -16.60 = 0
0.15 mod 0.15 = 0
0.15 mod -0.01 = 0
0.15 mod 15151324141414.412312232141241 = 0
0.15 mod -132132245132134.1515123765412 = 0
0.15 mod 141241241241241248267654747412 = 0
0.15 mod -149143276547656984948124912 = 0
0.15 mod 0.1322135476547459213732911312 = 0
0.15 mod -0.123912932193769965476541321 = 0
Number "-0.01" (scale 0)
-0.01 mod 15 = 0
-0.01 mod -15 = 0
-0.01 mod 1 = 0
-0.01 mod -9 = 0
-0.01 mod 14.14 = 0
-0.01 mod -16.60 = 0
-0.01 mod 0.15 = 0
-0.01 mod -0.01 = 0
-0.01 mod 15151324141414.412312232141241 = 0
-0.01 mod -132132245132134.1515123765412 = 0
-0.01 mod 141241241241241248267654747412 = 0
-0.01 mod -149143276547656984948124912 = 0
-0.01 mod 0.1322135476547459213732911312 = 0
-0.01 mod -0.123912932193769965476541321 = 0
Number "15" (scale 10)
15 mod 15 = 0.0000000000
15 mod -15 = 0.0000000000
15 mod 1 = 0.0000000000
15 mod -9 = 6.0000000000
15 mod 14.14 = 0.8600000000
15 mod -16.60 = 15.0000000000
15 mod 0.15 = 0.0000000000
15 mod -0.01 = 0.0000000000
15 mod 15151324141414.412312232141241 = 15.0000000000
15 mod -132132245132134.1515123765412 = 15.0000000000
15 mod 141241241241241248267654747412 = 15.0000000000
15 mod -149143276547656984948124912 = 15.0000000000
15 mod 0.1322135476547459213732911312 = 0.0598691150
15 mod -0.123912932193769965476541321 = 0.0065352045
Number "-15" (scale 10)
-15 mod 15 = 0.0000000000
-15 mod -15 = 0.0000000000
-15 mod 1 = 0.0000000000
-15 mod -9 = -6.0000000000
-15 mod 14.14 = -0.8600000000
-15 mod -16.60 = -15.0000000000
-15 mod 0.15 = 0.0000000000
-15 mod -0.01 = 0.0000000000
-15 mod 15151324141414.412312232141241 = -15.0000000000
-15 mod -132132245132134.1515123765412 = -15.0000000000
-15 mod 141241241241241248267654747412 = -15.0000000000
-15 mod -149143276547656984948124912 = -15.0000000000
-15 mod 0.1322135476547459213732911312 = -0.0598691150
-15 mod -0.123912932193769965476541321 = -0.0065352045
Number "1" (scale 10)
1 mod 15 = 1.0000000000
1 mod -15 = 1.0000000000
1 mod 1 = 0.0000000000
1 mod -9 = 1.0000000000
1 mod 14.14 = 1.0000000000
1 mod -16.60 = 1.0000000000
1 mod 0.15 = 0.1000000000
1 mod -0.01 = 0.0000000000
1 mod 15151324141414.412312232141241 = 1.0000000000
1 mod -132132245132134.1515123765412 = 1.0000000000
1 mod 141241241241241248267654747412 = 1.0000000000
1 mod -149143276547656984948124912 = 1.0000000000
1 mod 0.1322135476547459213732911312 = 0.0745051664
1 mod -0.123912932193769965476541321 = 0.0086965424
Number "-9" (scale 10)
-9 mod 15 = -9.0000000000
-9 mod -15 = -9.0000000000
-9 mod 1 = 0.0000000000
-9 mod -9 = 0.0000000000
-9 mod 14.14 = -9.0000000000
-9 mod -16.60 = -9.0000000000
-9 mod 0.15 = 0.0000000000
-9 mod -0.01 = 0.0000000000
-9 mod 15151324141414.412312232141241 = -9.0000000000
-9 mod -132132245132134.1515123765412 = -9.0000000000
-9 mod 141241241241241248267654747412 = -9.0000000000
-9 mod -149143276547656984948124912 = -9.0000000000
-9 mod 0.1322135476547459213732911312 = -0.0094787594
-9 mod -0.123912932193769965476541321 = -0.0782688820
Number "14.14" (scale 10)
14.14 mod 15 = 14.1400000000
14.14 mod -15 = 14.1400000000
14.14 mod 1 = 0.1400000000
14.14 mod -9 = 5.1400000000
14.14 mod 14.14 = 0.0000000000
14.14 mod -16.60 = 14.1400000000
14.14 mod 0.15 = 0.0400000000
14.14 mod -0.01 = 0.0000000000
14.14 mod 15151324141414.412312232141241 = 14.1400000000
14.14 mod -132132245132134.1515123765412 = 14.1400000000
14.14 mod 141241241241241248267654747412 = 14.1400000000
14.14 mod -149143276547656984948124912 = 14.1400000000
14.14 mod 0.1322135476547459213732911312 = 0.1253639485
14.14 mod -0.123912932193769965476541321 = 0.0139257299
Number "-16.60" (scale 10)
-16.60 mod 15 = -1.6000000000
-16.60 mod -15 = -1.6000000000
-16.60 mod 1 = -0.6000000000
-16.60 mod -9 = -7.6000000000
-16.60 mod 14.14 = -2.4600000000
-16.60 mod -16.60 = 0.0000000000
-16.60 mod 0.15 = -0.1000000000
-16.60 mod -0.01 = 0.0000000000
-16.60 mod 15151324141414.412312232141241 = -16.6000000000
-16.60 mod -132132245132134.1515123765412 = -16.6000000000
-16.60 mod 141241241241241248267654747412 = -16.6000000000
-16.60 mod -149143276547656984948124912 = -16.6000000000
-16.60 mod 0.1322135476547459213732911312 = -0.0733065431
-16.60 mod -0.123912932193769965476541321 = -0.1195800182
Number "0.15" (scale 10)
0.15 mod 15 = 0.1500000000
0.15 mod -15 = 0.1500000000
0.15 mod 1 = 0.1500000000
0.15 mod -9 = 0.1500000000
0.15 mod 14.14 = 0.1500000000
0.15 mod -16.60 = 0.1500000000
0.15 mod 0.15 = 0.0000000000
0.15 mod -0.01 = 0.0000000000
0.15 mod 15151324141414.412312232141241 = 0.1500000000
0.15 mod -132132245132134.1515123765412 = 0.1500000000
0.15 mod 141241241241241248267654747412 = 0.1500000000
0.15 mod -149143276547656984948124912 = 0.1500000000
0.15 mod 0.1322135476547459213732911312 = 0.0177864523
0.15 mod -0.123912932193769965476541321 = 0.0260870678
Number "-0.01" (scale 10)
-0.01 mod 15 = -0.0100000000
-0.01 mod -15 = -0.0100000000
-0.01 mod 1 = -0.0100000000
-0.01 mod -9 = -0.0100000000
-0.01 mod 14.14 = -0.0100000000
-0.01 mod -16.60 = -0.0100000000
-0.01 mod 0.15 = -0.0100000000
-0.01 mod -0.01 = 0.0000000000
-0.01 mod 15151324141414.412312232141241 = -0.0100000000
-0.01 mod -132132245132134.1515123765412 = -0.0100000000
-0.01 mod 141241241241241248267654747412 = -0.0100000000
-0.01 mod -149143276547656984948124912 = -0.0100000000
-0.01 mod 0.1322135476547459213732911312 = -0.0100000000
-0.01 mod -0.123912932193769965476541321 = -0.0100000000

View File

@@ -11,6 +11,18 @@ try {
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
try {
bcmod("10", "0.000");
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
try {
bcmod("10", "-0.0");
} catch (DivisionByZeroError $ex) {
echo $ex->getMessage(), PHP_EOL;
}
?>
--EXPECT--
Modulo by zero
Modulo by zero
Modulo by zero

View File

@@ -0,0 +1,224 @@
--TEST--
bcmod() function with large numbers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$dividends = [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
$divisors = array_merge($dividends, [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
]);
run_bcmath_tests($dividends, $divisors, "mod", bcmod(...));
?>
--EXPECT--
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 mod 15151324141414.412312232141241 = 0
15151324141414.412312232141241 mod -132132245132134.1515123765412 = 15151324141414
15151324141414.412312232141241 mod 141241241241241248267654747412 = 15151324141414
15151324141414.412312232141241 mod -149143276547656984948124912 = 15151324141414
15151324141414.412312232141241 mod 0.1322135476547459213732911312 = 0
15151324141414.412312232141241 mod -0.123912932193769965476541321 = 0
15151324141414.412312232141241 mod 15 = 4
15151324141414.412312232141241 mod -15 = 4
15151324141414.412312232141241 mod 1 = 0
15151324141414.412312232141241 mod -9 = 1
15151324141414.412312232141241 mod 14.14 = 5
15151324141414.412312232141241 mod -16.60 = 12
15151324141414.412312232141241 mod 0.15 = 0
15151324141414.412312232141241 mod -0.01 = 0
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 mod 15151324141414.412312232141241 = -10921652000818
-132132245132134.1515123765412 mod -132132245132134.1515123765412 = 0
-132132245132134.1515123765412 mod 141241241241241248267654747412 = -132132245132134
-132132245132134.1515123765412 mod -149143276547656984948124912 = -132132245132134
-132132245132134.1515123765412 mod 0.1322135476547459213732911312 = 0
-132132245132134.1515123765412 mod -0.123912932193769965476541321 = 0
-132132245132134.1515123765412 mod 15 = -4
-132132245132134.1515123765412 mod -15 = -4
-132132245132134.1515123765412 mod 1 = 0
-132132245132134.1515123765412 mod -9 = -1
-132132245132134.1515123765412 mod 14.14 = -13
-132132245132134.1515123765412 mod -16.60 = -10
-132132245132134.1515123765412 mod 0.15 = 0
-132132245132134.1515123765412 mod -0.01 = 0
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 mod 15151324141414.412312232141241 = 8686992633814
141241241241241248267654747412 mod -132132245132134.1515123765412 = 123972365443639
141241241241241248267654747412 mod 141241241241241248267654747412 = 0
141241241241241248267654747412 mod -149143276547656984948124912 = 2558350610083521780455748
141241241241241248267654747412 mod 0.1322135476547459213732911312 = 0
141241241241241248267654747412 mod -0.123912932193769965476541321 = 0
141241241241241248267654747412 mod 15 = 7
141241241241241248267654747412 mod -15 = 7
141241241241241248267654747412 mod 1 = 0
141241241241241248267654747412 mod -9 = 4
141241241241241248267654747412 mod 14.14 = 3
141241241241241248267654747412 mod -16.60 = 16
141241241241241248267654747412 mod 0.15 = 0
141241241241241248267654747412 mod -0.01 = 0
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 mod 15151324141414.412312232141241 = -6434701710093
-149143276547656984948124912 mod -132132245132134.1515123765412 = -44045918171152
-149143276547656984948124912 mod 141241241241241248267654747412 = -149143276547656984948124912
-149143276547656984948124912 mod -149143276547656984948124912 = 0
-149143276547656984948124912 mod 0.1322135476547459213732911312 = 0
-149143276547656984948124912 mod -0.123912932193769965476541321 = 0
-149143276547656984948124912 mod 15 = -2
-149143276547656984948124912 mod -15 = -2
-149143276547656984948124912 mod 1 = 0
-149143276547656984948124912 mod -9 = -5
-149143276547656984948124912 mod 14.14 = -7
-149143276547656984948124912 mod -16.60 = -13
-149143276547656984948124912 mod 0.15 = 0
-149143276547656984948124912 mod -0.01 = 0
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 mod 15151324141414.412312232141241 = 0
0.1322135476547459213732911312 mod -132132245132134.1515123765412 = 0
0.1322135476547459213732911312 mod 141241241241241248267654747412 = 0
0.1322135476547459213732911312 mod -149143276547656984948124912 = 0
0.1322135476547459213732911312 mod 0.1322135476547459213732911312 = 0
0.1322135476547459213732911312 mod -0.123912932193769965476541321 = 0
0.1322135476547459213732911312 mod 15 = 0
0.1322135476547459213732911312 mod -15 = 0
0.1322135476547459213732911312 mod 1 = 0
0.1322135476547459213732911312 mod -9 = 0
0.1322135476547459213732911312 mod 14.14 = 0
0.1322135476547459213732911312 mod -16.60 = 0
0.1322135476547459213732911312 mod 0.15 = 0
0.1322135476547459213732911312 mod -0.01 = 0
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 mod 15151324141414.412312232141241 = 0
-0.123912932193769965476541321 mod -132132245132134.1515123765412 = 0
-0.123912932193769965476541321 mod 141241241241241248267654747412 = 0
-0.123912932193769965476541321 mod -149143276547656984948124912 = 0
-0.123912932193769965476541321 mod 0.1322135476547459213732911312 = 0
-0.123912932193769965476541321 mod -0.123912932193769965476541321 = 0
-0.123912932193769965476541321 mod 15 = 0
-0.123912932193769965476541321 mod -15 = 0
-0.123912932193769965476541321 mod 1 = 0
-0.123912932193769965476541321 mod -9 = 0
-0.123912932193769965476541321 mod 14.14 = 0
-0.123912932193769965476541321 mod -16.60 = 0
-0.123912932193769965476541321 mod 0.15 = 0
-0.123912932193769965476541321 mod -0.01 = 0
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 mod 15151324141414.412312232141241 = 0.0000000000
15151324141414.412312232141241 mod -132132245132134.1515123765412 = 15151324141414.4123122321
15151324141414.412312232141241 mod 141241241241241248267654747412 = 15151324141414.4123122321
15151324141414.412312232141241 mod -149143276547656984948124912 = 15151324141414.4123122321
15151324141414.412312232141241 mod 0.1322135476547459213732911312 = 0.0655398311
15151324141414.412312232141241 mod -0.123912932193769965476541321 = 0.0095762801
15151324141414.412312232141241 mod 15 = 4.4123122321
15151324141414.412312232141241 mod -15 = 4.4123122321
15151324141414.412312232141241 mod 1 = 0.4123122321
15151324141414.412312232141241 mod -9 = 1.4123122321
15151324141414.412312232141241 mod 14.14 = 5.4323122321
15151324141414.412312232141241 mod -16.60 = 12.0123122321
15151324141414.412312232141241 mod 0.15 = 0.0623122321
15151324141414.412312232141241 mod -0.01 = 0.0023122321
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 mod 15151324141414.412312232141241 = -10921652000818.8530145194
-132132245132134.1515123765412 mod -132132245132134.1515123765412 = 0.0000000000
-132132245132134.1515123765412 mod 141241241241241248267654747412 = -132132245132134.1515123765
-132132245132134.1515123765412 mod -149143276547656984948124912 = -132132245132134.1515123765
-132132245132134.1515123765412 mod 0.1322135476547459213732911312 = -0.1182110375
-132132245132134.1515123765412 mod -0.123912932193769965476541321 = -0.1185620881
-132132245132134.1515123765412 mod 15 = -4.1515123765
-132132245132134.1515123765412 mod -15 = -4.1515123765
-132132245132134.1515123765412 mod 1 = -0.1515123765
-132132245132134.1515123765412 mod -9 = -1.1515123765
-132132245132134.1515123765412 mod 14.14 = -13.0715123765
-132132245132134.1515123765412 mod -16.60 = -10.1515123765
-132132245132134.1515123765412 mod 0.15 = -0.1015123765
-132132245132134.1515123765412 mod -0.01 = -0.0015123765
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 mod 15151324141414.412312232141241 = 8686992633814.2424625456
141241241241241248267654747412 mod -132132245132134.1515123765412 = 123972365443639.7631318878
141241241241241248267654747412 mod 141241241241241248267654747412 = 0.0000000000
141241241241241248267654747412 mod -149143276547656984948124912 = 2558350610083521780455748.0000000000
141241241241241248267654747412 mod 0.1322135476547459213732911312 = 0.0325300077
141241241241241248267654747412 mod -0.123912932193769965476541321 = 0.0711933134
141241241241241248267654747412 mod 15 = 7.0000000000
141241241241241248267654747412 mod -15 = 7.0000000000
141241241241241248267654747412 mod 1 = 0.0000000000
141241241241241248267654747412 mod -9 = 4.0000000000
141241241241241248267654747412 mod 14.14 = 3.4600000000
141241241241241248267654747412 mod -16.60 = 16.4000000000
141241241241241248267654747412 mod 0.15 = 0.1000000000
141241241241241248267654747412 mod -0.01 = 0.0000000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 mod 15151324141414.412312232141241 = -6434701710093.8435198341
-149143276547656984948124912 mod -132132245132134.1515123765412 = -44045918171152.5846031960
-149143276547656984948124912 mod 141241241241241248267654747412 = -149143276547656984948124912.0000000000
-149143276547656984948124912 mod -149143276547656984948124912 = 0.0000000000
-149143276547656984948124912 mod 0.1322135476547459213732911312 = -0.0321624457
-149143276547656984948124912 mod -0.123912932193769965476541321 = -0.0895308287
-149143276547656984948124912 mod 15 = -2.0000000000
-149143276547656984948124912 mod -15 = -2.0000000000
-149143276547656984948124912 mod 1 = 0.0000000000
-149143276547656984948124912 mod -9 = -5.0000000000
-149143276547656984948124912 mod 14.14 = -7.0400000000
-149143276547656984948124912 mod -16.60 = -13.8000000000
-149143276547656984948124912 mod 0.15 = -0.0500000000
-149143276547656984948124912 mod -0.01 = 0.0000000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 mod 15151324141414.412312232141241 = 0.1322135476
0.1322135476547459213732911312 mod -132132245132134.1515123765412 = 0.1322135476
0.1322135476547459213732911312 mod 141241241241241248267654747412 = 0.1322135476
0.1322135476547459213732911312 mod -149143276547656984948124912 = 0.1322135476
0.1322135476547459213732911312 mod 0.1322135476547459213732911312 = 0.0000000000
0.1322135476547459213732911312 mod -0.123912932193769965476541321 = 0.0083006154
0.1322135476547459213732911312 mod 15 = 0.1322135476
0.1322135476547459213732911312 mod -15 = 0.1322135476
0.1322135476547459213732911312 mod 1 = 0.1322135476
0.1322135476547459213732911312 mod -9 = 0.1322135476
0.1322135476547459213732911312 mod 14.14 = 0.1322135476
0.1322135476547459213732911312 mod -16.60 = 0.1322135476
0.1322135476547459213732911312 mod 0.15 = 0.1322135476
0.1322135476547459213732911312 mod -0.01 = 0.0022135476
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 mod 15151324141414.412312232141241 = -0.1239129321
-0.123912932193769965476541321 mod -132132245132134.1515123765412 = -0.1239129321
-0.123912932193769965476541321 mod 141241241241241248267654747412 = -0.1239129321
-0.123912932193769965476541321 mod -149143276547656984948124912 = -0.1239129321
-0.123912932193769965476541321 mod 0.1322135476547459213732911312 = -0.1239129321
-0.123912932193769965476541321 mod -0.123912932193769965476541321 = 0.0000000000
-0.123912932193769965476541321 mod 15 = -0.1239129321
-0.123912932193769965476541321 mod -15 = -0.1239129321
-0.123912932193769965476541321 mod 1 = -0.1239129321
-0.123912932193769965476541321 mod -9 = -0.1239129321
-0.123912932193769965476541321 mod 14.14 = -0.1239129321
-0.123912932193769965476541321 mod -16.60 = -0.1239129321
-0.123912932193769965476541321 mod 0.15 = -0.1239129321
-0.123912932193769965476541321 mod -0.01 = -0.0039129321

View File

@@ -0,0 +1,159 @@
--TEST--
bcmod() function with number zero
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$dividends = ["0", "0.00", "-0", "-0.00"];
$divisors = [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
run_bcmath_tests($dividends, $divisors, "mod", bcmod(...));
?>
--EXPECT--
Number "0" (scale 0)
0 mod 15 = 0
0 mod -15 = 0
0 mod 1 = 0
0 mod -9 = 0
0 mod 14.14 = 0
0 mod -16.60 = 0
0 mod 0.15 = 0
0 mod -0.01 = 0
0 mod 15151324141414.412312232141241 = 0
0 mod -132132245132134.1515123765412 = 0
0 mod 141241241241241248267654747412 = 0
0 mod -149143276547656984948124912 = 0
0 mod 0.1322135476547459213732911312 = 0
0 mod -0.123912932193769965476541321 = 0
Number "0.00" (scale 0)
0.00 mod 15 = 0
0.00 mod -15 = 0
0.00 mod 1 = 0
0.00 mod -9 = 0
0.00 mod 14.14 = 0
0.00 mod -16.60 = 0
0.00 mod 0.15 = 0
0.00 mod -0.01 = 0
0.00 mod 15151324141414.412312232141241 = 0
0.00 mod -132132245132134.1515123765412 = 0
0.00 mod 141241241241241248267654747412 = 0
0.00 mod -149143276547656984948124912 = 0
0.00 mod 0.1322135476547459213732911312 = 0
0.00 mod -0.123912932193769965476541321 = 0
Number "-0" (scale 0)
-0 mod 15 = 0
-0 mod -15 = 0
-0 mod 1 = 0
-0 mod -9 = 0
-0 mod 14.14 = 0
-0 mod -16.60 = 0
-0 mod 0.15 = 0
-0 mod -0.01 = 0
-0 mod 15151324141414.412312232141241 = 0
-0 mod -132132245132134.1515123765412 = 0
-0 mod 141241241241241248267654747412 = 0
-0 mod -149143276547656984948124912 = 0
-0 mod 0.1322135476547459213732911312 = 0
-0 mod -0.123912932193769965476541321 = 0
Number "-0.00" (scale 0)
-0.00 mod 15 = 0
-0.00 mod -15 = 0
-0.00 mod 1 = 0
-0.00 mod -9 = 0
-0.00 mod 14.14 = 0
-0.00 mod -16.60 = 0
-0.00 mod 0.15 = 0
-0.00 mod -0.01 = 0
-0.00 mod 15151324141414.412312232141241 = 0
-0.00 mod -132132245132134.1515123765412 = 0
-0.00 mod 141241241241241248267654747412 = 0
-0.00 mod -149143276547656984948124912 = 0
-0.00 mod 0.1322135476547459213732911312 = 0
-0.00 mod -0.123912932193769965476541321 = 0
Number "0" (scale 10)
0 mod 15 = 0.0000000000
0 mod -15 = 0.0000000000
0 mod 1 = 0.0000000000
0 mod -9 = 0.0000000000
0 mod 14.14 = 0.0000000000
0 mod -16.60 = 0.0000000000
0 mod 0.15 = 0.0000000000
0 mod -0.01 = 0.0000000000
0 mod 15151324141414.412312232141241 = 0.0000000000
0 mod -132132245132134.1515123765412 = 0.0000000000
0 mod 141241241241241248267654747412 = 0.0000000000
0 mod -149143276547656984948124912 = 0.0000000000
0 mod 0.1322135476547459213732911312 = 0.0000000000
0 mod -0.123912932193769965476541321 = 0.0000000000
Number "0.00" (scale 10)
0.00 mod 15 = 0.0000000000
0.00 mod -15 = 0.0000000000
0.00 mod 1 = 0.0000000000
0.00 mod -9 = 0.0000000000
0.00 mod 14.14 = 0.0000000000
0.00 mod -16.60 = 0.0000000000
0.00 mod 0.15 = 0.0000000000
0.00 mod -0.01 = 0.0000000000
0.00 mod 15151324141414.412312232141241 = 0.0000000000
0.00 mod -132132245132134.1515123765412 = 0.0000000000
0.00 mod 141241241241241248267654747412 = 0.0000000000
0.00 mod -149143276547656984948124912 = 0.0000000000
0.00 mod 0.1322135476547459213732911312 = 0.0000000000
0.00 mod -0.123912932193769965476541321 = 0.0000000000
Number "-0" (scale 10)
-0 mod 15 = 0.0000000000
-0 mod -15 = 0.0000000000
-0 mod 1 = 0.0000000000
-0 mod -9 = 0.0000000000
-0 mod 14.14 = 0.0000000000
-0 mod -16.60 = 0.0000000000
-0 mod 0.15 = 0.0000000000
-0 mod -0.01 = 0.0000000000
-0 mod 15151324141414.412312232141241 = 0.0000000000
-0 mod -132132245132134.1515123765412 = 0.0000000000
-0 mod 141241241241241248267654747412 = 0.0000000000
-0 mod -149143276547656984948124912 = 0.0000000000
-0 mod 0.1322135476547459213732911312 = 0.0000000000
-0 mod -0.123912932193769965476541321 = 0.0000000000
Number "-0.00" (scale 10)
-0.00 mod 15 = 0.0000000000
-0.00 mod -15 = 0.0000000000
-0.00 mod 1 = 0.0000000000
-0.00 mod -9 = 0.0000000000
-0.00 mod 14.14 = 0.0000000000
-0.00 mod -16.60 = 0.0000000000
-0.00 mod 0.15 = 0.0000000000
-0.00 mod -0.01 = 0.0000000000
-0.00 mod 15151324141414.412312232141241 = 0.0000000000
-0.00 mod -132132245132134.1515123765412 = 0.0000000000
-0.00 mod 141241241241241248267654747412 = 0.0000000000
-0.00 mod -149143276547656984948124912 = 0.0000000000
-0.00 mod 0.1322135476547459213732911312 = 0.0000000000
-0.00 mod -0.123912932193769965476541321 = 0.0000000000

View File

@@ -6,15 +6,342 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcmul("1", "2"),"\n";
echo bcmul("-3", "5"),"\n";
echo bcmul("1234567890", "9876543210"),"\n";
echo bcmul("2.5", "1.5", 2),"\n";
echo bcmul("2.555", "1.555", 2),"\n";
require(__DIR__ . "/run_bcmath_tests_function.inc");
$firstFactors = ["15", "-15", "1", "-9", "14.14", "-16.60", "0.15", "-0.01"];
$secondFactors = array_merge($firstFactors, [
"0",
"0.00",
"-0",
"-0.00",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($firstFactors, $secondFactors, "*", bcmul(...));
?>
--EXPECT--
2
-15
12193263111263526900
3.75
3.97
Number "15" (scale 0)
15 * 15 = 225
15 * -15 = -225
15 * 1 = 15
15 * -9 = -135
15 * 14.14 = 212
15 * -16.60 = -249
15 * 0.15 = 2
15 * -0.01 = 0
15 * 0 = 0
15 * 0.00 = 0
15 * -0 = 0
15 * -0.00 = 0
15 * 15151324141414.412312232141241 = 227269862121216
15 * -132132245132134.1515123765412 = -1981983676982012
15 * 141241241241241248267654747412 = 2118618618618618724014821211180
15 * -149143276547656984948124912 = -2237149148214854774221873680
15 * 0.1322135476547459213732911312 = 1
15 * -0.123912932193769965476541321 = -1
Number "-15" (scale 0)
-15 * 15 = -225
-15 * -15 = 225
-15 * 1 = -15
-15 * -9 = 135
-15 * 14.14 = -212
-15 * -16.60 = 249
-15 * 0.15 = -2
-15 * -0.01 = 0
-15 * 0 = 0
-15 * 0.00 = 0
-15 * -0 = 0
-15 * -0.00 = 0
-15 * 15151324141414.412312232141241 = -227269862121216
-15 * -132132245132134.1515123765412 = 1981983676982012
-15 * 141241241241241248267654747412 = -2118618618618618724014821211180
-15 * -149143276547656984948124912 = 2237149148214854774221873680
-15 * 0.1322135476547459213732911312 = -1
-15 * -0.123912932193769965476541321 = 1
Number "1" (scale 0)
1 * 15 = 15
1 * -15 = -15
1 * 1 = 1
1 * -9 = -9
1 * 14.14 = 14
1 * -16.60 = -16
1 * 0.15 = 0
1 * -0.01 = 0
1 * 0 = 0
1 * 0.00 = 0
1 * -0 = 0
1 * -0.00 = 0
1 * 15151324141414.412312232141241 = 15151324141414
1 * -132132245132134.1515123765412 = -132132245132134
1 * 141241241241241248267654747412 = 141241241241241248267654747412
1 * -149143276547656984948124912 = -149143276547656984948124912
1 * 0.1322135476547459213732911312 = 0
1 * -0.123912932193769965476541321 = 0
Number "-9" (scale 0)
-9 * 15 = -135
-9 * -15 = 135
-9 * 1 = -9
-9 * -9 = 81
-9 * 14.14 = -127
-9 * -16.60 = 149
-9 * 0.15 = -1
-9 * -0.01 = 0
-9 * 0 = 0
-9 * 0.00 = 0
-9 * -0 = 0
-9 * -0.00 = 0
-9 * 15151324141414.412312232141241 = -136361917272729
-9 * -132132245132134.1515123765412 = 1189190206189207
-9 * 141241241241241248267654747412 = -1271171171171171234408892726708
-9 * -149143276547656984948124912 = 1342289488928912864533124208
-9 * 0.1322135476547459213732911312 = -1
-9 * -0.123912932193769965476541321 = 1
Number "14.14" (scale 0)
14.14 * 15 = 212
14.14 * -15 = -212
14.14 * 1 = 14
14.14 * -9 = -127
14.14 * 14.14 = 199
14.14 * -16.60 = -234
14.14 * 0.15 = 2
14.14 * -0.01 = 0
14.14 * 0 = 0
14.14 * 0.00 = 0
14.14 * -0 = 0
14.14 * -0.00 = 0
14.14 * 15151324141414.412312232141241 = 214239723359599
14.14 * -132132245132134.1515123765412 = -1868349946168376
14.14 * 141241241241241248267654747412 = 1997151151151151250504638128405
14.14 * -149143276547656984948124912 = -2108885930383869767166486255
14.14 * 0.1322135476547459213732911312 = 1
14.14 * -0.123912932193769965476541321 = -1
Number "-16.60" (scale 0)
-16.60 * 15 = -249
-16.60 * -15 = 249
-16.60 * 1 = -16
-16.60 * -9 = 149
-16.60 * 14.14 = -234
-16.60 * -16.60 = 275
-16.60 * 0.15 = -2
-16.60 * -0.01 = 0
-16.60 * 0 = 0
-16.60 * 0.00 = 0
-16.60 * -0 = 0
-16.60 * -0.00 = 0
-16.60 * 15151324141414.412312232141241 = -251511980747479
-16.60 * -132132245132134.1515123765412 = 2193395269193426
-16.60 * 141241241241241248267654747412 = -2344604604604604721243068807039
-16.60 * -149143276547656984948124912 = 2475778390691105950138873539
-16.60 * 0.1322135476547459213732911312 = -2
-16.60 * -0.123912932193769965476541321 = 2
Number "0.15" (scale 0)
0.15 * 15 = 2
0.15 * -15 = -2
0.15 * 1 = 0
0.15 * -9 = -1
0.15 * 14.14 = 2
0.15 * -16.60 = -2
0.15 * 0.15 = 0
0.15 * -0.01 = 0
0.15 * 0 = 0
0.15 * 0.00 = 0
0.15 * -0 = 0
0.15 * -0.00 = 0
0.15 * 15151324141414.412312232141241 = 2272698621212
0.15 * -132132245132134.1515123765412 = -19819836769820
0.15 * 141241241241241248267654747412 = 21186186186186187240148212111
0.15 * -149143276547656984948124912 = -22371491482148547742218736
0.15 * 0.1322135476547459213732911312 = 0
0.15 * -0.123912932193769965476541321 = 0
Number "-0.01" (scale 0)
-0.01 * 15 = 0
-0.01 * -15 = 0
-0.01 * 1 = 0
-0.01 * -9 = 0
-0.01 * 14.14 = 0
-0.01 * -16.60 = 0
-0.01 * 0.15 = 0
-0.01 * -0.01 = 0
-0.01 * 0 = 0
-0.01 * 0.00 = 0
-0.01 * -0 = 0
-0.01 * -0.00 = 0
-0.01 * 15151324141414.412312232141241 = -151513241414
-0.01 * -132132245132134.1515123765412 = 1321322451321
-0.01 * 141241241241241248267654747412 = -1412412412412412482676547474
-0.01 * -149143276547656984948124912 = 1491432765476569849481249
-0.01 * 0.1322135476547459213732911312 = 0
-0.01 * -0.123912932193769965476541321 = 0
Number "15" (scale 10)
15 * 15 = 225.0000000000
15 * -15 = -225.0000000000
15 * 1 = 15.0000000000
15 * -9 = -135.0000000000
15 * 14.14 = 212.1000000000
15 * -16.60 = -249.0000000000
15 * 0.15 = 2.2500000000
15 * -0.01 = -0.1500000000
15 * 0 = 0.0000000000
15 * 0.00 = 0.0000000000
15 * -0 = 0.0000000000
15 * -0.00 = 0.0000000000
15 * 15151324141414.412312232141241 = 227269862121216.1846834821
15 * -132132245132134.1515123765412 = -1981983676982012.2726856481
15 * 141241241241241248267654747412 = 2118618618618618724014821211180.0000000000
15 * -149143276547656984948124912 = -2237149148214854774221873680.0000000000
15 * 0.1322135476547459213732911312 = 1.9832032148
15 * -0.123912932193769965476541321 = -1.8586939829
Number "-15" (scale 10)
-15 * 15 = -225.0000000000
-15 * -15 = 225.0000000000
-15 * 1 = -15.0000000000
-15 * -9 = 135.0000000000
-15 * 14.14 = -212.1000000000
-15 * -16.60 = 249.0000000000
-15 * 0.15 = -2.2500000000
-15 * -0.01 = 0.1500000000
-15 * 0 = 0.0000000000
-15 * 0.00 = 0.0000000000
-15 * -0 = 0.0000000000
-15 * -0.00 = 0.0000000000
-15 * 15151324141414.412312232141241 = -227269862121216.1846834821
-15 * -132132245132134.1515123765412 = 1981983676982012.2726856481
-15 * 141241241241241248267654747412 = -2118618618618618724014821211180.0000000000
-15 * -149143276547656984948124912 = 2237149148214854774221873680.0000000000
-15 * 0.1322135476547459213732911312 = -1.9832032148
-15 * -0.123912932193769965476541321 = 1.8586939829
Number "1" (scale 10)
1 * 15 = 15.0000000000
1 * -15 = -15.0000000000
1 * 1 = 1.0000000000
1 * -9 = -9.0000000000
1 * 14.14 = 14.1400000000
1 * -16.60 = -16.6000000000
1 * 0.15 = 0.1500000000
1 * -0.01 = -0.0100000000
1 * 0 = 0.0000000000
1 * 0.00 = 0.0000000000
1 * -0 = 0.0000000000
1 * -0.00 = 0.0000000000
1 * 15151324141414.412312232141241 = 15151324141414.4123122321
1 * -132132245132134.1515123765412 = -132132245132134.1515123765
1 * 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
1 * -149143276547656984948124912 = -149143276547656984948124912.0000000000
1 * 0.1322135476547459213732911312 = 0.1322135476
1 * -0.123912932193769965476541321 = -0.1239129321
Number "-9" (scale 10)
-9 * 15 = -135.0000000000
-9 * -15 = 135.0000000000
-9 * 1 = -9.0000000000
-9 * -9 = 81.0000000000
-9 * 14.14 = -127.2600000000
-9 * -16.60 = 149.4000000000
-9 * 0.15 = -1.3500000000
-9 * -0.01 = 0.0900000000
-9 * 0 = 0.0000000000
-9 * 0.00 = 0.0000000000
-9 * -0 = 0.0000000000
-9 * -0.00 = 0.0000000000
-9 * 15151324141414.412312232141241 = -136361917272729.7108100892
-9 * -132132245132134.1515123765412 = 1189190206189207.3636113888
-9 * 141241241241241248267654747412 = -1271171171171171234408892726708.0000000000
-9 * -149143276547656984948124912 = 1342289488928912864533124208.0000000000
-9 * 0.1322135476547459213732911312 = -1.1899219288
-9 * -0.123912932193769965476541321 = 1.1152163897
Number "14.14" (scale 10)
14.14 * 15 = 212.1000000000
14.14 * -15 = -212.1000000000
14.14 * 1 = 14.1400000000
14.14 * -9 = -127.2600000000
14.14 * 14.14 = 199.9396000000
14.14 * -16.60 = -234.7240000000
14.14 * 0.15 = 2.1210000000
14.14 * -0.01 = -0.1414000000
14.14 * 0 = 0.0000000000
14.14 * 0.00 = 0.0000000000
14.14 * -0 = 0.0000000000
14.14 * -0.00 = 0.0000000000
14.14 * 15151324141414.412312232141241 = 214239723359599.7900949624
14.14 * -132132245132134.1515123765412 = -1868349946168376.9023850042
14.14 * 141241241241241248267654747412 = 1997151151151151250504638128405.6800000000
14.14 * -149143276547656984948124912 = -2108885930383869767166486255.6800000000
14.14 * 0.1322135476547459213732911312 = 1.8694995638
14.14 * -0.123912932193769965476541321 = -1.7521288612
Number "-16.60" (scale 10)
-16.60 * 15 = -249.0000000000
-16.60 * -15 = 249.0000000000
-16.60 * 1 = -16.6000000000
-16.60 * -9 = 149.4000000000
-16.60 * 14.14 = -234.7240000000
-16.60 * -16.60 = 275.5600000000
-16.60 * 0.15 = -2.4900000000
-16.60 * -0.01 = 0.1660000000
-16.60 * 0 = 0.0000000000
-16.60 * 0.00 = 0.0000000000
-16.60 * -0 = 0.0000000000
-16.60 * -0.00 = 0.0000000000
-16.60 * 15151324141414.412312232141241 = -251511980747479.2443830535
-16.60 * -132132245132134.1515123765412 = 2193395269193426.9151054505
-16.60 * 141241241241241248267654747412 = -2344604604604604721243068807039.2000000000
-16.60 * -149143276547656984948124912 = 2475778390691105950138873539.2000000000
-16.60 * 0.1322135476547459213732911312 = -2.1947448910
-16.60 * -0.123912932193769965476541321 = 2.0569546744
Number "0.15" (scale 10)
0.15 * 15 = 2.2500000000
0.15 * -15 = -2.2500000000
0.15 * 1 = 0.1500000000
0.15 * -9 = -1.3500000000
0.15 * 14.14 = 2.1210000000
0.15 * -16.60 = -2.4900000000
0.15 * 0.15 = 0.0225000000
0.15 * -0.01 = -0.0015000000
0.15 * 0 = 0.0000000000
0.15 * 0.00 = 0.0000000000
0.15 * -0 = 0.0000000000
0.15 * -0.00 = 0.0000000000
0.15 * 15151324141414.412312232141241 = 2272698621212.1618468348
0.15 * -132132245132134.1515123765412 = -19819836769820.1227268564
0.15 * 141241241241241248267654747412 = 21186186186186187240148212111.8000000000
0.15 * -149143276547656984948124912 = -22371491482148547742218736.8000000000
0.15 * 0.1322135476547459213732911312 = 0.0198320321
0.15 * -0.123912932193769965476541321 = -0.0185869398
Number "-0.01" (scale 10)
-0.01 * 15 = -0.1500000000
-0.01 * -15 = 0.1500000000
-0.01 * 1 = -0.0100000000
-0.01 * -9 = 0.0900000000
-0.01 * 14.14 = -0.1414000000
-0.01 * -16.60 = 0.1660000000
-0.01 * 0.15 = -0.0015000000
-0.01 * -0.01 = 0.0001000000
-0.01 * 0 = 0.0000000000
-0.01 * 0.00 = 0.0000000000
-0.01 * -0 = 0.0000000000
-0.01 * -0.00 = 0.0000000000
-0.01 * 15151324141414.412312232141241 = -151513241414.1441231223
-0.01 * -132132245132134.1515123765412 = 1321322451321.3415151237
-0.01 * 141241241241241248267654747412 = -1412412412412412482676547474.1200000000
-0.01 * -149143276547656984948124912 = 1491432765476569849481249.1200000000
-0.01 * 0.1322135476547459213732911312 = -0.0013221354
-0.01 * -0.123912932193769965476541321 = 0.0012391293

View File

@@ -0,0 +1,276 @@
--TEST--
bcmul() function with large numbers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$firstFactors = [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
$secondFactors = array_merge($firstFactors, [
"0",
"0.00",
"-0",
"-0.00",
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
]);
run_bcmath_tests($firstFactors, $secondFactors, "*", bcmul(...));
?>
--EXPECT--
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 * 15151324141414.412312232141241 = 229562623238207178422472679
15151324141414.412312232141241 * -132132245132134.1515123765412 = -2001978475529791133885654151
15151324141414.412312232141241 * 141241241241241248267654747412 = 2139991828181755439048012256383179795538025
15151324141414.412312232141241 * -149143276547656984948124912 = -2259718126486161223119790826488981524974
15151324141414.412312232141241 * 0.1322135476547459213732911312 = 2003210316403
15151324141414.412312232141241 * -0.123912932193769965476541321 = -1877445000980
15151324141414.412312232141241 * 0 = 0
15151324141414.412312232141241 * 0.00 = 0
15151324141414.412312232141241 * -0 = 0
15151324141414.412312232141241 * -0.00 = 0
15151324141414.412312232141241 * 15 = 227269862121216
15151324141414.412312232141241 * -15 = -227269862121216
15151324141414.412312232141241 * 1 = 15151324141414
15151324141414.412312232141241 * -9 = -136361917272729
15151324141414.412312232141241 * 14.14 = 214239723359599
15151324141414.412312232141241 * -16.60 = -251511980747479
15151324141414.412312232141241 * 0.15 = 2272698621212
15151324141414.412312232141241 * -0.01 = -151513241414
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 * 15151324141414.412312232141241 = -2001978475529791133885654151
-132132245132134.1515123765412 * -132132245132134.1515123765412 = 17458930203658389178460349344
-132132245132134.1515123765412 * 141241241241241248267654747412 = -18662522310454584290173879848464266332555498
-132132245132134.1515123765412 * -149143276547656984948124912 = 19706635976604687211527336089051267200810
-132132245132134.1515123765412 * 0.1322135476547459213732911312 = -17469672888505
-132132245132134.1515123765412 * -0.123912932193769965476541321 = 16372893931668
-132132245132134.1515123765412 * 0 = 0
-132132245132134.1515123765412 * 0.00 = 0
-132132245132134.1515123765412 * -0 = 0
-132132245132134.1515123765412 * -0.00 = 0
-132132245132134.1515123765412 * 15 = -1981983676982012
-132132245132134.1515123765412 * -15 = 1981983676982012
-132132245132134.1515123765412 * 1 = -132132245132134
-132132245132134.1515123765412 * -9 = 1189190206189207
-132132245132134.1515123765412 * 14.14 = -1868349946168376
-132132245132134.1515123765412 * -16.60 = 2193395269193426
-132132245132134.1515123765412 * 0.15 = -19819836769820
-132132245132134.1515123765412 * -0.01 = 1321322451321
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 * 15151324141414.412312232141241 = 2139991828181755439048012256383179795538025
141241241241241248267654747412 * -132132245132134.1515123765412 = -18662522310454584290173879848464266332555498
141241241241241248267654747412 * 141241241241241248267654747412 = 19949088227366507629622653233761071253230364164181520697744
141241241241241248267654747412 * -149143276547656984948124912 = -21065181502376778401476291731259854717478035244384727744
141241241241241248267654747412 * 0.1322135476547459213732911312 = 18674005579664314748578026521
141241241241241248267654747412 * -0.123912932193769965476541321 = -17501616348889832831364181429
141241241241241248267654747412 * 0 = 0
141241241241241248267654747412 * 0.00 = 0
141241241241241248267654747412 * -0 = 0
141241241241241248267654747412 * -0.00 = 0
141241241241241248267654747412 * 15 = 2118618618618618724014821211180
141241241241241248267654747412 * -15 = -2118618618618618724014821211180
141241241241241248267654747412 * 1 = 141241241241241248267654747412
141241241241241248267654747412 * -9 = -1271171171171171234408892726708
141241241241241248267654747412 * 14.14 = 1997151151151151250504638128405
141241241241241248267654747412 * -16.60 = -2344604604604604721243068807039
141241241241241248267654747412 * 0.15 = 21186186186186187240148212111
141241241241241248267654747412 * -0.01 = -1412412412412412482676547474
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 * 15151324141414.412312232141241 = -2259718126486161223119790826488981524974
-149143276547656984948124912 * -132132245132134.1515123765412 = 19706635976604687211527336089051267200810
-149143276547656984948124912 * 141241241241241248267654747412 = -21065181502376778401476291731259854717478035244384727744
-149143276547656984948124912 * -149143276547656984948124912 = 22243716939370890018820252028254140421311664755007744
-149143276547656984948124912 * 0.1322135476547459213732911312 = -19718761701218596539144441
-149143276547656984948124912 * -0.123912932193769965476541321 = 18480780714006502282899774
-149143276547656984948124912 * 0 = 0
-149143276547656984948124912 * 0.00 = 0
-149143276547656984948124912 * -0 = 0
-149143276547656984948124912 * -0.00 = 0
-149143276547656984948124912 * 15 = -2237149148214854774221873680
-149143276547656984948124912 * -15 = 2237149148214854774221873680
-149143276547656984948124912 * 1 = -149143276547656984948124912
-149143276547656984948124912 * -9 = 1342289488928912864533124208
-149143276547656984948124912 * 14.14 = -2108885930383869767166486255
-149143276547656984948124912 * -16.60 = 2475778390691105950138873539
-149143276547656984948124912 * 0.15 = -22371491482148547742218736
-149143276547656984948124912 * -0.01 = 1491432765476569849481249
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 * 15151324141414.412312232141241 = 2003210316403
0.1322135476547459213732911312 * -132132245132134.1515123765412 = -17469672888505
0.1322135476547459213732911312 * 141241241241241248267654747412 = 18674005579664314748578026521
0.1322135476547459213732911312 * -149143276547656984948124912 = -19718761701218596539144441
0.1322135476547459213732911312 * 0.1322135476547459213732911312 = 0
0.1322135476547459213732911312 * -0.123912932193769965476541321 = 0
0.1322135476547459213732911312 * 0 = 0
0.1322135476547459213732911312 * 0.00 = 0
0.1322135476547459213732911312 * -0 = 0
0.1322135476547459213732911312 * -0.00 = 0
0.1322135476547459213732911312 * 15 = 1
0.1322135476547459213732911312 * -15 = -1
0.1322135476547459213732911312 * 1 = 0
0.1322135476547459213732911312 * -9 = -1
0.1322135476547459213732911312 * 14.14 = 1
0.1322135476547459213732911312 * -16.60 = -2
0.1322135476547459213732911312 * 0.15 = 0
0.1322135476547459213732911312 * -0.01 = 0
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 * 15151324141414.412312232141241 = -1877445000980
-0.123912932193769965476541321 * -132132245132134.1515123765412 = 16372893931668
-0.123912932193769965476541321 * 141241241241241248267654747412 = -17501616348889832831364181429
-0.123912932193769965476541321 * -149143276547656984948124912 = 18480780714006502282899774
-0.123912932193769965476541321 * 0.1322135476547459213732911312 = 0
-0.123912932193769965476541321 * -0.123912932193769965476541321 = 0
-0.123912932193769965476541321 * 0 = 0
-0.123912932193769965476541321 * 0.00 = 0
-0.123912932193769965476541321 * -0 = 0
-0.123912932193769965476541321 * -0.00 = 0
-0.123912932193769965476541321 * 15 = -1
-0.123912932193769965476541321 * -15 = 1
-0.123912932193769965476541321 * 1 = 0
-0.123912932193769965476541321 * -9 = 1
-0.123912932193769965476541321 * 14.14 = -1
-0.123912932193769965476541321 * -16.60 = 2
-0.123912932193769965476541321 * 0.15 = 0
-0.123912932193769965476541321 * -0.01 = 0
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 * 15151324141414.412312232141241 = 229562623238207178422472679.9262995876
15151324141414.412312232141241 * -132132245132134.1515123765412 = -2001978475529791133885654151.5491331991
15151324141414.412312232141241 * 141241241241241248267654747412 = 2139991828181755439048012256383179795538025.4097677632
15151324141414.412312232141241 * -149143276547656984948124912 = -2259718126486161223119790826488981524974.8925816946
15151324141414.412312232141241 * 0.1322135476547459213732911312 = 2003210316403.3967337164
15151324141414.412312232141241 * -0.123912932193769965476541321 = -1877445000980.9140124713
15151324141414.412312232141241 * 0 = 0.0000000000
15151324141414.412312232141241 * 0.00 = 0.0000000000
15151324141414.412312232141241 * -0 = 0.0000000000
15151324141414.412312232141241 * -0.00 = 0.0000000000
15151324141414.412312232141241 * 15 = 227269862121216.1846834821
15151324141414.412312232141241 * -15 = -227269862121216.1846834821
15151324141414.412312232141241 * 1 = 15151324141414.4123122321
15151324141414.412312232141241 * -9 = -136361917272729.7108100892
15151324141414.412312232141241 * 14.14 = 214239723359599.7900949624
15151324141414.412312232141241 * -16.60 = -251511980747479.2443830535
15151324141414.412312232141241 * 0.15 = 2272698621212.1618468348
15151324141414.412312232141241 * -0.01 = -151513241414.1441231223
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 * 15151324141414.412312232141241 = -2001978475529791133885654151.5491331991
-132132245132134.1515123765412 * -132132245132134.1515123765412 = 17458930203658389178460349344.0776677900
-132132245132134.1515123765412 * 141241241241241248267654747412 = -18662522310454584290173879848464266332555498.5267202113
-132132245132134.1515123765412 * -149143276547656984948124912 = 19706635976604687211527336089051267200810.4158361143
-132132245132134.1515123765412 * 0.1322135476547459213732911312 = -17469672888505.9884334474
-132132245132134.1515123765412 * -0.123912932193769965476541321 = 16372893931668.7307088223
-132132245132134.1515123765412 * 0 = 0.0000000000
-132132245132134.1515123765412 * 0.00 = 0.0000000000
-132132245132134.1515123765412 * -0 = 0.0000000000
-132132245132134.1515123765412 * -0.00 = 0.0000000000
-132132245132134.1515123765412 * 15 = -1981983676982012.2726856481
-132132245132134.1515123765412 * -15 = 1981983676982012.2726856481
-132132245132134.1515123765412 * 1 = -132132245132134.1515123765
-132132245132134.1515123765412 * -9 = 1189190206189207.3636113888
-132132245132134.1515123765412 * 14.14 = -1868349946168376.9023850042
-132132245132134.1515123765412 * -16.60 = 2193395269193426.9151054505
-132132245132134.1515123765412 * 0.15 = -19819836769820.1227268564
-132132245132134.1515123765412 * -0.01 = 1321322451321.3415151237
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 * 15151324141414.412312232141241 = 2139991828181755439048012256383179795538025.4097677632
141241241241241248267654747412 * -132132245132134.1515123765412 = -18662522310454584290173879848464266332555498.5267202113
141241241241241248267654747412 * 141241241241241248267654747412 = 19949088227366507629622653233761071253230364164181520697744.0000000000
141241241241241248267654747412 * -149143276547656984948124912 = -21065181502376778401476291731259854717478035244384727744.0000000000
141241241241241248267654747412 * 0.1322135476547459213732911312 = 18674005579664314748578026521.9598901262
141241241241241248267654747412 * -0.123912932193769965476541321 = -17501616348889832831364181429.7008871512
141241241241241248267654747412 * 0 = 0.0000000000
141241241241241248267654747412 * 0.00 = 0.0000000000
141241241241241248267654747412 * -0 = 0.0000000000
141241241241241248267654747412 * -0.00 = 0.0000000000
141241241241241248267654747412 * 15 = 2118618618618618724014821211180.0000000000
141241241241241248267654747412 * -15 = -2118618618618618724014821211180.0000000000
141241241241241248267654747412 * 1 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 * -9 = -1271171171171171234408892726708.0000000000
141241241241241248267654747412 * 14.14 = 1997151151151151250504638128405.6800000000
141241241241241248267654747412 * -16.60 = -2344604604604604721243068807039.2000000000
141241241241241248267654747412 * 0.15 = 21186186186186187240148212111.8000000000
141241241241241248267654747412 * -0.01 = -1412412412412412482676547474.1200000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 * 15151324141414.412312232141241 = -2259718126486161223119790826488981524974.8925816946
-149143276547656984948124912 * -132132245132134.1515123765412 = 19706635976604687211527336089051267200810.4158361143
-149143276547656984948124912 * 141241241241241248267654747412 = -21065181502376778401476291731259854717478035244384727744.0000000000
-149143276547656984948124912 * -149143276547656984948124912 = 22243716939370890018820252028254140421311664755007744.0000000000
-149143276547656984948124912 * 0.1322135476547459213732911312 = -19718761701218596539144441.0298753533
-149143276547656984948124912 * -0.123912932193769965476541321 = 18480780714006502282899774.5778544540
-149143276547656984948124912 * 0 = 0.0000000000
-149143276547656984948124912 * 0.00 = 0.0000000000
-149143276547656984948124912 * -0 = 0.0000000000
-149143276547656984948124912 * -0.00 = 0.0000000000
-149143276547656984948124912 * 15 = -2237149148214854774221873680.0000000000
-149143276547656984948124912 * -15 = 2237149148214854774221873680.0000000000
-149143276547656984948124912 * 1 = -149143276547656984948124912.0000000000
-149143276547656984948124912 * -9 = 1342289488928912864533124208.0000000000
-149143276547656984948124912 * 14.14 = -2108885930383869767166486255.6800000000
-149143276547656984948124912 * -16.60 = 2475778390691105950138873539.2000000000
-149143276547656984948124912 * 0.15 = -22371491482148547742218736.8000000000
-149143276547656984948124912 * -0.01 = 1491432765476569849481249.1200000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 * 15151324141414.412312232141241 = 2003210316403.3967337164
0.1322135476547459213732911312 * -132132245132134.1515123765412 = -17469672888505.9884334474
0.1322135476547459213732911312 * 141241241241241248267654747412 = 18674005579664314748578026521.9598901262
0.1322135476547459213732911312 * -149143276547656984948124912 = -19718761701218596539144441.0298753533
0.1322135476547459213732911312 * 0.1322135476547459213732911312 = 0.0174804221
0.1322135476547459213732911312 * -0.123912932193769965476541321 = -0.0163829683
0.1322135476547459213732911312 * 0 = 0.0000000000
0.1322135476547459213732911312 * 0.00 = 0.0000000000
0.1322135476547459213732911312 * -0 = 0.0000000000
0.1322135476547459213732911312 * -0.00 = 0.0000000000
0.1322135476547459213732911312 * 15 = 1.9832032148
0.1322135476547459213732911312 * -15 = -1.9832032148
0.1322135476547459213732911312 * 1 = 0.1322135476
0.1322135476547459213732911312 * -9 = -1.1899219288
0.1322135476547459213732911312 * 14.14 = 1.8694995638
0.1322135476547459213732911312 * -16.60 = -2.1947448910
0.1322135476547459213732911312 * 0.15 = 0.0198320321
0.1322135476547459213732911312 * -0.01 = -0.0013221354
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 * 15151324141414.412312232141241 = -1877445000980.9140124713
-0.123912932193769965476541321 * -132132245132134.1515123765412 = 16372893931668.7307088223
-0.123912932193769965476541321 * 141241241241241248267654747412 = -17501616348889832831364181429.7008871512
-0.123912932193769965476541321 * -149143276547656984948124912 = 18480780714006502282899774.5778544540
-0.123912932193769965476541321 * 0.1322135476547459213732911312 = -0.0163829683
-0.123912932193769965476541321 * -0.123912932193769965476541321 = 0.0153544147
-0.123912932193769965476541321 * 0 = 0.0000000000
-0.123912932193769965476541321 * 0.00 = 0.0000000000
-0.123912932193769965476541321 * -0 = 0.0000000000
-0.123912932193769965476541321 * -0.00 = 0.0000000000
-0.123912932193769965476541321 * 15 = -1.8586939829
-0.123912932193769965476541321 * -15 = 1.8586939829
-0.123912932193769965476541321 * 1 = -0.1239129321
-0.123912932193769965476541321 * -9 = 1.1152163897
-0.123912932193769965476541321 * 14.14 = -1.7521288612
-0.123912932193769965476541321 * -16.60 = 2.0569546744
-0.123912932193769965476541321 * 0.15 = -0.0185869398
-0.123912932193769965476541321 * -0.01 = 0.0012391293

View File

@@ -0,0 +1,191 @@
--TEST--
bcmul() function with number zero
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$firstFactors = ["0", "0.00", "-0", "-0.00"];
$secondFactors = array_merge($firstFactors, [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($firstFactors, $secondFactors, "*", bcmul(...));
?>
--EXPECT--
Number "0" (scale 0)
0 * 0 = 0
0 * 0.00 = 0
0 * -0 = 0
0 * -0.00 = 0
0 * 15 = 0
0 * -15 = 0
0 * 1 = 0
0 * -9 = 0
0 * 14.14 = 0
0 * -16.60 = 0
0 * 0.15 = 0
0 * -0.01 = 0
0 * 15151324141414.412312232141241 = 0
0 * -132132245132134.1515123765412 = 0
0 * 141241241241241248267654747412 = 0
0 * -149143276547656984948124912 = 0
0 * 0.1322135476547459213732911312 = 0
0 * -0.123912932193769965476541321 = 0
Number "0.00" (scale 0)
0.00 * 0 = 0
0.00 * 0.00 = 0
0.00 * -0 = 0
0.00 * -0.00 = 0
0.00 * 15 = 0
0.00 * -15 = 0
0.00 * 1 = 0
0.00 * -9 = 0
0.00 * 14.14 = 0
0.00 * -16.60 = 0
0.00 * 0.15 = 0
0.00 * -0.01 = 0
0.00 * 15151324141414.412312232141241 = 0
0.00 * -132132245132134.1515123765412 = 0
0.00 * 141241241241241248267654747412 = 0
0.00 * -149143276547656984948124912 = 0
0.00 * 0.1322135476547459213732911312 = 0
0.00 * -0.123912932193769965476541321 = 0
Number "-0" (scale 0)
-0 * 0 = 0
-0 * 0.00 = 0
-0 * -0 = 0
-0 * -0.00 = 0
-0 * 15 = 0
-0 * -15 = 0
-0 * 1 = 0
-0 * -9 = 0
-0 * 14.14 = 0
-0 * -16.60 = 0
-0 * 0.15 = 0
-0 * -0.01 = 0
-0 * 15151324141414.412312232141241 = 0
-0 * -132132245132134.1515123765412 = 0
-0 * 141241241241241248267654747412 = 0
-0 * -149143276547656984948124912 = 0
-0 * 0.1322135476547459213732911312 = 0
-0 * -0.123912932193769965476541321 = 0
Number "-0.00" (scale 0)
-0.00 * 0 = 0
-0.00 * 0.00 = 0
-0.00 * -0 = 0
-0.00 * -0.00 = 0
-0.00 * 15 = 0
-0.00 * -15 = 0
-0.00 * 1 = 0
-0.00 * -9 = 0
-0.00 * 14.14 = 0
-0.00 * -16.60 = 0
-0.00 * 0.15 = 0
-0.00 * -0.01 = 0
-0.00 * 15151324141414.412312232141241 = 0
-0.00 * -132132245132134.1515123765412 = 0
-0.00 * 141241241241241248267654747412 = 0
-0.00 * -149143276547656984948124912 = 0
-0.00 * 0.1322135476547459213732911312 = 0
-0.00 * -0.123912932193769965476541321 = 0
Number "0" (scale 10)
0 * 0 = 0.0000000000
0 * 0.00 = 0.0000000000
0 * -0 = 0.0000000000
0 * -0.00 = 0.0000000000
0 * 15 = 0.0000000000
0 * -15 = 0.0000000000
0 * 1 = 0.0000000000
0 * -9 = 0.0000000000
0 * 14.14 = 0.0000000000
0 * -16.60 = 0.0000000000
0 * 0.15 = 0.0000000000
0 * -0.01 = 0.0000000000
0 * 15151324141414.412312232141241 = 0.0000000000
0 * -132132245132134.1515123765412 = 0.0000000000
0 * 141241241241241248267654747412 = 0.0000000000
0 * -149143276547656984948124912 = 0.0000000000
0 * 0.1322135476547459213732911312 = 0.0000000000
0 * -0.123912932193769965476541321 = 0.0000000000
Number "0.00" (scale 10)
0.00 * 0 = 0.0000000000
0.00 * 0.00 = 0.0000000000
0.00 * -0 = 0.0000000000
0.00 * -0.00 = 0.0000000000
0.00 * 15 = 0.0000000000
0.00 * -15 = 0.0000000000
0.00 * 1 = 0.0000000000
0.00 * -9 = 0.0000000000
0.00 * 14.14 = 0.0000000000
0.00 * -16.60 = 0.0000000000
0.00 * 0.15 = 0.0000000000
0.00 * -0.01 = 0.0000000000
0.00 * 15151324141414.412312232141241 = 0.0000000000
0.00 * -132132245132134.1515123765412 = 0.0000000000
0.00 * 141241241241241248267654747412 = 0.0000000000
0.00 * -149143276547656984948124912 = 0.0000000000
0.00 * 0.1322135476547459213732911312 = 0.0000000000
0.00 * -0.123912932193769965476541321 = 0.0000000000
Number "-0" (scale 10)
-0 * 0 = 0.0000000000
-0 * 0.00 = 0.0000000000
-0 * -0 = 0.0000000000
-0 * -0.00 = 0.0000000000
-0 * 15 = 0.0000000000
-0 * -15 = 0.0000000000
-0 * 1 = 0.0000000000
-0 * -9 = 0.0000000000
-0 * 14.14 = 0.0000000000
-0 * -16.60 = 0.0000000000
-0 * 0.15 = 0.0000000000
-0 * -0.01 = 0.0000000000
-0 * 15151324141414.412312232141241 = 0.0000000000
-0 * -132132245132134.1515123765412 = 0.0000000000
-0 * 141241241241241248267654747412 = 0.0000000000
-0 * -149143276547656984948124912 = 0.0000000000
-0 * 0.1322135476547459213732911312 = 0.0000000000
-0 * -0.123912932193769965476541321 = 0.0000000000
Number "-0.00" (scale 10)
-0.00 * 0 = 0.0000000000
-0.00 * 0.00 = 0.0000000000
-0.00 * -0 = 0.0000000000
-0.00 * -0.00 = 0.0000000000
-0.00 * 15 = 0.0000000000
-0.00 * -15 = 0.0000000000
-0.00 * 1 = 0.0000000000
-0.00 * -9 = 0.0000000000
-0.00 * 14.14 = 0.0000000000
-0.00 * -16.60 = 0.0000000000
-0.00 * 0.15 = 0.0000000000
-0.00 * -0.01 = 0.0000000000
-0.00 * 15151324141414.412312232141241 = 0.0000000000
-0.00 * -132132245132134.1515123765412 = 0.0000000000
-0.00 * 141241241241241248267654747412 = 0.0000000000
-0.00 * -149143276547656984948124912 = 0.0000000000
-0.00 * 0.1322135476547459213732911312 = 0.0000000000
-0.00 * -0.123912932193769965476541321 = 0.0000000000

View File

@@ -6,13 +6,312 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcpow("1", "2"),"\n";
echo bcpow("-2", "5", 4),"\n";
echo bcpow("2", "64"),"\n";
echo bcpow("-2.555", "5", 2),"\n";
require(__DIR__ . "/run_bcmath_tests_function.inc");
$exponents = ["15", "-15", "1", "-9", "0", "-0"];
$baseNumbers = array_merge($exponents, [
"0.00",
"-0.00",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"141241241241241248267654747412",
"-149143276547656984948124912",
"-132132245132134.1515123765412",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($baseNumbers, $exponents, "**", bcpow(...));
?>
--EXPECT--
1
-32.0000
18446744073709551616
-108.88
Number "15" (scale 0)
15 ** 15 = 437893890380859375
15 ** -15 = 0
15 ** 1 = 15
15 ** -9 = 0
15 ** 0 = 1
15 ** -0 = 1
Number "-15" (scale 0)
-15 ** 15 = -437893890380859375
-15 ** -15 = 0
-15 ** 1 = -15
-15 ** -9 = 0
-15 ** 0 = 1
-15 ** -0 = 1
Number "1" (scale 0)
1 ** 15 = 1
1 ** -15 = 1
1 ** 1 = 1
1 ** -9 = 1
1 ** 0 = 1
1 ** -0 = 1
Number "-9" (scale 0)
-9 ** 15 = -205891132094649
-9 ** -15 = 0
-9 ** 1 = -9
-9 ** -9 = 0
-9 ** 0 = 1
-9 ** -0 = 1
Number "0" (scale 0)
0 ** 15 = 0
0 ** -15 = 0
0 ** 1 = 0
0 ** -9 = 0
0 ** 0 = 1
0 ** -0 = 1
Number "-0" (scale 0)
-0 ** 15 = 0
-0 ** -15 = 0
-0 ** 1 = 0
-0 ** -9 = 0
-0 ** 0 = 1
-0 ** -0 = 1
Number "0.00" (scale 0)
0.00 ** 15 = 0
0.00 ** -15 = 0
0.00 ** 1 = 0
0.00 ** -9 = 0
0.00 ** 0 = 1
0.00 ** -0 = 1
Number "-0.00" (scale 0)
-0.00 ** 15 = 0
-0.00 ** -15 = 0
-0.00 ** 1 = 0
-0.00 ** -9 = 0
-0.00 ** 0 = 1
-0.00 ** -0 = 1
Number "14.14" (scale 0)
14.14 ** 15 = 180609729388653367
14.14 ** -15 = 0
14.14 ** 1 = 14
14.14 ** -9 = 0
14.14 ** 0 = 1
14.14 ** -0 = 1
Number "-16.60" (scale 0)
-16.60 ** 15 = -2002725006700243463
-16.60 ** -15 = 0
-16.60 ** 1 = -16
-16.60 ** -9 = 0
-16.60 ** 0 = 1
-16.60 ** -0 = 1
Number "0.15" (scale 0)
0.15 ** 15 = 0
0.15 ** -15 = 2283658260521
0.15 ** 1 = 0
0.15 ** -9 = 26012294
0.15 ** 0 = 1
0.15 ** -0 = 1
Number "-0.01" (scale 0)
-0.01 ** 15 = 0
-0.01 ** -15 = -1000000000000000000000000000000
-0.01 ** 1 = 0
-0.01 ** -9 = -1000000000000000000
-0.01 ** 0 = 1
-0.01 ** -0 = 1
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 ** 15 = 509048123991351801905481953476379185972789524506389464560948346272971876778908444213802402540123245924548973078757287880001162665191012187707496396738218203170247236816923480505943223846447785782345
15151324141414.412312232141241 ** -15 = 0
15151324141414.412312232141241 ** 1 = 15151324141414
15151324141414.412312232141241 ** -9 = 0
15151324141414.412312232141241 ** 0 = 1
15151324141414.412312232141241 ** -0 = 1
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 ** 15 = 177591789298838947421924937418435926483207726032941337126565686201154837989992676792469043927153886362407093561688979426718344848540943458245870720268722797084708626211824507010348223033844880992203548347580375252630658556528592298319547225224912135982081686378909626742998484437641863458021277126578238452879997277005795795020835662533892290564198652316605246272512413311084386660488961246461538425989780621930750572963428718487554490368
141241241241241248267654747412 ** -15 = 0
141241241241241248267654747412 ** 1 = 141241241241241248267654747412
141241241241241248267654747412 ** -9 = 0
141241241241241248267654747412 ** 0 = 1
141241241241241248267654747412 ** -0 = 1
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 ** 15 = -401841881822660241398409660309345646463535278187389488718526585893873800090729191609465595568674086078015487989884600849819723618141030735892646637579078630759905628572464757376301450900008605507116286859140901254928168279833198528761329808672095261265618307499605901098109261736293336298350347017449323858811047847238969925531775390894165290898723086447624518554747816961256145036283496890368
-149143276547656984948124912 ** -15 = 0
-149143276547656984948124912 ** 1 = -149143276547656984948124912
-149143276547656984948124912 ** -9 = 0
-149143276547656984948124912 ** 0 = 1
-149143276547656984948124912 ** -0 = 1
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 ** 15 = -65332942084431118671715132691017936828728297532817376297090067844431557352758338594306899592493441083845683845573112529065975725871957965764869599362286162979915656223771056616561461958797695558519631556073805440
-132132245132134.1515123765412 ** -15 = 0
-132132245132134.1515123765412 ** 1 = -132132245132134
-132132245132134.1515123765412 ** -9 = 0
-132132245132134.1515123765412 ** 0 = 1
-132132245132134.1515123765412 ** -0 = 1
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 ** 15 = 0
0.1322135476547459213732911312 ** -15 = 15165635699683
0.1322135476547459213732911312 ** 1 = 0
0.1322135476547459213732911312 ** -9 = 81005847
0.1322135476547459213732911312 ** 0 = 1
0.1322135476547459213732911312 ** -0 = 1
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 ** 15 = 0
-0.123912932193769965476541321 ** -15 = -40109799462729
-0.123912932193769965476541321 ** 1 = 0
-0.123912932193769965476541321 ** -9 = -145194543
-0.123912932193769965476541321 ** 0 = 1
-0.123912932193769965476541321 ** -0 = 1
Number "15" (scale 10)
15 ** 15 = 437893890380859375.0000000000
15 ** -15 = 0.0000000000
15 ** 1 = 15.0000000000
15 ** -9 = 0.0000000000
15 ** 0 = 1.0000000000
15 ** -0 = 1.0000000000
Number "-15" (scale 10)
-15 ** 15 = -437893890380859375.0000000000
-15 ** -15 = 0.0000000000
-15 ** 1 = -15.0000000000
-15 ** -9 = 0.0000000000
-15 ** 0 = 1.0000000000
-15 ** -0 = 1.0000000000
Number "1" (scale 10)
1 ** 15 = 1.0000000000
1 ** -15 = 1.0000000000
1 ** 1 = 1.0000000000
1 ** -9 = 1.0000000000
1 ** 0 = 1.0000000000
1 ** -0 = 1.0000000000
Number "-9" (scale 10)
-9 ** 15 = -205891132094649.0000000000
-9 ** -15 = 0.0000000000
-9 ** 1 = -9.0000000000
-9 ** -9 = -0.0000000025
-9 ** 0 = 1.0000000000
-9 ** -0 = 1.0000000000
Number "0" (scale 10)
0 ** 15 = 0.0000000000
0 ** -15 = 0.0000000000
0 ** 1 = 0.0000000000
0 ** -9 = 0.0000000000
0 ** 0 = 1.0000000000
0 ** -0 = 1.0000000000
Number "-0" (scale 10)
-0 ** 15 = 0.0000000000
-0 ** -15 = 0.0000000000
-0 ** 1 = 0.0000000000
-0 ** -9 = 0.0000000000
-0 ** 0 = 1.0000000000
-0 ** -0 = 1.0000000000
Number "0.00" (scale 10)
0.00 ** 15 = 0.0000000000
0.00 ** -15 = 0.0000000000
0.00 ** 1 = 0.0000000000
0.00 ** -9 = 0.0000000000
0.00 ** 0 = 1.0000000000
0.00 ** -0 = 1.0000000000
Number "-0.00" (scale 10)
-0.00 ** 15 = 0.0000000000
-0.00 ** -15 = 0.0000000000
-0.00 ** 1 = 0.0000000000
-0.00 ** -9 = 0.0000000000
-0.00 ** 0 = 1.0000000000
-0.00 ** -0 = 1.0000000000
Number "14.14" (scale 10)
14.14 ** 15 = 180609729388653367.2586094856
14.14 ** -15 = 0.0000000000
14.14 ** 1 = 14.1400000000
14.14 ** -9 = 0.0000000000
14.14 ** 0 = 1.0000000000
14.14 ** -0 = 1.0000000000
Number "-16.60" (scale 10)
-16.60 ** 15 = -2002725006700243463.1471178615
-16.60 ** -15 = 0.0000000000
-16.60 ** 1 = -16.6000000000
-16.60 ** -9 = 0.0000000000
-16.60 ** 0 = 1.0000000000
-16.60 ** -0 = 1.0000000000
Number "0.15" (scale 10)
0.15 ** 15 = 0.0000000000
0.15 ** -15 = 2283658260521.1672220051
0.15 ** 1 = 0.1500000000
0.15 ** -9 = 26012294.8737489203
0.15 ** 0 = 1.0000000000
0.15 ** -0 = 1.0000000000
Number "-0.01" (scale 10)
-0.01 ** 15 = 0.0000000000
-0.01 ** -15 = -1000000000000000000000000000000.0000000000
-0.01 ** 1 = -0.0100000000
-0.01 ** -9 = -1000000000000000000.0000000000
-0.01 ** 0 = 1.0000000000
-0.01 ** -0 = 1.0000000000
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 ** 15 = 509048123991351801905481953476379185972789524506389464560948346272971876778908444213802402540123245924548973078757287880001162665191012187707496396738218203170247236816923480505943223846447785782345.3558894965
15151324141414.412312232141241 ** -15 = 0.0000000000
15151324141414.412312232141241 ** 1 = 15151324141414.4123122321
15151324141414.412312232141241 ** -9 = 0.0000000000
15151324141414.412312232141241 ** 0 = 1.0000000000
15151324141414.412312232141241 ** -0 = 1.0000000000
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 ** 15 = 177591789298838947421924937418435926483207726032941337126565686201154837989992676792469043927153886362407093561688979426718344848540943458245870720268722797084708626211824507010348223033844880992203548347580375252630658556528592298319547225224912135982081686378909626742998484437641863458021277126578238452879997277005795795020835662533892290564198652316605246272512413311084386660488961246461538425989780621930750572963428718487554490368.0000000000
141241241241241248267654747412 ** -15 = 0.0000000000
141241241241241248267654747412 ** 1 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 ** -9 = 0.0000000000
141241241241241248267654747412 ** 0 = 1.0000000000
141241241241241248267654747412 ** -0 = 1.0000000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 ** 15 = -401841881822660241398409660309345646463535278187389488718526585893873800090729191609465595568674086078015487989884600849819723618141030735892646637579078630759905628572464757376301450900008605507116286859140901254928168279833198528761329808672095261265618307499605901098109261736293336298350347017449323858811047847238969925531775390894165290898723086447624518554747816961256145036283496890368.0000000000
-149143276547656984948124912 ** -15 = 0.0000000000
-149143276547656984948124912 ** 1 = -149143276547656984948124912.0000000000
-149143276547656984948124912 ** -9 = 0.0000000000
-149143276547656984948124912 ** 0 = 1.0000000000
-149143276547656984948124912 ** -0 = 1.0000000000
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 ** 15 = -65332942084431118671715132691017936828728297532817376297090067844431557352758338594306899592493441083845683845573112529065975725871957965764869599362286162979915656223771056616561461958797695558519631556073805440.8743426066
-132132245132134.1515123765412 ** -15 = 0.0000000000
-132132245132134.1515123765412 ** 1 = -132132245132134.1515123765
-132132245132134.1515123765412 ** -9 = 0.0000000000
-132132245132134.1515123765412 ** 0 = 1.0000000000
-132132245132134.1515123765412 ** -0 = 1.0000000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 ** 15 = 0.0000000000
0.1322135476547459213732911312 ** -15 = 15165635699683.8093525277
0.1322135476547459213732911312 ** 1 = 0.1322135476
0.1322135476547459213732911312 ** -9 = 81005847.7955131768
0.1322135476547459213732911312 ** 0 = 1.0000000000
0.1322135476547459213732911312 ** -0 = 1.0000000000
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 ** 15 = 0.0000000000
-0.123912932193769965476541321 ** -15 = -40109799462729.8625078080
-0.123912932193769965476541321 ** 1 = -0.1239129321
-0.123912932193769965476541321 ** -9 = -145194543.0878622400
-0.123912932193769965476541321 ** 0 = 1.0000000000
-0.123912932193769965476541321 ** -0 = 1.0000000000

View File

@@ -9,6 +9,12 @@ try {
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(bcpow('1', '0.1', 2));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
?>
--EXPECT--
bcpow(): Argument #2 ($exponent) cannot have a fractional part
bcpow(): Argument #2 ($exponent) cannot have a fractional part

View File

@@ -9,6 +9,13 @@ try {
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(bcpow('0', '-9223372036854775808', 2));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
?>
--EXPECT--
bcpow(): Argument #2 ($exponent) is too large
bcpow(): Argument #2 ($exponent) is too large

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +0,0 @@
--TEST--
bcpow() with a negative exponent
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
echo bcpow("2", "-4");
?>
--EXPECT--
0

View File

@@ -6,13 +6,49 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcsqrt("9"),"\n";
echo bcsqrt("9.444", 2),"\n";
echo bcsqrt("1928372132132819737213", 5),"\n";
echo bcsqrt("0.5", 5), "\n";
$radicants = [
"0",
"0.00",
"-0",
"-0.00",
"15151324141414.412312232141241",
"141241241241241248267654747412",
"0.1322135476547459213732911312",
"14.14",
"0.15",
"15",
"1",
];
$scales = [0, 10];
foreach ($scales as $scale) {
foreach ($radicants as $radicant) {
echo bcsqrt($radicant, $scale), "\n";
}
}
?>
--EXPECT--
0
0
0
0
3892470
375820756799356
0
3
3.07
43913234134.28826
0.70710
0
3
1
0.0000000000
0.0000000000
0.0000000000
0.0000000000
3892470.1850385973
375820756799356.7439216735
0.3636118090
3.7603191353
0.3872983346
3.8729833462
1.0000000000

View File

@@ -1,12 +0,0 @@
--TEST--
bcsqrt() with argument of 0
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
echo bcsqrt("0");
?>
--EXPECT--
0

View File

@@ -6,13 +6,342 @@ bcmath
bcmath.scale=0
--FILE--
<?php
echo bcsub("1", "2"),"\n";
echo bcsub("-1", "5", 4),"\n";
echo bcsub("1.555", "2.555", 2),"\n";
echo bcsub("8728932001983192837219398127471", "1928372132132819737213", 2),"\n";
require(__DIR__ . "/run_bcmath_tests_function.inc");
$minuends = ["15", "-15", "1", "-9", "14.14", "-16.60", "0.15", "-0.01"];
$subtrahends = array_merge($minuends, [
"0",
"0.00",
"-0",
"-0.00",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($minuends, $subtrahends, "-", bcsub(...));
?>
--EXPECT--
-1
-6.0000
-1.00
8728932000054820705086578390258.00
Number "15" (scale 0)
15 - 15 = 0
15 - -15 = 30
15 - 1 = 14
15 - -9 = 24
15 - 14.14 = 0
15 - -16.60 = 31
15 - 0.15 = 14
15 - -0.01 = 15
15 - 0 = 15
15 - 0.00 = 15
15 - -0 = 15
15 - -0.00 = 15
15 - 15151324141414.412312232141241 = -15151324141399
15 - -132132245132134.1515123765412 = 132132245132149
15 - 141241241241241248267654747412 = -141241241241241248267654747397
15 - -149143276547656984948124912 = 149143276547656984948124927
15 - 0.1322135476547459213732911312 = 14
15 - -0.123912932193769965476541321 = 15
Number "-15" (scale 0)
-15 - 15 = -30
-15 - -15 = 0
-15 - 1 = -16
-15 - -9 = -6
-15 - 14.14 = -29
-15 - -16.60 = 1
-15 - 0.15 = -15
-15 - -0.01 = -14
-15 - 0 = -15
-15 - 0.00 = -15
-15 - -0 = -15
-15 - -0.00 = -15
-15 - 15151324141414.412312232141241 = -15151324141429
-15 - -132132245132134.1515123765412 = 132132245132119
-15 - 141241241241241248267654747412 = -141241241241241248267654747427
-15 - -149143276547656984948124912 = 149143276547656984948124897
-15 - 0.1322135476547459213732911312 = -15
-15 - -0.123912932193769965476541321 = -14
Number "1" (scale 0)
1 - 15 = -14
1 - -15 = 16
1 - 1 = 0
1 - -9 = 10
1 - 14.14 = -13
1 - -16.60 = 17
1 - 0.15 = 0
1 - -0.01 = 1
1 - 0 = 1
1 - 0.00 = 1
1 - -0 = 1
1 - -0.00 = 1
1 - 15151324141414.412312232141241 = -15151324141413
1 - -132132245132134.1515123765412 = 132132245132135
1 - 141241241241241248267654747412 = -141241241241241248267654747411
1 - -149143276547656984948124912 = 149143276547656984948124913
1 - 0.1322135476547459213732911312 = 0
1 - -0.123912932193769965476541321 = 1
Number "-9" (scale 0)
-9 - 15 = -24
-9 - -15 = 6
-9 - 1 = -10
-9 - -9 = 0
-9 - 14.14 = -23
-9 - -16.60 = 7
-9 - 0.15 = -9
-9 - -0.01 = -8
-9 - 0 = -9
-9 - 0.00 = -9
-9 - -0 = -9
-9 - -0.00 = -9
-9 - 15151324141414.412312232141241 = -15151324141423
-9 - -132132245132134.1515123765412 = 132132245132125
-9 - 141241241241241248267654747412 = -141241241241241248267654747421
-9 - -149143276547656984948124912 = 149143276547656984948124903
-9 - 0.1322135476547459213732911312 = -9
-9 - -0.123912932193769965476541321 = -8
Number "14.14" (scale 0)
14.14 - 15 = 0
14.14 - -15 = 29
14.14 - 1 = 13
14.14 - -9 = 23
14.14 - 14.14 = 0
14.14 - -16.60 = 30
14.14 - 0.15 = 13
14.14 - -0.01 = 14
14.14 - 0 = 14
14.14 - 0.00 = 14
14.14 - -0 = 14
14.14 - -0.00 = 14
14.14 - 15151324141414.412312232141241 = -15151324141400
14.14 - -132132245132134.1515123765412 = 132132245132148
14.14 - 141241241241241248267654747412 = -141241241241241248267654747397
14.14 - -149143276547656984948124912 = 149143276547656984948124926
14.14 - 0.1322135476547459213732911312 = 14
14.14 - -0.123912932193769965476541321 = 14
Number "-16.60" (scale 0)
-16.60 - 15 = -31
-16.60 - -15 = -1
-16.60 - 1 = -17
-16.60 - -9 = -7
-16.60 - 14.14 = -30
-16.60 - -16.60 = 0
-16.60 - 0.15 = -16
-16.60 - -0.01 = -16
-16.60 - 0 = -16
-16.60 - 0.00 = -16
-16.60 - -0 = -16
-16.60 - -0.00 = -16
-16.60 - 15151324141414.412312232141241 = -15151324141431
-16.60 - -132132245132134.1515123765412 = 132132245132117
-16.60 - 141241241241241248267654747412 = -141241241241241248267654747428
-16.60 - -149143276547656984948124912 = 149143276547656984948124895
-16.60 - 0.1322135476547459213732911312 = -16
-16.60 - -0.123912932193769965476541321 = -16
Number "0.15" (scale 0)
0.15 - 15 = -14
0.15 - -15 = 15
0.15 - 1 = 0
0.15 - -9 = 9
0.15 - 14.14 = -13
0.15 - -16.60 = 16
0.15 - 0.15 = 0
0.15 - -0.01 = 0
0.15 - 0 = 0
0.15 - 0.00 = 0
0.15 - -0 = 0
0.15 - -0.00 = 0
0.15 - 15151324141414.412312232141241 = -15151324141414
0.15 - -132132245132134.1515123765412 = 132132245132134
0.15 - 141241241241241248267654747412 = -141241241241241248267654747411
0.15 - -149143276547656984948124912 = 149143276547656984948124912
0.15 - 0.1322135476547459213732911312 = 0
0.15 - -0.123912932193769965476541321 = 0
Number "-0.01" (scale 0)
-0.01 - 15 = -15
-0.01 - -15 = 14
-0.01 - 1 = -1
-0.01 - -9 = 8
-0.01 - 14.14 = -14
-0.01 - -16.60 = 16
-0.01 - 0.15 = 0
-0.01 - -0.01 = 0
-0.01 - 0 = 0
-0.01 - 0.00 = 0
-0.01 - -0 = 0
-0.01 - -0.00 = 0
-0.01 - 15151324141414.412312232141241 = -15151324141414
-0.01 - -132132245132134.1515123765412 = 132132245132134
-0.01 - 141241241241241248267654747412 = -141241241241241248267654747412
-0.01 - -149143276547656984948124912 = 149143276547656984948124911
-0.01 - 0.1322135476547459213732911312 = 0
-0.01 - -0.123912932193769965476541321 = 0
Number "15" (scale 10)
15 - 15 = 0.0000000000
15 - -15 = 30.0000000000
15 - 1 = 14.0000000000
15 - -9 = 24.0000000000
15 - 14.14 = 0.8600000000
15 - -16.60 = 31.6000000000
15 - 0.15 = 14.8500000000
15 - -0.01 = 15.0100000000
15 - 0 = 15.0000000000
15 - 0.00 = 15.0000000000
15 - -0 = 15.0000000000
15 - -0.00 = 15.0000000000
15 - 15151324141414.412312232141241 = -15151324141399.4123122321
15 - -132132245132134.1515123765412 = 132132245132149.1515123765
15 - 141241241241241248267654747412 = -141241241241241248267654747397.0000000000
15 - -149143276547656984948124912 = 149143276547656984948124927.0000000000
15 - 0.1322135476547459213732911312 = 14.8677864523
15 - -0.123912932193769965476541321 = 15.1239129321
Number "-15" (scale 10)
-15 - 15 = -30.0000000000
-15 - -15 = 0.0000000000
-15 - 1 = -16.0000000000
-15 - -9 = -6.0000000000
-15 - 14.14 = -29.1400000000
-15 - -16.60 = 1.6000000000
-15 - 0.15 = -15.1500000000
-15 - -0.01 = -14.9900000000
-15 - 0 = -15.0000000000
-15 - 0.00 = -15.0000000000
-15 - -0 = -15.0000000000
-15 - -0.00 = -15.0000000000
-15 - 15151324141414.412312232141241 = -15151324141429.4123122321
-15 - -132132245132134.1515123765412 = 132132245132119.1515123765
-15 - 141241241241241248267654747412 = -141241241241241248267654747427.0000000000
-15 - -149143276547656984948124912 = 149143276547656984948124897.0000000000
-15 - 0.1322135476547459213732911312 = -15.1322135476
-15 - -0.123912932193769965476541321 = -14.8760870678
Number "1" (scale 10)
1 - 15 = -14.0000000000
1 - -15 = 16.0000000000
1 - 1 = 0.0000000000
1 - -9 = 10.0000000000
1 - 14.14 = -13.1400000000
1 - -16.60 = 17.6000000000
1 - 0.15 = 0.8500000000
1 - -0.01 = 1.0100000000
1 - 0 = 1.0000000000
1 - 0.00 = 1.0000000000
1 - -0 = 1.0000000000
1 - -0.00 = 1.0000000000
1 - 15151324141414.412312232141241 = -15151324141413.4123122321
1 - -132132245132134.1515123765412 = 132132245132135.1515123765
1 - 141241241241241248267654747412 = -141241241241241248267654747411.0000000000
1 - -149143276547656984948124912 = 149143276547656984948124913.0000000000
1 - 0.1322135476547459213732911312 = 0.8677864523
1 - -0.123912932193769965476541321 = 1.1239129321
Number "-9" (scale 10)
-9 - 15 = -24.0000000000
-9 - -15 = 6.0000000000
-9 - 1 = -10.0000000000
-9 - -9 = 0.0000000000
-9 - 14.14 = -23.1400000000
-9 - -16.60 = 7.6000000000
-9 - 0.15 = -9.1500000000
-9 - -0.01 = -8.9900000000
-9 - 0 = -9.0000000000
-9 - 0.00 = -9.0000000000
-9 - -0 = -9.0000000000
-9 - -0.00 = -9.0000000000
-9 - 15151324141414.412312232141241 = -15151324141423.4123122321
-9 - -132132245132134.1515123765412 = 132132245132125.1515123765
-9 - 141241241241241248267654747412 = -141241241241241248267654747421.0000000000
-9 - -149143276547656984948124912 = 149143276547656984948124903.0000000000
-9 - 0.1322135476547459213732911312 = -9.1322135476
-9 - -0.123912932193769965476541321 = -8.8760870678
Number "14.14" (scale 10)
14.14 - 15 = -0.8600000000
14.14 - -15 = 29.1400000000
14.14 - 1 = 13.1400000000
14.14 - -9 = 23.1400000000
14.14 - 14.14 = 0.0000000000
14.14 - -16.60 = 30.7400000000
14.14 - 0.15 = 13.9900000000
14.14 - -0.01 = 14.1500000000
14.14 - 0 = 14.1400000000
14.14 - 0.00 = 14.1400000000
14.14 - -0 = 14.1400000000
14.14 - -0.00 = 14.1400000000
14.14 - 15151324141414.412312232141241 = -15151324141400.2723122321
14.14 - -132132245132134.1515123765412 = 132132245132148.2915123765
14.14 - 141241241241241248267654747412 = -141241241241241248267654747397.8600000000
14.14 - -149143276547656984948124912 = 149143276547656984948124926.1400000000
14.14 - 0.1322135476547459213732911312 = 14.0077864523
14.14 - -0.123912932193769965476541321 = 14.2639129321
Number "-16.60" (scale 10)
-16.60 - 15 = -31.6000000000
-16.60 - -15 = -1.6000000000
-16.60 - 1 = -17.6000000000
-16.60 - -9 = -7.6000000000
-16.60 - 14.14 = -30.7400000000
-16.60 - -16.60 = 0.0000000000
-16.60 - 0.15 = -16.7500000000
-16.60 - -0.01 = -16.5900000000
-16.60 - 0 = -16.6000000000
-16.60 - 0.00 = -16.6000000000
-16.60 - -0 = -16.6000000000
-16.60 - -0.00 = -16.6000000000
-16.60 - 15151324141414.412312232141241 = -15151324141431.0123122321
-16.60 - -132132245132134.1515123765412 = 132132245132117.5515123765
-16.60 - 141241241241241248267654747412 = -141241241241241248267654747428.6000000000
-16.60 - -149143276547656984948124912 = 149143276547656984948124895.4000000000
-16.60 - 0.1322135476547459213732911312 = -16.7322135476
-16.60 - -0.123912932193769965476541321 = -16.4760870678
Number "0.15" (scale 10)
0.15 - 15 = -14.8500000000
0.15 - -15 = 15.1500000000
0.15 - 1 = -0.8500000000
0.15 - -9 = 9.1500000000
0.15 - 14.14 = -13.9900000000
0.15 - -16.60 = 16.7500000000
0.15 - 0.15 = 0.0000000000
0.15 - -0.01 = 0.1600000000
0.15 - 0 = 0.1500000000
0.15 - 0.00 = 0.1500000000
0.15 - -0 = 0.1500000000
0.15 - -0.00 = 0.1500000000
0.15 - 15151324141414.412312232141241 = -15151324141414.2623122321
0.15 - -132132245132134.1515123765412 = 132132245132134.3015123765
0.15 - 141241241241241248267654747412 = -141241241241241248267654747411.8500000000
0.15 - -149143276547656984948124912 = 149143276547656984948124912.1500000000
0.15 - 0.1322135476547459213732911312 = 0.0177864523
0.15 - -0.123912932193769965476541321 = 0.2739129321
Number "-0.01" (scale 10)
-0.01 - 15 = -15.0100000000
-0.01 - -15 = 14.9900000000
-0.01 - 1 = -1.0100000000
-0.01 - -9 = 8.9900000000
-0.01 - 14.14 = -14.1500000000
-0.01 - -16.60 = 16.5900000000
-0.01 - 0.15 = -0.1600000000
-0.01 - -0.01 = 0.0000000000
-0.01 - 0 = -0.0100000000
-0.01 - 0.00 = -0.0100000000
-0.01 - -0 = -0.0100000000
-0.01 - -0.00 = -0.0100000000
-0.01 - 15151324141414.412312232141241 = -15151324141414.4223122321
-0.01 - -132132245132134.1515123765412 = 132132245132134.1415123765
-0.01 - 141241241241241248267654747412 = -141241241241241248267654747412.0100000000
-0.01 - -149143276547656984948124912 = 149143276547656984948124911.9900000000
-0.01 - 0.1322135476547459213732911312 = -0.1422135476
-0.01 - -0.123912932193769965476541321 = 0.1139129321

View File

@@ -0,0 +1,276 @@
--TEST--
bcsub() function with large numbers
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$minuends = [
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
];
$subtrahends = array_merge($minuends, [
"0",
"0.00",
"-0",
"-0.00",
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
]);
run_bcmath_tests($minuends, $subtrahends, "-", bcsub(...));
?>
--EXPECT--
Number "15151324141414.412312232141241" (scale 0)
15151324141414.412312232141241 - 15151324141414.412312232141241 = 0
15151324141414.412312232141241 - -132132245132134.1515123765412 = 147283569273548
15151324141414.412312232141241 - 141241241241241248267654747412 = -141241241241241233116330605997
15151324141414.412312232141241 - -149143276547656984948124912 = 149143276547672136272266326
15151324141414.412312232141241 - 0.1322135476547459213732911312 = 15151324141414
15151324141414.412312232141241 - -0.123912932193769965476541321 = 15151324141414
15151324141414.412312232141241 - 0 = 15151324141414
15151324141414.412312232141241 - 0.00 = 15151324141414
15151324141414.412312232141241 - -0 = 15151324141414
15151324141414.412312232141241 - -0.00 = 15151324141414
15151324141414.412312232141241 - 15 = 15151324141399
15151324141414.412312232141241 - -15 = 15151324141429
15151324141414.412312232141241 - 1 = 15151324141413
15151324141414.412312232141241 - -9 = 15151324141423
15151324141414.412312232141241 - 14.14 = 15151324141400
15151324141414.412312232141241 - -16.60 = 15151324141431
15151324141414.412312232141241 - 0.15 = 15151324141414
15151324141414.412312232141241 - -0.01 = 15151324141414
Number "-132132245132134.1515123765412" (scale 0)
-132132245132134.1515123765412 - 15151324141414.412312232141241 = -147283569273548
-132132245132134.1515123765412 - -132132245132134.1515123765412 = 0
-132132245132134.1515123765412 - 141241241241241248267654747412 = -141241241241241380399899879546
-132132245132134.1515123765412 - -149143276547656984948124912 = 149143276547524852702992777
-132132245132134.1515123765412 - 0.1322135476547459213732911312 = -132132245132134
-132132245132134.1515123765412 - -0.123912932193769965476541321 = -132132245132134
-132132245132134.1515123765412 - 0 = -132132245132134
-132132245132134.1515123765412 - 0.00 = -132132245132134
-132132245132134.1515123765412 - -0 = -132132245132134
-132132245132134.1515123765412 - -0.00 = -132132245132134
-132132245132134.1515123765412 - 15 = -132132245132149
-132132245132134.1515123765412 - -15 = -132132245132119
-132132245132134.1515123765412 - 1 = -132132245132135
-132132245132134.1515123765412 - -9 = -132132245132125
-132132245132134.1515123765412 - 14.14 = -132132245132148
-132132245132134.1515123765412 - -16.60 = -132132245132117
-132132245132134.1515123765412 - 0.15 = -132132245132134
-132132245132134.1515123765412 - -0.01 = -132132245132134
Number "141241241241241248267654747412" (scale 0)
141241241241241248267654747412 - 15151324141414.412312232141241 = 141241241241241233116330605997
141241241241241248267654747412 - -132132245132134.1515123765412 = 141241241241241380399899879546
141241241241241248267654747412 - 141241241241241248267654747412 = 0
141241241241241248267654747412 - -149143276547656984948124912 = 141390384517788905252602872324
141241241241241248267654747412 - 0.1322135476547459213732911312 = 141241241241241248267654747411
141241241241241248267654747412 - -0.123912932193769965476541321 = 141241241241241248267654747412
141241241241241248267654747412 - 0 = 141241241241241248267654747412
141241241241241248267654747412 - 0.00 = 141241241241241248267654747412
141241241241241248267654747412 - -0 = 141241241241241248267654747412
141241241241241248267654747412 - -0.00 = 141241241241241248267654747412
141241241241241248267654747412 - 15 = 141241241241241248267654747397
141241241241241248267654747412 - -15 = 141241241241241248267654747427
141241241241241248267654747412 - 1 = 141241241241241248267654747411
141241241241241248267654747412 - -9 = 141241241241241248267654747421
141241241241241248267654747412 - 14.14 = 141241241241241248267654747397
141241241241241248267654747412 - -16.60 = 141241241241241248267654747428
141241241241241248267654747412 - 0.15 = 141241241241241248267654747411
141241241241241248267654747412 - -0.01 = 141241241241241248267654747412
Number "-149143276547656984948124912" (scale 0)
-149143276547656984948124912 - 15151324141414.412312232141241 = -149143276547672136272266326
-149143276547656984948124912 - -132132245132134.1515123765412 = -149143276547524852702992777
-149143276547656984948124912 - 141241241241241248267654747412 = -141390384517788905252602872324
-149143276547656984948124912 - -149143276547656984948124912 = 0
-149143276547656984948124912 - 0.1322135476547459213732911312 = -149143276547656984948124912
-149143276547656984948124912 - -0.123912932193769965476541321 = -149143276547656984948124911
-149143276547656984948124912 - 0 = -149143276547656984948124912
-149143276547656984948124912 - 0.00 = -149143276547656984948124912
-149143276547656984948124912 - -0 = -149143276547656984948124912
-149143276547656984948124912 - -0.00 = -149143276547656984948124912
-149143276547656984948124912 - 15 = -149143276547656984948124927
-149143276547656984948124912 - -15 = -149143276547656984948124897
-149143276547656984948124912 - 1 = -149143276547656984948124913
-149143276547656984948124912 - -9 = -149143276547656984948124903
-149143276547656984948124912 - 14.14 = -149143276547656984948124926
-149143276547656984948124912 - -16.60 = -149143276547656984948124895
-149143276547656984948124912 - 0.15 = -149143276547656984948124912
-149143276547656984948124912 - -0.01 = -149143276547656984948124911
Number "0.1322135476547459213732911312" (scale 0)
0.1322135476547459213732911312 - 15151324141414.412312232141241 = -15151324141414
0.1322135476547459213732911312 - -132132245132134.1515123765412 = 132132245132134
0.1322135476547459213732911312 - 141241241241241248267654747412 = -141241241241241248267654747411
0.1322135476547459213732911312 - -149143276547656984948124912 = 149143276547656984948124912
0.1322135476547459213732911312 - 0.1322135476547459213732911312 = 0
0.1322135476547459213732911312 - -0.123912932193769965476541321 = 0
0.1322135476547459213732911312 - 0 = 0
0.1322135476547459213732911312 - 0.00 = 0
0.1322135476547459213732911312 - -0 = 0
0.1322135476547459213732911312 - -0.00 = 0
0.1322135476547459213732911312 - 15 = -14
0.1322135476547459213732911312 - -15 = 15
0.1322135476547459213732911312 - 1 = 0
0.1322135476547459213732911312 - -9 = 9
0.1322135476547459213732911312 - 14.14 = -14
0.1322135476547459213732911312 - -16.60 = 16
0.1322135476547459213732911312 - 0.15 = 0
0.1322135476547459213732911312 - -0.01 = 0
Number "-0.123912932193769965476541321" (scale 0)
-0.123912932193769965476541321 - 15151324141414.412312232141241 = -15151324141414
-0.123912932193769965476541321 - -132132245132134.1515123765412 = 132132245132134
-0.123912932193769965476541321 - 141241241241241248267654747412 = -141241241241241248267654747412
-0.123912932193769965476541321 - -149143276547656984948124912 = 149143276547656984948124911
-0.123912932193769965476541321 - 0.1322135476547459213732911312 = 0
-0.123912932193769965476541321 - -0.123912932193769965476541321 = 0
-0.123912932193769965476541321 - 0 = 0
-0.123912932193769965476541321 - 0.00 = 0
-0.123912932193769965476541321 - -0 = 0
-0.123912932193769965476541321 - -0.00 = 0
-0.123912932193769965476541321 - 15 = -15
-0.123912932193769965476541321 - -15 = 14
-0.123912932193769965476541321 - 1 = -1
-0.123912932193769965476541321 - -9 = 8
-0.123912932193769965476541321 - 14.14 = -14
-0.123912932193769965476541321 - -16.60 = 16
-0.123912932193769965476541321 - 0.15 = 0
-0.123912932193769965476541321 - -0.01 = 0
Number "15151324141414.412312232141241" (scale 10)
15151324141414.412312232141241 - 15151324141414.412312232141241 = 0.0000000000
15151324141414.412312232141241 - -132132245132134.1515123765412 = 147283569273548.5638246086
15151324141414.412312232141241 - 141241241241241248267654747412 = -141241241241241233116330605997.5876877678
15151324141414.412312232141241 - -149143276547656984948124912 = 149143276547672136272266326.4123122321
15151324141414.412312232141241 - 0.1322135476547459213732911312 = 15151324141414.2800986844
15151324141414.412312232141241 - -0.123912932193769965476541321 = 15151324141414.5362251643
15151324141414.412312232141241 - 0 = 15151324141414.4123122321
15151324141414.412312232141241 - 0.00 = 15151324141414.4123122321
15151324141414.412312232141241 - -0 = 15151324141414.4123122321
15151324141414.412312232141241 - -0.00 = 15151324141414.4123122321
15151324141414.412312232141241 - 15 = 15151324141399.4123122321
15151324141414.412312232141241 - -15 = 15151324141429.4123122321
15151324141414.412312232141241 - 1 = 15151324141413.4123122321
15151324141414.412312232141241 - -9 = 15151324141423.4123122321
15151324141414.412312232141241 - 14.14 = 15151324141400.2723122321
15151324141414.412312232141241 - -16.60 = 15151324141431.0123122321
15151324141414.412312232141241 - 0.15 = 15151324141414.2623122321
15151324141414.412312232141241 - -0.01 = 15151324141414.4223122321
Number "-132132245132134.1515123765412" (scale 10)
-132132245132134.1515123765412 - 15151324141414.412312232141241 = -147283569273548.5638246086
-132132245132134.1515123765412 - -132132245132134.1515123765412 = 0.0000000000
-132132245132134.1515123765412 - 141241241241241248267654747412 = -141241241241241380399899879546.1515123765
-132132245132134.1515123765412 - -149143276547656984948124912 = 149143276547524852702992777.8484876234
-132132245132134.1515123765412 - 0.1322135476547459213732911312 = -132132245132134.2837259241
-132132245132134.1515123765412 - -0.123912932193769965476541321 = -132132245132134.0275994443
-132132245132134.1515123765412 - 0 = -132132245132134.1515123765
-132132245132134.1515123765412 - 0.00 = -132132245132134.1515123765
-132132245132134.1515123765412 - -0 = -132132245132134.1515123765
-132132245132134.1515123765412 - -0.00 = -132132245132134.1515123765
-132132245132134.1515123765412 - 15 = -132132245132149.1515123765
-132132245132134.1515123765412 - -15 = -132132245132119.1515123765
-132132245132134.1515123765412 - 1 = -132132245132135.1515123765
-132132245132134.1515123765412 - -9 = -132132245132125.1515123765
-132132245132134.1515123765412 - 14.14 = -132132245132148.2915123765
-132132245132134.1515123765412 - -16.60 = -132132245132117.5515123765
-132132245132134.1515123765412 - 0.15 = -132132245132134.3015123765
-132132245132134.1515123765412 - -0.01 = -132132245132134.1415123765
Number "141241241241241248267654747412" (scale 10)
141241241241241248267654747412 - 15151324141414.412312232141241 = 141241241241241233116330605997.5876877678
141241241241241248267654747412 - -132132245132134.1515123765412 = 141241241241241380399899879546.1515123765
141241241241241248267654747412 - 141241241241241248267654747412 = 0.0000000000
141241241241241248267654747412 - -149143276547656984948124912 = 141390384517788905252602872324.0000000000
141241241241241248267654747412 - 0.1322135476547459213732911312 = 141241241241241248267654747411.8677864523
141241241241241248267654747412 - -0.123912932193769965476541321 = 141241241241241248267654747412.1239129321
141241241241241248267654747412 - 0 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 - 0.00 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 - -0 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 - -0.00 = 141241241241241248267654747412.0000000000
141241241241241248267654747412 - 15 = 141241241241241248267654747397.0000000000
141241241241241248267654747412 - -15 = 141241241241241248267654747427.0000000000
141241241241241248267654747412 - 1 = 141241241241241248267654747411.0000000000
141241241241241248267654747412 - -9 = 141241241241241248267654747421.0000000000
141241241241241248267654747412 - 14.14 = 141241241241241248267654747397.8600000000
141241241241241248267654747412 - -16.60 = 141241241241241248267654747428.6000000000
141241241241241248267654747412 - 0.15 = 141241241241241248267654747411.8500000000
141241241241241248267654747412 - -0.01 = 141241241241241248267654747412.0100000000
Number "-149143276547656984948124912" (scale 10)
-149143276547656984948124912 - 15151324141414.412312232141241 = -149143276547672136272266326.4123122321
-149143276547656984948124912 - -132132245132134.1515123765412 = -149143276547524852702992777.8484876234
-149143276547656984948124912 - 141241241241241248267654747412 = -141390384517788905252602872324.0000000000
-149143276547656984948124912 - -149143276547656984948124912 = 0.0000000000
-149143276547656984948124912 - 0.1322135476547459213732911312 = -149143276547656984948124912.1322135476
-149143276547656984948124912 - -0.123912932193769965476541321 = -149143276547656984948124911.8760870678
-149143276547656984948124912 - 0 = -149143276547656984948124912.0000000000
-149143276547656984948124912 - 0.00 = -149143276547656984948124912.0000000000
-149143276547656984948124912 - -0 = -149143276547656984948124912.0000000000
-149143276547656984948124912 - -0.00 = -149143276547656984948124912.0000000000
-149143276547656984948124912 - 15 = -149143276547656984948124927.0000000000
-149143276547656984948124912 - -15 = -149143276547656984948124897.0000000000
-149143276547656984948124912 - 1 = -149143276547656984948124913.0000000000
-149143276547656984948124912 - -9 = -149143276547656984948124903.0000000000
-149143276547656984948124912 - 14.14 = -149143276547656984948124926.1400000000
-149143276547656984948124912 - -16.60 = -149143276547656984948124895.4000000000
-149143276547656984948124912 - 0.15 = -149143276547656984948124912.1500000000
-149143276547656984948124912 - -0.01 = -149143276547656984948124911.9900000000
Number "0.1322135476547459213732911312" (scale 10)
0.1322135476547459213732911312 - 15151324141414.412312232141241 = -15151324141414.2800986844
0.1322135476547459213732911312 - -132132245132134.1515123765412 = 132132245132134.2837259241
0.1322135476547459213732911312 - 141241241241241248267654747412 = -141241241241241248267654747411.8677864523
0.1322135476547459213732911312 - -149143276547656984948124912 = 149143276547656984948124912.1322135476
0.1322135476547459213732911312 - 0.1322135476547459213732911312 = 0.0000000000
0.1322135476547459213732911312 - -0.123912932193769965476541321 = 0.2561264798
0.1322135476547459213732911312 - 0 = 0.1322135476
0.1322135476547459213732911312 - 0.00 = 0.1322135476
0.1322135476547459213732911312 - -0 = 0.1322135476
0.1322135476547459213732911312 - -0.00 = 0.1322135476
0.1322135476547459213732911312 - 15 = -14.8677864523
0.1322135476547459213732911312 - -15 = 15.1322135476
0.1322135476547459213732911312 - 1 = -0.8677864523
0.1322135476547459213732911312 - -9 = 9.1322135476
0.1322135476547459213732911312 - 14.14 = -14.0077864523
0.1322135476547459213732911312 - -16.60 = 16.7322135476
0.1322135476547459213732911312 - 0.15 = -0.0177864523
0.1322135476547459213732911312 - -0.01 = 0.1422135476
Number "-0.123912932193769965476541321" (scale 10)
-0.123912932193769965476541321 - 15151324141414.412312232141241 = -15151324141414.5362251643
-0.123912932193769965476541321 - -132132245132134.1515123765412 = 132132245132134.0275994443
-0.123912932193769965476541321 - 141241241241241248267654747412 = -141241241241241248267654747412.1239129321
-0.123912932193769965476541321 - -149143276547656984948124912 = 149143276547656984948124911.8760870678
-0.123912932193769965476541321 - 0.1322135476547459213732911312 = -0.2561264798
-0.123912932193769965476541321 - -0.123912932193769965476541321 = 0.0000000000
-0.123912932193769965476541321 - 0 = -0.1239129321
-0.123912932193769965476541321 - 0.00 = -0.1239129321
-0.123912932193769965476541321 - -0 = -0.1239129321
-0.123912932193769965476541321 - -0.00 = -0.1239129321
-0.123912932193769965476541321 - 15 = -15.1239129321
-0.123912932193769965476541321 - -15 = 14.8760870678
-0.123912932193769965476541321 - 1 = -1.1239129321
-0.123912932193769965476541321 - -9 = 8.8760870678
-0.123912932193769965476541321 - 14.14 = -14.2639129321
-0.123912932193769965476541321 - -16.60 = 16.4760870678
-0.123912932193769965476541321 - 0.15 = -0.2739129321
-0.123912932193769965476541321 - -0.01 = -0.1139129321

View File

@@ -0,0 +1,191 @@
--TEST--
bcsub() function with number zero
--EXTENSIONS--
bcmath
--INI--
bcmath.scale=0
--FILE--
<?php
require(__DIR__ . "/run_bcmath_tests_function.inc");
$minuends = ["0", "0.00", "-0", "-0.00"];
$subtrahends = array_merge($minuends, [
"15",
"-15",
"1",
"-9",
"14.14",
"-16.60",
"0.15",
"-0.01",
"15151324141414.412312232141241",
"-132132245132134.1515123765412",
"141241241241241248267654747412",
"-149143276547656984948124912",
"0.1322135476547459213732911312",
"-0.123912932193769965476541321",
]);
run_bcmath_tests($minuends, $subtrahends, "-", bcsub(...));
?>
--EXPECT--
Number "0" (scale 0)
0 - 0 = 0
0 - 0.00 = 0
0 - -0 = 0
0 - -0.00 = 0
0 - 15 = -15
0 - -15 = 15
0 - 1 = -1
0 - -9 = 9
0 - 14.14 = -14
0 - -16.60 = 16
0 - 0.15 = 0
0 - -0.01 = 0
0 - 15151324141414.412312232141241 = -15151324141414
0 - -132132245132134.1515123765412 = 132132245132134
0 - 141241241241241248267654747412 = -141241241241241248267654747412
0 - -149143276547656984948124912 = 149143276547656984948124912
0 - 0.1322135476547459213732911312 = 0
0 - -0.123912932193769965476541321 = 0
Number "0.00" (scale 0)
0.00 - 0 = 0
0.00 - 0.00 = 0
0.00 - -0 = 0
0.00 - -0.00 = 0
0.00 - 15 = -15
0.00 - -15 = 15
0.00 - 1 = -1
0.00 - -9 = 9
0.00 - 14.14 = -14
0.00 - -16.60 = 16
0.00 - 0.15 = 0
0.00 - -0.01 = 0
0.00 - 15151324141414.412312232141241 = -15151324141414
0.00 - -132132245132134.1515123765412 = 132132245132134
0.00 - 141241241241241248267654747412 = -141241241241241248267654747412
0.00 - -149143276547656984948124912 = 149143276547656984948124912
0.00 - 0.1322135476547459213732911312 = 0
0.00 - -0.123912932193769965476541321 = 0
Number "-0" (scale 0)
-0 - 0 = 0
-0 - 0.00 = 0
-0 - -0 = 0
-0 - -0.00 = 0
-0 - 15 = -15
-0 - -15 = 15
-0 - 1 = -1
-0 - -9 = 9
-0 - 14.14 = -14
-0 - -16.60 = 16
-0 - 0.15 = 0
-0 - -0.01 = 0
-0 - 15151324141414.412312232141241 = -15151324141414
-0 - -132132245132134.1515123765412 = 132132245132134
-0 - 141241241241241248267654747412 = -141241241241241248267654747412
-0 - -149143276547656984948124912 = 149143276547656984948124912
-0 - 0.1322135476547459213732911312 = 0
-0 - -0.123912932193769965476541321 = 0
Number "-0.00" (scale 0)
-0.00 - 0 = 0
-0.00 - 0.00 = 0
-0.00 - -0 = 0
-0.00 - -0.00 = 0
-0.00 - 15 = -15
-0.00 - -15 = 15
-0.00 - 1 = -1
-0.00 - -9 = 9
-0.00 - 14.14 = -14
-0.00 - -16.60 = 16
-0.00 - 0.15 = 0
-0.00 - -0.01 = 0
-0.00 - 15151324141414.412312232141241 = -15151324141414
-0.00 - -132132245132134.1515123765412 = 132132245132134
-0.00 - 141241241241241248267654747412 = -141241241241241248267654747412
-0.00 - -149143276547656984948124912 = 149143276547656984948124912
-0.00 - 0.1322135476547459213732911312 = 0
-0.00 - -0.123912932193769965476541321 = 0
Number "0" (scale 10)
0 - 0 = 0.0000000000
0 - 0.00 = 0.0000000000
0 - -0 = 0.0000000000
0 - -0.00 = 0.0000000000
0 - 15 = -15.0000000000
0 - -15 = 15.0000000000
0 - 1 = -1.0000000000
0 - -9 = 9.0000000000
0 - 14.14 = -14.1400000000
0 - -16.60 = 16.6000000000
0 - 0.15 = -0.1500000000
0 - -0.01 = 0.0100000000
0 - 15151324141414.412312232141241 = -15151324141414.4123122321
0 - -132132245132134.1515123765412 = 132132245132134.1515123765
0 - 141241241241241248267654747412 = -141241241241241248267654747412.0000000000
0 - -149143276547656984948124912 = 149143276547656984948124912.0000000000
0 - 0.1322135476547459213732911312 = -0.1322135476
0 - -0.123912932193769965476541321 = 0.1239129321
Number "0.00" (scale 10)
0.00 - 0 = 0.0000000000
0.00 - 0.00 = 0.0000000000
0.00 - -0 = 0.0000000000
0.00 - -0.00 = 0.0000000000
0.00 - 15 = -15.0000000000
0.00 - -15 = 15.0000000000
0.00 - 1 = -1.0000000000
0.00 - -9 = 9.0000000000
0.00 - 14.14 = -14.1400000000
0.00 - -16.60 = 16.6000000000
0.00 - 0.15 = -0.1500000000
0.00 - -0.01 = 0.0100000000
0.00 - 15151324141414.412312232141241 = -15151324141414.4123122321
0.00 - -132132245132134.1515123765412 = 132132245132134.1515123765
0.00 - 141241241241241248267654747412 = -141241241241241248267654747412.0000000000
0.00 - -149143276547656984948124912 = 149143276547656984948124912.0000000000
0.00 - 0.1322135476547459213732911312 = -0.1322135476
0.00 - -0.123912932193769965476541321 = 0.1239129321
Number "-0" (scale 10)
-0 - 0 = 0.0000000000
-0 - 0.00 = 0.0000000000
-0 - -0 = 0.0000000000
-0 - -0.00 = 0.0000000000
-0 - 15 = -15.0000000000
-0 - -15 = 15.0000000000
-0 - 1 = -1.0000000000
-0 - -9 = 9.0000000000
-0 - 14.14 = -14.1400000000
-0 - -16.60 = 16.6000000000
-0 - 0.15 = -0.1500000000
-0 - -0.01 = 0.0100000000
-0 - 15151324141414.412312232141241 = -15151324141414.4123122321
-0 - -132132245132134.1515123765412 = 132132245132134.1515123765
-0 - 141241241241241248267654747412 = -141241241241241248267654747412.0000000000
-0 - -149143276547656984948124912 = 149143276547656984948124912.0000000000
-0 - 0.1322135476547459213732911312 = -0.1322135476
-0 - -0.123912932193769965476541321 = 0.1239129321
Number "-0.00" (scale 10)
-0.00 - 0 = 0.0000000000
-0.00 - 0.00 = 0.0000000000
-0.00 - -0 = 0.0000000000
-0.00 - -0.00 = 0.0000000000
-0.00 - 15 = -15.0000000000
-0.00 - -15 = 15.0000000000
-0.00 - 1 = -1.0000000000
-0.00 - -9 = 9.0000000000
-0.00 - 14.14 = -14.1400000000
-0.00 - -16.60 = 16.6000000000
-0.00 - 0.15 = -0.1500000000
-0.00 - -0.01 = 0.0100000000
-0.00 - 15151324141414.412312232141241 = -15151324141414.4123122321
-0.00 - -132132245132134.1515123765412 = 132132245132134.1515123765
-0.00 - 141241241241241248267654747412 = -141241241241241248267654747412.0000000000
-0.00 - -149143276547656984948124912 = 149143276547656984948124912.0000000000
-0.00 - 0.1322135476547459213732911312 = -0.1322135476
-0.00 - -0.123912932193769965476541321 = 0.1239129321

View File

@@ -0,0 +1,26 @@
<?php
const STRING_PADDING = 30;
function run_bcmath_tests(
$firstTerms,
$secondTerms,
$symbol,
$bcmath_function
) {
$scales = [0, 10];
foreach ($scales as $scale) {
foreach ($firstTerms as $firstTerm) {
echo "Number \"$firstTerm\" (scale $scale)\n";
foreach ($secondTerms as $secondTerm) {
echo $firstTerm,
" $symbol ",
str_pad($secondTerm, STRING_PADDING),
" = ",
$bcmath_function($firstTerm, $secondTerm, $scale),
"\n";
}
echo "\n";
}
}
}