@@ -45,7 +45,71 @@ public function testIteratorAggregate() {
4545 }
4646
4747 public function testArrayAccess () {
48+ $ point0 = new Point (0 , 0 );
49+ $ point1 = new Point (1 , 1 );
50+ $ multipoint = new MultiPoint ([$ point0 , $ point1 ]);
4851
52+ $ this ->assertEquals ($ point0 , $ multipoint [0 ]);
53+ $ this ->assertEquals ($ point1 , $ multipoint [1 ]);
54+ $ point2 = new Point (2 , 2 );
55+
56+ $ multipoint [] = $ point2 ;
57+ $ this ->assertEquals ($ point2 , $ multipoint [2 ]);
58+
59+ unset($ multipoint [0 ]);
60+ $ this ->assertNull ($ multipoint [0 ]);
61+ $ this ->assertEquals ($ point1 , $ multipoint [1 ]);
62+ $ this ->assertEquals ($ point2 , $ multipoint [2 ]);
63+
64+ $ point100 = new Point (100 , 100 );
65+ $ multipoint [100 ] = $ point100 ;
66+ $ this ->assertEquals ($ point100 , $ multipoint [100 ]);
67+
68+ $ this ->expectException (InvalidArgumentException::class);
69+ $ multipoint [] = 1 ;
70+
71+ }
72+
73+ public function testPrependPoint () {
74+ $ point1 = new Point (1 , 1 );
75+ $ point2 = new Point (2 , 2 );
76+ $ multipoint = new MultiPoint ([$ point1 , $ point2 ]);
77+
78+ $ point0 = new Point (0 , 0 );
79+ $ multipoint ->prependPoint ($ point0 );
80+
81+ $ this ->assertEquals ($ point0 , $ multipoint ->getPoints ()[0 ]);
82+ $ this ->assertEquals ($ point1 , $ multipoint ->getPoints ()[1 ]);
83+ $ this ->assertEquals ($ point2 , $ multipoint ->getPoints ()[2 ]);
84+ }
85+
86+ public function testAppendPoint () {
87+ $ point0 = new Point (0 , 0 );
88+ $ point1 = new Point (1 , 1 );
89+ $ multipoint = new MultiPoint ([$ point0 , $ point1 ]);
90+
91+ $ point2 = new Point (2 , 2 );
92+ $ multipoint ->appendPoint ($ point2 );
93+
94+ $ this ->assertEquals ($ point0 , $ multipoint ->getPoints ()[0 ]);
95+ $ this ->assertEquals ($ point1 , $ multipoint ->getPoints ()[1 ]);
96+ $ this ->assertEquals ($ point2 , $ multipoint ->getPoints ()[2 ]);
97+ }
98+
99+ public function testInsertPoint () {
100+ $ point1 = new Point (1 , 1 );
101+ $ point3 = new Point (3 , 3 );
102+ $ multipoint = new MultiPoint ([$ point1 , $ point3 ]);
103+
104+ $ point2 = new Point (2 , 2 );
105+ $ multipoint ->insertPoint (1 , $ point2 );
106+
107+ $ this ->assertEquals ($ point1 , $ multipoint ->getPoints ()[0 ]);
108+ $ this ->assertEquals ($ point2 , $ multipoint ->getPoints ()[1 ]);
109+ $ this ->assertEquals ($ point3 , $ multipoint ->getPoints ()[2 ]);
110+
111+ $ this ->expectException (InvalidArgumentException::class);
112+ $ multipoint ->insertPoint (100 , new Point (100 ,100 ));
49113 }
50114
51115 public function testJsonSerialize ()
0 commit comments