PHP has some weird constructs regarding NAN
Note this repl output:
>>> Assert::that(NAN)->integer() // expected behaviour
Assert/InvalidArgumentException with message 'Value "NAN" is not an integer.'
>>> Assert::that(NAN)->between(1,3) // expected InvalidArgumentException. Returns chain
=> Assert\AssertionChain {#4203}
>>> NAN > 0
=> false
>>> NAN > -999
=> false
>>> NAN < 999
=> false
>>> NAN < -999
=> false
>>> is_float(NAN)
=> true
>>> is_numeric(NAN)
=> true
>>> is_integer(NAN)
=> false
>>> is_integer(INF)
=> false
>>> is_float(INF)
=> true
We're dealing with code like this:
public function __construct(float $longitude, float $latitude, string $city)
{
Assert::that($longitude)->between(-180, 180);
Even php itself issues no Exception when passing NAN into this constructor with float typehint.
Would it be feasible to add a isNotNan check and/or update existing assertions to take this (inconsistency?) into account?
Hey,
Thanks for this handy package.
PHP has some weird constructs regarding NAN Note this repl output:
We're dealing with code like this:
Even php itself issues no Exception when passing NAN into this constructor with
float
typehint. Would it be feasible to add aisNotNan
check and/or update existing assertions to take this (inconsistency?) into account?