diff options
Diffstat (limited to 'ext/standard/tests/general_functions/is_numeric.phpt')
-rw-r--r-- | ext/standard/tests/general_functions/is_numeric.phpt | 387 |
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 |