NumberComparatorTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Tests\Component\Finder\Comparator;
  11. use Symfony\Component\Finder\Comparator\NumberComparator;
  12. class NumberComparatorTest extends \PHPUnit_Framework_TestCase
  13. {
  14. public function testConstructor()
  15. {
  16. try {
  17. new NumberComparator('foobar');
  18. $this->fail('__construct() throws an \InvalidArgumentException if the test expression is not valid.');
  19. } catch (\Exception $e) {
  20. $this->assertInstanceOf('InvalidArgumentException', $e, '__construct() throws an \InvalidArgumentException if the test expression is not valid.');
  21. }
  22. }
  23. /**
  24. * @dataProvider getTestData
  25. */
  26. public function testTest($test, $match, $noMatch)
  27. {
  28. $c = new NumberComparator($test);
  29. foreach ($match as $m) {
  30. $this->assertTrue($c->test($m), '->test() tests a string against the expression');
  31. }
  32. foreach ($noMatch as $m) {
  33. $this->assertFalse($c->test($m), '->test() tests a string against the expression');
  34. }
  35. }
  36. public function getTestData()
  37. {
  38. return array(
  39. array('< 1000', array('500', '999'), array('1000', '1500')),
  40. array('< 1K', array('500', '999'), array('1000', '1500')),
  41. array('<1k', array('500', '999'), array('1000', '1500')),
  42. array(' < 1 K ', array('500', '999'), array('1000', '1500')),
  43. array('<= 1K', array('1000'), array('1001')),
  44. array('> 1K', array('1001'), array('1000')),
  45. array('>= 1K', array('1000'), array('999')),
  46. array('< 1KI', array('500', '1023'), array('1024', '1500')),
  47. array('<= 1KI', array('1024'), array('1025')),
  48. array('> 1KI', array('1025'), array('1024')),
  49. array('>= 1KI', array('1024'), array('1023')),
  50. array('1KI', array('1024'), array('1023', '1025')),
  51. array('==1KI', array('1024'), array('1023', '1025')),
  52. array('==1m', array('1000000'), array('999999', '1000001')),
  53. array('==1mi', array(1024*1024), array(1024*1024-1, 1024*1024+1)),
  54. array('==1g', array('1000000000'), array('999999999', '1000000001')),
  55. array('==1gi', array(1024*1024*1024), array(1024*1024*1024-1, 1024*1024*1024+1)),
  56. );
  57. }
  58. }