1
1
<?php
2
2
3
+ use Grimzy \LaravelMysqlSpatial \Exceptions \UnknownWKTTypeException ;
3
4
use Grimzy \LaravelMysqlSpatial \Types \Geometry ;
4
5
use Grimzy \LaravelMysqlSpatial \Types \GeometryCollection ;
5
6
use Grimzy \LaravelMysqlSpatial \Types \LineString ;
@@ -13,106 +14,42 @@ class GeometryTest extends BaseTestCase
13
14
{
14
15
public function testGetWKTArgument ()
15
16
{
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)) ' ));
44
24
}
45
25
46
26
public function testGetWKTClass ()
47
27
{
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)) ' );
76
37
}
77
38
78
39
public function testGetWKBClass ()
79
40
{
80
- $ this ->assertInstanceOf (
81
- Point::class,
82
- Geometry::fromWKB ('0101000000000000000000f03f0000000000000040 ' )
83
- );
41
+ $ this ->assertInstanceOf (Point::class, Geometry::fromWKB ('0101000000000000000000f03f0000000000000040 ' ));
84
42
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 ' ));
117
54
}
118
55
}
0 commit comments