mirror of
https://github.com/vlucas/valitron.git
synced 2025-12-30 23:01:52 +00:00
Merge pull request #61 from JustinHook/master
Fixed issue with validating decimals with Min/Max rules
This commit is contained in:
commit
b0d65877b1
@ -224,7 +224,7 @@ class Validator
|
||||
*/
|
||||
protected function validateMin($field, $value, $params)
|
||||
{
|
||||
return (int) $value >= $params[0];
|
||||
return !(bccomp($params[0], $value, 14) == 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -238,7 +238,7 @@ class Validator
|
||||
*/
|
||||
protected function validateMax($field, $value, $params)
|
||||
{
|
||||
return (int) $value <= $params[0];
|
||||
return !(bccomp($value, $params[0], 14) == 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -152,6 +152,21 @@ class ValidateTest extends BaseTestCase
|
||||
$v = new Validator(array('num' => 5));
|
||||
$v->rule('min', 'num', 2);
|
||||
$this->assertTrue($v->validate());
|
||||
|
||||
$v = new Validator(array('num' => 5));
|
||||
$v->rule('min', 'num', 5);
|
||||
$this->assertTrue($v->validate());
|
||||
}
|
||||
|
||||
public function testMinValidFloat()
|
||||
{
|
||||
$v = new Validator(array('num' => 0.9));
|
||||
$v->rule('min', 'num', 0.5);
|
||||
$this->assertTrue($v->validate());
|
||||
|
||||
$v = new Validator(array('num' => 1 - 0.81));
|
||||
$v->rule('min', 'num', 0.19);
|
||||
$this->assertTrue($v->validate());
|
||||
}
|
||||
|
||||
public function testMinInvalid()
|
||||
@ -161,11 +176,33 @@ class ValidateTest extends BaseTestCase
|
||||
$this->assertFalse($v->validate());
|
||||
}
|
||||
|
||||
public function testMinInvalidFloat()
|
||||
{
|
||||
$v = new Validator(array('num' => 0.5));
|
||||
$v->rule('min', 'num', 0.9);
|
||||
$this->assertFalse($v->validate());
|
||||
}
|
||||
|
||||
public function testMaxValid()
|
||||
{
|
||||
$v = new Validator(array('num' => 5));
|
||||
$v->rule('max', 'num', 6);
|
||||
$this->assertTrue($v->validate());
|
||||
|
||||
$v = new Validator(array('num' => 5));
|
||||
$v->rule('max', 'num', 5);
|
||||
$this->assertTrue($v->validate());
|
||||
}
|
||||
|
||||
public function testMaxValidFloat()
|
||||
{
|
||||
$v = new Validator(array('num' => 0.4));
|
||||
$v->rule('max', 'num', 0.5);
|
||||
$this->assertTrue($v->validate());
|
||||
|
||||
$v = new Validator(array('num' => 1 - 0.83));
|
||||
$v->rule('max', 'num', 0.17);
|
||||
$this->assertTrue($v->validate());
|
||||
}
|
||||
|
||||
public function testMaxInvalid()
|
||||
@ -175,6 +212,13 @@ class ValidateTest extends BaseTestCase
|
||||
$this->assertFalse($v->validate());
|
||||
}
|
||||
|
||||
public function testMaxInvalidFloat()
|
||||
{
|
||||
$v = new Validator(array('num' => 0.9));
|
||||
$v->rule('max', 'num', 0.5);
|
||||
$this->assertFalse($v->validate());
|
||||
}
|
||||
|
||||
public function testInValid()
|
||||
{
|
||||
$v = new Validator(array('color' => 'green'));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user