Skip to content

Commit c679bff

Browse files
committed
commit e71d48e
Author: Aurèle Nitoref <[email protected]> Date: Sun Sep 8 01:04:31 2024 +0200 Add LinearRing tests for GEOSisClosed, GEOSGeomGetPointN, GEOSGeomGetStartPoint, GEOSGeomGetEndPoint, GEOSGeomGetLength
1 parent e6e5fd7 commit c679bff

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

tests/unit/capi/GEOSGeomGetNumPointsTest.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,13 @@ void object::test<4>()
4848
ensure_equals(GEOSGeomGetNumPoints(input_), 3);
4949
}
5050

51+
template<>
52+
template<>
53+
void object::test<5>()
54+
{
55+
input_ = fromWKT("LINEARRING (0 0, 1 1, 2 0, 0 0)");
56+
ensure_equals(GEOSGeomGetNumPoints(input_), 4);
57+
}
58+
5159
} // namespace tut
5260

tests/unit/capi/GEOSLineStringTest.cpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,67 @@ void object::test<3>
108108
ensure_equals(GEOSGeomGetLength(geom1_, &length), 0);
109109
}
110110

111+
template<>
112+
template<>
113+
void object::test<4>
114+
()
115+
{
116+
geom1_ = GEOSGeomFromWKT("LINEARRING(0 0, 5 5, 10 10, 0 0)");
117+
GEOSGeometry* geom2;
118+
double x, y, z;
119+
ensure(nullptr != geom1_);
120+
121+
char const r1 = GEOSisClosed(geom1_);
122+
123+
ensure_equals(r1, 1);
124+
125+
geom2 = GEOSGeomGetPointN(geom1_, 0);
126+
GEOSGeomGetX(geom2, &x);
127+
GEOSGeomGetY(geom2, &y);
128+
GEOSGeomGetZ(geom2, &z);
129+
130+
ensure_equals(x, 0);
131+
ensure_equals(y, 0);
132+
ensure(std::isnan(z));
133+
134+
GEOSGeom_destroy(geom2);
135+
136+
ensure(GEOSGeomGetPointN(geom1_, -1) == nullptr);
137+
138+
geom2 = GEOSGeomGetStartPoint(geom1_);
139+
GEOSGeomGetX(geom2, &x);
140+
GEOSGeomGetY(geom2, &y);
141+
GEOSGeomGetZ(geom2, &z);
142+
143+
ensure_equals(x, 0);
144+
ensure_equals(y, 0);
145+
ensure(std::isnan(z));
146+
147+
GEOSGeom_destroy(geom2);
148+
149+
geom2 = GEOSGeomGetEndPoint(geom1_);
150+
GEOSGeomGetX(geom2, &x);
151+
GEOSGeomGetY(geom2, &y);
152+
GEOSGeomGetZ(geom2, &z);
153+
154+
ensure_equals(x, 0);
155+
ensure_equals(y, 0);
156+
ensure(std::isnan(z));
157+
158+
GEOSGeom_destroy(geom2);
159+
}
160+
161+
template<>
162+
template<>
163+
void object::test<5>
164+
()
165+
{
166+
geom1_ = GEOSGeomFromWKT("LINEARRING(0 0, 5 5, 10 10, 0 0)");
167+
double length;
168+
ensure(nullptr != geom1_);
169+
170+
GEOSGeomGetLength(geom1_, &length);
171+
ensure(length > 0.0);
172+
}
173+
111174
} // namespace tut

0 commit comments

Comments
 (0)