|
1 | 1 | using GeometryBasics
|
2 |
| -using GeometryBasics: Polygon, MultiPolygon, Point, LineFace, Polytope, Line |
| 2 | +using GeometryBasics: LineFace, Polytope, Line |
| 3 | +using GeometryBasics: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon |
3 | 4 | using GeometryBasics: Simplex, connect, Triangle, NSimplex, Tetrahedron
|
4 | 5 | using GeometryBasics: QuadFace, hascolumn, getcolumn, metafree, coordinates, TetrahedronFace
|
5 |
| -using GeometryBasics: TupleView, TriangleFace, SimplexFace, LineString, Mesh, meta, column_names |
| 6 | +using GeometryBasics: TupleView, TriangleFace, SimplexFace, Mesh, meta, column_names |
6 | 7 | using Test, Random, Query, StructArrays, Tables
|
7 | 8 | using StaticArrays
|
8 | 9 |
|
|
235 | 236 |
|
236 | 237 | end
|
237 | 238 |
|
| 239 | + @testset "Multi geometries" begin |
| 240 | + # coordinates from https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Geometric_objects |
| 241 | + points = Point{2, Int}[(10, 40), (40, 30), (20, 20), (30, 10)] |
| 242 | + multipoint = MultiPoint(points) |
| 243 | + @test size(multipoint) === size(points) |
| 244 | + @test multipoint[3] === points[3] |
| 245 | + |
| 246 | + linestring1 = LineString(Point{2, Int}[(10, 10), (20, 20), (10, 40)]) |
| 247 | + linestring2 = LineString(Point{2, Int}[(40, 40), (30, 30), (40, 20), (30, 10)]) |
| 248 | + multilinestring = MultiLineString([linestring1, linestring2]) |
| 249 | + @test size(multilinestring) === (2,) |
| 250 | + @test multilinestring[1] === linestring1 |
| 251 | + @test multilinestring[2] === linestring2 |
| 252 | + |
| 253 | + polygon11 = Polygon(Point{2, Int}[(30, 20), (45, 40), (10, 40), (30, 20)]) |
| 254 | + polygon12 = Polygon(Point{2, Int}[(15, 5), (40, 10), (10, 20), (5, 10), (15, 5)]) |
| 255 | + multipolygon1 = MultiPolygon([polygon11, polygon12]) |
| 256 | + @test size(multipolygon1) === (2,) |
| 257 | + @test multipolygon1[1] === polygon11 |
| 258 | + @test multipolygon1[2] === polygon12 |
| 259 | + |
| 260 | + polygon21 = Polygon(Point{2, Int}[(40, 40), (20, 45), (45, 30), (40, 40)]) |
| 261 | + polygon22 = Polygon(LineString(Point{2, Int}[(20, 35), (10, 30), (10, 10), (30, 5), (45, 20), (20, 35)]), |
| 262 | + [LineString(Point{2, Int}[(30, 20), (20, 15), (20, 25), (30, 20)])]) |
| 263 | + multipolygon2 = MultiPolygon([polygon21, polygon22]) |
| 264 | + @test size(multipolygon2) === (2,) |
| 265 | + @test multipolygon2[1] === polygon21 |
| 266 | + @test multipolygon2[2] === polygon22 |
| 267 | + end |
| 268 | + |
238 | 269 | end
|
239 | 270 | end
|
0 commit comments