assertSame($exp, I::int($value), "Test returned ".decbin(I::int($value))." for value: ".var_export($value, true)); } } public function testGetStringInfo() { $tests = [ [null, I::NULL], ["", I::VALID | I::EMPTY], [1, I::VALID], [PHP_INT_MAX, I::VALID], [1.0, I::VALID], ["1.0", I::VALID], ["001.0", I::VALID], ["1.0e2", I::VALID], ["1", I::VALID], ["001", I::VALID], ["1e2", I::VALID], ["+1.0", I::VALID], ["+001.0", I::VALID], ["+1.0e2", I::VALID], ["+1", I::VALID], ["+001", I::VALID], ["+1e2", I::VALID], [0, I::VALID], ["0", I::VALID], ["000", I::VALID], [0.0, I::VALID], ["0.0", I::VALID], ["000.000", I::VALID], ["+0", I::VALID], ["+000", I::VALID], ["+0.0", I::VALID], ["+000.000", I::VALID], [-1, I::VALID], [-1.0, I::VALID], ["-1.0", I::VALID], ["-001.0", I::VALID], ["-1.0e2", I::VALID], ["-1", I::VALID], ["-001", I::VALID], ["-1e2", I::VALID], [-0, I::VALID], ["-0", I::VALID], ["-000", I::VALID], [-0.0, I::VALID], ["-0.0", I::VALID], ["-000.000", I::VALID], [false, 0], [true, 0], ["on", I::VALID], ["off", I::VALID], ["yes", I::VALID], ["no", I::VALID], ["true", I::VALID], ["false", I::VALID], [INF, 0], [-INF, 0], [NAN, 0], [[], 0], ["some string", I::VALID], [" ", I::VALID | I::WHITE], [new \StdClass, 0], [new StrClass(""), I::VALID | I::EMPTY], [new StrClass("1"), I::VALID], [new StrClass("0"), I::VALID], [new StrClass("-1"), I::VALID], [new StrClass("Msg"), I::VALID], [new StrClass(" "), I::VALID | I::WHITE], ]; foreach ($tests as $test) { list($value, $exp) = $test; $this->assertSame($exp, I::str($value), "Test returned ".decbin(I::str($value))." for value: ".var_export($value, true)); } } public function testValidateDatabaseIdentifier() { $tests = [ [null, false, true], ["", false, true], [1, true, true], [PHP_INT_MAX, true, true], [1.0, true, true], ["1.0", true, true], ["001.0", true, true], ["1.0e2", true, true], ["1", true, true], ["001", true, true], ["1e2", true, true], ["+1.0", true, true], ["+001.0", true, true], ["+1.0e2", true, true], ["+1", true, true], ["+001", true, true], ["+1e2", true, true], [0, false, true], ["0", false, true], ["000", false, true], [0.0, false, true], ["0.0", false, true], ["000.000", false, true], ["+0", false, true], ["+000", false, true], ["+0.0", false, true], ["+000.000", false, true], [-1, false, false], [-1.0, false, false], ["-1.0", false, false], ["-001.0", false, false], ["-1.0e2", false, false], ["-1", false, false], ["-001", false, false], ["-1e2", false, false], [-0, false, true], ["-0", false, true], ["-000", false, true], [-0.0, false, true], ["-0.0", false, true], ["-000.000", false, true], [false, false, false], [true, false, false], ["on", false, false], ["off", false, false], ["yes", false, false], ["no", false, false], ["true", false, false], ["false", false, false], [INF, false, false], [-INF, false, false], [NAN, false, false], [[], false, false], ["some string", false, false], [" ", false, false], [new \StdClass, false, false], [new StrClass(""), false, true], [new StrClass("1"), true, true], [new StrClass("0"), false, true], [new StrClass("-1"), false, false], [new StrClass("Msg"), false, false], [new StrClass(" "), false, false], ]; foreach ($tests as $test) { list($value, $exp, $expNull) = $test; $this->assertSame($exp, I::id($value), "Non-null test failed for value: ".var_export($value, true)); $this->assertSame($expNull, I::id($value, true), "Null test failed for value: ".var_export($value, true)); } } public function testValidateBoolean() { $tests = [ [null, null], ["", false], [1, true], [PHP_INT_MAX, null], [1.0, true], ["1.0", true], ["001.0", true], ["1.0e2", null], ["1", true], ["001", true], ["1e2", null], ["+1.0", true], ["+001.0", true], ["+1.0e2", null], ["+1", true], ["+001", true], ["+1e2", null], [0, false], ["0", false], ["000", false], [0.0, false], ["0.0", false], ["000.000", false], ["+0", false], ["+000", false], ["+0.0", false], ["+000.000", false], [-1, true], [-1.0, true], ["-1.0", true], ["-001.0", true], ["-1.0e2", null], ["-1", true], ["-001", true], ["-1e2", null], [-0, false], ["-0", false], ["-000", false], [-0.0, false], ["-0.0", false], ["-000.000", false], [false, false], [true, true], ["on", true], ["off", false], ["yes", true], ["no", false], ["true", true], ["false", false], [INF, null], [-INF, null], [NAN, null], [[], null], ["some string", null], [" ", null], [new \StdClass, null], [new StrClass(""), false], [new StrClass("1"), true], [new StrClass("0"), false], [new StrClass("-1"), true], [new StrClass("Msg"), null], [new StrClass(" "), null], ]; foreach ($tests as $test) { list($value, $exp) = $test; $this->assertSame($exp, I::bool($value), "Null Test failed for value: ".var_export($value, true)); if (is_null($exp)) { $this->assertTrue(I::bool($value, true), "True Test failed for value: ".var_export($value, true)); $this->assertFalse(I::bool($value, false), "False Test failed for value: ".var_export($value, true)); } } } }