summaryrefslogtreecommitdiff
path: root/ext/standard
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard')
-rw-r--r--ext/standard/tests/math/expm1_basic.phpt79
-rw-r--r--ext/standard/tests/math/expm1_error.phpt30
-rw-r--r--ext/standard/tests/math/expm1_variation1.phpt199
-rw-r--r--ext/standard/tests/math/floor_basic.phpt108
-rw-r--r--ext/standard/tests/math/floor_error.phpt33
-rw-r--r--ext/standard/tests/math/floor_variation1.phpt128
-rw-r--r--ext/standard/tests/math/fmod_variation1.phpt184
-rw-r--r--ext/standard/tests/math/fmod_variation2.phpt184
-rw-r--r--ext/standard/tests/math/hexdec_basic_64bit.phpt93
-rw-r--r--ext/standard/tests/math/hexdec_error.phpt25
-rw-r--r--ext/standard/tests/math/hexdec_variation1.phpt168
-rw-r--r--ext/standard/tests/math/hexdec_variation1_64bit.phpt168
-rw-r--r--ext/standard/tests/math/hypot_basic.phpt444
-rw-r--r--ext/standard/tests/math/hypot_error.phpt21
-rw-r--r--ext/standard/tests/math/hypot_variation1.phpt185
-rw-r--r--ext/standard/tests/math/hypot_variation2.phpt185
-rw-r--r--ext/standard/tests/math/is_finite_variation1.phpt184
-rw-r--r--ext/standard/tests/math/is_infinite_variation1.phpt184
-rw-r--r--ext/standard/tests/math/is_nan_variation1.phpt184
19 files changed, 2784 insertions, 2 deletions
diff --git a/ext/standard/tests/math/expm1_basic.phpt b/ext/standard/tests/math/expm1_basic.phpt
new file mode 100644
index 0000000000..fa1d571db4
--- /dev/null
+++ b/ext/standard/tests/math/expm1_basic.phpt
@@ -0,0 +1,79 @@
+--TEST--
+Test expm1() - basic function test for expm1()
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype : float expm1 ( float $arg )
+ * Description: Returns exp(number) - 1, computed in a way that is accurate even
+ * when the value of number is close to zero.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing expm1() : basic functionality ***\n";
+$values = array(10,
+ 10.3,
+ 3.9505e3,
+ 037,
+ 0x5F,
+ "10",
+ "3950.5",
+ "3.9505e3",
+ "039",
+ "0x5F",
+ true,
+ false,
+ null,
+ );
+
+// loop through each element of $values to check the behaviour of expm1()
+$iterator = 1;
+foreach($values as $value) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(expm1($value));
+ $iterator++;
+};
+?>
+===Done===
+--EXPECTF--
+*** Testing expm1() : basic functionality ***
+
+-- Iteration 1 --
+float(22025.465794807)
+
+-- Iteration 2 --
+float(29731.618852891)
+
+-- Iteration 3 --
+float(INF)
+
+-- Iteration 4 --
+float(29048849665246)
+
+-- Iteration 5 --
+float(1.811239082889E+41)
+
+-- Iteration 6 --
+float(22025.465794807)
+
+-- Iteration 7 --
+float(INF)
+
+-- Iteration 8 --
+float(INF)
+
+-- Iteration 9 --
+float(8.6593400423994E+16)
+
+-- Iteration 10 --
+float(1.811239082889E+41)
+
+-- Iteration 11 --
+float(1.718281828459)
+
+-- Iteration 12 --
+float(0)
+
+-- Iteration 13 --
+float(0)
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/expm1_error.phpt b/ext/standard/tests/math/expm1_error.phpt
new file mode 100644
index 0000000000..380633b67b
--- /dev/null
+++ b/ext/standard/tests/math/expm1_error.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Test expm1() - Error conditions
+--FILE--
+<?php
+/* Prototype : float expm1 ( float $arg )
+ * Description: Returns exp(number) - 1, computed in a way that is accurate even
+ * when the value of number is close to zero.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing expm1() : error conditions ***\n";
+
+echo "\n-- Testing expm1() function with less than expected no. of arguments --\n";
+expm1();
+echo "\n-- Testing expm1() function with more than expected no. of arguments --\n";
+expm1(23,true);
+
+?>
+===Done===
+--EXPECTF--
+*** Testing expm1() : error conditions ***
+
+-- Testing expm1() function with less than expected no. of arguments --
+
+Warning: expm1() expects exactly 1 parameter, 0 given in %s on line %d
+
+-- Testing expm1() function with more than expected no. of arguments --
+
+Warning: expm1() expects exactly 1 parameter, 2 given in %s on line %d
+===Done===
diff --git a/ext/standard/tests/math/expm1_variation1.phpt b/ext/standard/tests/math/expm1_variation1.phpt
new file mode 100644
index 0000000000..e976b5ab25
--- /dev/null
+++ b/ext/standard/tests/math/expm1_variation1.phpt
@@ -0,0 +1,199 @@
+--TEST--
+Test expm1() function : usage variations - different data types as $arg argument
+--INI--
+precision=14
+--FILE--
+<?php
+
+/* Prototype : float expm1 ( float $arg )
+ * Description: Returns exp(number) - 1, computed in a way that is accurate even
+ * when the value of number is close to zero.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing expm1() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+// unexpected values to be passed to $arg argument
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+
+ // float data
+/*5*/ 10.5,
+ -10.5,
+ 12.3456789E4,
+ 12.3456789E-4,
+ .5,
+
+ // null data
+/*10*/ NULL,
+ null,
+
+ // boolean data
+/*12*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*16*/ "",
+ '',
+ array(),
+
+ // string data
+/*19*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // array data
+ array(),
+ array(1,2,4),
+
+ // object data
+/*24*/ new classA(),
+
+ // undefined data
+/*25*/ @$undefined_var,
+
+ // unset data
+/*26*/ @$unset_var,
+
+ // resource variable
+/*27*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of expm1()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(expm1($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing expm1() : usage variations ***
+
+-- Iteration 1 --
+float(0)
+
+-- Iteration 2 --
+float(1.718281828459)
+
+-- Iteration 3 --
+float(INF)
+
+-- Iteration 4 --
+float(-1)
+
+-- Iteration 5 --
+float(36314.502674247)
+
+-- Iteration 6 --
+float(-0.99997246355065)
+
+-- Iteration 7 --
+float(INF)
+
+-- Iteration 8 --
+float(0.0012353302826471)
+
+-- Iteration 9 --
+float(0.64872127070013)
+
+-- Iteration 10 --
+float(0)
+
+-- Iteration 11 --
+float(0)
+
+-- Iteration 12 --
+float(1.718281828459)
+
+-- Iteration 13 --
+float(0)
+
+-- Iteration 14 --
+float(1.718281828459)
+
+-- Iteration 15 --
+float(0)
+
+-- Iteration 16 --
+
+Warning: expm1() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 17 --
+
+Warning: expm1() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: expm1() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: expm1() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: expm1() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: expm1() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: expm1() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: expm1() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 24 --
+
+Warning: expm1() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 25 --
+float(0)
+
+-- Iteration 26 --
+float(0)
+
+-- Iteration 27 --
+
+Warning: expm1() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/floor_basic.phpt b/ext/standard/tests/math/floor_basic.phpt
new file mode 100644
index 0000000000..bbb8a2aa57
--- /dev/null
+++ b/ext/standard/tests/math/floor_basic.phpt
@@ -0,0 +1,108 @@
+--TEST--
+Test floor() - basic function test for floor()
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype : float floor ( float $value )
+ * Description: Round fractions down.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing floor() : basic functionality ***\n";
+$values = array(0,
+ -0,
+ 0.5,
+ -0.5,
+ 1,
+ -1,
+ 1.5,
+ -1.5,
+ 2.6,
+ -2.6,
+ 037,
+ 0x5F,
+ "10.5",
+ "-10.5",
+ "3.95E3",
+ "-3.95E3",
+ "039",
+ "0x5F",
+ true,
+ false,
+ null,
+ );
+
+foreach($values as $value) {
+ echo "\n-- floor $value --\n";
+ var_dump(floor($value));
+};
+
+?>
+===Done===
+--EXPECTF--
+*** Testing floor() : basic functionality ***
+
+-- floor 0 --
+float(0)
+
+-- floor 0 --
+float(0)
+
+-- floor 0.5 --
+float(0)
+
+-- floor -0.5 --
+float(-1)
+
+-- floor 1 --
+float(1)
+
+-- floor -1 --
+float(-1)
+
+-- floor 1.5 --
+float(1)
+
+-- floor -1.5 --
+float(-2)
+
+-- floor 2.6 --
+float(2)
+
+-- floor -2.6 --
+float(-3)
+
+-- floor 31 --
+float(31)
+
+-- floor 95 --
+float(95)
+
+-- floor 10.5 --
+float(10)
+
+-- floor -10.5 --
+float(-11)
+
+-- floor 3.95E3 --
+float(3950)
+
+-- floor -3.95E3 --
+float(-3950)
+
+-- floor 039 --
+float(39)
+
+-- floor 0x5F --
+float(95)
+
+-- floor 1 --
+float(1)
+
+-- floor --
+float(0)
+
+-- floor --
+float(0)
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/floor_error.phpt b/ext/standard/tests/math/floor_error.phpt
new file mode 100644
index 0000000000..f33902e6a0
--- /dev/null
+++ b/ext/standard/tests/math/floor_error.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Test floor() - error conditions - incorrect number of args
+--FILE--
+<?php
+/* Prototype : float floor ( float $value )
+ * Description: Round fractions down.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing floor() : error conditions ***\n";
+$arg_0 = 1.0;
+$extra_arg = 1;
+
+echo "\n-- Too many arguments --\n";
+var_dump(floor($arg_0, $extra_arg));
+
+echo "\n-- Too few arguments --\n";
+var_dump(floor());
+?>
+===Done===
+--EXPECTF--
+*** Testing floor() : error conditions ***
+
+-- Too many arguments --
+
+Warning: floor() expects exactly 1 parameter, 2 given in %s on line %d
+NULL
+
+-- Too few arguments --
+
+Warning: floor() expects exactly 1 parameter, 0 given in %s on line %d
+NULL
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/floor_variation1.phpt b/ext/standard/tests/math/floor_variation1.phpt
new file mode 100644
index 0000000000..baba53aab4
--- /dev/null
+++ b/ext/standard/tests/math/floor_variation1.phpt
@@ -0,0 +1,128 @@
+--TEST--
+Test floor() function : usage variations - different data types as $value arg
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype : float floor ( float $value )
+ * Description: Round fractions down.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing floor() : usage variations ***\n";
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// get a class
+class classA
+{
+}
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+// unexpected values to be passed to $value argument
+$inputs = array(
+ // null data
+/* 1*/ NULL,
+ null,
+
+ // boolean data
+/* 3*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/* 7*/ "",
+ '',
+ array(),
+
+ // string data
+/*10*/ "abcxyz",
+ 'abcxyz}',
+ $heredoc,
+
+ // object data
+/*13*/ new classA(),
+
+ // undefined data
+/*14*/ @$undefined_var,
+
+ // unset data
+/*15*/ @$unset_var,
+
+ // resource variable
+/*16*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of floor()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(floor($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing floor() : usage variations ***
+
+-- Iteration 1 --
+float(0)
+
+-- Iteration 2 --
+float(0)
+
+-- Iteration 3 --
+float(1)
+
+-- Iteration 4 --
+float(0)
+
+-- Iteration 5 --
+float(1)
+
+-- Iteration 6 --
+float(0)
+
+-- Iteration 7 --
+float(0)
+
+-- Iteration 8 --
+float(0)
+
+-- Iteration 9 --
+bool(false)
+
+-- Iteration 10 --
+float(0)
+
+-- Iteration 11 --
+float(0)
+
+-- Iteration 12 --
+float(0)
+
+-- Iteration 13 --
+
+Notice: Object of class classA could not be converted to int in %s on line %d
+float(1)
+
+-- Iteration 14 --
+float(0)
+
+-- Iteration 15 --
+float(0)
+
+-- Iteration 16 --
+float(%f)
+===Done===
diff --git a/ext/standard/tests/math/fmod_variation1.phpt b/ext/standard/tests/math/fmod_variation1.phpt
new file mode 100644
index 0000000000..9c6ab13fd3
--- /dev/null
+++ b/ext/standard/tests/math/fmod_variation1.phpt
@@ -0,0 +1,184 @@
+--TEST--
+Test fmod() function : usage variations - different data types as $x argument
+--FILE--
+<?php
+/* Prototype : float fmod ( float $x , float $y )
+ * Description: Returns the floating point remainder (modulo) of the division of the arguments.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing fmod() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of fmod()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(fmod($input, 2));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing fmod() : usage variations ***
+
+-- Iteration 1 --
+float(0)
+
+-- Iteration 2 --
+float(1)
+
+-- Iteration 3 --
+float(1)
+
+-- Iteration 4 --
+float(-1)
+
+-- Iteration 5 --
+float(1)
+
+-- Iteration 6 --
+float(0.5)
+
+-- Iteration 7 --
+float(-0.5)
+
+-- Iteration 8 --
+float(0)
+
+-- Iteration 9 --
+float(1.23456789E-9)
+
+-- Iteration 10 --
+float(0.5)
+
+-- Iteration 11 --
+float(0)
+
+-- Iteration 12 --
+float(0)
+
+-- Iteration 13 --
+float(1)
+
+-- Iteration 14 --
+float(0)
+
+-- Iteration 15 --
+float(1)
+
+-- Iteration 16 --
+float(0)
+
+-- Iteration 17 --
+
+Warning: fmod() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: fmod() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: fmod() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: fmod() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: fmod() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: fmod() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: fmod() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+float(0)
+
+-- Iteration 25 --
+float(0)
+
+-- Iteration 26 --
+
+Warning: fmod() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done===
diff --git a/ext/standard/tests/math/fmod_variation2.phpt b/ext/standard/tests/math/fmod_variation2.phpt
new file mode 100644
index 0000000000..bbeddb6876
--- /dev/null
+++ b/ext/standard/tests/math/fmod_variation2.phpt
@@ -0,0 +1,184 @@
+--TEST--
+Test fmod() function : usage variations - different data types as $y argument
+--FILE--
+<?php
+/* Prototype : float fmod ( float $x , float $y )
+ * Description: Returns the floating point remainder (modulo) of the division of the arguments.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing fmod() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of fmod()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(fmod(123456, $input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing fmod() : usage variations ***
+
+-- Iteration 1 --
+float(NAN)
+
+-- Iteration 2 --
+float(0)
+
+-- Iteration 3 --
+float(6)
+
+-- Iteration 4 --
+float(1516)
+
+-- Iteration 5 --
+float(123456)
+
+-- Iteration 6 --
+float(7.5)
+
+-- Iteration 7 --
+float(7.5)
+
+-- Iteration 8 --
+float(123456)
+
+-- Iteration 9 --
+float(2.3605615109341E-10)
+
+-- Iteration 10 --
+float(0)
+
+-- Iteration 11 --
+float(NAN)
+
+-- Iteration 12 --
+float(NAN)
+
+-- Iteration 13 --
+float(0)
+
+-- Iteration 14 --
+float(NAN)
+
+-- Iteration 15 --
+float(0)
+
+-- Iteration 16 --
+float(NAN)
+
+-- Iteration 17 --
+
+Warning: fmod() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: fmod() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: fmod() expects parameter 2 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: fmod() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: fmod() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: fmod() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: fmod() expects parameter 2 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+float(NAN)
+
+-- Iteration 25 --
+float(NAN)
+
+-- Iteration 26 --
+
+Warning: fmod() expects parameter 2 to be double, resource given in %s on line %d
+NULL
+===Done===
diff --git a/ext/standard/tests/math/hexdec_basic_64bit.phpt b/ext/standard/tests/math/hexdec_basic_64bit.phpt
new file mode 100644
index 0000000000..f1a2028b5c
--- /dev/null
+++ b/ext/standard/tests/math/hexdec_basic_64bit.phpt
@@ -0,0 +1,93 @@
+--TEST--
+Test hexdec() - basic function test hexdec()
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+echo "*** Testing hexdec() : basic functionality ***\n";
+
+$values = array(0x123abc,
+ 0x789DEF,
+ 0x7FFFFFFF,
+ 0x80000000,
+ '0x123abc',
+ '0x789DEF',
+ '0x7FFFFFFF',
+ '0x80000000',
+ '0x123XYZABC',
+ 311015,
+ '311015',
+ 31101.3,
+ 31.1013e5,
+ 011237,
+ '011237',
+ true,
+ false,
+ null);
+
+foreach($values as $value) {
+ echo "\n-- hexdec $value --\n";
+ var_dump(hexdec($value));
+};
+
+?>
+===Done===
+--EXPECTF--
+*** Testing hexdec() : basic functionality ***
+
+-- hexdec 1194684 --
+int(18433668)
+
+-- hexdec 7904751 --
+int(126895953)
+
+-- hexdec 2147483647 --
+int(142929835591)
+
+-- hexdec 2147483648 --
+int(142929835592)
+
+-- hexdec 0x123abc --
+int(1194684)
+
+-- hexdec 0x789DEF --
+int(7904751)
+
+-- hexdec 0x7FFFFFFF --
+int(2147483647)
+
+-- hexdec 0x80000000 --
+int(2147483648)
+
+-- hexdec 0x123XYZABC --
+int(1194684)
+
+-- hexdec 311015 --
+int(3215381)
+
+-- hexdec 311015 --
+int(3215381)
+
+-- hexdec 31101.3 --
+int(3215379)
+
+-- hexdec 3110130 --
+int(51446064)
+
+-- hexdec 4767 --
+int(18279)
+
+-- hexdec 011237 --
+int(70199)
+
+-- hexdec 1 --
+int(1)
+
+-- hexdec --
+int(0)
+
+-- hexdec --
+int(0)
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hexdec_error.phpt b/ext/standard/tests/math/hexdec_error.phpt
index dae83b8564..e9ab9e512d 100644
--- a/ext/standard/tests/math/hexdec_error.phpt
+++ b/ext/standard/tests/math/hexdec_error.phpt
@@ -2,10 +2,35 @@
Test hexdec() - wrong params test hexdec()
--FILE--
<?php
+/* Prototype : number hexdec ( string $hex_string )
+ * Description: Returns the decimal equivalent of the hexadecimal number represented by the hex_string argument.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hexdec() : error conditions ***\n";
+
+// get a class
+class classA
+{
+}
+
+echo "\n-- Incorrect number of arguments --\n";
hexdec();
hexdec('0x123abc',true);
+
+echo "\n-- Incorrect input --\n";
+hexdec(new classA());
+
?>
--EXPECTF--
+*** Testing hexdec() : error conditions ***
+
+-- Incorrect number of arguments --
+
Warning: hexdec() expects exactly 1 parameter, 0 given in %s on line %d
Warning: hexdec() expects exactly 1 parameter, 2 given in %s on line %d
+
+-- Incorrect input --
+
+Catchable fatal error: Object of class classA could not be converted to string in %s on line %d \ No newline at end of file
diff --git a/ext/standard/tests/math/hexdec_variation1.phpt b/ext/standard/tests/math/hexdec_variation1.phpt
new file mode 100644
index 0000000000..2b3f1b6ab3
--- /dev/null
+++ b/ext/standard/tests/math/hexdec_variation1.phpt
@@ -0,0 +1,168 @@
+--TEST--
+Test hexdec() function : usage variations - different data types as $number arg
+--INI--
+precision=14
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype : number hexdec ( string $hex_string )
+ * Description: Returns the decimal equivalent of the hexadecimal number represented by the hex_string argument.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hexdec() : usage variations ***\n";
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 4294967295, // largest decimal
+ 4294967296,
+
+ // float data
+/*7*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*12*/ NULL,
+ null,
+
+ // boolean data
+/*14*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*18*/ "",
+ '',
+ array(),
+
+ // string data
+/*21*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of hexdec()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(hexdec($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing hexdec() : usage variations ***
+
+-- Iteration 1 --
+int(0)
+
+-- Iteration 2 --
+int(1)
+
+-- Iteration 3 --
+int(74565)
+
+-- Iteration 4 --
+int(9029)
+
+-- Iteration 5 --
+float(285960729237)
+
+-- Iteration 6 --
+float(285960729238)
+
+-- Iteration 7 --
+int(261)
+
+-- Iteration 8 --
+int(261)
+
+-- Iteration 9 --
+float(20015998341120)
+
+-- Iteration 10 --
+float(1250999896553)
+
+-- Iteration 11 --
+int(5)
+
+-- Iteration 12 --
+int(0)
+
+-- Iteration 13 --
+int(0)
+
+-- Iteration 14 --
+int(1)
+
+-- Iteration 15 --
+int(0)
+
+-- Iteration 16 --
+int(1)
+
+-- Iteration 17 --
+int(0)
+
+-- Iteration 18 --
+int(0)
+
+-- Iteration 19 --
+int(0)
+
+-- Iteration 20 --
+
+Notice: Array to string conversion in %s on line %d
+int(170)
+
+-- Iteration 21 --
+int(2748)
+
+-- Iteration 22 --
+int(2748)
+
+-- Iteration 23 --
+int(2748)
+
+-- Iteration 24 --
+int(0)
+
+-- Iteration 25 --
+int(0)
+
+-- Iteration 26 --
+%s
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hexdec_variation1_64bit.phpt b/ext/standard/tests/math/hexdec_variation1_64bit.phpt
new file mode 100644
index 0000000000..65beb2d91b
--- /dev/null
+++ b/ext/standard/tests/math/hexdec_variation1_64bit.phpt
@@ -0,0 +1,168 @@
+--TEST--
+Test hexdec() function : usage variations - different data types as $number arg
+--INI--
+precision=14
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--FILE--
+<?php
+/* Prototype : number hexdec ( string $hex_string )
+ * Description: Returns the decimal equivalent of the hexadecimal number represented by the hex_string argument.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hexdec() : usage variations ***\n";
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 4294967295, // largest decimal
+ 4294967296,
+
+ // float data
+/*7*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*12*/ NULL,
+ null,
+
+ // boolean data
+/*14*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*18*/ "",
+ '',
+ array(),
+
+ // string data
+/*21*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of hexdec()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(hexdec($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing hexdec() : usage variations ***
+
+-- Iteration 1 --
+int(0)
+
+-- Iteration 2 --
+int(1)
+
+-- Iteration 3 --
+int(74565)
+
+-- Iteration 4 --
+int(9029)
+
+-- Iteration 5 --
+int(285960729237)
+
+-- Iteration 6 --
+int(285960729238)
+
+-- Iteration 7 --
+int(261)
+
+-- Iteration 8 --
+int(261)
+
+-- Iteration 9 --
+int(20015998341120)
+
+-- Iteration 10 --
+int(1250999896553)
+
+-- Iteration 11 --
+int(5)
+
+-- Iteration 12 --
+int(0)
+
+-- Iteration 13 --
+int(0)
+
+-- Iteration 14 --
+int(1)
+
+-- Iteration 15 --
+int(0)
+
+-- Iteration 16 --
+int(1)
+
+-- Iteration 17 --
+int(0)
+
+-- Iteration 18 --
+int(0)
+
+-- Iteration 19 --
+int(0)
+
+-- Iteration 20 --
+
+Notice: Array to string conversion in %s on line %d
+int(170)
+
+-- Iteration 21 --
+int(2748)
+
+-- Iteration 22 --
+int(2748)
+
+-- Iteration 23 --
+int(2748)
+
+-- Iteration 24 --
+int(0)
+
+-- Iteration 25 --
+int(0)
+
+-- Iteration 26 --
+%s
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hypot_basic.phpt b/ext/standard/tests/math/hypot_basic.phpt
new file mode 100644
index 0000000000..c280a23bb2
--- /dev/null
+++ b/ext/standard/tests/math/hypot_basic.phpt
@@ -0,0 +1,444 @@
+--TEST--
+Test hypot() - basic function test hypot()
+--INI--
+precision=14
+--FILE--
+<?php
+
+/* Prototype : float hypot ( float $x , float $y )
+ * Description: Calculate the length of the hypotenuse of a right-angle triangle.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hypot() : basic functionality ***\n";
+
+$valuesy = array(23,
+ -23,
+ 2.345e1,
+ -2.345e1,
+ 0x17,
+ 027,
+ "23",
+ "23.45",
+ "2.345e1",
+ "23abc",
+ null,
+ true,
+ false);
+
+$valuesx = array(33,
+ -33,
+ 3.345e1,
+ -3.345e1,
+ 0x27,
+ 037,
+ "33",
+ "43.45",
+ "1.345e1",
+ "33abc",
+ null,
+ true,
+ false);
+
+for ($i = 0; $i < count($valuesy); $i++) {
+ for ($j = 0; $j < count($valuesx); $j++) {
+ echo "\nY:$valuesy[$i] X:$valuesx[$j] ";
+ $res = hypot($valuesy[$i], $valuesx[$j]);
+ var_dump($res);
+ }
+}
+?>
+===Done===
+--EXPECTF--
+*** Testing hypot() : basic functionality ***
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:-33 float(40.224370722238)
+
+Y:23 X:33.45 float(40.594365372549)
+
+Y:23 X:-33.45 float(40.594365372549)
+
+Y:23 X:39 float(45.276925690687)
+
+Y:23 X:31 float(38.600518131238)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:43.45 float(49.162002603637)
+
+Y:23 X:1.345e1 float(26.643995571235)
+
+Y:23 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23 X: float(23)
+
+Y:23 X:1 float(23.021728866443)
+
+Y:23 X: float(23)
+
+Y:-23 X:33 float(40.224370722238)
+
+Y:-23 X:-33 float(40.224370722238)
+
+Y:-23 X:33.45 float(40.594365372549)
+
+Y:-23 X:-33.45 float(40.594365372549)
+
+Y:-23 X:39 float(45.276925690687)
+
+Y:-23 X:31 float(38.600518131238)
+
+Y:-23 X:33 float(40.224370722238)
+
+Y:-23 X:43.45 float(49.162002603637)
+
+Y:-23 X:1.345e1 float(26.643995571235)
+
+Y:-23 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:-23 X: float(23)
+
+Y:-23 X:1 float(23.021728866443)
+
+Y:-23 X: float(23)
+
+Y:23.45 X:33 float(40.483360779461)
+
+Y:23.45 X:-33 float(40.483360779461)
+
+Y:23.45 X:33.45 float(40.851009779441)
+
+Y:23.45 X:-33.45 float(40.851009779441)
+
+Y:23.45 X:39 float(45.507169764774)
+
+Y:23.45 X:31 float(38.870329301409)
+
+Y:23.45 X:33 float(40.483360779461)
+
+Y:23.45 X:43.45 float(49.374132903779)
+
+Y:23.45 X:1.345e1 float(27.033405260899)
+
+Y:23.45 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.483360779461)
+
+Y:23.45 X: float(23.45)
+
+Y:23.45 X:1 float(23.471312276905)
+
+Y:23.45 X: float(23.45)
+
+Y:-23.45 X:33 float(40.483360779461)
+
+Y:-23.45 X:-33 float(40.483360779461)
+
+Y:-23.45 X:33.45 float(40.851009779441)
+
+Y:-23.45 X:-33.45 float(40.851009779441)
+
+Y:-23.45 X:39 float(45.507169764774)
+
+Y:-23.45 X:31 float(38.870329301409)
+
+Y:-23.45 X:33 float(40.483360779461)
+
+Y:-23.45 X:43.45 float(49.374132903779)
+
+Y:-23.45 X:1.345e1 float(27.033405260899)
+
+Y:-23.45 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.483360779461)
+
+Y:-23.45 X: float(23.45)
+
+Y:-23.45 X:1 float(23.471312276905)
+
+Y:-23.45 X: float(23.45)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:-33 float(40.224370722238)
+
+Y:23 X:33.45 float(40.594365372549)
+
+Y:23 X:-33.45 float(40.594365372549)
+
+Y:23 X:39 float(45.276925690687)
+
+Y:23 X:31 float(38.600518131238)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:43.45 float(49.162002603637)
+
+Y:23 X:1.345e1 float(26.643995571235)
+
+Y:23 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23 X: float(23)
+
+Y:23 X:1 float(23.021728866443)
+
+Y:23 X: float(23)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:-33 float(40.224370722238)
+
+Y:23 X:33.45 float(40.594365372549)
+
+Y:23 X:-33.45 float(40.594365372549)
+
+Y:23 X:39 float(45.276925690687)
+
+Y:23 X:31 float(38.600518131238)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:43.45 float(49.162002603637)
+
+Y:23 X:1.345e1 float(26.643995571235)
+
+Y:23 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23 X: float(23)
+
+Y:23 X:1 float(23.021728866443)
+
+Y:23 X: float(23)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:-33 float(40.224370722238)
+
+Y:23 X:33.45 float(40.594365372549)
+
+Y:23 X:-33.45 float(40.594365372549)
+
+Y:23 X:39 float(45.276925690687)
+
+Y:23 X:31 float(38.600518131238)
+
+Y:23 X:33 float(40.224370722238)
+
+Y:23 X:43.45 float(49.162002603637)
+
+Y:23 X:1.345e1 float(26.643995571235)
+
+Y:23 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23 X: float(23)
+
+Y:23 X:1 float(23.021728866443)
+
+Y:23 X: float(23)
+
+Y:23.45 X:33 float(40.483360779461)
+
+Y:23.45 X:-33 float(40.483360779461)
+
+Y:23.45 X:33.45 float(40.851009779441)
+
+Y:23.45 X:-33.45 float(40.851009779441)
+
+Y:23.45 X:39 float(45.507169764774)
+
+Y:23.45 X:31 float(38.870329301409)
+
+Y:23.45 X:33 float(40.483360779461)
+
+Y:23.45 X:43.45 float(49.374132903779)
+
+Y:23.45 X:1.345e1 float(27.033405260899)
+
+Y:23.45 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.483360779461)
+
+Y:23.45 X: float(23.45)
+
+Y:23.45 X:1 float(23.471312276905)
+
+Y:23.45 X: float(23.45)
+
+Y:2.345e1 X:33 float(40.483360779461)
+
+Y:2.345e1 X:-33 float(40.483360779461)
+
+Y:2.345e1 X:33.45 float(40.851009779441)
+
+Y:2.345e1 X:-33.45 float(40.851009779441)
+
+Y:2.345e1 X:39 float(45.507169764774)
+
+Y:2.345e1 X:31 float(38.870329301409)
+
+Y:2.345e1 X:33 float(40.483360779461)
+
+Y:2.345e1 X:43.45 float(49.374132903779)
+
+Y:2.345e1 X:1.345e1 float(27.033405260899)
+
+Y:2.345e1 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.483360779461)
+
+Y:2.345e1 X: float(23.45)
+
+Y:2.345e1 X:1 float(23.471312276905)
+
+Y:2.345e1 X: float(23.45)
+
+Y:23abc X:33
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23abc X:-33
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23abc X:33.45
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.594365372549)
+
+Y:23abc X:-33.45
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.594365372549)
+
+Y:23abc X:39
+Notice: A non well formed numeric value encountered in %s on line %d
+float(45.276925690687)
+
+Y:23abc X:31
+Notice: A non well formed numeric value encountered in %s on line %d
+float(38.600518131238)
+
+Y:23abc X:33
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23abc X:43.45
+Notice: A non well formed numeric value encountered in %s on line %d
+float(49.162002603637)
+
+Y:23abc X:1.345e1
+Notice: A non well formed numeric value encountered in %s on line %d
+float(26.643995571235)
+
+Y:23abc X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+
+Notice: A non well formed numeric value encountered in %s on line %d
+float(40.224370722238)
+
+Y:23abc X:
+Notice: A non well formed numeric value encountered in %s on line %d
+float(23)
+
+Y:23abc X:1
+Notice: A non well formed numeric value encountered in %s on line %d
+float(23.021728866443)
+
+Y:23abc X:
+Notice: A non well formed numeric value encountered in %s on line %d
+float(23)
+
+Y: X:33 float(33)
+
+Y: X:-33 float(33)
+
+Y: X:33.45 float(33.45)
+
+Y: X:-33.45 float(33.45)
+
+Y: X:39 float(39)
+
+Y: X:31 float(31)
+
+Y: X:33 float(33)
+
+Y: X:43.45 float(43.45)
+
+Y: X:1.345e1 float(13.45)
+
+Y: X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(33)
+
+Y: X: float(0)
+
+Y: X:1 float(1)
+
+Y: X: float(0)
+
+Y:1 X:33 float(33.015148038438)
+
+Y:1 X:-33 float(33.015148038438)
+
+Y:1 X:33.45 float(33.464944344792)
+
+Y:1 X:-33.45 float(33.464944344792)
+
+Y:1 X:39 float(39.012818406262)
+
+Y:1 X:31 float(31.016124838542)
+
+Y:1 X:33 float(33.015148038438)
+
+Y:1 X:43.45 float(43.461505956421)
+
+Y:1 X:1.345e1 float(13.487123488721)
+
+Y:1 X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(33.015148038438)
+
+Y:1 X: float(1)
+
+Y:1 X:1 float(1.4142135623731)
+
+Y:1 X: float(1)
+
+Y: X:33 float(33)
+
+Y: X:-33 float(33)
+
+Y: X:33.45 float(33.45)
+
+Y: X:-33.45 float(33.45)
+
+Y: X:39 float(39)
+
+Y: X:31 float(31)
+
+Y: X:33 float(33)
+
+Y: X:43.45 float(43.45)
+
+Y: X:1.345e1 float(13.45)
+
+Y: X:33abc
+Notice: A non well formed numeric value encountered in %s on line %d
+float(33)
+
+Y: X: float(0)
+
+Y: X:1 float(1)
+
+Y: X: float(0)
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hypot_error.phpt b/ext/standard/tests/math/hypot_error.phpt
index 7f3081bc62..b357a3a809 100644
--- a/ext/standard/tests/math/hypot_error.phpt
+++ b/ext/standard/tests/math/hypot_error.phpt
@@ -1,16 +1,33 @@
--TEST--
Test hypot() - wrong params test hypot()
---INI--
-precision=14
--FILE--
<?php
+/* Prototype : float hypot ( float $x , float $y )
+ * Description: Calculate the length of the hypotenuse of a right-angle triangle.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hypot() : error conditions ***\n";
+
+echo "\n-- Testing hypot() function with less than expected no. of arguments --\n";
hypot();
hypot(36);
+
+echo "\n-- Testing hypot() function with more than expected no. of arguments --\n";
hypot(36,25,0);
+
?>
+===Done===
--EXPECTF--
+*** Testing hypot() : error conditions ***
+
+-- Testing hypot() function with less than expected no. of arguments --
+
Warning: hypot() expects exactly 2 parameters, 0 given in %s on line %d
Warning: hypot() expects exactly 2 parameters, 1 given in %s on line %d
+-- Testing hypot() function with more than expected no. of arguments --
+
Warning: hypot() expects exactly 2 parameters, 3 given in %s on line %d
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hypot_variation1.phpt b/ext/standard/tests/math/hypot_variation1.phpt
new file mode 100644
index 0000000000..5ea8b3f3fc
--- /dev/null
+++ b/ext/standard/tests/math/hypot_variation1.phpt
@@ -0,0 +1,185 @@
+--TEST--
+Test hypot() function : usage variations - different data types as $x argument
+--FILE--
+<?php
+/* Prototype : float hypot ( float $x , float $y )
+ * Description: Calculate the length of the hypotenuse of a right-angle triangle
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hypot() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+// unexpected values to be passed to $arg argument
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of hypot()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(hypot($input, 5));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing hypot() : usage variations ***
+
+-- Iteration 1 --
+float(5)
+
+-- Iteration 2 --
+float(5.0990195135928)
+
+-- Iteration 3 --
+float(12345.001012556)
+
+-- Iteration 4 --
+float(2345.0053304843)
+
+-- Iteration 5 --
+float(2147483647)
+
+-- Iteration 6 --
+float(11.629703349613)
+
+-- Iteration 7 --
+float(11.629703349613)
+
+-- Iteration 8 --
+float(123456789000)
+
+-- Iteration 9 --
+float(5)
+
+-- Iteration 10 --
+float(5.0249378105604)
+
+-- Iteration 11 --
+float(5)
+
+-- Iteration 12 --
+float(5)
+
+-- Iteration 13 --
+float(5.0990195135928)
+
+-- Iteration 14 --
+float(5)
+
+-- Iteration 15 --
+float(5.0990195135928)
+
+-- Iteration 16 --
+float(5)
+
+-- Iteration 17 --
+
+Warning: hypot() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: hypot() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: hypot() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: hypot() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: hypot() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: hypot() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: hypot() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+float(5)
+
+-- Iteration 25 --
+float(5)
+
+-- Iteration 26 --
+
+Warning: hypot() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/hypot_variation2.phpt b/ext/standard/tests/math/hypot_variation2.phpt
new file mode 100644
index 0000000000..a6294748b9
--- /dev/null
+++ b/ext/standard/tests/math/hypot_variation2.phpt
@@ -0,0 +1,185 @@
+--TEST--
+Test hypot() function : usage variations - different data types as $y argument
+--FILE--
+<?php
+/* Prototype : float hypot ( float $x , float $y )
+ * Description: Calculate the length of the hypotenuse of a right-angle triangle
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing hypot() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+// unexpected values to be passed to $arg argument
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of hypot()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(hypot(3, $input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing hypot() : usage variations ***
+
+-- Iteration 1 --
+float(3)
+
+-- Iteration 2 --
+float(3.1622776601684)
+
+-- Iteration 3 --
+float(12345.00036452)
+
+-- Iteration 4 --
+float(2345.0019189758)
+
+-- Iteration 5 --
+float(2147483647)
+
+-- Iteration 6 --
+float(10.920164833921)
+
+-- Iteration 7 --
+float(10.920164833921)
+
+-- Iteration 8 --
+float(123456789000)
+
+-- Iteration 9 --
+float(3)
+
+-- Iteration 10 --
+float(3.0413812651491)
+
+-- Iteration 11 --
+float(3)
+
+-- Iteration 12 --
+float(3)
+
+-- Iteration 13 --
+float(3.1622776601684)
+
+-- Iteration 14 --
+float(3)
+
+-- Iteration 15 --
+float(3.1622776601684)
+
+-- Iteration 16 --
+float(3)
+
+-- Iteration 17 --
+
+Warning: hypot() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: hypot() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: hypot() expects parameter 2 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: hypot() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: hypot() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: hypot() expects parameter 2 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: hypot() expects parameter 2 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+float(3)
+
+-- Iteration 25 --
+float(3)
+
+-- Iteration 26 --
+
+Warning: hypot() expects parameter 2 to be double, resource given in %s on line %d
+NULL
+===Done=== \ No newline at end of file
diff --git a/ext/standard/tests/math/is_finite_variation1.phpt b/ext/standard/tests/math/is_finite_variation1.phpt
new file mode 100644
index 0000000000..83786ad93f
--- /dev/null
+++ b/ext/standard/tests/math/is_finite_variation1.phpt
@@ -0,0 +1,184 @@
+--TEST--
+Test is_finite() function : usage variations - different data types as $val argument
+--FILE--
+<?php
+/* Prototype : bool is_finite ( float $val )
+ * Description: Finds whether a value is a legal finite number.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing is_finite() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of is_finite()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(is_finite($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing is_finite() : usage variations ***
+
+-- Iteration 1 --
+bool(true)
+
+-- Iteration 2 --
+bool(true)
+
+-- Iteration 3 --
+bool(true)
+
+-- Iteration 4 --
+bool(true)
+
+-- Iteration 5 --
+bool(true)
+
+-- Iteration 6 --
+bool(true)
+
+-- Iteration 7 --
+bool(true)
+
+-- Iteration 8 --
+bool(true)
+
+-- Iteration 9 --
+bool(true)
+
+-- Iteration 10 --
+bool(true)
+
+-- Iteration 11 --
+bool(true)
+
+-- Iteration 12 --
+bool(true)
+
+-- Iteration 13 --
+bool(true)
+
+-- Iteration 14 --
+bool(true)
+
+-- Iteration 15 --
+bool(true)
+
+-- Iteration 16 --
+bool(true)
+
+-- Iteration 17 --
+
+Warning: is_finite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: is_finite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: is_finite() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: is_finite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: is_finite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: is_finite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: is_finite() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+bool(true)
+
+-- Iteration 25 --
+bool(true)
+
+-- Iteration 26 --
+
+Warning: is_finite() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done===
diff --git a/ext/standard/tests/math/is_infinite_variation1.phpt b/ext/standard/tests/math/is_infinite_variation1.phpt
new file mode 100644
index 0000000000..0d8573d9b9
--- /dev/null
+++ b/ext/standard/tests/math/is_infinite_variation1.phpt
@@ -0,0 +1,184 @@
+--TEST--
+Test is_infinite() function : usage variations - different data types as $val argument
+--FILE--
+<?php
+/* Prototype : bool is_finite ( float $val )
+ * Description: Finds whether a value is infinite.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing is_infinite() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of is_infinite()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(is_infinite($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing is_infinite() : usage variations ***
+
+-- Iteration 1 --
+bool(false)
+
+-- Iteration 2 --
+bool(false)
+
+-- Iteration 3 --
+bool(false)
+
+-- Iteration 4 --
+bool(false)
+
+-- Iteration 5 --
+bool(false)
+
+-- Iteration 6 --
+bool(false)
+
+-- Iteration 7 --
+bool(false)
+
+-- Iteration 8 --
+bool(false)
+
+-- Iteration 9 --
+bool(false)
+
+-- Iteration 10 --
+bool(false)
+
+-- Iteration 11 --
+bool(false)
+
+-- Iteration 12 --
+bool(false)
+
+-- Iteration 13 --
+bool(false)
+
+-- Iteration 14 --
+bool(false)
+
+-- Iteration 15 --
+bool(false)
+
+-- Iteration 16 --
+bool(false)
+
+-- Iteration 17 --
+
+Warning: is_infinite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: is_infinite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: is_infinite() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: is_infinite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: is_infinite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: is_infinite() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: is_infinite() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+bool(false)
+
+-- Iteration 25 --
+bool(false)
+
+-- Iteration 26 --
+
+Warning: is_infinite() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done===
diff --git a/ext/standard/tests/math/is_nan_variation1.phpt b/ext/standard/tests/math/is_nan_variation1.phpt
new file mode 100644
index 0000000000..3eb642954e
--- /dev/null
+++ b/ext/standard/tests/math/is_nan_variation1.phpt
@@ -0,0 +1,184 @@
+--TEST--
+Test is_nan() function : usage variations - different data types as $val argument
+--FILE--
+<?php
+/* Prototype : bool is_nan ( float $val )
+ * Description: Finds whether a value is not a number.
+ * Source code: ext/standard/math.c
+ */
+
+echo "*** Testing is_nan() : usage variations ***\n";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// heredoc string
+$heredoc = <<<EOT
+abc
+xyz
+EOT;
+
+// get a class
+class classA
+{
+}
+
+// get a resource variable
+$fp = fopen(__FILE__, "r");
+
+$inputs = array(
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+ 2147483647,
+
+ // float data
+/*6*/ 10.5,
+ -10.5,
+ 12.3456789000e10,
+ 12.3456789000E-10,
+ .5,
+
+ // null data
+/*11*/ NULL,
+ null,
+
+ // boolean data
+/*13*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*17*/ "",
+ '',
+ array(),
+
+ // string data
+/*20*/ "abcxyz",
+ 'abcxyz',
+ $heredoc,
+
+ // object data
+/*23*/ new classA(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ // resource variable
+/*26*/ $fp
+);
+
+// loop through each element of $inputs to check the behaviour of is_nan()
+$iterator = 1;
+foreach($inputs as $input) {
+ echo "\n-- Iteration $iterator --\n";
+ var_dump(is_nan($input));
+ $iterator++;
+};
+fclose($fp);
+?>
+===Done===
+--EXPECTF--
+*** Testing is_nan() : usage variations ***
+
+-- Iteration 1 --
+bool(false)
+
+-- Iteration 2 --
+bool(false)
+
+-- Iteration 3 --
+bool(false)
+
+-- Iteration 4 --
+bool(false)
+
+-- Iteration 5 --
+bool(false)
+
+-- Iteration 6 --
+bool(false)
+
+-- Iteration 7 --
+bool(false)
+
+-- Iteration 8 --
+bool(false)
+
+-- Iteration 9 --
+bool(false)
+
+-- Iteration 10 --
+bool(false)
+
+-- Iteration 11 --
+bool(false)
+
+-- Iteration 12 --
+bool(false)
+
+-- Iteration 13 --
+bool(false)
+
+-- Iteration 14 --
+bool(false)
+
+-- Iteration 15 --
+bool(false)
+
+-- Iteration 16 --
+bool(false)
+
+-- Iteration 17 --
+
+Warning: is_nan() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 18 --
+
+Warning: is_nan() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 19 --
+
+Warning: is_nan() expects parameter 1 to be double, array given in %s on line %d
+NULL
+
+-- Iteration 20 --
+
+Warning: is_nan() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 21 --
+
+Warning: is_nan() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 22 --
+
+Warning: is_nan() expects parameter 1 to be double, string given in %s on line %d
+NULL
+
+-- Iteration 23 --
+
+Warning: is_nan() expects parameter 1 to be double, object given in %s on line %d
+NULL
+
+-- Iteration 24 --
+bool(false)
+
+-- Iteration 25 --
+bool(false)
+
+-- Iteration 26 --
+
+Warning: is_nan() expects parameter 1 to be double, resource given in %s on line %d
+NULL
+===Done===