Skip to content

Commit ee22612

Browse files
authored
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
1 parent f16b34f commit ee22612

30 files changed

+4296
-120
lines changed

ext/bcmath/tests/bcadd.phpt

Lines changed: 337 additions & 10 deletions
Large diffs are not rendered by default.

ext/bcmath/tests/bcadd_large_numbers.phpt

Lines changed: 276 additions & 0 deletions
Large diffs are not rendered by default.

ext/bcmath/tests/bcadd_variation001.phpt

Lines changed: 0 additions & 22 deletions
This file was deleted.

ext/bcmath/tests/bcadd_zero.phpt

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
--TEST--
2+
bcadd() function with number zero
3+
--EXTENSIONS--
4+
bcmath
5+
--INI--
6+
bcmath.scale=0
7+
--FILE--
8+
<?php
9+
require(__DIR__ . "/run_bcmath_tests_function.inc");
10+
11+
$leftSummands = ["0", "0.00", "-0", "-0.00"];
12+
$rightSummands = array_merge($leftSummands, [
13+
"15",
14+
"-15",
15+
"1",
16+
"-9",
17+
"14.14",
18+
"-16.60",
19+
"0.15",
20+
"-0.01",
21+
"15151324141414.412312232141241",
22+
"-132132245132134.1515123765412",
23+
"141241241241241248267654747412",
24+
"-149143276547656984948124912",
25+
"0.1322135476547459213732911312",
26+
"-0.123912932193769965476541321",
27+
]);
28+
29+
run_bcmath_tests($leftSummands, $rightSummands, "+", bcadd(...));
30+
31+
?>
32+
--EXPECT--
33+
Number "0" (scale 0)
34+
0 + 0 = 0
35+
0 + 0.00 = 0
36+
0 + -0 = 0
37+
0 + -0.00 = 0
38+
0 + 15 = 15
39+
0 + -15 = -15
40+
0 + 1 = 1
41+
0 + -9 = -9
42+
0 + 14.14 = 14
43+
0 + -16.60 = -16
44+
0 + 0.15 = 0
45+
0 + -0.01 = 0
46+
0 + 15151324141414.412312232141241 = 15151324141414
47+
0 + -132132245132134.1515123765412 = -132132245132134
48+
0 + 141241241241241248267654747412 = 141241241241241248267654747412
49+
0 + -149143276547656984948124912 = -149143276547656984948124912
50+
0 + 0.1322135476547459213732911312 = 0
51+
0 + -0.123912932193769965476541321 = 0
52+
53+
Number "0.00" (scale 0)
54+
0.00 + 0 = 0
55+
0.00 + 0.00 = 0
56+
0.00 + -0 = 0
57+
0.00 + -0.00 = 0
58+
0.00 + 15 = 15
59+
0.00 + -15 = -15
60+
0.00 + 1 = 1
61+
0.00 + -9 = -9
62+
0.00 + 14.14 = 14
63+
0.00 + -16.60 = -16
64+
0.00 + 0.15 = 0
65+
0.00 + -0.01 = 0
66+
0.00 + 15151324141414.412312232141241 = 15151324141414
67+
0.00 + -132132245132134.1515123765412 = -132132245132134
68+
0.00 + 141241241241241248267654747412 = 141241241241241248267654747412
69+
0.00 + -149143276547656984948124912 = -149143276547656984948124912
70+
0.00 + 0.1322135476547459213732911312 = 0
71+
0.00 + -0.123912932193769965476541321 = 0
72+
73+
Number "-0" (scale 0)
74+
-0 + 0 = 0
75+
-0 + 0.00 = 0
76+
-0 + -0 = 0
77+
-0 + -0.00 = 0
78+
-0 + 15 = 15
79+
-0 + -15 = -15
80+
-0 + 1 = 1
81+
-0 + -9 = -9
82+
-0 + 14.14 = 14
83+
-0 + -16.60 = -16
84+
-0 + 0.15 = 0
85+
-0 + -0.01 = 0
86+
-0 + 15151324141414.412312232141241 = 15151324141414
87+
-0 + -132132245132134.1515123765412 = -132132245132134
88+
-0 + 141241241241241248267654747412 = 141241241241241248267654747412
89+
-0 + -149143276547656984948124912 = -149143276547656984948124912
90+
-0 + 0.1322135476547459213732911312 = 0
91+
-0 + -0.123912932193769965476541321 = 0
92+
93+
Number "-0.00" (scale 0)
94+
-0.00 + 0 = 0
95+
-0.00 + 0.00 = 0
96+
-0.00 + -0 = 0
97+
-0.00 + -0.00 = 0
98+
-0.00 + 15 = 15
99+
-0.00 + -15 = -15
100+
-0.00 + 1 = 1
101+
-0.00 + -9 = -9
102+
-0.00 + 14.14 = 14
103+
-0.00 + -16.60 = -16
104+
-0.00 + 0.15 = 0
105+
-0.00 + -0.01 = 0
106+
-0.00 + 15151324141414.412312232141241 = 15151324141414
107+
-0.00 + -132132245132134.1515123765412 = -132132245132134
108+
-0.00 + 141241241241241248267654747412 = 141241241241241248267654747412
109+
-0.00 + -149143276547656984948124912 = -149143276547656984948124912
110+
-0.00 + 0.1322135476547459213732911312 = 0
111+
-0.00 + -0.123912932193769965476541321 = 0
112+
113+
Number "0" (scale 10)
114+
0 + 0 = 0.0000000000
115+
0 + 0.00 = 0.0000000000
116+
0 + -0 = 0.0000000000
117+
0 + -0.00 = 0.0000000000
118+
0 + 15 = 15.0000000000
119+
0 + -15 = -15.0000000000
120+
0 + 1 = 1.0000000000
121+
0 + -9 = -9.0000000000
122+
0 + 14.14 = 14.1400000000
123+
0 + -16.60 = -16.6000000000
124+
0 + 0.15 = 0.1500000000
125+
0 + -0.01 = -0.0100000000
126+
0 + 15151324141414.412312232141241 = 15151324141414.4123122321
127+
0 + -132132245132134.1515123765412 = -132132245132134.1515123765
128+
0 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
129+
0 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
130+
0 + 0.1322135476547459213732911312 = 0.1322135476
131+
0 + -0.123912932193769965476541321 = -0.1239129321
132+
133+
Number "0.00" (scale 10)
134+
0.00 + 0 = 0.0000000000
135+
0.00 + 0.00 = 0.0000000000
136+
0.00 + -0 = 0.0000000000
137+
0.00 + -0.00 = 0.0000000000
138+
0.00 + 15 = 15.0000000000
139+
0.00 + -15 = -15.0000000000
140+
0.00 + 1 = 1.0000000000
141+
0.00 + -9 = -9.0000000000
142+
0.00 + 14.14 = 14.1400000000
143+
0.00 + -16.60 = -16.6000000000
144+
0.00 + 0.15 = 0.1500000000
145+
0.00 + -0.01 = -0.0100000000
146+
0.00 + 15151324141414.412312232141241 = 15151324141414.4123122321
147+
0.00 + -132132245132134.1515123765412 = -132132245132134.1515123765
148+
0.00 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
149+
0.00 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
150+
0.00 + 0.1322135476547459213732911312 = 0.1322135476
151+
0.00 + -0.123912932193769965476541321 = -0.1239129321
152+
153+
Number "-0" (scale 10)
154+
-0 + 0 = 0.0000000000
155+
-0 + 0.00 = 0.0000000000
156+
-0 + -0 = 0.0000000000
157+
-0 + -0.00 = 0.0000000000
158+
-0 + 15 = 15.0000000000
159+
-0 + -15 = -15.0000000000
160+
-0 + 1 = 1.0000000000
161+
-0 + -9 = -9.0000000000
162+
-0 + 14.14 = 14.1400000000
163+
-0 + -16.60 = -16.6000000000
164+
-0 + 0.15 = 0.1500000000
165+
-0 + -0.01 = -0.0100000000
166+
-0 + 15151324141414.412312232141241 = 15151324141414.4123122321
167+
-0 + -132132245132134.1515123765412 = -132132245132134.1515123765
168+
-0 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
169+
-0 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
170+
-0 + 0.1322135476547459213732911312 = 0.1322135476
171+
-0 + -0.123912932193769965476541321 = -0.1239129321
172+
173+
Number "-0.00" (scale 10)
174+
-0.00 + 0 = 0.0000000000
175+
-0.00 + 0.00 = 0.0000000000
176+
-0.00 + -0 = 0.0000000000
177+
-0.00 + -0.00 = 0.0000000000
178+
-0.00 + 15 = 15.0000000000
179+
-0.00 + -15 = -15.0000000000
180+
-0.00 + 1 = 1.0000000000
181+
-0.00 + -9 = -9.0000000000
182+
-0.00 + 14.14 = 14.1400000000
183+
-0.00 + -16.60 = -16.6000000000
184+
-0.00 + 0.15 = 0.1500000000
185+
-0.00 + -0.01 = -0.0100000000
186+
-0.00 + 15151324141414.412312232141241 = 15151324141414.4123122321
187+
-0.00 + -132132245132134.1515123765412 = -132132245132134.1515123765
188+
-0.00 + 141241241241241248267654747412 = 141241241241241248267654747412.0000000000
189+
-0.00 + -149143276547656984948124912 = -149143276547656984948124912.0000000000
190+
-0.00 + 0.1322135476547459213732911312 = 0.1322135476
191+
-0.00 + -0.123912932193769965476541321 = -0.1239129321

ext/bcmath/tests/bccomp.phpt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@ bcmath
66
bcmath.scale=0
77
--FILE--
88
<?php
9-
echo bccomp("-1", "5", 4),"\n";
10-
echo bccomp("1928372132132819737213", "8728932001983192837219398127471"),"\n";
11-
echo bccomp("1.00000000000000000001", "1", 2),"\n";
12-
echo bccomp("97321", "2321"),"\n";
9+
echo bccomp("-1", "5", 4), "\n";
10+
echo bccomp("1928372132132819737213", "8728932001983192837219398127471"), "\n";
11+
echo bccomp("1.00000000000000000001", "1", 2), "\n";
12+
echo bccomp("97321", "2321"), "\n";
13+
echo bccomp("0", "14"), "\n";
14+
echo bccomp("1", "0"), "\n";
15+
echo bccomp("0.000", "0", 3), "\n";
16+
1317
?>
1418
--EXPECT--
1519
-1
1620
-1
1721
0
1822
1
23+
-1
24+
1
25+
0

ext/bcmath/tests/bccomp_variation001.phpt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ bcmath
66
bcmath.scale=0
77
--FILE--
88
<?php
9-
echo bccomp("2.2", "2.2", "2")."\n";
10-
echo bccomp("2.32", "2.2", "2")."\n";
11-
echo bccomp("2.29", "2.3", "2");
9+
echo bccomp("2.2", "2.2", "2") . "\n";
10+
echo bccomp("2.32", "2.2", "2") . "\n";
11+
echo bccomp("2.29", "2.3", "2") . "\n";
12+
echo bccomp("2.29", "0", "2") . "\n";
1213
?>
1314
--EXPECT--
1415
0
1516
1
1617
-1
18+
1

ext/bcmath/tests/bccomp_variation002.phpt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ bcmath
66
bcmath.scale=0
77
--FILE--
88
<?php
9-
echo bccomp("-2", "-2")."\n";
10-
echo bccomp("-2", "2", "1")."\n";
11-
echo bccomp("-2.29", "-2.3", "2")."\n";
12-
echo bccomp("-2.29", "2.3", "2")."\n";
13-
echo bccomp("2.29", "-2.3", "2")."\n";
14-
echo bccomp("-2.29", "-2.3", "1");
9+
echo bccomp("-2", "-2") . "\n";
10+
echo bccomp("-2", "2", "1") . "\n";
11+
echo bccomp("-2.29", "-2.3", "2") . "\n";
12+
echo bccomp("-2.29", "2.3", "2") . "\n";
13+
echo bccomp("2.29", "-2.3", "2") . "\n";
14+
echo bccomp("-2.29", "-2.3", "1") . "\n";
15+
echo bccomp("-2.29", "0", "1") . "\n";
1516
?>
1617
--EXPECT--
1718
0
@@ -20,3 +21,4 @@ echo bccomp("-2.29", "-2.3", "1");
2021
-1
2122
1
2223
1
24+
-1

0 commit comments

Comments
 (0)