/var/www/hkosl.com/b2b2c/webadmin/libraies/symfony/finder/Tests/Comparator/NumberComparatorTest.php


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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Finder\Tests\Comparator;

use 
Symfony\Component\Finder\Comparator\NumberComparator;

class 
NumberComparatorTest extends \PHPUnit_Framework_TestCase
{
    
/**
     * @dataProvider getConstructorTestData
     */
    
public function testConstructor($successes$failures)
    {
        foreach (
$successes as $s) {
            new 
NumberComparator($s);
        }

        foreach (
$failures as $f) {
            try {
                new 
NumberComparator($f);
                
$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.');
            }
        }
    }

    
/**
     * @dataProvider getTestData
     */
    
public function testTest($test$match$noMatch)
    {
        
$c = new NumberComparator($test);

        foreach (
$match as $m) {
            
$this->assertTrue($c->test($m), '->test() tests a string against the expression');
        }

        foreach (
$noMatch as $m) {
            
$this->assertFalse($c->test($m), '->test() tests a string against the expression');
        }
    }

    public function 
getTestData()
    {
        return array(
            array(
'< 1000', array('500''999'), array('1000''1500')),

            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')),

            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')),

            array(
'1KI', array('1024'), array('1023''1025')),
            array(
'==1KI', array('1024'), array('1023''1025')),

            array(
'==1m', array('1000000'), array('999999''1000001')),
            array(
'==1mi', array(1024 1024), array(1024 1024 11024 1024 1)),

            array(
'==1g', array('1000000000'), array('999999999''1000000001')),
            array(
'==1gi', array(1024 1024 1024), array(1024 1024 1024 11024 1024 1024 1)),

            array(
'!= 1000', array('500''999'), array('1000')),
        );
    }

    public function 
getConstructorTestData()
    {
        return array(
            array(
                array(
                    
'1''0',
                    
'3.5''33.55''123.456''123456.78',
                    
'.1''.123',
                    
'.0''0.0',
                    
'1.''0.''123.',
                    
'==1''!=1''<1''>1''<=1''>=1',
                    
'==1k''==1ki''==1m''==1mi''==1g''==1gi',
                    
'1k''1ki''1m''1mi''1g''1gi',
                ),
                array(
                    
falsenull'',
                    
' ''foobar',
                    
'=1''===1',
                    
'0 . 1''123 .45''234. 567',
                    
'..''.0.''0.1.2',
                ),
            ),
        );
    }
}