PointSetTest::test_index_data_with_points()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
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