Skip to content

Commit

Permalink
Drop duplicated code in GEOSGeom_createTest and GEOSOrientationIndexTest
Browse files Browse the repository at this point in the history
Closes GA-1098
  • Loading branch information
strk committed May 21, 2024
1 parent 6043951 commit 5e5fc99
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 89 deletions.
87 changes: 36 additions & 51 deletions tests/unit/capi/GEOSGeom_createTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,16 @@ namespace tut {
struct test_capigeosgeom_create_data : public capitest::utility
{
GEOSGeometry* geom1_;
GEOSContextHandle_t handle_;

static void
notice(const char* fmt, ...)
{
std::fprintf(stdout, "NOTICE: ");

va_list ap;
va_start(ap, fmt);
std::vfprintf(stdout, fmt, ap);
va_end(ap);

std::fprintf(stdout, "\n");
}

test_capigeosgeom_create_data()
: geom1_(nullptr), handle_(initGEOS_r(notice, notice))
: geom1_(nullptr)
{
}

~test_capigeosgeom_create_data()
{
GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
finishGEOS_r(handle_);
}

};
Expand All @@ -66,12 +51,12 @@ template<>
void object::test<1>
()
{
geom1_ = GEOSGeom_createEmptyPoint_r(handle_);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_POINT);
geom1_ = GEOSGeom_createEmptyPoint();
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_POINT);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -83,12 +68,12 @@ template<>
void object::test<2>
()
{
geom1_ = GEOSGeom_createEmptyLineString_r(handle_);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_LINESTRING);
geom1_ = GEOSGeom_createEmptyLineString();
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_LINESTRING);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -101,12 +86,12 @@ template<>
void object::test<3>
()
{
geom1_ = GEOSGeom_createEmptyPolygon_r(handle_);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_POLYGON);
geom1_ = GEOSGeom_createEmptyPolygon();
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_POLYGON);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -118,12 +103,12 @@ template<>
void object::test<4>
()
{
geom1_ = GEOSGeom_createEmptyCollection_r(handle_, GEOS_MULTIPOINT);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_MULTIPOINT);
geom1_ = GEOSGeom_createEmptyCollection(GEOS_MULTIPOINT);
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_MULTIPOINT);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -135,12 +120,12 @@ template<>
void object::test<5>
()
{
geom1_ = GEOSGeom_createEmptyCollection_r(handle_, GEOS_MULTILINESTRING);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_MULTILINESTRING);
geom1_ = GEOSGeom_createEmptyCollection(GEOS_MULTILINESTRING);
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_MULTILINESTRING);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -152,12 +137,12 @@ template<>
void object::test<6>
()
{
geom1_ = GEOSGeom_createEmptyCollection_r(handle_, GEOS_MULTIPOLYGON);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_MULTIPOLYGON);
geom1_ = GEOSGeom_createEmptyCollection(GEOS_MULTIPOLYGON);
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_MULTIPOLYGON);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand All @@ -169,12 +154,12 @@ template<>
void object::test<7>
()
{
geom1_ = GEOSGeom_createEmptyCollection_r(handle_, GEOS_GEOMETRYCOLLECTION);
ensure(0 != GEOSisEmpty_r(handle_, geom1_));
ensure_equals(GEOSGeomTypeId_r(handle_, geom1_), GEOS_GEOMETRYCOLLECTION);
geom1_ = GEOSGeom_createEmptyCollection(GEOS_GEOMETRYCOLLECTION);
ensure(0 != GEOSisEmpty(geom1_));
ensure_equals(GEOSGeomTypeId(geom1_), GEOS_GEOMETRYCOLLECTION);

ensure_equals(GEOSHasZ_r(handle_, geom1_), 0);
ensure_equals(GEOSHasM_r(handle_, geom1_), 0);
ensure_equals(GEOSHasZ(geom1_), 0);
ensure_equals(GEOSHasM(geom1_), 0);

GEOSGeom_destroy(geom1_);
geom1_ = nullptr;
Expand Down
52 changes: 14 additions & 38 deletions tests/unit/capi/GEOSOrientationIndexTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,15 @@
#include <cstdlib>
#include <memory>

#include "capi_test_utils.h"

namespace tut {
//
// Test Group
//

// Common data used in test cases.
struct test_capigeosorientationindex_data {
GEOSContextHandle_t handle_;

static void
notice(const char* fmt, ...)
{
std::fprintf(stdout, "NOTICE: ");

va_list ap;
va_start(ap, fmt);
std::vfprintf(stdout, fmt, ap);
va_end(ap);

std::fprintf(stdout, "\n");
}

test_capigeosorientationindex_data()
: handle_(initGEOS_r(notice, notice))
{
}

~test_capigeosorientationindex_data()
{
finishGEOS_r(handle_);
}

};
struct test_capigeosorientationindex_data : public capitest::utility {};

typedef test_group<test_capigeosorientationindex_data> group;
typedef group::object object;
Expand All @@ -60,7 +36,7 @@ template<>
void object::test<1>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 0, 5, 0);
int ret = GEOSOrientationIndex(0, 0, 10, 0, 5, 0);
ensure_equals(ret, 0);
}

Expand All @@ -70,7 +46,7 @@ template<>
void object::test<2>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 0, 10, 0);
int ret = GEOSOrientationIndex(0, 0, 10, 0, 10, 0);
ensure_equals(ret, 0);
}

Expand All @@ -80,7 +56,7 @@ template<>
void object::test<3>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 0, 0, 0);
int ret = GEOSOrientationIndex(0, 0, 10, 0, 0, 0);
ensure_equals(ret, 0);
}

Expand All @@ -90,7 +66,7 @@ template<>
void object::test<4>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 0, -5, 0);
int ret = GEOSOrientationIndex(0, 0, 10, 0, -5, 0);
ensure_equals(ret, 0);
}

Expand All @@ -100,7 +76,7 @@ template<>
void object::test<5>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 0, 20, 0);
int ret = GEOSOrientationIndex(0, 0, 10, 0, 20, 0);
ensure_equals(ret, 0);
}

Expand All @@ -110,7 +86,7 @@ template<>
void object::test<6>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 5, 6);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 5, 6);
ensure_equals(ret, 1);
}

Expand All @@ -120,7 +96,7 @@ template<>
void object::test<7>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 5, 20);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 5, 20);
ensure_equals(ret, 1);
}

Expand All @@ -130,7 +106,7 @@ template<>
void object::test<8>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 5, 3);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 5, 3);
ensure_equals(ret, -1);
}

Expand All @@ -140,7 +116,7 @@ template<>
void object::test<9>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 5, -2);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 5, -2);
ensure_equals(ret, -1);
}

Expand All @@ -150,7 +126,7 @@ template<>
void object::test<10>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 1000000, 1000001);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 1000000, 1000001);
ensure_equals(ret, 1);
}

Expand All @@ -160,7 +136,7 @@ template<>
void object::test<11>
()
{
int ret = GEOSOrientationIndex_r(handle_, 0, 0, 10, 10, 1000000, 999999);
int ret = GEOSOrientationIndex(0, 0, 10, 10, 1000000, 999999);
ensure_equals(ret, -1);
}

Expand Down

0 comments on commit 5e5fc99

Please sign in to comment.