Completed
Push — master ( 96cbf3...9bcdfc )
by Steve
03:03 queued 01:23
created

RangeDifferenceTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 33
dl 0
loc 60
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetters() 0 14 1
A testException() 0 5 1
A testIsEqual() 0 8 1
A testToString() 0 18 1
A testGetMaxLength() 0 5 1
1
<?php
2
3
/**
4
 * (c) Steve Nebes <[email protected]>
5
 *
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 */
9
10
declare(strict_types=1);
11
12
namespace SN\RangeDifferencer;
13
14
use PHPUnit\Framework\TestCase;
15
16
class RangeDifferenceTest extends TestCase
17
{
18
    public function testGetters(): void
19
    {
20
        $diff = new RangeDifference(0, 1, 2, 3, 4, 5,6);
21
22
        $this->assertSame(0, $diff->getKind());
23
        $this->assertSame(1, $diff->getRightStart());
24
        $this->assertSame(2, $diff->getRightLength());
25
        $this->assertSame(3, $diff->getRightEnd());
26
        $this->assertSame(3, $diff->getLeftStart());
27
        $this->assertSame(4, $diff->getLeftLength());
28
        $this->assertSame(7, $diff->getLeftEnd());
29
        $this->assertSame(5, $diff->getAncestorStart());
30
        $this->assertSame(6, $diff->getAncestorLength());
31
        $this->assertSame(11, $diff->getAncestorEnd());
32
    }
33
34
    public function testGetMaxLength(): void
35
    {
36
        $diff = new RangeDifference(0, 1, 2, 3, 4, 5,6);
37
38
        $this->assertSame(6, $diff->getMaxLength());
39
    }
40
41
    public function testIsEqual(): void
42
    {
43
        $diff1 = new RangeDifference(0, 1, 2, 3, 4, 5,6);
44
        $diff2 = new RangeDifference(0, 1, 2, 3, 4, 5,6);
45
        $diff3 = new RangeDifference(1, 1, 2, 3, 4, 5,6);
46
47
        $this->assertTrue($diff1->isEqual($diff2));
48
        $this->assertFalse($diff1->isEqual($diff3));
49
    }
50
51
    public function testToString(): void
52
    {
53
        $diff = new RangeDifference(RangeDifference::NOCHANGE, 1, 2, 3, 4);
54
        $this->assertSame('RangeDifference {NOCHANGE, Left: (3, 4) Right: (1, 2)}', $diff->__toString());
55
        $diff = new RangeDifference(RangeDifference::CONFLICT, 1, 2, 3, 4, 5, 6);
56
        $this->assertSame('RangeDifference {CONFLICT, Left: (3, 4) Right: (1, 2) Ancestor: (5, 6)}', $diff->__toString());
57
58
        $diff = new RangeDifference(RangeDifference::CHANGE);
59
        $this->assertSame('RangeDifference {CHANGE/RIGHT, Left: (0, 0) Right: (0, 0)}', $diff->__toString());
60
61
        $diff = new RangeDifference(RangeDifference::LEFT);
62
        $this->assertSame('RangeDifference {LEFT, Left: (0, 0) Right: (0, 0)}', $diff->__toString());
63
64
        $diff = new RangeDifference(RangeDifference::ANCESTOR);
65
        $this->assertSame('RangeDifference {ANCESTOR, Left: (0, 0) Right: (0, 0)}', $diff->__toString());
66
67
        $diff = new RangeDifference(RangeDifference::ERROR);
68
        $this->assertSame('RangeDifference {ERROR, Left: (0, 0) Right: (0, 0)}', $diff->__toString());
69
    }
70
71
    public function testException(): void
72
    {
73
        $this->expectException(\UnexpectedValueException::class);
74
75
        new RangeDifference(10);
76
    }
77
}
78