[postgis-tickets] [SCM] PostGIS branch stable-3.0 updated. 3.0.1-37-g8e4f510
git at osgeo.org
git at osgeo.org
Mon Aug 3 12:52:32 PDT 2020
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.0 has been updated
via 8e4f510903995abde22468a6e9a107021dacde60 (commit)
from 18646265f7090076a4a13a1af4cdc9f0484b8fea (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8e4f510903995abde22468a6e9a107021dacde60
Author: Regina Obe <lr at pcorp.us>
Date: Mon Aug 3 15:51:44 2020 -0400
Fix raster regression for GDAL 3.2, polygonize behavior change. Use area and ST_Equals for compare instead of wkt equality. References #4734 for PostGIS 3.0
diff --git a/raster/test/cunit/cu_gdal.c b/raster/test/cunit/cu_gdal.c
index d5f40ed..680c262 100644
--- a/raster/test/cunit/cu_gdal.c
+++ b/raster/test/cunit/cu_gdal.c
@@ -166,7 +166,10 @@ static void test_gdal_polygonize() {
rt_raster rt;
int nPols = 0;
rt_geomval gv = NULL;
- char *wkt = NULL;
+ LWGEOM *gexpected, *gobserved;
+ //char *wkt = NULL;
+ gexpected = lwgeom_from_wkt("POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))",
+ LW_PARSER_CHECK_NONE);
rt = fillRasterToPolygonize(1, -1.0);
CU_ASSERT(rt_raster_has_band(rt, 0));
@@ -176,25 +179,27 @@ static void test_gdal_polygonize() {
CU_ASSERT_DOUBLE_EQUAL(gv[0].val, 1.8, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[0].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[0].geom;
+
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[1].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 3,3 6,6 6,6 3,3 3))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[1].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((3 3,3 6,6 6,6 3,3 3))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON );
CU_ASSERT_DOUBLE_EQUAL(gv[2].val, 2.8, FLT_EPSILON);
-
- wkt = lwgeom_to_text((const LWGEOM *) gv[2].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))");
- rtdealloc(wkt);
-
+ gobserved = (const LWGEOM *)gv[2].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
+
+ gobserved = (const LWGEOM *)gv[3].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))",
+ LW_PARSER_CHECK_NONE);
CU_ASSERT_DOUBLE_EQUAL(gv[3].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[3].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))");
- rtdealloc(wkt);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
for (i = 0; i < nPols; i++) lwgeom_free((LWGEOM *) gv[i].geom);
rtdealloc(gv);
@@ -218,19 +223,28 @@ static void test_gdal_polygonize() {
*/
CU_ASSERT_DOUBLE_EQUAL(gv[1].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 3,3 6,6 6,6 3,3 3))");
- rtdealloc(wkt);
+ gobserved = (const LWGEOM *)gv[1].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((3 3,3 6,6 6,6 3,3 3))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
+ //wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
+ //CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 3,3 6,6 6,6 3,3 3))");
+ //rtdealloc(wkt);
CU_ASSERT_DOUBLE_EQUAL(gv[2].val, 2.8, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[2].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))");
- rtdealloc(wkt);
+ gobserved = (const LWGEOM *)gv[2].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
+ //wkt = lwgeom_to_text((const LWGEOM *) gv[2].geom);
+ //CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))");
+ //rtdealloc(wkt);
CU_ASSERT_DOUBLE_EQUAL(gv[3].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[3].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))");
- rtdealloc(wkt);
+ gobserved = (const LWGEOM *)gv[3].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
for (i = 0; i < nPols; i++) lwgeom_free((LWGEOM *) gv[i].geom);
rtdealloc(gv);
@@ -253,21 +267,22 @@ static void test_gdal_polygonize() {
}
*/
- CU_ASSERT_DOUBLE_EQUAL(gv[0].val, 1.8, FLT_EPSILON);
-
CU_ASSERT_DOUBLE_EQUAL(gv[3].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[3].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))");
- rtdealloc(wkt);
+ gobserved = (const LWGEOM *)gv[3].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[0].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[0].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[1].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 3,3 6,6 6,6 3,3 3))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[1].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((3 3,3 6,6 6,6 3,3 3))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
for (i = 0; i < nPols; i++) lwgeom_free((LWGEOM *) gv[i].geom);
rtdealloc(gv);
@@ -290,16 +305,15 @@ static void test_gdal_polygonize() {
*/
CU_ASSERT_DOUBLE_EQUAL(gv[0].val, 1.8, FLT_EPSILON);
-
- wkt = lwgeom_to_text((const LWGEOM *) gv[0].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[0].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[1].val, 2.8, FLT_EPSILON);
-
- wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[1].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
for (i = 0; i < nPols; i++) lwgeom_free((LWGEOM *) gv[i].geom);
rtdealloc(gv);
@@ -322,26 +336,28 @@ static void test_gdal_polygonize() {
*/
CU_ASSERT_DOUBLE_EQUAL(gv[0].val, 1.8, FLT_EPSILON);
-
- wkt = lwgeom_to_text((const LWGEOM *) gv[0].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[0].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((3 1,3 2,2 2,2 3,1 3,1 6,2 6,2 7,3 7,3 8,5 8,5 6,3 6,3 3,4 3,5 3,5 1,3 1))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[1].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[1].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((3 3,3 6,6 6,6 3,3 3))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[1].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((3 3,3 6,6 6,6 3,3 3))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[2].val, 2.8, FLT_EPSILON);
-
- wkt = lwgeom_to_text((const LWGEOM *) gv[2].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[2].geom;
+ gexpected = lwgeom_from_wkt("POLYGON((5 1,5 3,6 3,6 6,5 6,5 8,6 8,6 7,7 7,7 6,8 6,8 3,7 3,7 2,6 2,6 1,5 1))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
CU_ASSERT_DOUBLE_EQUAL(gv[3].val, 0.0, FLT_EPSILON);
- wkt = lwgeom_to_text((const LWGEOM *) gv[3].geom);
- CU_ASSERT_STRING_EQUAL(wkt, "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)gv[3].geom;
+ gexpected = lwgeom_from_wkt(
+ "POLYGON((0 0,0 9,9 9,9 0,0 0),(6 7,6 8,3 8,3 7,2 7,2 6,1 6,1 3,2 3,2 2,3 2,3 1,6 1,6 2,7 2,7 3,8 3,8 6,7 6,7 7,6 7))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
for (i = 0; i < nPols; i++) lwgeom_free((LWGEOM *) gv[i].geom);
rtdealloc(gv);
diff --git a/raster/test/cunit/cu_raster_geometry.c b/raster/test/cunit/cu_raster_geometry.c
index 9253a3d..1f75666 100644
--- a/raster/test/cunit/cu_raster_geometry.c
+++ b/raster/test/cunit/cu_raster_geometry.c
@@ -261,6 +261,7 @@ static void test_raster_surface() {
char *wkt = NULL;
LWMPOLY *mpoly = NULL;
int err;
+ LWGEOM *gexpected, *gobserved;
rast = rt_raster_new(maxX, maxY);
CU_ASSERT(rast != NULL);
@@ -280,9 +281,10 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((0 0,0 -5,5 -5,5 0,0 0)))");
- rtdealloc(wkt);
+ //wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt("MULTIPOLYGON(((0 0,0 -5,5 -5,5 0,0 0)))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -292,9 +294,9 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0)))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt("MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0)))", LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -304,9 +306,10 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0),(1 -1,1 -2,2 -2,2 -1,1 -1)))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt("MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0),(1 -1,1 -2,2 -2,2 -1,1 -1)))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -316,11 +319,11 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
-
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2)))");
-
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt(
+ "MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2)))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -330,11 +333,11 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
-
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2),(3 -3,3 -4,4 -4,4 -3,3 -3)))");
-
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt(
+ "MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2),(3 -3,3 -4,4 -4,4 -3,3 -3)))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -344,9 +347,11 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((4 -4,4 -5,0 -5,0 -1,1 -1,1 -2,2 -2,2 -3,3 -3,3 -4,4 -4)),((1 -1,1 0,5 0,5 -4,4 -4,4 -3,3 -3,3 -2,2 -2,2 -1,1 -1)))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt(
+ "MULTIPOLYGON(((4 -4,4 -5,0 -5,0 -1,1 -1,1 -2,2 -2,2 -3,3 -3,3 -4,4 -4)),((1 -1,1 0,5 0,5 -4,4 -4,4 -3,3 -3,3 -2,2 -2,2 -1,1 -1)))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
@@ -359,9 +364,11 @@ static void test_raster_surface() {
err = rt_raster_surface(rast, 0, &mpoly);
CU_ASSERT_EQUAL(err, ES_NONE);
CU_ASSERT(mpoly != NULL);
- wkt = lwgeom_to_text(lwmpoly_as_lwgeom(mpoly));
- CU_ASSERT_STRING_EQUAL(wkt, "MULTIPOLYGON(((1 -4,2 -4,2 -3,3 -3,3 -4,4 -4,4 -5,3 -5,1 -5,1 -4)),((1 -4,0 -4,0 -1,1 -1,1 -2,2 -2,2 -3,1 -3,1 -4)),((3 -2,4 -2,4 -1,5 -1,5 -4,4 -4,4 -3,3 -3,3 -2)),((3 -2,2 -2,2 -1,1 -1,1 0,4 0,4 -1,3 -1,3 -2)))");
- rtdealloc(wkt);
+ gobserved = (LWGEOM *)lwmpoly_as_lwgeom(mpoly);
+ gexpected = lwgeom_from_wkt(
+ "MULTIPOLYGON(((1 -4,2 -4,2 -3,3 -3,3 -4,4 -4,4 -5,3 -5,1 -5,1 -4)),((1 -4,0 -4,0 -1,1 -1,1 -2,2 -2,2 -3,1 -3,1 -4)),((3 -2,4 -2,4 -1,5 -1,5 -4,4 -4,4 -3,3 -3,3 -2)),((3 -2,2 -2,2 -1,1 -1,1 0,4 0,4 -1,3 -1,3 -2)))",
+ LW_PARSER_CHECK_NONE);
+ CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(gobserved), lwgeom_area(gexpected), FLT_EPSILON);
lwmpoly_free(mpoly);
mpoly = NULL;
diff --git a/raster/test/regress/rt_polygon.sql b/raster/test/regress/rt_polygon.sql
index cd4220f..454f28f 100644
--- a/raster/test/regress/rt_polygon.sql
+++ b/raster/test/regress/rt_polygon.sql
@@ -31,11 +31,11 @@ CREATE OR REPLACE FUNCTION temp_geos_version()
LANGUAGE 'sql' IMMUTABLE STRICT;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((0 0,0 -5,5 -5,5 0,0 0)))'
+ ST_Equals( ST_Polygon(rast), 'MULTIPOLYGON(((0 0,0 -5,5 -5,5 0,0 0)))'::geometry)
FROM raster_polygon;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0)))'
+ ST_Equals( ST_Polygon(rast), 'MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0)))'::geometry)
FROM (
SELECT
ST_SetValue(
@@ -45,7 +45,7 @@ FROM (
) foo;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0),(1 -1,1 -2,2 -2,2 -1,1 -1)))'
+ ST_Equals( ST_Polygon(rast), 'MULTIPOLYGON(((1 0,1 -1,0 -1,0 -5,4 -5,5 -5,5 0,1 0),(1 -1,1 -2,2 -2,2 -1,1 -1)))'::geometry )
FROM (
SELECT
ST_SetValue(
@@ -58,7 +58,7 @@ FROM (
) foo;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2)))'
+ ST_Equals( ST_Polygon(rast), 'MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2)))'::geometry)
FROM (
SELECT
ST_SetValue(
@@ -74,7 +74,7 @@ FROM (
) foo;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2),(3 -3,3 -4,4 -4,4 -3,3 -3)))'
+ ST_Equals( ST_Polygon(rast) , 'MULTIPOLYGON(((1 -1,1 0,5 0,5 -5,4 -5,0 -5,0 -1,1 -1),(1 -1,1 -2,2 -2,2 -1,1 -1),(2 -2,2 -3,3 -3,3 -2,2 -2),(3 -3,3 -4,4 -4,4 -3,3 -3)))'::geometry)
FROM (
SELECT
ST_SetValue(
@@ -93,7 +93,7 @@ FROM (
) foo;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((4 -4,4 -5,0 -5,0 -1,1 -1,1 -2,2 -2,2 -3,3 -3,3 -4,4 -4)),((1 -1,1 0,5 0,5 -4,4 -4,4 -3,3 -3,3 -2,2 -2,2 -1,1 -1)))'
+ ST_Equals( ST_Polygon(rast) , 'MULTIPOLYGON(((4 -4,4 -5,0 -5,0 -1,1 -1,1 -2,2 -2,2 -3,3 -3,3 -4,4 -4)),((1 -1,1 0,5 0,5 -4,4 -4,4 -3,3 -3,3 -2,2 -2,2 -1,1 -1)))'::geometry)
FROM (
SELECT
ST_SetValue(
@@ -115,7 +115,7 @@ FROM (
) foo;
SELECT
- ST_AsText(ST_Polygon(rast)) = 'MULTIPOLYGON(((1 -4,2 -4,2 -3,3 -3,3 -4,4 -4,4 -5,3 -5,1 -5,1 -4)),((1 -4,0 -4,0 -1,1 -1,1 -2,2 -2,2 -3,1 -3,1 -4)),((3 -2,4 -2,4 -1,5 -1,5 -4,4 -4,4 -3,3 -3,3 -2)),((3 -2,2 -2,2 -1,1 -1,1 0,4 0,4 -1,3 -1,3 -2)))'
+ ST_Equals( ST_Polygon(rast) , 'MULTIPOLYGON(((1 -4,2 -4,2 -3,3 -3,3 -4,4 -4,4 -5,3 -5,1 -5,1 -4)),((1 -4,0 -4,0 -1,1 -1,1 -2,2 -2,2 -3,1 -3,1 -4)),((3 -2,4 -2,4 -1,5 -1,5 -4,4 -4,4 -3,3 -3,3 -2)),((3 -2,2 -2,2 -1,1 -1,1 0,4 0,4 -1,3 -1,3 -2)))'::geometry)
FROM (
SELECT
ST_SetValue(
-----------------------------------------------------------------------
Summary of changes:
raster/test/cunit/cu_gdal.c | 130 ++++++++++++++++++---------------
raster/test/cunit/cu_raster_geometry.c | 57 ++++++++-------
raster/test/regress/rt_polygon.sql | 14 ++--
3 files changed, 112 insertions(+), 89 deletions(-)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list