From: Sandro Santilli Date: Tue, 19 Apr 2011 16:58:52 +0000 (+0000) Subject: Regress test for topology.polygonize() X-Git-Tag: 2.0.0alpha1~1755 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd37bf1577154502b003fbc1d76cd59c2b323c7c;p=postgis Regress test for topology.polygonize() git-svn-id: http://svn.osgeo.org/postgis/trunk@7048 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/topology/test/Makefile b/topology/test/Makefile index addf75a19..04cf8620c 100644 --- a/topology/test/Makefile +++ b/topology/test/Makefile @@ -27,6 +27,7 @@ TESTS = regress/legacy_validate.sql regress/legacy_predicate.sql \ regress/legacy_query.sql regress/addnode.sql \ regress/addedge.sql regress/addface.sql \ regress/addface2.5d.sql \ + regress/polygonize.sql \ regress/st_getfacegeometry.sql \ regress/topoelement.sql \ regress/topoelementarray_agg.sql \ diff --git a/topology/test/regress/polygonize.sql b/topology/test/regress/polygonize.sql new file mode 100644 index 000000000..c15439845 --- /dev/null +++ b/topology/test/regress/polygonize.sql @@ -0,0 +1,28 @@ +set client_min_messages to ERROR; + +SELECT topology.CreateTopology('tt') > 0; + +SELECT 'e1', topology.addEdge('tt', 'LINESTRING(0 0, 10 0)'); +SELECT 'e2', topology.addEdge('tt', 'LINESTRING(10 0, 10 10)'); +SELECT 'e3', topology.addEdge('tt', 'LINESTRING(0 10, 10 10)'); +SELECT 'e4', topology.addEdge('tt', 'LINESTRING(0 0, 0 10)'); +SELECT 'e5', topology.addEdge('tt', 'LINESTRING(0 0, 0 -10)'); +SELECT 'e6', topology.addEdge('tt', 'LINESTRING(10 10, 20 10)'); +SELECT 'e7', topology.addEdge('tt', 'LINESTRING(20 10, 20 0)'); +SELECT 'e8', topology.addEdge('tt', 'LINESTRING(20 0, 10 0)'); +SELECT 'e9', topology.addEdge('tt', 'LINESTRING(10 0, 0 -10)'); +SELECT 'e10', topology.addEdge('tt', 'LINESTRING(2 2, 5 2, 2 5)'); +SELECT 'e11', topology.addEdge('tt', 'LINESTRING(2 2, 2 5)'); + +-- Call, check linking +SELECT topology.polygonize('tt'); +SELECT face_id, Box2d(mbr) from tt.face ORDER by face_id; +SELECT edge_id, left_face, right_face from tt.edge ORDER by edge_id; + +-- Call again and recheck linking (shouldn't change anything) +SELECT topology.polygonize('tt'); +SELECT face_id, Box2d(mbr) from tt.face ORDER by face_id; +SELECT edge_id, left_face, right_face from tt.edge ORDER by edge_id; + +SELECT topology.DropTopology('tt'); + diff --git a/topology/test/regress/polygonize_expected b/topology/test/regress/polygonize_expected new file mode 100644 index 000000000..18191c576 --- /dev/null +++ b/topology/test/regress/polygonize_expected @@ -0,0 +1,47 @@ +t +e1|1 +e2|2 +e3|3 +e4|4 +e5|5 +e6|6 +e7|7 +e8|8 +e9|9 +e10|10 +e11|11 +4 faces registered +0| +1|BOX(0 -10,10 0) +2|BOX(0 0,10 10) +3|BOX(10 0,20 10) +4|BOX(2 2,5 5) +1|2|1 +2|2|3 +3|0|2 +4|0|2 +5|1|0 +6|0|3 +7|0|3 +8|0|3 +9|0|1 +10|4|2 +11|2|4 +4 faces registered +0| +1|BOX(0 -10,10 0) +2|BOX(0 0,10 10) +3|BOX(10 0,20 10) +4|BOX(2 2,5 5) +1|2|1 +2|2|3 +3|0|2 +4|0|2 +5|1|0 +6|0|3 +7|0|3 +8|0|3 +9|0|1 +10|4|2 +11|2|4 +Topology 'tt' dropped