File: bcmod_large_numbers.phpt

package info (click to toggle)
php8.4 8.4.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 208,108 kB
  • sloc: ansic: 1,060,628; php: 35,345; sh: 11,866; cpp: 7,201; pascal: 4,913; javascript: 3,091; asm: 2,810; yacc: 2,411; makefile: 689; xml: 446; python: 301; awk: 148
file content (224 lines) | stat: -rw-r--r-- 14,279 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
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