summaryrefslogtreecommitdiff
path: root/ext/standard/tests/general_functions/is_numeric.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/general_functions/is_numeric.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/general_functions/is_numeric.phpt')
-rw-r--r--ext/standard/tests/general_functions/is_numeric.phpt387
1 files changed, 387 insertions, 0 deletions
diff --git a/ext/standard/tests/general_functions/is_numeric.phpt b/ext/standard/tests/general_functions/is_numeric.phpt
new file mode 100644
index 0000000..e6edffd
--- /dev/null
+++ b/ext/standard/tests/general_functions/is_numeric.phpt
@@ -0,0 +1,387 @@
+--TEST--
+Test is_numeric() function
+--FILE--
+<?php
+/* Prototype: bool is_numeric ( mixed $var );
+ * Description: Finds whether a variable is a number or a numeric string
+ */
+
+echo "*** Testing is_numeric() with valid numeric values ***\n";
+// different valid numeric vlaues
+$numerics = array(
+ 0,
+ 1,
+ -1,
+ -0,
+ +0,
+ 0.0,
+ -0.0,
+ +0.0,
+ 1.0,
+ -1.0,
+ +1.0,
+ .5,
+ -.5,
+ +.5,
+ -.5e-2,
+ .5e-2,
+ +.5e-2,
+ +.5E+2,
+ 0.70000000,
+ +0.70000000,
+ -0.70000000,
+ 1234567890123456,
+ -1234567890123456,
+ 984847472827282718178,
+ -984847472827282718178,
+ 123.56e30,
+ 123.56E30,
+ 426.45e-30,
+ 5657.3E-40,
+ 3486.36e+40,
+ 3486.36E+90,
+ -3486.36E+10,
+ -3486.36e+80,
+ -426.45e-50,
+ -426.45E-99,
+ 1e2,
+ -1e2,
+ -1e-2,
+ +1e2,
+ +1e+2,
+ +1e-2,
+ +1e+2,
+ 2245555555555555.444,
+ 1.444444444444444444,
+ 0xff, // hexa decimal numbers
+ 0xFF,
+ //0x1111111111111111111111,
+ -0x1111111,
+ +0x6698319,
+ 01000000000000000000000,
+ 0123,
+ 0345900,
+ -0200001,
+ -0200001.7,
+ 0200001.7,
+ +0200001,
+ +0200001.7,
+ +0200001.7,
+ 2.00000000000000000000001, // a float value with more precision points
+ "1", // numeric in the form of string
+ "-1",
+ "1e2",
+ " 1",
+ "2974394749328742328432",
+ "-1e-2",
+ '1',
+ '-1',
+ '1e2',
+ ' 1',
+ '2974394749328742328432',
+ '-1e-2',
+ "0xff",
+ '0xff',
+ "0123",
+ '0123',
+ "-0123",
+ "+0123",
+ '-0123',
+ '+0123'
+);
+/* loop to check that is_numeric() recognizes different
+ numeric values, expected output: bool(true) */
+$loop_counter = 1;
+foreach ($numerics as $num ) {
+ echo "-- Iteration $loop_counter --\n"; $loop_counter++;
+ var_dump( is_numeric($num) );
+}
+
+echo "\n*** Testing is_numeric() on non numeric types ***\n";
+
+// get a resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// unset variable
+$unset_var = 10.5;
+unset ($unset_var);
+
+// other types in a array
+$not_numerics = array(
+ "-0x80001",
+ "+0x80001",
+ "-0x80001.5",
+ "0x80001.5",
+ new stdclass, // object
+ $fp, // resource
+ $dfp,
+ array(),
+ array("string"),
+ "",
+ "1 ",
+ "- 1",
+ "1.2.4",
+ "1e7.6",
+ "3FF",
+ "20 test",
+ "3.6test",
+ "1,000",
+ "NULL",
+ "true",
+ true,
+ NULL,
+ null,
+ TRUE,
+ FALSE,
+ false,
+ @$unset_var, // unset variable
+ @$undefined_var
+);
+/* loop through the $not_numerics to see working of
+ is_numeric() on non numeric values, expected output: bool(false) */
+$loop_counter = 1;
+foreach ($not_numerics as $type ) {
+ echo "-- Iteration $loop_counter --\n"; $loop_counter++;
+ var_dump( is_numeric($type) );
+}
+
+echo "\n*** Testing error conditions ***\n";
+//Zero argument
+var_dump( is_numeric() );
+
+//arguments more than expected
+var_dump( is_numeric("10", "20") );
+
+echo "Done\n";
+
+// close the resources used
+fclose($fp);
+closedir($dfp);
+
+?>
+--EXPECTF--
+*** Testing is_numeric() with valid numeric values ***
+-- 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 --
+bool(true)
+-- Iteration 18 --
+bool(true)
+-- Iteration 19 --
+bool(true)
+-- Iteration 20 --
+bool(true)
+-- Iteration 21 --
+bool(true)
+-- Iteration 22 --
+bool(true)
+-- Iteration 23 --
+bool(true)
+-- Iteration 24 --
+bool(true)
+-- Iteration 25 --
+bool(true)
+-- Iteration 26 --
+bool(true)
+-- Iteration 27 --
+bool(true)
+-- Iteration 28 --
+bool(true)
+-- Iteration 29 --
+bool(true)
+-- Iteration 30 --
+bool(true)
+-- Iteration 31 --
+bool(true)
+-- Iteration 32 --
+bool(true)
+-- Iteration 33 --
+bool(true)
+-- Iteration 34 --
+bool(true)
+-- Iteration 35 --
+bool(true)
+-- Iteration 36 --
+bool(true)
+-- Iteration 37 --
+bool(true)
+-- Iteration 38 --
+bool(true)
+-- Iteration 39 --
+bool(true)
+-- Iteration 40 --
+bool(true)
+-- Iteration 41 --
+bool(true)
+-- Iteration 42 --
+bool(true)
+-- Iteration 43 --
+bool(true)
+-- Iteration 44 --
+bool(true)
+-- Iteration 45 --
+bool(true)
+-- Iteration 46 --
+bool(true)
+-- Iteration 47 --
+bool(true)
+-- Iteration 48 --
+bool(true)
+-- Iteration 49 --
+bool(true)
+-- Iteration 50 --
+bool(true)
+-- Iteration 51 --
+bool(true)
+-- Iteration 52 --
+bool(true)
+-- Iteration 53 --
+bool(true)
+-- Iteration 54 --
+bool(true)
+-- Iteration 55 --
+bool(true)
+-- Iteration 56 --
+bool(true)
+-- Iteration 57 --
+bool(true)
+-- Iteration 58 --
+bool(true)
+-- Iteration 59 --
+bool(true)
+-- Iteration 60 --
+bool(true)
+-- Iteration 61 --
+bool(true)
+-- Iteration 62 --
+bool(true)
+-- Iteration 63 --
+bool(true)
+-- Iteration 64 --
+bool(true)
+-- Iteration 65 --
+bool(true)
+-- Iteration 66 --
+bool(true)
+-- Iteration 67 --
+bool(true)
+-- Iteration 68 --
+bool(true)
+-- Iteration 69 --
+bool(true)
+-- Iteration 70 --
+bool(true)
+-- Iteration 71 --
+bool(true)
+-- Iteration 72 --
+bool(true)
+-- Iteration 73 --
+bool(true)
+-- Iteration 74 --
+bool(true)
+-- Iteration 75 --
+bool(true)
+-- Iteration 76 --
+bool(true)
+-- Iteration 77 --
+bool(true)
+-- Iteration 78 --
+bool(true)
+
+*** Testing is_numeric() on non numeric types ***
+-- 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 --
+bool(false)
+-- Iteration 18 --
+bool(false)
+-- Iteration 19 --
+bool(false)
+-- Iteration 20 --
+bool(false)
+-- Iteration 21 --
+bool(false)
+-- Iteration 22 --
+bool(false)
+-- Iteration 23 --
+bool(false)
+-- Iteration 24 --
+bool(false)
+-- Iteration 25 --
+bool(false)
+-- Iteration 26 --
+bool(false)
+-- Iteration 27 --
+bool(false)
+-- Iteration 28 --
+bool(false)
+
+*** Testing error conditions ***
+
+Warning: is_numeric() expects exactly 1 parameter, 0 given in %s on line %d
+NULL
+
+Warning: is_numeric() expects exactly 1 parameter, 2 given in %s on line %d
+NULL
+Done