1
0
mirror of https://github.com/php/php-src.git synced 2026-04-27 18:23:26 +02:00
Files
archived-php-src/ext/bcmath/tests/bcdiv_large_numbers.phpt
Jorg Adam Sowa ee22612856 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
2023-07-05 17:43:30 +01:00

225 lines
15 KiB
PHP

--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