11<?php
22
3+ use Grimzy \LaravelMysqlSpatial \Exceptions \UnknownWKTTypeException ;
34use Grimzy \LaravelMysqlSpatial \Types \Geometry ;
45use Grimzy \LaravelMysqlSpatial \Types \GeometryCollection ;
56use Grimzy \LaravelMysqlSpatial \Types \LineString ;
@@ -13,106 +14,42 @@ class GeometryTest extends BaseTestCase
1314{
1415 public function testGetWKTArgument ()
1516 {
16- $ this ->assertEquals (
17- '0 0 ' ,
18- Geometry::getWKTArgument ('POINT(0 0) ' )
19- );
20- $ this ->assertEquals (
21- '0 0,1 1,1 2 ' ,
22- Geometry::getWKTArgument ('LINESTRING(0 0,1 1,1 2) ' )
23- );
24- $ this ->assertEquals (
25- '(0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1) ' ,
26- Geometry::getWKTArgument ('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ' )
27- );
28- $ this ->assertEquals (
29- '(0 0),(1 2) ' ,
30- Geometry::getWKTArgument ('MULTIPOINT((0 0),(1 2)) ' )
31- );
32- $ this ->assertEquals (
33- '(0 0,1 1,1 2),(2 3,3 2,5 4) ' ,
34- Geometry::getWKTArgument ('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ' )
35- );
36- $ this ->assertEquals (
37- '((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)) ' ,
38- Geometry::getWKTArgument ('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ' )
39- );
40- $ this ->assertEquals (
41- 'POINT(2 3),LINESTRING(2 3,3 4) ' ,
42- Geometry::getWKTArgument ('GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) ' )
43- );
17+ $ this ->assertEquals ('0 0 ' , Geometry::getWKTArgument ('POINT(0 0) ' ));
18+ $ this ->assertEquals ('0 0,1 1,1 2 ' , Geometry::getWKTArgument ('LINESTRING(0 0,1 1,1 2) ' ));
19+ $ this ->assertEquals ('(0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1) ' , Geometry::getWKTArgument ('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ' ));
20+ $ this ->assertEquals ('(0 0),(1 2) ' , Geometry::getWKTArgument ('MULTIPOINT((0 0),(1 2)) ' ));
21+ $ this ->assertEquals ('(0 0,1 1,1 2),(2 3,3 2,5 4) ' , Geometry::getWKTArgument ('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ' ));
22+ $ this ->assertEquals ('((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)) ' , Geometry::getWKTArgument ('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ' ));
23+ $ this ->assertEquals ('POINT(2 3),LINESTRING(2 3,3 4) ' , Geometry::getWKTArgument ('GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) ' ));
4424 }
4525
4626 public function testGetWKTClass ()
4727 {
48- $ this ->assertEquals (
49- Point::class,
50- Geometry::getWKTClass ('POINT(0 0) ' )
51- );
52- $ this ->assertEquals (
53- LineString::class,
54- Geometry::getWKTClass ('LINESTRING(0 0,1 1,1 2) ' )
55- );
56- $ this ->assertEquals (
57- Polygon::class,
58- Geometry::getWKTClass ('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ' )
59- );
60- $ this ->assertEquals (
61- MultiPoint::class,
62- Geometry::getWKTClass ('MULTIPOINT((0 0),(1 2)) ' )
63- );
64- $ this ->assertEquals (
65- MultiLineString::class,
66- Geometry::getWKTClass ('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ' )
67- );
68- $ this ->assertEquals (
69- MultiPolygon::class,
70- Geometry::getWKTClass ('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ' )
71- );
72- $ this ->assertEquals (
73- GeometryCollection::class,
74- Geometry::getWKTClass ('GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) ' )
75- );
28+ $ this ->assertEquals (Point::class, Geometry::getWKTClass ('POINT(0 0) ' ));
29+ $ this ->assertEquals (LineString::class, Geometry::getWKTClass ('LINESTRING(0 0,1 1,1 2) ' ));
30+ $ this ->assertEquals (Polygon::class, Geometry::getWKTClass ('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ' ));
31+ $ this ->assertEquals (MultiPoint::class, Geometry::getWKTClass ('MULTIPOINT((0 0),(1 2)) ' ));
32+ $ this ->assertEquals (MultiLineString::class, Geometry::getWKTClass ('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ' ));
33+ $ this ->assertEquals (MultiPolygon::class, Geometry::getWKTClass ('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ' ));
34+ $ this ->assertEquals (GeometryCollection::class, Geometry::getWKTClass ('GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4)) ' ));
35+ $ this ->assertException (UnknownWKTTypeException::class);
36+ Geometry::getWKTClass ('TRIANGLE((0 0, 0 9, 9 0, 0 0)) ' );
7637 }
7738
7839 public function testGetWKBClass ()
7940 {
80- $ this ->assertInstanceOf (
81- Point::class,
82- Geometry::fromWKB ('0101000000000000000000f03f0000000000000040 ' )
83- );
41+ $ this ->assertInstanceOf (Point::class, Geometry::fromWKB ('0101000000000000000000f03f0000000000000040 ' ));
8442
85- $ this ->assertInstanceOf (
86- LineString::class,
87- Geometry::fromWKB ('010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' )
88- );
89- $ this ->assertInstanceOf (
90- Polygon::class,
91- Geometry::fromWKB ('01030000000100000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f0000000000000040 ' )
92- );
93- $ this ->assertInstanceOf (
94- MultiPoint::class,
95- Geometry::fromWKB ('0104000000020000000101000000000000000000f03f0000000000000040010100000000000000000008400000000000001040 ' )
96- );
97- $ this ->assertInstanceOf (
98- MultiLineString::class,
99- Geometry::fromWKB ('010500000001000000010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' )
100- );
101- $ this ->assertInstanceOf (
102- MultiLineString::class,
103- Geometry::fromWKB ('010500000002000000010200000002000000000000000000f03f000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001c400000000000002040 ' )
104- );
105- $ this ->assertInstanceOf (
106- MultiPolygon::class,
107- Geometry::fromWKB ('01060000000200000001030000000100000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f000000000000004001030000000300000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f000000000000004004000000000000000000264000000000000028400000000000002a400000000000002c400000000000002e4000000000000030400000000000002640000000000000284004000000000000000000354000000000000036400000000000003740000000000000384000000000000039400000000000003a4000000000000035400000000000003640 ' )
108- );
109- $ this ->assertInstanceOf (
110- GeometryCollection::class,
111- Geometry::fromWKB ('0107000000010000000101000000000000000000f03f0000000000000040 ' )
112- );
113- $ this ->assertInstanceOf (
114- GeometryCollection::class,
115- Geometry::fromWKB ('0107000000020000000101000000000000000000f03f0000000000000040010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' )
116- );
43+ $ this ->assertInstanceOf (LineString::class, Geometry::fromWKB ('010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' ));
44+ $ this ->assertInstanceOf (Polygon::class, Geometry::fromWKB ('01030000000100000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f0000000000000040 ' ));
45+ $ this ->assertInstanceOf (MultiPoint::class, Geometry::fromWKB ('0104000000020000000101000000000000000000f03f0000000000000040010100000000000000000008400000000000001040 ' ));
46+ $ this ->assertInstanceOf (MultiLineString::class, Geometry::fromWKB ('010500000001000000010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' ));
47+ $ this ->assertInstanceOf (MultiLineString::class, Geometry::fromWKB ('010500000002000000010200000002000000000000000000f03f000000000000004000000000000008400000000000001040010200000002000000000000000000144000000000000018400000000000001c400000000000002040 ' ));
48+ $ this ->assertInstanceOf (MultiPolygon::class, Geometry::fromWKB ('01060000000200000001030000000100000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f000000000000004001030000000300000004000000000000000000f03f00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000f03f000000000000004004000000000000000000264000000000000028400000000000002a400000000000002c400000000000002e4000000000000030400000000000002640000000000000284004000000000000000000354000000000000036400000000000003740000000000000384000000000000039400000000000003a4000000000000035400000000000003640 ' ));
49+ $ this ->assertInstanceOf (GeometryCollection::class, Geometry::fromWKB ('0107000000010000000101000000000000000000f03f0000000000000040 ' ));
50+ $ this ->assertInstanceOf (GeometryCollection::class, Geometry::fromWKB ('0107000000020000000101000000000000000000f03f0000000000000040010200000002000000000000000000f03f000000000000004000000000000008400000000000001040 ' ));
51+
52+ $ prefix = "\0\0\0\0" ;
53+ $ this ->assertInstanceOf (Point::class, Geometry::fromWKB ($ prefix .'0101000000000000000000f03f0000000000000040 ' ));
11754 }
11855}
0 commit comments