PointSetTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 62
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A test_index_data_with_points() 0 8 1
A test_union() 0 19 3
A test_intersect() 0 14 1
A test_diff() 0 15 1
1
<?php
2
3
namespace Cgi\Calc\Tests\Point;
4
5
use Cgi\Calc\Point;
6
use Cgi\Calc\Point\PointSet;
7
8
class PointSetTest extends \PHPUnit_Framework_TestCase
9
{
10
    public function test_index_data_with_points()
11
    {
12
        $set = new PointSet();
13
        $set->attach($p11 = new Point(1,1), $v11 = 'v11');
14
15
        static::assertTrue($set->contains($p11));
16
        static::assertEquals($set[$p11], $v11);
17
    }
18
19
    public function test_union()
20
    {
21
        $a = new PointSet([new Point(1,1), new Point(2,2), new Point(3,3)]);
22
        $b = new PointSet([new Point(3,1), new Point(2,2), new Point(1,3)]);
23
        $r = $a->union($b);
24
25
        static::assertEquals(3, $a->count());
26
        static::assertEquals(3, $b->count());
27
        static::assertEquals(5, $r->count());
28
        static::assertNotSame($r, $a);
29
        static::assertNotSame($r, $b);
30
31
        foreach ($a as $point) {
32
            static::assertTrue($r->contains($point));
33
        }
34
        foreach ($b as $point) {
35
            static::assertTrue($r->contains($point));
36
        }
37
    }
38
39
    public function test_intersect()
40
    {
41
        $a = new PointSet([new Point(1,1), new Point(2,2), new Point(3,3)]);
42
        $b = new PointSet([new Point(3,1), new Point(2,2), new Point(1,3)]);
43
        $r = $a->intersect($b);
44
45
        static::assertEquals(3, $a->count());
46
        static::assertEquals(3, $b->count());
47
        static::assertEquals(1, $r->count());
48
        static::assertNotSame($r, $a);
49
        static::assertNotSame($r, $b);
50
51
        static::assertTrue($r->contains(new Point(2,2)));
52
    }
53
54
    public function test_diff()
55
    {
56
        $a = new PointSet([new Point(1,1), new Point(2,2), new Point(3,3)]);
57
        $b = new PointSet([new Point(3,1), new Point(2,2), new Point(1,3)]);
58
        $r = $a->diff($b);
59
60
        static::assertEquals(3, $a->count());
61
        static::assertEquals(3, $b->count());
62
        static::assertEquals(2, $r->count());
63
        static::assertNotSame($r, $a);
64
        static::assertNotSame($r, $b);
65
66
        static::assertTrue($r->contains(new Point(1,1)));
67
        static::assertTrue($r->contains(new Point(3,3)));
68
    }
69
}
70