Skip to content

Commit 901b563

Browse files
committed
Added minus cases to div by pow 10
1 parent 6ea9eca commit 901b563

File tree

1 file changed

+153
-78
lines changed

1 file changed

+153
-78
lines changed

ext/bcmath/tests/bcdiv_by_pow_10.phpt

+153-78
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ bcmath
66
bcmath.scale=0
77
--FILE--
88
<?php
9-
$dividend_cases = ['0.012345', '0.12345', '1.2345', '12.345', '123.45'];
9+
$dividend_cases = ['0.012345', '0.12345', '1.2345', '12.345', '123.45', '-0.012345', '-0.12345', '-1.2345', '-12.345', '-123.45'];
1010
$divisor_cases = ['0.01', '0.1', '1', '10', '100'];
1111
$scale_cases = [0, 3, 5];
1212

1313
foreach ($scale_cases as $scale) {
1414
echo "scale: {$scale}\n";
1515
foreach ($divisor_cases as $divisor) {
1616
foreach ($dividend_cases as $dividend) {
17-
$dividend_label = str_pad($dividend, 8, ' ', STR_PAD_LEFT);
17+
$dividend_label = str_pad($dividend, 9, ' ', STR_PAD_LEFT);
1818
$divisor_label = str_pad($divisor, 4, ' ', STR_PAD_LEFT);
1919
$quot = bcdiv($dividend, $divisor, $scale);
20-
$quot_label = str_pad($quot, $scale + 5 + ($scale ? 1 : 0), ' ', STR_PAD_LEFT);
20+
$quot_label = str_pad($quot, $scale + 6 + ($scale ? 1 : 0), ' ', STR_PAD_LEFT);
2121
echo $dividend_label, ' / ', $divisor_label, ' = ', $quot_label, "\n";
2222
}
2323
}
@@ -26,82 +26,157 @@ foreach ($scale_cases as $scale) {
2626
?>
2727
--EXPECT--
2828
scale: 0
29-
0.012345 / 0.01 = 1
30-
0.12345 / 0.01 = 12
31-
1.2345 / 0.01 = 123
32-
12.345 / 0.01 = 1234
33-
123.45 / 0.01 = 12345
34-
0.012345 / 0.1 = 0
35-
0.12345 / 0.1 = 1
36-
1.2345 / 0.1 = 12
37-
12.345 / 0.1 = 123
38-
123.45 / 0.1 = 1234
39-
0.012345 / 1 = 0
40-
0.12345 / 1 = 0
41-
1.2345 / 1 = 1
42-
12.345 / 1 = 12
43-
123.45 / 1 = 123
44-
0.012345 / 10 = 0
45-
0.12345 / 10 = 0
46-
1.2345 / 10 = 0
47-
12.345 / 10 = 1
48-
123.45 / 10 = 12
49-
0.012345 / 100 = 0
50-
0.12345 / 100 = 0
51-
1.2345 / 100 = 0
52-
12.345 / 100 = 0
53-
123.45 / 100 = 1
29+
0.012345 / 0.01 = 1
30+
0.12345 / 0.01 = 12
31+
1.2345 / 0.01 = 123
32+
12.345 / 0.01 = 1234
33+
123.45 / 0.01 = 12345
34+
-0.012345 / 0.01 = -1
35+
-0.12345 / 0.01 = -12
36+
-1.2345 / 0.01 = -123
37+
-12.345 / 0.01 = -1234
38+
-123.45 / 0.01 = -12345
39+
0.012345 / 0.1 = 0
40+
0.12345 / 0.1 = 1
41+
1.2345 / 0.1 = 12
42+
12.345 / 0.1 = 123
43+
123.45 / 0.1 = 1234
44+
-0.012345 / 0.1 = 0
45+
-0.12345 / 0.1 = -1
46+
-1.2345 / 0.1 = -12
47+
-12.345 / 0.1 = -123
48+
-123.45 / 0.1 = -1234
49+
0.012345 / 1 = 0
50+
0.12345 / 1 = 0
51+
1.2345 / 1 = 1
52+
12.345 / 1 = 12
53+
123.45 / 1 = 123
54+
-0.012345 / 1 = 0
55+
-0.12345 / 1 = 0
56+
-1.2345 / 1 = -1
57+
-12.345 / 1 = -12
58+
-123.45 / 1 = -123
59+
0.012345 / 10 = 0
60+
0.12345 / 10 = 0
61+
1.2345 / 10 = 0
62+
12.345 / 10 = 1
63+
123.45 / 10 = 12
64+
-0.012345 / 10 = 0
65+
-0.12345 / 10 = 0
66+
-1.2345 / 10 = 0
67+
-12.345 / 10 = -1
68+
-123.45 / 10 = -12
69+
0.012345 / 100 = 0
70+
0.12345 / 100 = 0
71+
1.2345 / 100 = 0
72+
12.345 / 100 = 0
73+
123.45 / 100 = 1
74+
-0.012345 / 100 = 0
75+
-0.12345 / 100 = 0
76+
-1.2345 / 100 = 0
77+
-12.345 / 100 = 0
78+
-123.45 / 100 = -1
5479

5580
scale: 3
56-
0.012345 / 0.01 = 1.234
57-
0.12345 / 0.01 = 12.345
58-
1.2345 / 0.01 = 123.450
59-
12.345 / 0.01 = 1234.500
60-
123.45 / 0.01 = 12345.000
61-
0.012345 / 0.1 = 0.123
62-
0.12345 / 0.1 = 1.234
63-
1.2345 / 0.1 = 12.345
64-
12.345 / 0.1 = 123.450
65-
123.45 / 0.1 = 1234.500
66-
0.012345 / 1 = 0.012
67-
0.12345 / 1 = 0.123
68-
1.2345 / 1 = 1.234
69-
12.345 / 1 = 12.345
70-
123.45 / 1 = 123.450
71-
0.012345 / 10 = 0.001
72-
0.12345 / 10 = 0.012
73-
1.2345 / 10 = 0.123
74-
12.345 / 10 = 1.234
75-
123.45 / 10 = 12.345
76-
0.012345 / 100 = 0.000
77-
0.12345 / 100 = 0.001
78-
1.2345 / 100 = 0.012
79-
12.345 / 100 = 0.123
80-
123.45 / 100 = 1.234
81+
0.012345 / 0.01 = 1.234
82+
0.12345 / 0.01 = 12.345
83+
1.2345 / 0.01 = 123.450
84+
12.345 / 0.01 = 1234.500
85+
123.45 / 0.01 = 12345.000
86+
-0.012345 / 0.01 = -1.234
87+
-0.12345 / 0.01 = -12.345
88+
-1.2345 / 0.01 = -123.450
89+
-12.345 / 0.01 = -1234.500
90+
-123.45 / 0.01 = -12345.000
91+
0.012345 / 0.1 = 0.123
92+
0.12345 / 0.1 = 1.234
93+
1.2345 / 0.1 = 12.345
94+
12.345 / 0.1 = 123.450
95+
123.45 / 0.1 = 1234.500
96+
-0.012345 / 0.1 = -0.123
97+
-0.12345 / 0.1 = -1.234
98+
-1.2345 / 0.1 = -12.345
99+
-12.345 / 0.1 = -123.450
100+
-123.45 / 0.1 = -1234.500
101+
0.012345 / 1 = 0.012
102+
0.12345 / 1 = 0.123
103+
1.2345 / 1 = 1.234
104+
12.345 / 1 = 12.345
105+
123.45 / 1 = 123.450
106+
-0.012345 / 1 = -0.012
107+
-0.12345 / 1 = -0.123
108+
-1.2345 / 1 = -1.234
109+
-12.345 / 1 = -12.345
110+
-123.45 / 1 = -123.450
111+
0.012345 / 10 = 0.001
112+
0.12345 / 10 = 0.012
113+
1.2345 / 10 = 0.123
114+
12.345 / 10 = 1.234
115+
123.45 / 10 = 12.345
116+
-0.012345 / 10 = -0.001
117+
-0.12345 / 10 = -0.012
118+
-1.2345 / 10 = -0.123
119+
-12.345 / 10 = -1.234
120+
-123.45 / 10 = -12.345
121+
0.012345 / 100 = 0.000
122+
0.12345 / 100 = 0.001
123+
1.2345 / 100 = 0.012
124+
12.345 / 100 = 0.123
125+
123.45 / 100 = 1.234
126+
-0.012345 / 100 = 0.000
127+
-0.12345 / 100 = -0.001
128+
-1.2345 / 100 = -0.012
129+
-12.345 / 100 = -0.123
130+
-123.45 / 100 = -1.234
81131

82132
scale: 5
83-
0.012345 / 0.01 = 1.23450
84-
0.12345 / 0.01 = 12.34500
85-
1.2345 / 0.01 = 123.45000
86-
12.345 / 0.01 = 1234.50000
87-
123.45 / 0.01 = 12345.00000
88-
0.012345 / 0.1 = 0.12345
89-
0.12345 / 0.1 = 1.23450
90-
1.2345 / 0.1 = 12.34500
91-
12.345 / 0.1 = 123.45000
92-
123.45 / 0.1 = 1234.50000
93-
0.012345 / 1 = 0.01234
94-
0.12345 / 1 = 0.12345
95-
1.2345 / 1 = 1.23450
96-
12.345 / 1 = 12.34500
97-
123.45 / 1 = 123.45000
98-
0.012345 / 10 = 0.00123
99-
0.12345 / 10 = 0.01234
100-
1.2345 / 10 = 0.12345
101-
12.345 / 10 = 1.23450
102-
123.45 / 10 = 12.34500
103-
0.012345 / 100 = 0.00012
104-
0.12345 / 100 = 0.00123
105-
1.2345 / 100 = 0.01234
106-
12.345 / 100 = 0.12345
107-
123.45 / 100 = 1.23450
133+
0.012345 / 0.01 = 1.23450
134+
0.12345 / 0.01 = 12.34500
135+
1.2345 / 0.01 = 123.45000
136+
12.345 / 0.01 = 1234.50000
137+
123.45 / 0.01 = 12345.00000
138+
-0.012345 / 0.01 = -1.23450
139+
-0.12345 / 0.01 = -12.34500
140+
-1.2345 / 0.01 = -123.45000
141+
-12.345 / 0.01 = -1234.50000
142+
-123.45 / 0.01 = -12345.00000
143+
0.012345 / 0.1 = 0.12345
144+
0.12345 / 0.1 = 1.23450
145+
1.2345 / 0.1 = 12.34500
146+
12.345 / 0.1 = 123.45000
147+
123.45 / 0.1 = 1234.50000
148+
-0.012345 / 0.1 = -0.12345
149+
-0.12345 / 0.1 = -1.23450
150+
-1.2345 / 0.1 = -12.34500
151+
-12.345 / 0.1 = -123.45000
152+
-123.45 / 0.1 = -1234.50000
153+
0.012345 / 1 = 0.01234
154+
0.12345 / 1 = 0.12345
155+
1.2345 / 1 = 1.23450
156+
12.345 / 1 = 12.34500
157+
123.45 / 1 = 123.45000
158+
-0.012345 / 1 = -0.01234
159+
-0.12345 / 1 = -0.12345
160+
-1.2345 / 1 = -1.23450
161+
-12.345 / 1 = -12.34500
162+
-123.45 / 1 = -123.45000
163+
0.012345 / 10 = 0.00123
164+
0.12345 / 10 = 0.01234
165+
1.2345 / 10 = 0.12345
166+
12.345 / 10 = 1.23450
167+
123.45 / 10 = 12.34500
168+
-0.012345 / 10 = -0.00123
169+
-0.12345 / 10 = -0.01234
170+
-1.2345 / 10 = -0.12345
171+
-12.345 / 10 = -1.23450
172+
-123.45 / 10 = -12.34500
173+
0.012345 / 100 = 0.00012
174+
0.12345 / 100 = 0.00123
175+
1.2345 / 100 = 0.01234
176+
12.345 / 100 = 0.12345
177+
123.45 / 100 = 1.23450
178+
-0.012345 / 100 = -0.00012
179+
-0.12345 / 100 = -0.00123
180+
-1.2345 / 100 = -0.01234
181+
-12.345 / 100 = -0.12345
182+
-123.45 / 100 = -1.23450

0 commit comments

Comments
 (0)