[geos-commits] r2422 - in trunk/tests/unit: . capi
svn_geos at osgeo.org
svn_geos at osgeo.org
Wed Apr 29 19:44:04 EDT 2009
Author: mloskot
Date: 2009-04-29 19:44:04 -0400 (Wed, 29 Apr 2009)
New Revision: 2422
Added:
trunk/tests/unit/capi/GEOSContainsTest.cpp
trunk/tests/unit/capi/GEOSWithinTest.cpp
Modified:
trunk/tests/unit/Makefile.am
Log:
Added new unit tests for C API: GEOSWithinTest and GEOSContainsTest. This is check and response for problems reporting in Ticket #250. Running the new tests does not reproduce the problem, so it likely has been fixed or the bug is somewhere else (i.e. Django layers).
Modified: trunk/tests/unit/Makefile.am
===================================================================
--- trunk/tests/unit/Makefile.am 2009-04-29 09:44:37 UTC (rev 2421)
+++ trunk/tests/unit/Makefile.am 2009-04-29 23:44:04 UTC (rev 2422)
@@ -82,6 +82,8 @@
util/UniqueCoordinateArrayFilterTest.cpp \
capi/GEOSCoordSeqTest.cpp \
capi/GEOSGeomToWKTTest.cpp \
+ capi/GEOSContainsTest.cpp \
+ capi/GEOSWithinTest.cpp \
capi/GEOSSimplifyTest.cpp \
capi/GEOSPreparedGeometryTest.cpp \
capi/GEOSPolygonizer_getCutEdgesTest.cpp
Added: trunk/tests/unit/capi/GEOSContainsTest.cpp
===================================================================
--- trunk/tests/unit/capi/GEOSContainsTest.cpp (rev 0)
+++ trunk/tests/unit/capi/GEOSContainsTest.cpp 2009-04-29 23:44:04 UTC (rev 2422)
@@ -0,0 +1,122 @@
+// $Id$
+//
+// Test Suite for C-API GEOSContains
+
+#include <tut.hpp>
+// geos
+#include <geos_c.h>
+// std
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <memory>
+
+namespace tut
+{
+ //
+ // Test Group
+ //
+
+ // Common data used in test cases.
+ struct test_capigeoscontains_data
+ {
+ GEOSGeometry* geom1_;
+ GEOSGeometry* geom2_;
+
+ 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_capigeoscontains_data()
+ : geom1_(0), geom2_(0)
+ {
+ initGEOS(notice, notice);
+ }
+
+ ~test_capigeoscontains_data()
+ {
+ GEOSGeom_destroy(geom1_);
+ GEOSGeom_destroy(geom2_);
+ geom1_ = 0;
+ geom2_ = 0;
+ finishGEOS();
+ }
+
+ };
+
+ typedef test_group<test_capigeoscontains_data> group;
+ typedef group::object object;
+
+ group test_capigeoscontains_group("capi::GEOSContains");
+
+ //
+ // Test Cases
+ //
+
+ template<>
+ template<>
+ void object::test<1>()
+ {
+ geom1_ = GEOSGeomFromWKT("POLYGON EMPTY");
+ geom2_ = GEOSGeomFromWKT("POLYGON EMPTY");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSContains(geom1_, geom2_);
+
+ ensure_equals(r1, 0);
+
+ char const r2 = GEOSContains(geom2_, geom1_);
+
+ ensure_equals(r2, 0);
+ }
+
+ template<>
+ template<>
+ void object::test<2>()
+ {
+ geom1_ = GEOSGeomFromWKT("POLYGON((1 1,1 5,5 5,5 1,1 1))");
+ geom2_ = GEOSGeomFromWKT("POINT(2 2)");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSContains(geom1_, geom2_);
+
+ ensure_equals(int(r1), 1);
+
+ char const r2 = GEOSContains(geom2_, geom1_);
+
+ ensure_equals(int(r2), 0);
+ }
+
+ template<>
+ template<>
+ void object::test<3>()
+ {
+ geom1_ = GEOSGeomFromWKT("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))");
+ geom2_ = GEOSGeomFromWKT("POLYGON((1 1,1 2,2 2,2 1,1 1))");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSContains(geom1_, geom2_);
+
+ ensure_equals(int(r1), 1);
+
+ char const r2 = GEOSContains(geom2_, geom1_);
+
+ ensure_equals(int(r2), 0);
+ }
+
+} // namespace tut
+
Property changes on: trunk/tests/unit/capi/GEOSContainsTest.cpp
___________________________________________________________________
Name: svn:keywords
+ Id
Added: trunk/tests/unit/capi/GEOSWithinTest.cpp
===================================================================
--- trunk/tests/unit/capi/GEOSWithinTest.cpp (rev 0)
+++ trunk/tests/unit/capi/GEOSWithinTest.cpp 2009-04-29 23:44:04 UTC (rev 2422)
@@ -0,0 +1,122 @@
+// $Id$
+//
+// Test Suite for C-API GEOSWithin
+
+#include <tut.hpp>
+// geos
+#include <geos_c.h>
+// std
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <memory>
+
+namespace tut
+{
+ //
+ // Test Group
+ //
+
+ // Common data used in test cases.
+ struct test_capigeoswithin_data
+ {
+ GEOSGeometry* geom1_;
+ GEOSGeometry* geom2_;
+
+ 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_capigeoswithin_data()
+ : geom1_(0), geom2_(0)
+ {
+ initGEOS(notice, notice);
+ }
+
+ ~test_capigeoswithin_data()
+ {
+ GEOSGeom_destroy(geom1_);
+ GEOSGeom_destroy(geom2_);
+ geom1_ = 0;
+ geom2_ = 0;
+ finishGEOS();
+ }
+
+ };
+
+ typedef test_group<test_capigeoswithin_data> group;
+ typedef group::object object;
+
+ group test_capigeoswithin_group("capi::GEOSWithin");
+
+ //
+ // Test Cases
+ //
+
+ template<>
+ template<>
+ void object::test<1>()
+ {
+ geom1_ = GEOSGeomFromWKT("POLYGON EMPTY");
+ geom2_ = GEOSGeomFromWKT("POLYGON EMPTY");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSWithin(geom1_, geom2_);
+
+ ensure_equals(r1, 0);
+
+ char const r2 = GEOSWithin(geom2_, geom1_);
+
+ ensure_equals(r2, 0);
+ }
+
+ template<>
+ template<>
+ void object::test<2>()
+ {
+ geom1_ = GEOSGeomFromWKT("POLYGON((1 1,1 5,5 5,5 1,1 1))");
+ geom2_ = GEOSGeomFromWKT("POINT(2 2)");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSWithin(geom1_, geom2_);
+
+ ensure_equals(int(r1), 0);
+
+ char const r2 = GEOSWithin(geom2_, geom1_);
+
+ ensure_equals(int(r2), 1);
+ }
+
+ template<>
+ template<>
+ void object::test<3>()
+ {
+ geom1_ = GEOSGeomFromWKT("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))");
+ geom2_ = GEOSGeomFromWKT("POLYGON((1 1,1 2,2 2,2 1,1 1))");
+
+ ensure( 0 != geom1_ );
+ ensure( 0 != geom2_ );
+
+ char const r1 = GEOSWithin(geom1_, geom2_);
+
+ ensure_equals(int(r1), 0);
+
+ char const r2 = GEOSWithin(geom2_, geom1_);
+
+ ensure_equals(int(r2), 1);
+ }
+
+} // namespace tut
+
Property changes on: trunk/tests/unit/capi/GEOSWithinTest.cpp
___________________________________________________________________
Name: svn:keywords
+ Id
More information about the geos-commits
mailing list