diff options
Diffstat (limited to 'ext/gmp/tests')
44 files changed, 2388 insertions, 0 deletions
diff --git a/ext/gmp/tests/001.phpt b/ext/gmp/tests/001.phpt new file mode 100644 index 0000000..5126f73 --- /dev/null +++ b/ext/gmp/tests/001.phpt @@ -0,0 +1,21 @@ +--TEST-- +Check for gmp presence +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php +echo "gmp extension is available"; +/* + you can add regression tests for your extension here + + the output of your test code has to be equal to the + text in the --EXPECT-- section below for the tests + to pass, differences between the output and the + expected text are interpreted as failure + + see php5/tests/README for further information on + writing regression tests +*/ +?> +--EXPECT-- +gmp extension is available diff --git a/ext/gmp/tests/002.phpt b/ext/gmp/tests/002.phpt new file mode 100644 index 0000000..ac2a7a5 --- /dev/null +++ b/ext/gmp/tests/002.phpt @@ -0,0 +1,17 @@ +--TEST-- +GMP functionality test - factorial +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php +function fact($x) { + if($x <= 1) + return 1; + else + return gmp_mul($x,fact($x-1)); +} + +print gmp_strval(fact(1000))."\n"; +?> +--EXPECT-- +402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/ext/gmp/tests/003.phpt b/ext/gmp/tests/003.phpt new file mode 100644 index 0000000..3798330 --- /dev/null +++ b/ext/gmp/tests/003.phpt @@ -0,0 +1,47 @@ +--TEST-- +Check for number base recognition +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + /* Binary */ + $test[] = gmp_init("0b10011010010"); + $test[] = gmp_init("0b10011010010", 2); + $test[] = gmp_init("10011010010"); + $test[] = gmp_init("10011010010", 2); + + /* Octal */ + $test[] = gmp_init("02322"); + $test[] = gmp_init("02322", 8); + $test[] = gmp_init("2322"); + $test[] = gmp_init("2322", 8); + + /* Decimal */ + $test[] = gmp_init("1234"); + $test[] = gmp_init("1234", 10); + + /* Hexidecimal */ + $test[] = gmp_init("0x4d2"); + $test[] = gmp_init("0x4d2", 16); + $test[] = gmp_init("4d2"); + $test[] = gmp_init("4d2", 16); + + for ($i = 0; $i < count($test); $i++) { + printf("%s\n", gmp_strval($test[$i])); + } +?> +--EXPECT-- +1234 +1234 +10011010010 +1234 +1234 +1234 +2322 +1234 +1234 +1234 +1234 +1234 +0 +1234 diff --git a/ext/gmp/tests/004.phpt b/ext/gmp/tests/004.phpt new file mode 100644 index 0000000..a0fa1cd --- /dev/null +++ b/ext/gmp/tests/004.phpt @@ -0,0 +1,45 @@ +--TEST-- +gmp_intval() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_intval(1,1)); +var_dump(gmp_intval("")); +var_dump(gmp_intval(1.0001)); +var_dump(gmp_intval("1.0001")); +var_dump(gmp_intval("-1")); +var_dump(gmp_intval(-1)); +var_dump(gmp_intval(-2349828)); +var_dump(gmp_intval(2342344)); +var_dump(gmp_intval(new stdclass)); +var_dump(gmp_intval(array())); + +$fp = fopen(__FILE__, 'r'); +var_dump(gmp_intval($fp)); + +$g = gmp_init("12345678"); +var_dump(gmp_intval($g)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_intval() expects exactly 1 parameter, 2 given in %s on line %d +NULL +int(0) +int(1) +int(1) +int(-1) +int(-1) +int(-2349828) +int(2342344) + +Notice: Object of class stdClass could not be converted to int in %s on line %d +int(1) +int(0) + +Warning: gmp_intval(): supplied resource is not a valid GMP integer resource in %s on line %d +bool(false) +int(12345678) +Done diff --git a/ext/gmp/tests/005.phpt b/ext/gmp/tests/005.phpt new file mode 100644 index 0000000..7907ffb --- /dev/null +++ b/ext/gmp/tests/005.phpt @@ -0,0 +1,80 @@ +--TEST-- +gmp_strval() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval()); +var_dump(gmp_strval("")); +var_dump(gmp_strval("", "")); +var_dump(gmp_strval("", -1)); +var_dump(gmp_strval(-1, "")); + +$fp = fopen(__FILE__, "r"); +var_dump(gmp_strval($fp)); + +$g = gmp_init("9765456"); +var_dump(gmp_strval($g)); +var_dump(gmp_strval($g, -1)); +var_dump(gmp_strval($g, 100000)); +var_dump(gmp_strval($g, 10)); + +$g = gmp_init("-3373333"); +var_dump(gmp_strval($g)); +var_dump(gmp_strval($g, -1)); +var_dump(gmp_strval($g, 100000)); +var_dump(gmp_strval($g, 10)); + +var_dump(gmp_strval(array(1,2), array(1,2))); +var_dump(gmp_strval(new stdclass, new stdclass)); +var_dump(gmp_strval(array(1,2))); +var_dump(gmp_strval(new stdclass)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_strval() expects at least 1 parameter, 0 given in %s on line %d +NULL +bool(false) + +Warning: gmp_strval() expects parameter 2 to be long, string given in %s on line %d +NULL + +Warning: gmp_strval(): Bad base for conversion: -1 (should be between 2 and %d or -2 and -%d) in %s on line %d +bool(false) + +Warning: gmp_strval() expects parameter 2 to be long, string given in %s on line %d +NULL + +Warning: gmp_strval(): supplied resource is not a valid GMP integer resource in %s on line %d +bool(false) +string(7) "9765456" + +Warning: gmp_strval(): Bad base for conversion: -1 (should be between 2 and %d or -2 and -%d) in %s on line %d +bool(false) + +Warning: gmp_strval(): Bad base for conversion: 100000 (should be between 2 and %d or -2 and -%d) in %s on line %d +bool(false) +string(7) "9765456" +string(8) "-3373333" + +Warning: gmp_strval(): Bad base for conversion: -1 (should be between 2 and %d or -2 and -%d) in %s on line %d +bool(false) + +Warning: gmp_strval(): Bad base for conversion: 100000 (should be between 2 and %d or -2 and -%d) in %s on line %d +bool(false) +string(8) "-3373333" + +Warning: gmp_strval() expects parameter 2 to be long, array given in %s on line %d +NULL + +Warning: gmp_strval() expects parameter 2 to be long, object given in %s on line %d +NULL + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/006.phpt b/ext/gmp/tests/006.phpt new file mode 100644 index 0000000..dedbcd0 --- /dev/null +++ b/ext/gmp/tests/006.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_sub() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_sub()); +var_dump(gmp_sub("")); +var_dump(gmp_sub("", "")); +var_dump(gmp_sub("", "", "")); +var_dump(gmp_sub(array(), array())); + +var_dump($g = gmp_sub(10000, 10001)); +var_dump(gmp_strval($g)); +var_dump($g = gmp_sub(10000, -1)); +var_dump(gmp_strval($g)); +var_dump($g = gmp_sub(10000, new stdclass)); +var_dump(gmp_strval($g)); +var_dump($g = gmp_sub(new stdclass, 100)); +var_dump(gmp_strval($g)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_sub() expects exactly 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_sub() expects exactly 2 parameters, 1 given in %s on line %d +NULL +bool(false) + +Warning: gmp_sub() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_sub(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +resource(%d) of type (GMP integer) +string(2) "-1" +resource(%d) of type (GMP integer) +string(5) "10001" + +Warning: gmp_sub(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +string(1) "0" + +Warning: gmp_sub(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +string(1) "0" +Done diff --git a/ext/gmp/tests/007.phpt b/ext/gmp/tests/007.phpt new file mode 100644 index 0000000..4d4a993 --- /dev/null +++ b/ext/gmp/tests/007.phpt @@ -0,0 +1,133 @@ +--TEST-- +gmp_div_qr() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_div_qr()); +var_dump(gmp_div_qr("")); + +var_dump($r = gmp_div_qr(0,1)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1,0)); +var_dump($r = gmp_div_qr(12653,23482734)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(12653,23482734, 10)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123, 1)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123, 2)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123, GMP_ROUND_ZERO)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123, GMP_ROUND_PLUSINF)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); +var_dump($r = gmp_div_qr(1123123,123, GMP_ROUND_MINUSINF)); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$fp = fopen(__FILE__, 'r'); + +var_dump(gmp_div_qr($fp, $fp)); +var_dump(gmp_div_qr(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_div_qr() expects at least 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_div_qr() expects at least 2 parameters, 1 given in %s on line %d +NULL +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(1) "0" +string(1) "0" + +Warning: gmp_div_qr(): Zero operand not allowed in %s on line %d +bool(false) +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(1) "0" +string(5) "12653" +NULL + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9131" +string(2) "10" +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9132" +string(4) "-113" +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9131" +string(2) "10" +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9131" +string(2) "10" +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9132" +string(4) "-113" +array(2) { + [0]=> + resource(%d) of type (GMP integer) + [1]=> + resource(%d) of type (GMP integer) +} +string(4) "9131" +string(2) "10" + +Warning: gmp_div_qr(): supplied resource is not a valid GMP integer resource in %s on line %d +bool(false) + +Warning: gmp_div_qr(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/008.phpt b/ext/gmp/tests/008.phpt new file mode 100644 index 0000000..4e44ec1 --- /dev/null +++ b/ext/gmp/tests/008.phpt @@ -0,0 +1,73 @@ +--TEST-- +gmp_div_r() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_div_r()); +var_dump(gmp_div_r("")); + +var_dump($r = gmp_div_r(0,1)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1,0)); +var_dump($r = gmp_div_r(12653,23482734)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(12653,23482734, 10)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123, 1)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123, 2)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123, GMP_ROUND_ZERO)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123, GMP_ROUND_PLUSINF)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_r(1123123,123, GMP_ROUND_MINUSINF)); +var_dump(gmp_strval($r)); + +$fp = fopen(__FILE__, 'r'); + +var_dump(gmp_div_r($fp, $fp)); +var_dump(gmp_div_r(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_div_r() expects at least 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_div_r() expects at least 2 parameters, 1 given in %s on line %d +NULL +int(0) +string(1) "0" + +Warning: gmp_div_r(): Zero operand not allowed in %s on line %d +bool(false) +int(12653) +string(5) "12653" +NULL + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +int(10) +string(2) "10" +int(113) +string(3) "113" +int(10) +string(2) "10" +int(10) +string(2) "10" +int(113) +string(3) "113" +int(10) +string(2) "10" + +Warning: gmp_div_r(): supplied resource is not a valid GMP integer resource in %s on line %d +bool(false) + +Warning: gmp_div_r(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/009.phpt b/ext/gmp/tests/009.phpt new file mode 100644 index 0000000..745a4ef --- /dev/null +++ b/ext/gmp/tests/009.phpt @@ -0,0 +1,73 @@ +--TEST-- +gmp_div_q() tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_div_q()); +var_dump(gmp_div_q("")); + +var_dump($r = gmp_div_q(0,1)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1,0)); +var_dump($r = gmp_div_q(12653,23482734)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(12653,23482734, 10)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123, 1)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123, 2)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123, GMP_ROUND_ZERO)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123, GMP_ROUND_PLUSINF)); +var_dump(gmp_strval($r)); +var_dump($r = gmp_div_q(1123123,123, GMP_ROUND_MINUSINF)); +var_dump(gmp_strval($r)); + +$fp = fopen(__FILE__, 'r'); + +var_dump(gmp_div_q($fp, $fp)); +var_dump(gmp_div_q(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_div_q() expects at least 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_div_q() expects at least 2 parameters, 1 given in %s on line %d +NULL +resource(%d) of type (GMP integer) +string(1) "0" + +Warning: gmp_div_q(): Zero operand not allowed in %s on line %d +bool(false) +resource(%d) of type (GMP integer) +string(1) "0" +NULL + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +resource(%d) of type (GMP integer) +string(4) "9131" +resource(%d) of type (GMP integer) +string(4) "9132" +resource(%d) of type (GMP integer) +string(4) "9131" +resource(%d) of type (GMP integer) +string(4) "9131" +resource(%d) of type (GMP integer) +string(4) "9132" +resource(%d) of type (GMP integer) +string(4) "9131" + +Warning: gmp_div_q(): supplied resource is not a valid GMP integer resource in %s on line %d +bool(false) + +Warning: gmp_div_q(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/010.phpt b/ext/gmp/tests/010.phpt new file mode 100644 index 0000000..293a2a0 --- /dev/null +++ b/ext/gmp/tests/010.phpt @@ -0,0 +1,40 @@ +--TEST-- +gmp_mod tests() +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_mod()); +var_dump(gmp_mod("")); +var_dump(gmp_mod("","")); +var_dump(gmp_mod(0,1)); +var_dump(gmp_mod(0,-1)); +var_dump(gmp_mod(-1,0)); + +var_dump(gmp_mod(array(), array())); + +$a = gmp_init("-100000000"); +$b = gmp_init("353467"); + +var_dump(gmp_mod($a, $b)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_mod() expects exactly 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_mod() expects exactly 2 parameters, 1 given in %s on line %d +NULL +bool(false) +int(0) +resource(%d) of type (GMP integer) + +Warning: gmp_mod(): Zero operand not allowed in %s on line %d +bool(false) + +Warning: gmp_mod(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +resource(%d) of type (GMP integer) +Done diff --git a/ext/gmp/tests/011.phpt b/ext/gmp/tests/011.phpt new file mode 100644 index 0000000..a42c1b6 --- /dev/null +++ b/ext/gmp/tests/011.phpt @@ -0,0 +1,56 @@ +--TEST-- +gmp_divexact() tests +--SKIPIF-- +<?php +if (!extension_loaded("gmp")) die ("skip"); +if (!defined('GMP_VERSION') || version_compare("4.2.1", GMP_VERSION, ">=")) { + die("skip your GMP is too old and will crash"); +} +?> +--FILE-- +<?php + +var_dump(gmp_divexact(1, 1, 1)); +var_dump(gmp_divexact()); + +$r = gmp_divexact("233", "23345555555555555555555555"); +var_dump(gmp_strval($r)); + +$r = gmp_divexact("233", "0"); +var_dump(gmp_strval($r)); + +$r = gmp_divexact("100", "10"); +var_dump(gmp_strval($r)); + +$r = gmp_divexact("1024", "2"); +var_dump(gmp_strval($r)); + +$n = gmp_init("10000000000000000000"); +$r = gmp_divexact($n, "2"); +var_dump(gmp_strval($r)); + +$r = gmp_divexact($n, "50"); +var_dump(gmp_strval($r)); + +$n1 = gmp_init("-100000000000000000000000000"); +$r = gmp_divexact($n1, $n); +var_dump(gmp_strval($r)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_divexact() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_divexact() expects exactly 2 parameters, 0 given in %s on line %d +NULL +string(1) "0" + +Warning: gmp_divexact(): Zero operand not allowed in %s on line %d +string(1) "0" +string(2) "10" +string(3) "512" +string(19) "5000000000000000000" +string(18) "200000000000000000" +string(9) "-10000000" +Done diff --git a/ext/gmp/tests/012.phpt b/ext/gmp/tests/012.phpt new file mode 100644 index 0000000..8582ba1 --- /dev/null +++ b/ext/gmp/tests/012.phpt @@ -0,0 +1,44 @@ +--TEST-- +gmp_neg() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_intval(gmp_neg(0))); +var_dump(gmp_intval(gmp_neg(1))); +var_dump(gmp_intval(gmp_neg(-1))); +var_dump(gmp_intval(gmp_neg("-1"))); +var_dump(gmp_intval(gmp_neg(""))); +var_dump(gmp_intval(gmp_neg(0))); + +$n = gmp_init("0"); +var_dump(gmp_intval(gmp_neg($n))); +$n = gmp_init("12345678901234567890"); +var_dump(gmp_strval(gmp_neg($n))); + +var_dump(gmp_neg(1,1)); +var_dump(gmp_neg()); +var_dump(gmp_neg(array())); + +echo "Done\n"; +?> +--EXPECTF-- +int(0) +int(-1) +int(1) +int(1) +int(0) +int(0) +int(0) +string(21) "-12345678901234567890" + +Warning: gmp_neg() expects exactly 1 parameter, 2 given in %s on line %d +NULL + +Warning: gmp_neg() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_neg(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/013.phpt b/ext/gmp/tests/013.phpt new file mode 100644 index 0000000..06c2d81 --- /dev/null +++ b/ext/gmp/tests/013.phpt @@ -0,0 +1,45 @@ +--TEST-- +gmp_abs() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_abs(""))); +var_dump(gmp_strval(gmp_abs("0"))); +var_dump(gmp_strval(gmp_abs(0))); +var_dump(gmp_strval(gmp_abs(-111111111111111111111))); +var_dump(gmp_strval(gmp_abs("111111111111111111111"))); +var_dump(gmp_strval(gmp_abs("-111111111111111111111"))); +var_dump(gmp_strval(gmp_abs("0000"))); +var_dump(gmp_strval(gmp_abs("09876543"))); +var_dump(gmp_strval(gmp_abs("-099987654"))); + +var_dump(gmp_abs()); +var_dump(gmp_abs(1,2)); +var_dump(gmp_abs(array())); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "0" +string(1) "0" +string(1) "0" + +Warning: gmp_abs(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" +string(21) "111111111111111111111" +string(21) "111111111111111111111" +string(1) "0" +string(1) "0" +string(1) "0" + +Warning: gmp_abs() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_abs() expects exactly 1 parameter, 2 given in %s on line %d +NULL + +Warning: gmp_abs(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/014.phpt b/ext/gmp/tests/014.phpt new file mode 100644 index 0000000..40e10c6 --- /dev/null +++ b/ext/gmp/tests/014.phpt @@ -0,0 +1,58 @@ +--TEST-- +gmp_fact() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_fact(0))); +var_dump(gmp_strval(gmp_fact(""))); +var_dump(gmp_strval(gmp_fact("0"))); +var_dump(gmp_strval(gmp_fact("-1"))); +var_dump(gmp_strval(gmp_fact(-1))); +var_dump(gmp_strval(gmp_fact(1.1))); +var_dump(gmp_strval(gmp_fact(20))); +var_dump(gmp_strval(gmp_fact("50"))); +var_dump(gmp_strval(gmp_fact("10"))); +var_dump(gmp_strval(gmp_fact("0000"))); + +$n = gmp_init(12); +var_dump(gmp_strval(gmp_fact($n))); +$n = gmp_init(-10); +var_dump(gmp_strval(gmp_fact($n))); + +var_dump(gmp_fact()); +var_dump(gmp_fact(1,1)); +var_dump(gmp_fact(array())); +var_dump(gmp_strval(gmp_fact(array()))); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "1" +string(1) "1" +string(1) "1" + +Warning: gmp_fact(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" + +Warning: gmp_fact(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" +string(1) "1" +string(19) "2432902008176640000" +string(65) "30414093201713378043612608166064768844377641568960512000000000000" +string(7) "3628800" +string(1) "1" +string(11) "87178291200" + +Warning: gmp_fact(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" + +Warning: gmp_fact() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_fact() expects exactly 1 parameter, 2 given in %s on line %d +NULL +resource(%d) of type (GMP integer) +string(1) "1" +Done diff --git a/ext/gmp/tests/015.phpt b/ext/gmp/tests/015.phpt new file mode 100644 index 0000000..e17ecc7 --- /dev/null +++ b/ext/gmp/tests/015.phpt @@ -0,0 +1,68 @@ +--TEST-- +gmp_pow() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_pow(2,10))); +var_dump(gmp_strval(gmp_pow(-2,10))); +var_dump(gmp_strval(gmp_pow(-2,11))); +var_dump(gmp_strval(gmp_pow("2",10))); +var_dump(gmp_strval(gmp_pow("2",0))); +var_dump(gmp_strval(gmp_pow("2",-1))); +var_dump(gmp_strval(gmp_pow("-2",10))); +var_dump(gmp_strval(gmp_pow(20,10))); +var_dump(gmp_strval(gmp_pow(50,10))); +var_dump(gmp_strval(gmp_pow(50,-5))); + +$n = gmp_init("20"); +var_dump(gmp_strval(gmp_pow($n,10))); +$n = gmp_init("-20"); +var_dump(gmp_strval(gmp_pow($n,10))); + +var_dump(gmp_pow(2,10,1)); +var_dump(gmp_pow(2)); +var_dump(gmp_pow()); +var_dump(gmp_pow(array(), array())); +var_dump(gmp_pow(2,array())); +var_dump(gmp_pow(array(),10)); + +echo "Done\n"; +?> +--EXPECTF-- +string(4) "1024" +string(4) "1024" +string(5) "-2048" +string(4) "1024" +string(1) "1" + +Warning: gmp_pow(): Negative exponent not supported in %s on line %d +string(1) "0" +string(4) "1024" +string(14) "10240000000000" +string(17) "97656250000000000" + +Warning: gmp_pow(): Negative exponent not supported in %s on line %d +string(1) "0" +string(14) "10240000000000" +string(14) "10240000000000" + +Warning: gmp_pow() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_pow() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_pow() expects exactly 2 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_pow() expects parameter 2 to be long, array given in %s on line %d +NULL + +Warning: gmp_pow() expects parameter 2 to be long, array given in %s on line %d +NULL + +Warning: gmp_pow(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/016.phpt b/ext/gmp/tests/016.phpt new file mode 100644 index 0000000..4436086 --- /dev/null +++ b/ext/gmp/tests/016.phpt @@ -0,0 +1,73 @@ +--TEST-- +gmp_powm() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_powm(0,1,10))); +var_dump(gmp_strval(gmp_powm(5,1,10))); +var_dump(gmp_strval(gmp_powm(-5,1,-10))); +var_dump(gmp_strval(gmp_powm(-5,1,10))); +var_dump(gmp_strval(gmp_powm(-5,11,10))); +var_dump(gmp_strval(gmp_powm("77",3,1000))); + +$n = gmp_init(11); +var_dump(gmp_strval(gmp_powm($n,3,1000))); +$e = gmp_init(7); +var_dump(gmp_strval(gmp_powm($n,$e,1000))); +$m = gmp_init(900); +var_dump(gmp_strval(gmp_powm($n,$e,$m))); + +var_dump(gmp_powm(array(),$e,$m)); +var_dump(gmp_powm($n,array(),$m)); +var_dump(gmp_powm($n,$e,array())); +var_dump(gmp_powm(array(),array(),array())); +var_dump(gmp_powm(array(),array())); +var_dump(gmp_powm(array())); +var_dump(gmp_powm()); + +$n = gmp_init("-5"); +var_dump(gmp_powm(10, $n, 10)); + +$n = gmp_init("0"); +var_dump(gmp_powm(10, $n, 10)); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "0" +string(1) "5" +string(1) "5" +string(1) "5" +string(1) "5" +string(3) "533" +string(3) "331" +string(3) "171" +string(3) "371" + +Warning: gmp_powm(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_powm(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_powm(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_powm(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_powm() expects exactly 3 parameters, 2 given in %s on line %d +NULL + +Warning: gmp_powm() expects exactly 3 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_powm() expects exactly 3 parameters, 0 given in %s on line %d +NULL + +Warning: gmp_powm(): Second parameter cannot be less than 0 in %s on line %d +bool(false) +resource(%d) of type (GMP integer) +Done diff --git a/ext/gmp/tests/017.phpt b/ext/gmp/tests/017.phpt new file mode 100644 index 0000000..d90f538 --- /dev/null +++ b/ext/gmp/tests/017.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_sqrt() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_sqrt(-2))); +var_dump(gmp_strval(gmp_sqrt("-2"))); +var_dump(gmp_strval(gmp_sqrt("0"))); +var_dump(gmp_strval(gmp_sqrt("2"))); +var_dump(gmp_strval(gmp_sqrt("144"))); + +$n = gmp_init(0); +var_dump(gmp_strval(gmp_sqrt($n))); +$n = gmp_init(-144); +var_dump(gmp_strval(gmp_sqrt($n))); +$n = gmp_init(777); +var_dump(gmp_strval(gmp_sqrt($n))); + +var_dump(gmp_sqrt($n, 1)); +var_dump(gmp_sqrt()); +var_dump(gmp_sqrt(array())); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_sqrt(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" + +Warning: gmp_sqrt(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" +string(1) "0" +string(1) "1" +string(2) "12" +string(1) "0" + +Warning: gmp_sqrt(): Number has to be greater than or equal to 0 in %s on line %d +string(1) "0" +string(2) "27" + +Warning: gmp_sqrt() expects exactly 1 parameter, 2 given in %s on line %d +NULL + +Warning: gmp_sqrt() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_sqrt(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/018.phpt b/ext/gmp/tests/018.phpt new file mode 100644 index 0000000..2fca463 --- /dev/null +++ b/ext/gmp/tests/018.phpt @@ -0,0 +1,100 @@ +--TEST-- +gmp_sqrtrem() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +$r = gmp_sqrtrem(-1); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem("0"); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem(2); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem(10); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem(7); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem(3); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem(100000); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem("1000000"); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$r = gmp_sqrtrem("1000001"); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + + +$n = gmp_init(-1); +$r = gmp_sqrtrem($n); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +$n = gmp_init(1000001); +$r = gmp_sqrtrem($n); +var_dump(gmp_strval($r[0])); +var_dump(gmp_strval($r[1])); + +var_dump(gmp_sqrtrem(array())); +var_dump(gmp_sqrtrem()); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_sqrtrem(): Number has to be greater than or equal to 0 in %s on line %d + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +string(1) "0" +string(1) "0" +string(1) "1" +string(1) "1" +string(1) "3" +string(1) "1" +string(1) "2" +string(1) "3" +string(1) "1" +string(1) "2" +string(3) "316" +string(3) "144" +string(4) "1000" +string(1) "0" +string(4) "1000" +string(1) "1" + +Warning: gmp_sqrtrem(): Number has to be greater than or equal to 0 in %s on line %d + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +string(4) "1000" +string(1) "1" + +Warning: gmp_sqrtrem(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_sqrtrem() expects exactly 1 parameter, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/019.phpt b/ext/gmp/tests/019.phpt new file mode 100644 index 0000000..aa596ba --- /dev/null +++ b/ext/gmp/tests/019.phpt @@ -0,0 +1,47 @@ +--TEST-- +gmp_perfect_square() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_perfect_square(0)); +var_dump(gmp_perfect_square("0")); +var_dump(gmp_perfect_square(-1)); +var_dump(gmp_perfect_square(1)); +var_dump(gmp_perfect_square(16)); +var_dump(gmp_perfect_square(17)); +var_dump(gmp_perfect_square("1000000")); +var_dump(gmp_perfect_square("1000001")); + +$n = gmp_init(100101); +var_dump(gmp_perfect_square($n)); +$n = gmp_init(64); +var_dump(gmp_perfect_square($n)); +$n = gmp_init(-5); +var_dump(gmp_perfect_square($n)); + +var_dump(gmp_perfect_square()); +var_dump(gmp_perfect_square(array())); + +echo "Done\n"; +?> +--EXPECTF-- +bool(true) +bool(true) +bool(false) +bool(true) +bool(true) +bool(false) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) + +Warning: gmp_perfect_square() expects exactly 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_perfect_square(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/020.phpt b/ext/gmp/tests/020.phpt new file mode 100644 index 0000000..f8f3e69 --- /dev/null +++ b/ext/gmp/tests/020.phpt @@ -0,0 +1,81 @@ +--TEST-- +gmp_prob_prime() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_prob_prime(10)); +var_dump(gmp_prob_prime("7")); +var_dump(gmp_prob_prime(17)); +var_dump(gmp_prob_prime(-31)); +var_dump(gmp_prob_prime("172368715471481723")); + +var_dump(gmp_prob_prime(10)); +var_dump(gmp_prob_prime("7")); +var_dump(gmp_prob_prime(17)); +var_dump(gmp_prob_prime(-31)); +var_dump(gmp_prob_prime("172368715471481723")); + +for ($i = -1; $i < 12; $i++) { + var_dump(gmp_prob_prime((773*$i)-($i*7)-1, $i)); + $n = gmp_init("23476812735411"); + var_dump(gmp_prob_prime(gmp_add($n, $i-1), $i)); +} + +$n = gmp_init("19481923"); +var_dump(gmp_prob_prime($n)); +$n = gmp_init(0); +var_dump(gmp_prob_prime($n)); + +var_dump(gmp_prob_prime()); +var_dump(gmp_prob_prime(array())); + +echo "Done\n"; +?> +--EXPECTF-- +int(0) +int(2) +int(2) +int(2) +int(0) +int(0) +int(2) +int(2) +int(2) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(2) +int(0) +int(2) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) + +Warning: gmp_prob_prime() expects at least 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_prob_prime(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/021.phpt b/ext/gmp/tests/021.phpt new file mode 100644 index 0000000..275f0bc --- /dev/null +++ b/ext/gmp/tests/021.phpt @@ -0,0 +1,51 @@ +--TEST-- +gmp_gcd() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_gcd(234,12387))); +var_dump(gmp_strval(gmp_gcd(0,12387))); +var_dump(gmp_strval(gmp_gcd(224,0))); +var_dump(gmp_strval(gmp_gcd(-1,0))); +var_dump(gmp_strval(gmp_gcd(-1,0))); +var_dump(gmp_strval(gmp_gcd("12371238123","32618723123"))); +var_dump(gmp_strval(gmp_gcd("7623456735","12372341234"))); + +$n = gmp_init("8127346234"); +var_dump(gmp_strval(gmp_gcd($n,"12372341234"))); +$n = gmp_init("8127346234"); +var_dump(gmp_strval(gmp_gcd("7623456735",$n))); +$n = gmp_init("8127346234"); +var_dump(gmp_strval(gmp_gcd($n,$n))); +$n = gmp_init("8127346234"); +var_dump(gmp_strval(gmp_gcd($n,0))); +var_dump(gmp_gcd($n,$n,1)); +var_dump(gmp_gcd($n,array(),1)); +var_dump(gmp_gcd(array(),$n,1)); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "3" +string(5) "12387" +string(3) "224" +string(1) "1" +string(1) "1" +string(1) "1" +string(1) "1" +string(1) "2" +string(1) "1" +string(10) "8127346234" +string(10) "8127346234" + +Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/022.phpt b/ext/gmp/tests/022.phpt new file mode 100644 index 0000000..469aa30 --- /dev/null +++ b/ext/gmp/tests/022.phpt @@ -0,0 +1,86 @@ +--TEST-- +gmp_gcdext() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; +?> +--FILE-- +<?php + +$n = gmp_init("34293864345"); +$n1 = gmp_init("23434293864345"); + +$a = array( + array(123,45), + array(4341,9734), + array(23487,333), + array(-234234,-123123), + array(-100,-2234), + array(345,"34587345"), + array(345,"0"), + array("345556456",345873), + array("34545345556456","323432445873"), + array($n, $n1), + ); + +foreach ($a as $val) { + $r = gmp_gcdext($val[0],$val[1]); + var_dump(gmp_strval($r['g'])); + var_dump(gmp_strval($r['s'])); + var_dump(gmp_strval($r['t'])); +} + +var_dump(gmp_gcdext($val[0],array())); +var_dump(gmp_gcdext(array(),array())); +var_dump(gmp_gcdext(array(),array(),1)); +var_dump(gmp_gcdext(array())); +var_dump(gmp_gcdext()); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "3" +string(2) "-4" +string(2) "11" +string(1) "1" +string(4) "-805" +string(3) "359" +string(1) "3" +string(2) "32" +string(5) "-2257" +string(4) "3003" +string(3) "-10" +string(2) "19" +string(1) "2" +string(2) "67" +string(2) "-3" +string(2) "15" +string(7) "-601519" +string(1) "6" +string(3) "345" +string(1) "1" +string(1) "0" +string(1) "1" +string(5) "84319" +string(9) "-84241831" +string(1) "1" +string(13) "-156252240050" +string(14) "16689072773537" +string(3) "195" +string(11) "46994884483" +string(9) "-68772552" + +Warning: gmp_gcdext(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_gcdext(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_gcdext() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_gcdext() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_gcdext() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/023.phpt b/ext/gmp/tests/023.phpt new file mode 100644 index 0000000..81a90fe --- /dev/null +++ b/ext/gmp/tests/023.phpt @@ -0,0 +1,55 @@ +--TEST-- +gmp_invert() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_invert(123123,5467624))); +var_dump(gmp_strval(gmp_invert(123123,"3333334345467624"))); +var_dump(gmp_strval(gmp_invert("12312323213123123",7624))); +var_dump(gmp_strval(gmp_invert(444,0))); +var_dump(gmp_strval(gmp_invert(0,28347))); +var_dump(gmp_strval(gmp_invert(-12,456456))); +var_dump(gmp_strval(gmp_invert(234234,-435345))); + +$n = gmp_init("349827349623423452345"); +$n1 = gmp_init("3498273496234234523451"); + +var_dump(gmp_strval(gmp_invert($n, $n1))); +var_dump(gmp_strval(gmp_invert($n1, $n))); + +var_dump(gmp_invert($n1, $n, 10)); +var_dump(gmp_invert($n1)); +var_dump(gmp_invert(array(), 1)); +var_dump(gmp_invert(1, array())); +var_dump(gmp_invert(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +string(7) "2293131" +string(1) "0" +string(4) "5827" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(22) "3498273496234234523441" +string(1) "1" + +Warning: gmp_invert() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_invert() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_invert(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_invert(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_invert(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/024.phpt b/ext/gmp/tests/024.phpt new file mode 100644 index 0000000..04ddba4 --- /dev/null +++ b/ext/gmp/tests/024.phpt @@ -0,0 +1,69 @@ +--TEST-- +gmp_jacobi() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +for ($i = -1; $i < 10; $i++) { + var_dump(gmp_strval(gmp_jacobi(($i*$i)-1, 3))); +} + +var_dump(gmp_strval(gmp_jacobi(7, 23))); +var_dump(gmp_strval(gmp_jacobi("733535124", "1234123423434535623"))); +var_dump(gmp_strval(gmp_jacobi(3, "1234123423434535623"))); + +$n = "123123"; +$n1 = "1231231"; + +var_dump(gmp_strval(gmp_jacobi($n, $n1))); +var_dump(gmp_strval(gmp_jacobi($n, 3))); +var_dump(gmp_strval(gmp_jacobi(3, $n1))); + +var_dump(gmp_jacobi(3, array())); +var_dump(gmp_jacobi(array(), 3)); +var_dump(gmp_jacobi(array(), array())); + +var_dump(gmp_jacobi(array(), array(), 1)); +var_dump(gmp_jacobi(array())); +var_dump(gmp_jacobi()); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(2) "-1" + +Warning: gmp_jacobi(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_jacobi(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_jacobi(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_jacobi() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_jacobi() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_jacobi() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/025.phpt b/ext/gmp/tests/025.phpt new file mode 100644 index 0000000..6dde34e --- /dev/null +++ b/ext/gmp/tests/025.phpt @@ -0,0 +1,69 @@ +--TEST-- +gmp_legendre() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +for ($i = -1; $i < 10; $i++) { + var_dump(gmp_strval(gmp_legendre(($i*$i)-1, 3))); +} + +var_dump(gmp_strval(gmp_legendre(7, 23))); +var_dump(gmp_strval(gmp_legendre("733535124", "1234123423434535623"))); +var_dump(gmp_strval(gmp_legendre(3, "1234123423434535623"))); + +$n = "123123"; +$n1 = "1231231"; + +var_dump(gmp_strval(gmp_legendre($n, $n1))); +var_dump(gmp_strval(gmp_legendre($n, 3))); +var_dump(gmp_strval(gmp_legendre(3, $n1))); + +var_dump(gmp_legendre(3, array())); +var_dump(gmp_legendre(array(), 3)); +var_dump(gmp_legendre(array(), array())); + +var_dump(gmp_legendre(array(), array(), 1)); +var_dump(gmp_legendre(array())); +var_dump(gmp_legendre()); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(2) "-1" +string(1) "0" +string(1) "0" +string(2) "-1" +string(1) "0" +string(2) "-1" + +Warning: gmp_legendre(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_legendre(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_legendre(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_legendre() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_legendre() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_legendre() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/026.phpt b/ext/gmp/tests/026.phpt new file mode 100644 index 0000000..83e7910 --- /dev/null +++ b/ext/gmp/tests/026.phpt @@ -0,0 +1,48 @@ +--TEST-- +gmp_cmp() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_cmp(123123,-123123)); +var_dump(gmp_cmp("12345678900987654321","12345678900987654321")); +var_dump(gmp_cmp("12345678900987654321","123456789009876543211")); +var_dump(gmp_cmp(0,0)); +var_dump(gmp_cmp(1231222,0)); +var_dump(gmp_cmp(0,345355)); + +$n = gmp_init("827278512385463739"); +var_dump(gmp_cmp(0,$n) < 0); +$n1 = gmp_init("827278512385463739"); +var_dump(gmp_cmp($n1,$n)); + +var_dump(gmp_cmp($n1,$n,1)); +var_dump(gmp_cmp(array(),array())); +var_dump(gmp_cmp(array())); +var_dump(gmp_cmp()); + +echo "Done\n"; +?> +--EXPECTF-- +int(2) +int(0) +int(-1) +int(0) +int(1) +int(-1) +bool(true) +int(0) + +Warning: gmp_cmp() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_cmp(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_cmp() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_cmp() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/027.phpt b/ext/gmp/tests/027.phpt new file mode 100644 index 0000000..71204db --- /dev/null +++ b/ext/gmp/tests/027.phpt @@ -0,0 +1,39 @@ +--TEST-- +gmp_sign() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_sign(-1)); +var_dump(gmp_sign(1)); +var_dump(gmp_sign(0)); +var_dump(gmp_sign("123718235123123")); +var_dump(gmp_sign("-34535345345")); +var_dump(gmp_sign("+34534573457345")); +$n = gmp_init("098909878976786545"); +var_dump(gmp_sign($n)); +var_dump(gmp_sign($n, $n)); +var_dump(gmp_sign(array())); +var_dump(gmp_sign()); + +echo "Done\n"; +?> +--EXPECTF-- +int(-1) +int(1) +int(0) +int(1) +int(-1) +bool(false) +int(0) + +Warning: gmp_sign() expects exactly 1 parameter, 2 given in %s on line %d +NULL + +Warning: gmp_sign(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_sign() expects exactly 1 parameter, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/028.phpt b/ext/gmp/tests/028.phpt new file mode 100644 index 0000000..3a876aa --- /dev/null +++ b/ext/gmp/tests/028.phpt @@ -0,0 +1,41 @@ +--TEST-- +gmp_random() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_random())); +var_dump(gmp_strval(gmp_random(-1))); +var_dump(gmp_strval(gmp_random(0))); +var_dump(gmp_strval(gmp_random(10))); +var_dump(gmp_strval(gmp_random("-10"))); +var_dump(gmp_strval(gmp_random(-10))); + +var_dump(gmp_random(array())); +var_dump(gmp_random(array(),1)); +var_dump(gmp_random("")); +var_dump(gmp_random("test")); + +echo "Done\n"; +?> +--EXPECTF-- +string(%d) "%d" +string(%d) "%d" +string(1) "%d" +string(%d) "%d" +string(%d) "%d" +string(%d) "%d" + +Warning: gmp_random() expects parameter 1 to be long, array given in %s on line %d +NULL + +Warning: gmp_random() expects at most 1 parameter, 2 given in %s on line %d +NULL + +Warning: gmp_random() expects parameter 1 to be long, string given in %s on line %d +NULL + +Warning: gmp_random() expects parameter 1 to be long, string given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/029.phpt b/ext/gmp/tests/029.phpt new file mode 100644 index 0000000..1b86e47 --- /dev/null +++ b/ext/gmp/tests/029.phpt @@ -0,0 +1,52 @@ +--TEST-- +gmp_and() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_and("111111", "2222222"))); +var_dump(gmp_strval(gmp_and(123123, 435234))); +var_dump(gmp_strval(gmp_and(555, "2342341123"))); +var_dump(gmp_strval(gmp_and(-1, 3333))); +var_dump(gmp_strval(gmp_and(4545, -20))); +var_dump(gmp_strval(gmp_and("test", "no test"))); + +$n = gmp_init("987657876543456"); +var_dump(gmp_strval(gmp_and($n, "34332"))); +$n1 = gmp_init("987657878765436543456"); +var_dump(gmp_strval(gmp_and($n, $n1))); + +var_dump(gmp_and($n, $n1, 1)); +var_dump(gmp_and(1)); +var_dump(gmp_and(array(), 1)); +var_dump(gmp_and(1, array())); +var_dump(gmp_and(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +string(6) "106502" +string(5) "40994" +string(3) "515" +string(4) "3333" +string(4) "4544" +string(1) "0" +string(4) "1536" +string(15) "424703623692768" + +Warning: gmp_and() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_and() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_and(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_and(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_and(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/030.phpt b/ext/gmp/tests/030.phpt new file mode 100644 index 0000000..633af41 --- /dev/null +++ b/ext/gmp/tests/030.phpt @@ -0,0 +1,52 @@ +--TEST-- +gmp_or() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_or("111111", "2222222"))); +var_dump(gmp_strval(gmp_or(123123, 435234))); +var_dump(gmp_strval(gmp_or(555, "2342341123"))); +var_dump(gmp_strval(gmp_or(-1, 3333))); +var_dump(gmp_strval(gmp_or(4545, -20))); +var_dump(gmp_strval(gmp_or("test", "no test"))); + +$n = gmp_init("987657876543456"); +var_dump(gmp_strval(gmp_or($n, "34332"))); +$n1 = gmp_init("987657878765436543456"); +var_dump(gmp_strval(gmp_or($n, $n1))); + +var_dump(gmp_or($n, $n1, 1)); +var_dump(gmp_or(1)); +var_dump(gmp_or(array(), 1)); +var_dump(gmp_or(1, array())); +var_dump(gmp_or(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +string(7) "2226831" +string(6) "517363" +string(10) "2342341163" +string(2) "-1" +string(3) "-19" +string(1) "0" +string(15) "987657876576252" +string(21) "987658441719689394144" + +Warning: gmp_or() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_or() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_or(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_or(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_or(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/031.phpt b/ext/gmp/tests/031.phpt new file mode 100644 index 0000000..90ce175 --- /dev/null +++ b/ext/gmp/tests/031.phpt @@ -0,0 +1,44 @@ +--TEST-- +gmp_com() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_com(0))); +var_dump(gmp_strval(gmp_com("0"))); +var_dump(gmp_strval(gmp_com("test"))); +var_dump(gmp_strval(gmp_com("2394876545678"))); +var_dump(gmp_strval(gmp_com("-111"))); +var_dump(gmp_strval(gmp_com(874653))); +var_dump(gmp_strval(gmp_com(-9876))); + +$n = gmp_init("98765467"); +var_dump(gmp_strval(gmp_com($n))); +$n = gmp_init("98765463337"); +var_dump(gmp_strval(gmp_com($n))); + +var_dump(gmp_strval(gmp_com(array()))); +var_dump(gmp_strval(gmp_com())); + +echo "Done\n"; +?> +--EXPECTF-- +string(2) "-1" +string(2) "-1" +string(1) "0" +string(14) "-2394876545679" +string(3) "110" +string(7) "-874654" +string(4) "9875" +string(9) "-98765468" +string(12) "-98765463338" + +Warning: gmp_com(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" + +Warning: gmp_com() expects exactly 1 parameter, 0 given in %s on line %d + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/032.phpt b/ext/gmp/tests/032.phpt new file mode 100644 index 0000000..327c979 --- /dev/null +++ b/ext/gmp/tests/032.phpt @@ -0,0 +1,52 @@ +--TEST-- +gmp_xor() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_strval(gmp_xor("111111", "2222222"))); +var_dump(gmp_strval(gmp_xor(123123, 435234))); +var_dump(gmp_strval(gmp_xor(555, "2342341123"))); +var_dump(gmp_strval(gmp_xor(-1, 3333))); +var_dump(gmp_strval(gmp_xor(4545, -20))); +var_dump(gmp_strval(gmp_xor("test", "no test"))); + +$n = gmp_init("987657876543456"); +var_dump(gmp_strval(gmp_xor($n, "34332"))); +$n1 = gmp_init("987657878765436543456"); +var_dump(gmp_strval(gmp_xor($n, $n1))); + +var_dump(gmp_xor($n, $n1, 1)); +var_dump(gmp_xor(1)); +var_dump(gmp_xor(array(), 1)); +var_dump(gmp_xor(1, array())); +var_dump(gmp_xor(array(), array())); + +echo "Done\n"; +?> +--EXPECTF-- +string(7) "2120329" +string(6) "476369" +string(10) "2342340648" +string(5) "-3334" +string(5) "-4563" +string(1) "0" +string(15) "987657876574716" +string(21) "987658017016065701376" + +Warning: gmp_xor() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_xor() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_xor(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_xor(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_xor(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +Done diff --git a/ext/gmp/tests/033.phpt b/ext/gmp/tests/033.phpt new file mode 100644 index 0000000..38ff5be --- /dev/null +++ b/ext/gmp/tests/033.phpt @@ -0,0 +1,64 @@ +--TEST-- +gmp_setbit() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +$n = gmp_init(-1); +gmp_setbit($n, 10, -1); +var_dump(gmp_strval($n)); + +$n = gmp_init(5); +gmp_setbit($n, -20, 0); +var_dump(gmp_strval($n)); + +$n = gmp_init(5); +gmp_setbit($n, 2, 0); +var_dump(gmp_strval($n)); + +$n = gmp_init(5); +gmp_setbit($n, 1, 1); +var_dump(gmp_strval($n)); + +$n = gmp_init("100000000000"); +gmp_setbit($n, 23, 1); +var_dump(gmp_strval($n)); + +gmp_setbit($n, 23, 0); +var_dump(gmp_strval($n)); + +gmp_setbit($n, 3); +var_dump(gmp_strval($n)); + +$b = ""; +gmp_setbit($b, 23); +gmp_setbit($b); +gmp_setbit($b, 23,1,1); +gmp_setbit($b,array()); +$a = array(); +gmp_setbit($a,array()); + +echo "Done\n"; +?> +--EXPECTF-- +string(2) "-1" + +Warning: gmp_setbit(): Index must be greater than or equal to zero in %s on line %d +string(1) "5" +string(1) "1" +string(1) "7" +string(12) "100008388608" +string(12) "100000000000" +string(12) "100000000008" + +Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource in %s on line %d + +Warning: gmp_setbit() expects at least 2 parameters, 1 given in %s on line %d + +Warning: gmp_setbit() expects at most 3 parameters, 4 given in %s on line %d + +Warning: gmp_setbit() expects parameter 2 to be long, array given in %s on line %d + +Warning: gmp_setbit() expects parameter 2 to be long, array given in %s on line %d +Done diff --git a/ext/gmp/tests/034.phpt b/ext/gmp/tests/034.phpt new file mode 100644 index 0000000..6011029 --- /dev/null +++ b/ext/gmp/tests/034.phpt @@ -0,0 +1,56 @@ +--TEST-- +gmp_clrbit() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +$n = gmp_init(0); +gmp_clrbit($n, 0); +var_dump(gmp_strval($n)); + +$n = gmp_init(-1); +gmp_clrbit($n, -1); +var_dump(gmp_strval($n)); + +$n = gmp_init("1000000"); +gmp_clrbit($n, -1); +var_dump(gmp_strval($n)); + +$n = gmp_init("1000000"); +gmp_clrbit($n, 3); +var_dump(gmp_strval($n)); + +$n = gmp_init("238462734628347239571823641234"); +gmp_clrbit($n, 3); +gmp_clrbit($n, 5); +gmp_clrbit($n, 20); +var_dump(gmp_strval($n)); + +$n = array(); +gmp_clrbit($n, 3); +gmp_clrbit($n, 3, 1); +gmp_clrbit($n); +gmp_clrbit(); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "0" + +Warning: gmp_clrbit(): Index must be greater than or equal to zero in %s on line %d +string(2) "-1" + +Warning: gmp_clrbit(): Index must be greater than or equal to zero in %s on line %d +string(7) "1000000" +string(7) "1000000" +string(30) "238462734628347239571822592658" + +Warning: gmp_clrbit(): supplied argument is not a valid GMP integer resource in %s on line %d + +Warning: gmp_clrbit() expects exactly 2 parameters, 3 given in %s on line %d + +Warning: gmp_clrbit() expects exactly 2 parameters, 1 given in %s on line %d + +Warning: gmp_clrbit() expects exactly 2 parameters, 0 given in %s on line %d +Done diff --git a/ext/gmp/tests/035.phpt b/ext/gmp/tests/035.phpt new file mode 100644 index 0000000..4b45a04 --- /dev/null +++ b/ext/gmp/tests/035.phpt @@ -0,0 +1,33 @@ +--TEST-- +gmp_popcount() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_popcount(-1)); +var_dump(gmp_popcount(0)); +var_dump(gmp_popcount(12123)); +var_dump(gmp_popcount("52638927634234")); +var_dump(gmp_popcount("-23476123423433")); +$n = gmp_init("9876546789222"); +var_dump(gmp_popcount($n)); +var_dump(gmp_popcount(array())); +var_dump(gmp_popcount()); + +echo "Done\n"; +?> +--EXPECTF-- +int(-1) +int(0) +int(10) +int(31) +int(-1) +int(20) + +Warning: gmp_popcount(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_popcount() expects exactly 1 parameter, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/036.phpt b/ext/gmp/tests/036.phpt new file mode 100644 index 0000000..c21e03c --- /dev/null +++ b/ext/gmp/tests/036.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_hamdist() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_hamdist(1231231, 0)); +var_dump(gmp_hamdist(1231231, -1)); +var_dump(gmp_hamdist(1231231, "8765434567897654333334567")); +var_dump(gmp_hamdist(-364264234, "8333765434567897654333334567")); + +$n = gmp_init("8765434567"); +$n1 = gmp_init("987654445678"); +var_dump(gmp_hamdist($n, "8333765434567897654333334567")); +var_dump(gmp_hamdist($n, $n)); +var_dump(gmp_hamdist($n, $n1)); + +var_dump(gmp_hamdist($n, $n1, 1)); +var_dump(gmp_hamdist($n, array())); +var_dump(gmp_hamdist(array(), $n)); +var_dump(gmp_hamdist(array(), array())); +var_dump(gmp_hamdist()); + +echo "Done\n"; +?> +--EXPECTF-- +int(13) +int(-1) +int(36) +int(-1) +int(43) +int(0) +int(26) + +Warning: gmp_hamdist() expects exactly 2 parameters, 3 given in %s on line %d +NULL + +Warning: gmp_hamdist(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_hamdist(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_hamdist(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_hamdist() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/037.phpt b/ext/gmp/tests/037.phpt new file mode 100644 index 0000000..2a87a96 --- /dev/null +++ b/ext/gmp/tests/037.phpt @@ -0,0 +1,40 @@ +--TEST-- +gmp_scan0() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_scan0("434234", -10)); +var_dump(gmp_scan0("434234", 1)); +var_dump(gmp_scan0(4096, 0)); +var_dump(gmp_scan0("1000000000", 5)); +var_dump(gmp_scan0("1000000000", 200)); + +$n = gmp_init("24234527465274"); +var_dump(gmp_scan0($n, 10)); + +var_dump(gmp_scan0(array(), 200)); +var_dump(gmp_scan0(array())); +var_dump(gmp_scan0()); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_scan0(): Starting index must be greater than or equal to zero in %s on line %d +bool(false) +int(2) +int(0) +int(5) +int(200) +int(13) + +Warning: gmp_scan0(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_scan0() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_scan0() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/038.phpt b/ext/gmp/tests/038.phpt new file mode 100644 index 0000000..7ebce9b --- /dev/null +++ b/ext/gmp/tests/038.phpt @@ -0,0 +1,40 @@ +--TEST-- +gmp_scan1() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_scan1("434234", -10)); +var_dump(gmp_scan1("434234", 1)); +var_dump(gmp_scan1(4096, 0)); +var_dump(gmp_scan1("1000000000", 5)); +var_dump(gmp_scan1("1000000000", 200)); + +$n = gmp_init("24234527465274"); +var_dump(gmp_scan1($n, 10)); + +var_dump(gmp_scan1(array(), 200)); +var_dump(gmp_scan1(array())); +var_dump(gmp_scan1()); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_scan1(): Starting index must be greater than or equal to zero in %s on line %d +bool(false) +int(1) +int(12) +int(9) +int(-1) +int(10) + +Warning: gmp_scan1(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_scan1() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: gmp_scan1() expects exactly 2 parameters, 0 given in %s on line %d +NULL +Done diff --git a/ext/gmp/tests/039.phpt b/ext/gmp/tests/039.phpt new file mode 100644 index 0000000..399c511 --- /dev/null +++ b/ext/gmp/tests/039.phpt @@ -0,0 +1,60 @@ +--TEST-- +gmp_testbit() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +$n = gmp_init(0); +var_dump(gmp_testbit($n, -10)); +var_dump(gmp_testbit($n, 0)); +var_dump(gmp_testbit($n, 1)); +var_dump(gmp_testbit($n, 100)); + +$n = gmp_init(-1); +var_dump(gmp_testbit($n, 1)); +var_dump(gmp_testbit($n, -1)); + +$n = gmp_init("1000000"); +var_dump(gmp_testbit($n, 1)); +gmp_setbit($n, 1); +var_dump(gmp_testbit($n, 1)); +var_dump(gmp_strval($n)); + +gmp_setbit($n, 5); +var_dump(gmp_testbit($n, 5)); +var_dump(gmp_strval($n)); + +$n = gmp_init("238462734628347239571823641234"); +var_dump(gmp_testbit($n, 5)); +gmp_setbit($n, 5); +var_dump(gmp_testbit($n, 5)); +var_dump(gmp_strval($n)); + +gmp_clrbit($n, 5); +var_dump(gmp_testbit($n, 5)); +var_dump(gmp_strval($n)); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: gmp_testbit(): Index must be greater than or equal to zero in %s on line %d +bool(false) +bool(false) +bool(false) +bool(false) +bool(true) + +Warning: gmp_testbit(): Index must be greater than or equal to zero in %s on line %d +bool(false) +bool(false) +bool(true) +string(7) "1000002" +bool(true) +string(7) "1000034" +bool(false) +bool(true) +string(30) "238462734628347239571823641266" +bool(false) +string(30) "238462734628347239571823641234" +Done diff --git a/ext/gmp/tests/040.phpt b/ext/gmp/tests/040.phpt new file mode 100644 index 0000000..3af18cc --- /dev/null +++ b/ext/gmp/tests/040.phpt @@ -0,0 +1,40 @@ +--TEST-- +gmp_init() basic tests +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +var_dump(gmp_init("98765678")); +var_dump(gmp_strval(gmp_init("98765678"))); +var_dump(gmp_strval(gmp_init())); +var_dump(gmp_init()); +var_dump(gmp_init(1,2,3,4)); +var_dump(gmp_init(1,-1)); +var_dump(gmp_init("",36)); +var_dump(gmp_init("foo",3)); +var_dump(gmp_strval(gmp_init("993247326237679187178",3))); + +echo "Done\n"; +?> +--EXPECTF-- +resource(%d) of type (GMP integer) +string(8) "98765678" + +Warning: gmp_init() expects at least 1 parameter, 0 given in %s on line %d + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: gmp_init() expects at least 1 parameter, 0 given in %s on line %d +NULL + +Warning: gmp_init() expects at most 2 parameters, 4 given in %s on line %d +NULL + +Warning: gmp_init(): Bad base for conversion: -1 (should be between 2 and %d) in %s on line %d +bool(false) +bool(false) +bool(false) +string(1) "0" +Done diff --git a/ext/gmp/tests/bug32773.phpt b/ext/gmp/tests/bug32773.phpt new file mode 100644 index 0000000..6823fa1 --- /dev/null +++ b/ext/gmp/tests/bug32773.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #32773 (binary GMP functions returns unexpected value, when second parameter is int(0)) +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php +echo '10 + 0 = ', gmp_strval(gmp_add(10, 0)), "\n"; +echo '10 + "0" = ', gmp_strval(gmp_add(10, '0')), "\n"; + +echo gmp_strval(gmp_div(10, 0))."\n"; +echo gmp_strval(gmp_div_qr(10, 0))."\n"; + +?> +--EXPECTF-- +10 + 0 = 10 +10 + "0" = 10 + +Warning: gmp_div(): Zero operand not allowed in %s on line %d +0 + +Warning: gmp_div_qr(): Zero operand not allowed in %s on line %d +0 diff --git a/ext/gmp/tests/bug50283.phpt b/ext/gmp/tests/bug50283.phpt new file mode 100644 index 0000000..13eef54 --- /dev/null +++ b/ext/gmp/tests/bug50283.phpt @@ -0,0 +1,37 @@ +--TEST-- +Feature Request #50283 (allow base in gmp_strval to use full range: 2 to 62, and -2 to -36) +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +<?php if (version_compare(GMP_VERSION, "4.2.0", "<")) print "skip"; ?> +--FILE-- +<?php +$a = gmp_init("0x41682179fbf5"); +printf("Decimal: %s, -36-based: %s\n", gmp_strval($a), gmp_strval($a,-36)); +printf("Decimal: %s, 36-based: %s\n", gmp_strval($a), gmp_strval($a,36)); +printf("Decimal: %s, -1-based: %s\n", gmp_strval($a), gmp_strval($a,-1)); +printf("Decimal: %s, 1-based: %s\n", gmp_strval($a), gmp_strval($a,1)); +printf("Decimal: %s, -37-based: %s\n", gmp_strval($a), gmp_strval($a,-37)); +printf("Decimal: %s, 37-based: %s\n", gmp_strval($a), gmp_strval($a,37)); +printf("Decimal: %s, 62-based: %s\n", gmp_strval($a), gmp_strval($a,62)); +printf("Decimal: %s, 63-based: %s\n\n", gmp_strval($a), gmp_strval($a,63)); +printf("Base 32 and 62-based: %s\n", gmp_strval(gmp_init("gh82179fbf5", 32), 62)); +?> +--EXPECTF-- +Decimal: 71915494046709, -36-based: PHPISCOOL +Decimal: 71915494046709, 36-based: phpiscool + +Warning: gmp_strval(): Bad base for conversion: -1 (should be between 2 and %d or -2 and -%d) in %s on line 5 +Decimal: 71915494046709, -1-based: + +Warning: gmp_strval(): Bad base for conversion: 1 (should be between 2 and %d or -2 and -%d) in %s on line 6 +Decimal: 71915494046709, 1-based: + +Warning: gmp_strval(): Bad base for conversion: -37 (should be between 2 and %d or -2 and -%d) in %s on line 7 +Decimal: 71915494046709, -37-based: +Decimal: 71915494046709, 37-based: KHKATELJF +Decimal: 71915494046709, 62-based: KQ6yq741 + +Warning: gmp_strval(): Bad base for conversion: 63 (should be between 2 and %d or -2 and -%d) in %s on line 10 +Decimal: 71915494046709, 63-based: + +Base 32 and 62-based: 1NHkAcdIiD diff --git a/ext/gmp/tests/bug52906.phpt b/ext/gmp/tests/bug52906.phpt new file mode 100644 index 0000000..60fc741 --- /dev/null +++ b/ext/gmp/tests/bug52906.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #52906 gmp_mod returns negative result when non-negative is expected +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; ?> +--FILE-- +<?php + +$vals = array( + array(7, 3), + array(2, 7), + array(12, 7), + array(-2, 7), + array(-12, 7), + array(2, -7), + array(12, -7), + array(-2, -7), + array(-12, -7), +); +foreach($vals as $data) { + echo "{$data[0]}%{$data[1]}=".gmp_strval(gmp_mod($data[0], $data[1])); + echo "\n"; + echo "{$data[0]}%{$data[1]}=".gmp_strval(gmp_mod(gmp_init($data[0]), gmp_init($data[1]))); + echo "\n"; +} +echo "Done\n"; +?> +--EXPECTF-- +7%3=1 +7%3=1 +2%7=2 +2%7=2 +12%7=5 +12%7=5 +-2%7=5 +-2%7=5 +-12%7=2 +-12%7=2 +2%-7=2 +2%-7=2 +12%-7=5 +12%-7=5 +-2%-7=5 +-2%-7=5 +-12%-7=2 +-12%-7=2 +Done diff --git a/ext/gmp/tests/gmp_nextprime.phpt b/ext/gmp/tests/gmp_nextprime.phpt new file mode 100644 index 0000000..5683c8c --- /dev/null +++ b/ext/gmp/tests/gmp_nextprime.phpt @@ -0,0 +1,41 @@ +--TEST-- +gmp_nextprime() +--SKIPIF-- +<?php if (!extension_loaded("gmp")) print "skip"; +?> +--FILE-- +<?php + +$n = gmp_nextprime(-1); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(0); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(-1000); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(1000); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(100000); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(array()); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(""); +var_dump(gmp_strval($n)); +$n = gmp_nextprime(new stdclass()); +var_dump(gmp_strval($n)); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "2" +string(1) "2" +string(1) "2" +string(4) "1009" +string(6) "100003" + +Warning: gmp_nextprime(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" +string(1) "0" + +Warning: gmp_nextprime(): Unable to convert variable to GMP - wrong type in %s on line %d +string(1) "0" +Done |