From: Sandro Santilli Date: Thu, 12 Jan 2012 08:52:11 +0000 (+0000) Subject: Test roundtrip of WKT. Higher dimensions still needed (#1455) X-Git-Tag: 2.0.0alpha1~94 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=11432aa90225dcded2402c98577e51b84acd821f;p=postgis Test roundtrip of WKT. Higher dimensions still needed (#1455) git-svn-id: http://svn.osgeo.org/postgis/trunk@8786 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/regress/wkt.sql b/regress/wkt.sql index 21b27bb7a..0a86103f8 100644 --- a/regress/wkt.sql +++ b/regress/wkt.sql @@ -1,40 +1,168 @@ -select ST_astext('POINT EMPTY'); -select ST_astext('POINT(EMPTY)'); -select ST_astext('POINT(0 0)'); -select ST_astext('POINT((0 0))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POINT EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POINT(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POINT(0 0)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POINT((0 0))' +::text as g ) as foo; -select ST_astext('MULTIPOINT EMPTY'); -select ST_astext('MULTIPOINT(EMPTY)'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOINT EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOINT(EMPTY)' +::text as g ) as foo; -- This is supported for backward compatibility -select ST_astext('MULTIPOINT(0 0, 2 0)'); -select ST_astext('MULTIPOINT((0 0), (2 0))'); -select ST_astext('MULTIPOINT((0 0), (2 0), EMPTY)'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOINT(0 0, 2 0)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOINT((0 0), (2 0))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOINT((0 0), (2 0), EMPTY)' +::text as g ) as foo; -select ST_astext('LINESTRING EMPTY'); -select ST_astext('LINESTRING(EMPTY)'); -select ST_astext('LINESTRING(0 0, 1 1)'); -select ST_astext('LINESTRING((0 0, 1 1))'); -select ST_astext('LINESTRING((0 0), (1 1))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'LINESTRING EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'LINESTRING(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'LINESTRING(0 0, 1 1)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'LINESTRING((0 0, 1 1))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'LINESTRING((0 0), (1 1))' +::text as g ) as foo; -select ST_astext('MULTILINESTRING EMPTY'); -select ST_astext('MULTILINESTRING(EMPTY)'); -select ST_astext('MULTILINESTRING(0 0, 2 0)'); -select ST_astext('MULTILINESTRING((0 0, 2 0))'); -select ST_astext('MULTILINESTRING((0 0, 2 0), (1 1, 2 2))'); -select ST_astext('MULTILINESTRING((0 0, 2 0), (1 1, 2 2), EMPTY)'); -select ST_astext('MULTILINESTRING((0 0, 2 0), (1 1, 2 2), (EMPTY))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING(0 0, 2 0)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING((0 0, 2 0))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING((0 0, 2 0), (1 1, 2 2))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING((0 0, 2 0), (1 1, 2 2), EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTILINESTRING((0 0, 2 0), (1 1, 2 2), (EMPTY))' +::text as g ) as foo; -select ST_astext('POLYGON EMPTY'); -select ST_astext('POLYGON(EMPTY)'); -select ST_astext('POLYGON((0 0,1 0,1 1,0 1,0 0))'); -select ST_astext('POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POLYGON EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POLYGON(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POLYGON((0 0,1 0,1 1,0 1,0 0))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))' +::text as g ) as foo; -select ST_astext('MULTIPOLYGON EMPTY'); -select ST_astext('MULTIPOLYGON(EMPTY)'); -select ST_astext('MULTIPOLYGON((EMPTY))'); -select ST_astext('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2)))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOLYGON EMPTY' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOLYGON(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOLYGON((EMPTY))' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2)))' +::text as g ) as foo; -select ST_astext('GEOMETRYCOLLECTION EMPTY'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'GEOMETRYCOLLECTION EMPTY' +::text as g ) as foo; -- This is supported for backward compatibility -select ST_astext('GEOMETRYCOLLECTION(EMPTY)'); -select ST_astext('GEOMETRYCOLLECTION((EMPTY))'); +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'GEOMETRYCOLLECTION(EMPTY)' +::text as g ) as foo; +SELECT g, + ST_AsText(g::geometry), + ST_OrderingEquals(g::geometry, St_GeomFromText(ST_AsText(g::geometry))) FROM ( SELECT +'GEOMETRYCOLLECTION((EMPTY))' +::text as g ) as foo; diff --git a/regress/wkt_expected b/regress/wkt_expected index e959d7814..a0f0affe5 100644 --- a/regress/wkt_expected +++ b/regress/wkt_expected @@ -1,47 +1,47 @@ -POINT EMPTY +POINT EMPTY|POINT EMPTY|t ERROR: parse error - invalid geometry HINT: "POINT(EMPTY" <-- parse error at position 11 within geometry -POINT(0 0) +POINT(0 0)|POINT(0 0)|t ERROR: parse error - invalid geometry HINT: "POINT((" <-- parse error at position 7 within geometry -MULTIPOINT EMPTY +MULTIPOINT EMPTY|MULTIPOINT EMPTY|t ERROR: parse error - invalid geometry HINT: "MULTIPOINT(EMPTY" <-- parse error at position 16 within geometry -MULTIPOINT(0 0,2 0) -MULTIPOINT(0 0,2 0) +MULTIPOINT(0 0, 2 0)|MULTIPOINT(0 0,2 0)|t +MULTIPOINT((0 0), (2 0))|MULTIPOINT(0 0,2 0)|t ERROR: parse error - invalid geometry HINT: "MULTIPOINT((0 0), (2 0), EMPTY" <-- parse error at position 30 within geometry -LINESTRING EMPTY +LINESTRING EMPTY|LINESTRING EMPTY|t ERROR: parse error - invalid geometry HINT: "LINESTRING(EMPTY" <-- parse error at position 16 within geometry -LINESTRING(0 0,1 1) +LINESTRING(0 0, 1 1)|LINESTRING(0 0,1 1)|t ERROR: parse error - invalid geometry HINT: "LINESTRING((" <-- parse error at position 12 within geometry ERROR: parse error - invalid geometry HINT: "LINESTRING((" <-- parse error at position 12 within geometry -MULTILINESTRING EMPTY +MULTILINESTRING EMPTY|MULTILINESTRING EMPTY|t ERROR: parse error - invalid geometry HINT: "MULTILINESTRING(EMPTY" <-- parse error at position 21 within geometry ERROR: parse error - invalid geometry HINT: "MULTILINESTRING(0" <-- parse error at position 17 within geometry -MULTILINESTRING((0 0,2 0)) -MULTILINESTRING((0 0,2 0),(1 1,2 2)) +MULTILINESTRING((0 0, 2 0))|MULTILINESTRING((0 0,2 0))|t +MULTILINESTRING((0 0, 2 0), (1 1, 2 2))|MULTILINESTRING((0 0,2 0),(1 1,2 2))|t ERROR: parse error - invalid geometry HINT: "...ESTRING((0 0, 2 0), (1 1, 2 2), EMPTY" <-- parse error at position 45 within geometry ERROR: parse error - invalid geometry HINT: "...STRING((0 0, 2 0), (1 1, 2 2), (EMPTY" <-- parse error at position 46 within geometry -POLYGON EMPTY +POLYGON EMPTY|POLYGON EMPTY|t ERROR: parse error - invalid geometry HINT: "POLYGON(EMPTY" <-- parse error at position 13 within geometry -POLYGON((0 0,1 0,1 1,0 1,0 0)) -POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2)) -MULTIPOLYGON EMPTY +POLYGON((0 0,1 0,1 1,0 1,0 0))|POLYGON((0 0,1 0,1 1,0 1,0 0))|t +POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))|POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))|t +MULTIPOLYGON EMPTY|MULTIPOLYGON EMPTY|t ERROR: parse error - invalid geometry HINT: "MULTIPOLYGON(EMPTY" <-- parse error at position 18 within geometry ERROR: parse error - invalid geometry HINT: "MULTIPOLYGON((EMPTY" <-- parse error at position 19 within geometry -MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))) -GEOMETRYCOLLECTION EMPTY +MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2)))|MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2)))|t +GEOMETRYCOLLECTION EMPTY|GEOMETRYCOLLECTION EMPTY|t ERROR: parse error - invalid geometry HINT: "GEOMETRYCOLLECTION(EMPTY" <-- parse error at position 24 within geometry ERROR: parse error - invalid geometry