Skip to content

Commit

Permalink
Add LinearRing tests for GEOSisClosed, GEOSGeomGetPointN, GEOSGeomGet…
Browse files Browse the repository at this point in the history
…StartPoint, GEOSGeomGetEndPoint, GEOSGeomGetLength
  • Loading branch information
Oreilles committed Sep 7, 2024
1 parent e0b1a0a commit e71d48e
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/unit/capi/GEOSGeomGetNumPointsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,13 @@ void object::test<4>()
ensure_equals(GEOSGeomGetNumPoints(input_), 3);
}

template<>
template<>
void object::test<5>()
{
input_ = fromWKT("LINEARRING (0 0, 1 1, 2 0, 0 0)");
ensure_equals(GEOSGeomGetNumPoints(input_), 4);
}

} // namespace tut

63 changes: 63 additions & 0 deletions tests/unit/capi/GEOSLineStringTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,67 @@ void object::test<3>
ensure_equals(GEOSGeomGetLength(geom1_, &length), 0);
}

template<>
template<>
void object::test<4>
()
{
geom1_ = GEOSGeomFromWKT("LINEARRING(0 0, 5 5, 10 10, 0 0)");
GEOSGeometry* geom2;
double x, y, z;
ensure(nullptr != geom1_);

char const r1 = GEOSisClosed(geom1_);

ensure_equals(r1, 1);

geom2 = GEOSGeomGetPointN(geom1_, 0);
GEOSGeomGetX(geom2, &x);
GEOSGeomGetY(geom2, &y);
GEOSGeomGetZ(geom2, &z);

ensure_equals(x, 0);
ensure_equals(y, 0);
ensure(std::isnan(z));

GEOSGeom_destroy(geom2);

ensure(GEOSGeomGetPointN(geom1_, -1) == nullptr);

geom2 = GEOSGeomGetStartPoint(geom1_);
GEOSGeomGetX(geom2, &x);
GEOSGeomGetY(geom2, &y);
GEOSGeomGetZ(geom2, &z);

ensure_equals(x, 0);
ensure_equals(y, 0);
ensure(std::isnan(z));

GEOSGeom_destroy(geom2);

geom2 = GEOSGeomGetEndPoint(geom1_);
GEOSGeomGetX(geom2, &x);
GEOSGeomGetY(geom2, &y);
GEOSGeomGetZ(geom2, &z);

ensure_equals(x, 0);
ensure_equals(y, 0);
ensure(std::isnan(z));

// GEOSGeom_destroy(geom2);
}

template<>
template<>
void object::test<5>
()
{
geom1_ = GEOSGeomFromWKT("LINEARRING(0 0, 5 5, 10 10, 0 0)");
double length;
ensure(nullptr != geom1_);

GEOSGeomGetLength(geom1_, &length);
ensure(length > 0.0);
}

} // namespace tut

0 comments on commit e71d48e

Please sign in to comment.