make isInteger() unary
authorDenis Ovsienko <denis@ovsienko.info>
Fri, 18 May 2018 12:19:11 +0000 (13:19 +0100)
committerDenis Ovsienko <denis@ovsienko.info>
Fri, 18 May 2018 12:47:33 +0000 (13:47 +0100)
The only effect is on isUnsignedInteger() and the tests.

tests/PureFunctionTest.php
wwwroot/inc/functions.php

index 915b67e..787fce8 100644 (file)
@@ -361,7 +361,7 @@ class PureFunctionTest extends RTTestCase
                        array ('isInteger', -2, TRUE),
                        array ('isInteger', -1.5, FALSE),
                        array ('isInteger', -1, TRUE),
-                       array ('isInteger', 0, FALSE), // implicit 2nd argument
+                       array ('isInteger', 0, TRUE),
                        array ('isInteger', 0.0, FALSE),
                        array ('isInteger', 1, TRUE),
                        array ('isInteger', 1.5, FALSE),
@@ -373,7 +373,7 @@ class PureFunctionTest extends RTTestCase
                        array ('isInteger', '-2', TRUE),
                        array ('isInteger', '-1.5', FALSE),
                        array ('isInteger', '-1', TRUE),
-                       array ('isInteger', '0', FALSE), // implicit 2nd argument
+                       array ('isInteger', '0', TRUE),
                        array ('isInteger', '0.0', FALSE),
                        array ('isInteger', '1', TRUE),
                        array ('isInteger', '1.5', FALSE),
@@ -1085,47 +1085,6 @@ class PureFunctionTest extends RTTestCase
                        array ('goodModeForVSTRole', 'trunk', 'uplink', TRUE),
                        array ('goodModeForVSTRole', 'trunk', 'downlink', TRUE),
 
-                       array ('isInteger', -2, FALSE, TRUE),
-                       array ('isInteger', -1.5, FALSE, FALSE),
-                       array ('isInteger', -1, FALSE, TRUE),
-                       array ('isInteger', 0, FALSE, FALSE), // explicit 2nd argument
-                       array ('isInteger', 0.0, FALSE, FALSE),
-                       array ('isInteger', 1, FALSE, TRUE),
-                       array ('isInteger', 1.5, FALSE, FALSE),
-                       array ('isInteger', 2, FALSE, TRUE),
-                       array ('isInteger', NULL, FALSE, FALSE),
-                       array ('isInteger', FALSE, FALSE, FALSE),
-                       array ('isInteger', TRUE, FALSE, FALSE),
-                       array ('isInteger', '', FALSE, FALSE),
-                       array ('isInteger', '-2', FALSE, TRUE),
-                       array ('isInteger', '-1.5', FALSE, FALSE),
-                       array ('isInteger', '-1', FALSE, TRUE),
-                       array ('isInteger', '0', FALSE, FALSE), // explicit 2nd argument
-                       array ('isInteger', '0.0', FALSE, FALSE),
-                       array ('isInteger', '1', FALSE, TRUE),
-                       array ('isInteger', '1.5', FALSE, FALSE),
-                       array ('isInteger', '2', FALSE, TRUE),
-                       array ('isInteger', -2, TRUE, TRUE),
-                       array ('isInteger', -1.5, TRUE, FALSE),
-                       array ('isInteger', -1, TRUE, TRUE),
-                       array ('isInteger', 0, TRUE, TRUE), // explicit 2nd argument
-                       array ('isInteger', 0.0, TRUE, FALSE),
-                       array ('isInteger', 1, TRUE, TRUE),
-                       array ('isInteger', 1.5, TRUE, FALSE),
-                       array ('isInteger', 2, TRUE, TRUE),
-                       array ('isInteger', NULL, TRUE, FALSE),
-                       array ('isInteger', FALSE, TRUE, FALSE),
-                       array ('isInteger', TRUE, TRUE, FALSE),
-                       array ('isInteger', '', TRUE, FALSE),
-                       array ('isInteger', '-2', TRUE, TRUE),
-                       array ('isInteger', '-1.5', TRUE, FALSE),
-                       array ('isInteger', '-1', TRUE, TRUE),
-                       array ('isInteger', '0', TRUE, TRUE), // explicit 2nd argument
-                       array ('isInteger', '0.0', TRUE, FALSE),
-                       array ('isInteger', '1', TRUE, TRUE),
-                       array ('isInteger', '1.5', TRUE, FALSE),
-                       array ('isInteger', '2', TRUE, TRUE),
-
                        array ('isUnsignedInteger', -2, FALSE, FALSE),
                        array ('isUnsignedInteger', -1.5, FALSE, FALSE),
                        array ('isUnsignedInteger', -1, FALSE, FALSE),
index dc1951d..5e02adf 100644 (file)
@@ -187,19 +187,18 @@ function assertUIntArg ($argname, $allow_zero = FALSE)
 
 // Tell whether the argument is a decimal integer (or, alternatively, a numeric
 // string with a decimal integer).
-function isInteger ($arg, $allow_zero = FALSE)
+function isInteger ($arg)
 {
        // In PHP 7.0.0 and later is_numeric() rejects a string that contains
        // a hexadecimal number, help PHP 5 achieve the same result here.
        return is_numeric ($arg) &&
                (! is_string ($arg) || FALSE === mb_strstr ($arg, '0x')) &&
-               is_int (0 + $arg) &&
-               ($allow_zero || $arg != 0);
+               is_int (0 + $arg);
 }
 
 function isUnsignedInteger ($arg, $allow_zero = FALSE)
 {
-       return isInteger ($arg, $allow_zero) && $arg >= 0;
+       return isInteger ($arg) && $arg >= ($allow_zero ? 0 : 1);
 }
 
 function isHTMLColor ($color)