1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
--TEST--
Decimal::isEven
--SKIPIF--
<?php
if (!extension_loaded("decimal")) echo "skip";
?>
--FILE--
<?php
use Decimal\Decimal;
$tests = [
/* Number, expected */
[ "1E-50", false],
["-1E-50", false],
[ "2.0000000000000000000000000001", true], // truncated
["-2.0000000000000000000000000001", true], // truncated
[ "2.000000000000000000000000001", false], // not truncated
["-2.000000000000000000000000001", false], // not truncated
[0, true],
[1, false],
[2, true],
[3, false],
[-1, false],
[-2, true],
[-3, false],
["1.5", false],
["2.5", false],
["3.5", false],
["-INF", false],
["INF", false],
["NAN", false],
];
foreach ($tests as $test) {
$number = $test[0];
$expect = $test[1];
$result = (new Decimal($number))->isEven();
if ((string) $result !== (string) $expect) {
print_r(compact("number", "result", "expect"));
}
}
?>
--EXPECTF--
Warning: Loss of data on string conversion in %s on line %d
Warning: Loss of data on string conversion in %s on line %d
|