Completed
Push — master ( e8fccd...9c2126 )
by Harry
02:44
created

NumberValueParserTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 1
cbo 2
dl 0
loc 69
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testCanParseValue() 0 4 1
A canParseData() 0 17 1
A testParseValue() 0 4 1
A parseData() 0 12 1
1
<?php
2
3
namespace Graze\CsvToken\Test\Unit\ValueParser;
4
5
use Graze\CsvToken\Test\TestCase;
6
use Graze\CsvToken\ValueParser\NumberValueParser;
7
8
class NumberValueParserTest extends TestCase
9
{
10
    /** @var NumberValueParser */
11
    private $parser;
12
13
    public function setUp()
14
    {
15
        $this->parser = new NumberValueParser();
16
    }
17
18
    /**
19
     * @dataProvider canParseData
20
     *
21
     * @param string $string
22
     * @param bool   $expected
23
     */
24
    public function testCanParseValue($string, $expected)
25
    {
26
        static::assertEquals($expected, $this->parser->canParseValue($string));
27
    }
28
29
    /**
30
     * @return array
31
     */
32
    public function canParseData()
33
    {
34
        return [
35
            ['1', true],
36
            ['1.2', true],
37
            ['-1', true],
38
            ['string', false],
39
            ['null', false],
40
            ['1.2e-12', true],
41
            ['4763894692379379723479327842', true],
42
            ['0.000000000001231312', true],
43
            ['some string', false],
44
            ['string12345', false],
45
            ['12345string', false],
46
            ['123,123,123.01', false],
47
        ];
48
    }
49
50
    /**
51
     * @dataProvider parseData
52
     *
53
     * @param string $string
54
     * @param mixed  $expected
55
     */
56
    public function testParseValue($string, $expected)
57
    {
58
        static::assertEquals($expected, $this->parser->parseValue($string));
59
    }
60
61
    /**
62
     * @return array
63
     */
64
    public function parseData()
65
    {
66
        return [
67
            ['1', true],
68
            ['1.2', 1.2],
69
            ['-1', -1],
70
            ['1.2e-12', 1.2e-12],
71
            ['4763894692379379723479327842', 4763894692379379723479327842],
72
            ['0.000000000001231312', 0.000000000001231312],
73
            ['123,123,123.01', 123123123.01],
74
        ];
75
    }
76
}
77