diff options
| author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
|---|---|---|
| committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
| commit | 2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch) | |
| tree | 41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/gmp | |
| parent | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff) | |
| download | php-2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b.tar.gz | |
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'ext/gmp')
31 files changed, 1559 insertions, 17 deletions
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index e97977a77..6610a8c00 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -324,7 +324,7 @@ zend_module_entry gmp_module_entry = { "gmp", gmp_functions, ZEND_MODULE_STARTUP_N(gmp), - ZEND_MODULE_SHUTDOWN_N(gmp), + NULL, NULL, ZEND_MODULE_DEACTIVATE_N(gmp), ZEND_MODULE_INFO_N(gmp), @@ -389,6 +389,7 @@ ZEND_MODULE_STARTUP_D(gmp) REGISTER_LONG_CONSTANT("GMP_ROUND_ZERO", GMP_ROUND_ZERO, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("GMP_ROUND_PLUSINF", GMP_ROUND_PLUSINF, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("GMP_ROUND_MINUSINF", GMP_ROUND_MINUSINF, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("GMP_VERSION", (char *)gmp_version, CONST_CS | CONST_PERSISTENT); mp_set_memory_functions(gmp_emalloc, gmp_erealloc, gmp_efree); @@ -409,25 +410,14 @@ ZEND_MODULE_DEACTIVATE_D(gmp) } /* }}} */ -/* {{{ ZEND_MSHUTDOWN_FUNCTION - */ -ZEND_MODULE_SHUTDOWN_D(gmp) -{ - return SUCCESS; -} -/* }}} */ - /* {{{ ZEND_MINFO_FUNCTION */ ZEND_MODULE_INFO_D(gmp) { php_info_print_table_start(); php_info_print_table_row(2, "gmp support", "enabled"); + php_info_print_table_row(2, "GMP version", gmp_version); php_info_print_table_end(); - - /* Remove comments if you have entries in php.ini - DISPLAY_INI_ENTRIES(); - */ } /* }}} */ @@ -1008,7 +998,13 @@ ZEND_FUNCTION(gmp_mod) Divide a by b using exact division algorithm */ ZEND_FUNCTION(gmp_divexact) { - gmp_binary_op(mpz_divexact); + zval **a_arg, **b_arg; + + if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) == FAILURE){ + WRONG_PARAM_COUNT; + } + + gmp_zval_binary_ui_op_ex(return_value, a_arg, b_arg, mpz_divexact, NULL, 0, 1 TSRMLS_CC); } /* }}} */ @@ -1496,6 +1492,11 @@ ZEND_FUNCTION(gmp_setbit) break; } + if (index < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be greater than or equal to zero"); + return; + } + if (set) { mpz_setbit(*gmpnum_a, index); } else { @@ -1520,6 +1521,11 @@ ZEND_FUNCTION(gmp_clrbit) convert_to_long_ex(ind_arg); index = Z_LVAL_PP(ind_arg); + + if (index < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be greater than or equal to zero"); + return; + } mpz_clrbit(*gmpnum_a, index); } @@ -1574,6 +1580,11 @@ ZEND_FUNCTION(gmp_scan0) FETCH_GMP_ZVAL(gmpnum_a, a_arg); convert_to_long_ex(start_arg); + if (Z_LVAL_PP(start_arg) < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Starting index must be greater than or equal to zero"); + RETURN_FALSE; + } + RETURN_LONG(mpz_scan0(*gmpnum_a, Z_LVAL_PP(start_arg))); } /* }}} */ @@ -1591,6 +1602,11 @@ ZEND_FUNCTION(gmp_scan1) FETCH_GMP_ZVAL(gmpnum_a, a_arg); convert_to_long_ex(start_arg); + + if (Z_LVAL_PP(start_arg) < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Starting index must be greater than or equal to zero"); + RETURN_FALSE; + } RETURN_LONG(mpz_scan1(*gmpnum_a, Z_LVAL_PP(start_arg))); } diff --git a/ext/gmp/php_gmp.h b/ext/gmp/php_gmp.h index 5af361597..22b4abcf4 100644 --- a/ext/gmp/php_gmp.h +++ b/ext/gmp/php_gmp.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -33,7 +33,6 @@ extern zend_module_entry gmp_module_entry; #endif ZEND_MODULE_STARTUP_D(gmp); -ZEND_MODULE_SHUTDOWN_D(gmp); ZEND_MODULE_DEACTIVATE_D(gmp); ZEND_MODULE_INFO_D(gmp); diff --git a/ext/gmp/tests/011.phpt b/ext/gmp/tests/011.phpt new file mode 100644 index 000000000..ec5d24f3f --- /dev/null +++ b/ext/gmp/tests/011.phpt @@ -0,0 +1,49 @@ +--TEST-- +gmp_divexact() tests (OK to fail with GMP =< 4.2.1) +--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: Wrong parameter count for gmp_divexact() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_divexact() 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 000000000..ff60385bb --- /dev/null +++ b/ext/gmp/tests/012.phpt @@ -0,0 +1,42 @@ +--TEST-- +gmp_neg() basic tests +--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: Wrong parameter count for gmp_neg() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_neg() 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 000000000..b576d4448 --- /dev/null +++ b/ext/gmp/tests/013.phpt @@ -0,0 +1,43 @@ +--TEST-- +gmp_abs() basic tests +--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: Wrong parameter count for gmp_abs() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_abs() 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 000000000..850574865 --- /dev/null +++ b/ext/gmp/tests/014.phpt @@ -0,0 +1,56 @@ +--TEST-- +gmp_fact() basic tests +--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: Wrong parameter count for gmp_fact() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_fact() 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 000000000..2eea93a97 --- /dev/null +++ b/ext/gmp/tests/015.phpt @@ -0,0 +1,64 @@ +--TEST-- +gmp_pow() basic tests +--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: Wrong parameter count for gmp_pow() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_pow() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_pow() in %s on line %d +NULL + +Warning: gmp_pow(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) +resource(%d) of type (GMP integer) + +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 000000000..6f63b28a0 --- /dev/null +++ b/ext/gmp/tests/016.phpt @@ -0,0 +1,71 @@ +--TEST-- +gmp_powm() basic tests +--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: Wrong parameter count for gmp_powm() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_powm() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_powm() 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 000000000..4254a07ae --- /dev/null +++ b/ext/gmp/tests/017.phpt @@ -0,0 +1,48 @@ +--TEST-- +gmp_sqrt() basic tests +--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: Wrong parameter count for gmp_sqrt() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_sqrt() 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 000000000..9aeff6597 --- /dev/null +++ b/ext/gmp/tests/018.phpt @@ -0,0 +1,98 @@ +--TEST-- +gmp_sqrtrem() basic tests +--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: Wrong parameter count for gmp_sqrtrem() 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 000000000..d632d1400 --- /dev/null +++ b/ext/gmp/tests/019.phpt @@ -0,0 +1,45 @@ +--TEST-- +gmp_perfect_square() basic tests +--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: Wrong parameter count for gmp_perfect_square() 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 000000000..37c3ebdc6 --- /dev/null +++ b/ext/gmp/tests/020.phpt @@ -0,0 +1,79 @@ +--TEST-- +gmp_prob_prime() basic tests +--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: Wrong parameter count for gmp_prob_prime() 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 000000000..48d8291ae --- /dev/null +++ b/ext/gmp/tests/021.phpt @@ -0,0 +1,49 @@ +--TEST-- +gmp_gcd() basic tests +--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(1) "0" + +Warning: Wrong parameter count for gmp_gcd() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_gcd() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_gcd() 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 000000000..0df874dc7 --- /dev/null +++ b/ext/gmp/tests/022.phpt @@ -0,0 +1,83 @@ +--TEST-- +gmp_gcdext() basic tests +--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: Wrong parameter count for gmp_gcdext() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_gcdext() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_gcdext() 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 000000000..59d1592cb --- /dev/null +++ b/ext/gmp/tests/023.phpt @@ -0,0 +1,53 @@ +--TEST-- +gmp_invert() basic tests +--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: Wrong parameter count for gmp_invert() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_invert() 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 000000000..4f9a369c9 --- /dev/null +++ b/ext/gmp/tests/024.phpt @@ -0,0 +1,65 @@ +--TEST-- +gmp_jacobi() basic tests +--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(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +int(0) + +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: Wrong parameter count for gmp_jacobi() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_jacobi() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_jacobi() 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 000000000..db01a4c13 --- /dev/null +++ b/ext/gmp/tests/025.phpt @@ -0,0 +1,65 @@ +--TEST-- +gmp_legendre() basic tests +--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(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +int(0) + +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: Wrong parameter count for gmp_legendre() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_legendre() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_legendre() 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 000000000..39c18501f --- /dev/null +++ b/ext/gmp/tests/026.phpt @@ -0,0 +1,46 @@ +--TEST-- +gmp_cmp() basic tests +--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)); +$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) +int(-2) +int(0) + +Warning: Wrong parameter count for gmp_cmp() 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: Wrong parameter count for gmp_cmp() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_cmp() 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 000000000..b22fa2ac0 --- /dev/null +++ b/ext/gmp/tests/027.phpt @@ -0,0 +1,37 @@ +--TEST-- +gmp_sign() basic tests +--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: Wrong parameter count for gmp_sign() 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: Wrong parameter count for gmp_sign() 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 000000000..95f910ab4 --- /dev/null +++ b/ext/gmp/tests/028.phpt @@ -0,0 +1,33 @@ +--TEST-- +gmp_random() basic tests +--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" +resource(%d) of type (GMP integer) + +Warning: Wrong parameter count for gmp_random() in %s on line %d +NULL +resource(%d) of type (GMP integer) +resource(%d) of type (GMP integer) +Done diff --git a/ext/gmp/tests/029.phpt b/ext/gmp/tests/029.phpt new file mode 100644 index 000000000..b49ae2842 --- /dev/null +++ b/ext/gmp/tests/029.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_and() basic tests +--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: Wrong parameter count for gmp_and() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_and() 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 000000000..116630bca --- /dev/null +++ b/ext/gmp/tests/030.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_or() basic tests +--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: Wrong parameter count for gmp_or() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_or() 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 000000000..fc8a56143 --- /dev/null +++ b/ext/gmp/tests/031.phpt @@ -0,0 +1,42 @@ +--TEST-- +gmp_com() basic tests +--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: Wrong parameter count for gmp_com() 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 000000000..5cca14063 --- /dev/null +++ b/ext/gmp/tests/032.phpt @@ -0,0 +1,50 @@ +--TEST-- +gmp_xor() basic tests +--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: Wrong parameter count for gmp_xor() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_xor() 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 000000000..070ff0ef2 --- /dev/null +++ b/ext/gmp/tests/033.phpt @@ -0,0 +1,62 @@ +--TEST-- +gmp_setbit() basic tests +--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: Wrong parameter count for gmp_setbit() in %s on line %d + +Warning: Wrong parameter count for gmp_setbit() in %s on line %d + +Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource in %s on line %d + +Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource 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 000000000..b3f65547f --- /dev/null +++ b/ext/gmp/tests/034.phpt @@ -0,0 +1,54 @@ +--TEST-- +gmp_clrbit() basic tests +--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: Wrong parameter count for gmp_clrbit() in %s on line %d + +Warning: Wrong parameter count for gmp_clrbit() in %s on line %d + +Warning: Wrong parameter count for gmp_clrbit() 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 000000000..81410b5c7 --- /dev/null +++ b/ext/gmp/tests/035.phpt @@ -0,0 +1,31 @@ +--TEST-- +gmp_popcount() basic tests +--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: Wrong parameter count for gmp_popcount() 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 000000000..2d429c40a --- /dev/null +++ b/ext/gmp/tests/036.phpt @@ -0,0 +1,48 @@ +--TEST-- +gmp_hamdist() basic tests +--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: Wrong parameter count for gmp_hamdist() 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: Wrong parameter count for gmp_hamdist() 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 000000000..90ba3558d --- /dev/null +++ b/ext/gmp/tests/037.phpt @@ -0,0 +1,38 @@ +--TEST-- +gmp_scan0() basic tests +--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: Wrong parameter count for gmp_scan0() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_scan0() 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 000000000..c4764faff --- /dev/null +++ b/ext/gmp/tests/038.phpt @@ -0,0 +1,38 @@ +--TEST-- +gmp_scan1() basic tests +--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: Wrong parameter count for gmp_scan1() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_scan1() 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 000000000..9a4edb541 --- /dev/null +++ b/ext/gmp/tests/039.phpt @@ -0,0 +1,38 @@ +--TEST-- +gmp_init() basic tests +--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: Wrong parameter count for gmp_init() in %s on line %d + +Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on line %d +bool(false) + +Warning: Wrong parameter count for gmp_init() in %s on line %d +NULL + +Warning: Wrong parameter count for gmp_init() in %s on line %d +NULL + +Warning: gmp_init(): Bad base for conversion: -1 (should be between 2 and 36) in %s on line %d +bool(false) +bool(false) +bool(false) +string(1) "0" +Done |
