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:
@@ -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
|
||||
|
||||
276
ext/bcmath/tests/bcadd_large_numbers.phpt
Normal file
276
ext/bcmath/tests/bcadd_large_numbers.phpt
Normal 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
|
||||
@@ -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
|
||||
191
ext/bcmath/tests/bcadd_zero.phpt
Normal file
191
ext/bcmath/tests/bcadd_zero.phpt
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
224
ext/bcmath/tests/bcdiv_large_numbers.phpt
Normal file
224
ext/bcmath/tests/bcdiv_large_numbers.phpt
Normal 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
|
||||
159
ext/bcmath/tests/bcdiv_zero.phpt
Normal file
159
ext/bcmath/tests/bcdiv_zero.phpt
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
224
ext/bcmath/tests/bcmod_large_numbers.phpt
Normal file
224
ext/bcmath/tests/bcmod_large_numbers.phpt
Normal 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
|
||||
159
ext/bcmath/tests/bcmod_zero.phpt
Normal file
159
ext/bcmath/tests/bcmod_zero.phpt
Normal 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
|
||||
@@ -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
|
||||
|
||||
276
ext/bcmath/tests/bcmul_large_numbers.phpt
Normal file
276
ext/bcmath/tests/bcmul_large_numbers.phpt
Normal 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
|
||||
191
ext/bcmath/tests/bcmul_zero.phpt
Normal file
191
ext/bcmath/tests/bcmul_zero.phpt
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
141
ext/bcmath/tests/bcpow_large_numbers.phpt
Normal file
141
ext/bcmath/tests/bcpow_large_numbers.phpt
Normal file
File diff suppressed because one or more lines are too long
@@ -1,12 +0,0 @@
|
||||
--TEST--
|
||||
bcpow() with a negative exponent
|
||||
--EXTENSIONS--
|
||||
bcmath
|
||||
--INI--
|
||||
bcmath.scale=0
|
||||
--FILE--
|
||||
<?php
|
||||
echo bcpow("2", "-4");
|
||||
?>
|
||||
--EXPECT--
|
||||
0
|
||||
@@ -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
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
--TEST--
|
||||
bcsqrt() with argument of 0
|
||||
--EXTENSIONS--
|
||||
bcmath
|
||||
--INI--
|
||||
bcmath.scale=0
|
||||
--FILE--
|
||||
<?php
|
||||
echo bcsqrt("0");
|
||||
?>
|
||||
--EXPECT--
|
||||
0
|
||||
@@ -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
|
||||
|
||||
276
ext/bcmath/tests/bcsub_large_numbers.phpt
Normal file
276
ext/bcmath/tests/bcsub_large_numbers.phpt
Normal 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
|
||||
191
ext/bcmath/tests/bcsub_zero.phpt
Normal file
191
ext/bcmath/tests/bcsub_zero.phpt
Normal 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
|
||||
26
ext/bcmath/tests/run_bcmath_tests_function.inc
Normal file
26
ext/bcmath/tests/run_bcmath_tests_function.inc
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user