1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <tut/tut.hpp>
#include "capi_test_utils.h"
namespace tut {
//
// Test Group
//
struct test_geosgeom_createcurvepolygon_data : public capitest::utility {};
typedef test_group<test_geosgeom_createcurvepolygon_data> group;
typedef group::object object;
group test_geosgeom_createcurvepolygon("capi::GEOSGeom_createCurvePolygon");
template<>
template<>
void object::test<1>
()
{
GEOSGeometry* shell = fromWKT("CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)");
GEOSGeometry* hole = fromWKT("LINESTRING (1 1, 3 3, 3 1, 1 1)");
GEOSGeometry* holes[] = {hole};
result_ = GEOSGeom_createCurvePolygon(shell, holes, 1);
expected_ = fromWKT("CURVEPOLYGON( CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 3 3, 3 1, 1 1) )");
ensure_geometry_equals_identical(result_, expected_);
}
// Ownership transferred on error
template<>
template<>
void object::test<2>
()
{
GEOSGeometry* shell = fromWKT("CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0)");
GEOSGeometry* hole1 = fromWKT("POINT (3 3)");
GEOSGeometry* hole2 = fromWKT("LINESTRING (1 1, 3 3, 3 1, 1 1)");
GEOSGeometry* holes[] = {hole1, hole2};
result_ = GEOSGeom_createCurvePolygon(shell, holes, 2);
ensure(result_ == nullptr);
}
template<>
template<>
void object::test<3>
()
{
result_ = GEOSGeom_createEmptyCurvePolygon();
ensure(GEOSisEmpty(result_));
ensure(!GEOSHasZ(result_));
ensure(!GEOSHasM(result_));
}
} // namespace tut
|