Skip to content

Commit 39921d6

Browse files
yeesianvisr
authored andcommitted
Add tests for polygon ring methods
1 parent 443006d commit 39921d6

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/LibGEOS.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export Point,
7070
hasZ,
7171
isClosed,
7272
isValid,
73+
interiorRing,
7374
interiorRings,
7475
exteriorRing,
7576
numGeometries,

src/geos_operations.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ getGeometries(obj::Geometry, context::GEOSContext = _context) =
241241
# Converts Geometry to normal form (or canonical form).
242242
normalize!(obj::Geometry) = normalize!(obj.ptr)
243243

244-
interiorRing(obj::Polygon, n::Integer) = interiorRing(obj.ptr, n)
244+
interiorRing(obj::Polygon, n::Integer) = LinearRing(interiorRing(obj.ptr, n))
245245
interiorRings(obj::Polygon) = map(LinearRing, interiorRings(obj.ptr))
246246
exteriorRing(obj::Polygon) = LinearRing(exteriorRing(obj.ptr))
247247

test/test_geos_operations.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,19 @@ end
349349
# Geometry info
350350
# -----
351351

352+
@testset "Polygon ring(s)" begin
353+
poly = readgeom(
354+
"POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))",
355+
)
356+
@test LibGEOS.getCoordinates(LibGEOS.getCoordSeq(exteriorRing(poly).ptr)) ==
357+
Vector{Float64}[[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]]
358+
@test length(interiorRings(poly)) == 1
359+
@test LibGEOS.getCoordinates(LibGEOS.getCoordSeq(interiorRing(poly, 1).ptr)) ==
360+
Vector{Float64}[[20, 30], [35, 35], [30, 20], [20, 30]]
361+
@test_throws ErrorException interiorRing(poly, 0)
362+
@test_throws ErrorException interiorRing(poly, 2)
363+
end
364+
352365
@testset "numGeometries" begin
353366
@test numGeometries(readgeom("POINT(2 2)")) == 1
354367
@test numGeometries(readgeom("MULTIPOINT(0 0, 5 0, 10 0)")) == 3

0 commit comments

Comments
 (0)