void object::test<5>() { const char* mat = "012TF012F"; char ret = GEOSRelatePatternMatch(mat, "TTTTFTTTF"); ensure_equals(ret, char(1)); ret = GEOSRelatePatternMatch(mat, "TT1TFTTTF"); ensure_equals(ret, char(0)); }
Datum ST_RelateMatch(PG_FUNCTION_ARGS) { #if POSTGIS_GEOS_VERSION < 33 lwerror("The GEOS version this postgis binary " "was compiled against (%d) doesn't support " "'ST_RelateMatch' function (3.3.0+ required)", POSTGIS_GEOS_VERSION); PG_RETURN_NULL(); #else /* POSTGIS_GEOS_VERSION >= 33 */ char *mat, *pat; text *mat_text, *pat_text; int result; /* Read the arguments */ mat_text = (PG_GETARG_TEXT_P(0)); pat_text = (PG_GETARG_TEXT_P(1)); /* Convert from text to cstring */ mat = text2cstring(mat_text); pat = text2cstring(pat_text); initGEOS(lwnotice, lwgeom_geos_error); result = GEOSRelatePatternMatch(mat, pat); if (result == 2) { lwfree(mat); lwfree(pat); lwerror("GEOSRelatePatternMatch: %s", lwgeom_geos_errmsg); PG_RETURN_NULL(); } lwfree(mat); lwfree(pat); PG_RETURN_BOOL(result); #endif /* POSTGIS_GEOS_VERSION >= 33 */ }
void object::test<4>() { char ret = GEOSRelatePatternMatch("000000000", "FFFFFFFFF"); ensure_equals(ret, char(0)); }
void object::test<2>() { char ret = GEOSRelatePatternMatch("000000000", "TTTTTTTTT"); ensure_equals(ret, char(1)); }