This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/tests/Symfony/Tests/Components/Finder/Comparator/NumberComparatorTest.php

72 lines
2.5 KiB
PHP
Raw Normal View History

2010-04-21 08:31:18 +01:00
<?php
/*
2010-04-25 16:06:54 +01:00
* This file is part of the Symfony package.
2010-04-21 08:31:18 +01:00
*
* (c) Fabien Potencier <fabien.potencier@symfony-project.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Tests\Components\Finder\Comparator;
2010-04-21 08:31:18 +01:00
use Symfony\Components\Finder\Comparator\NumberComparator;
2010-04-21 08:31:18 +01:00
class NumberComparatorTest extends \PHPUnit_Framework_TestCase
2010-04-21 08:31:18 +01:00
{
public function testConstructor()
2010-04-21 08:31:18 +01:00
{
try {
new NumberComparator('foobar');
$this->fail('__construct() throws an \InvalidArgumentException if the test expression is not valid.');
} catch (\Exception $e) {
$this->assertInstanceOf('InvalidArgumentException', $e, '__construct() throws an \InvalidArgumentException if the test expression is not valid.');
}
2010-04-21 08:31:18 +01:00
}
/**
* @dataProvider getTestData
*/
public function testTest($test, $match, $noMatch)
2010-04-21 08:31:18 +01:00
{
$c = new NumberComparator($test);
foreach ($match as $m) {
$this->assertTrue($c->test($m), '->test() tests a string against the expression');
}
2010-04-21 08:31:18 +01:00
foreach ($noMatch as $m) {
$this->assertFalse($c->test($m), '->test() tests a string against the expression');
}
2010-04-21 08:31:18 +01:00
}
public function getTestData()
{
return array(
array('< 1000', array('500', '999'), array('1000', '1500')),
2010-04-21 08:31:18 +01:00
array('< 1K', array('500', '999'), array('1000', '1500')),
array('<1k', array('500', '999'), array('1000', '1500')),
array(' < 1 K ', array('500', '999'), array('1000', '1500')),
array('<= 1K', array('1000'), array('1001')),
array('> 1K', array('1001'), array('1000')),
array('>= 1K', array('1000'), array('999')),
2010-04-21 08:31:18 +01:00
array('< 1KI', array('500', '1023'), array('1024', '1500')),
array('<= 1KI', array('1024'), array('1025')),
array('> 1KI', array('1025'), array('1024')),
array('>= 1KI', array('1024'), array('1023')),
2010-04-21 08:31:18 +01:00
array('1KI', array('1024'), array('1023', '1025')),
array('==1KI', array('1024'), array('1023', '1025')),
2010-04-21 08:31:18 +01:00
array('==1m', array('1000000'), array('999999', '1000001')),
array('==1mi', array(1024*1024), array(1024*1024-1, 1024*1024+1)),
2010-04-21 08:31:18 +01:00
array('==1g', array('1000000000'), array('999999999', '1000000001')),
array('==1gi', array(1024*1024*1024), array(1024*1024*1024-1, 1024*1024*1024+1)),
);
}
2010-04-21 08:31:18 +01:00
}