]> granicus.if.org Git - postgis/commitdiff
Regress test for topology.polygonize(<toponame>)
authorSandro Santilli <strk@keybit.net>
Tue, 19 Apr 2011 16:58:52 +0000 (16:58 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 19 Apr 2011 16:58:52 +0000 (16:58 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@7048 b70326c6-7e19-0410-871a-916f4a2858ee

topology/test/Makefile
topology/test/regress/polygonize.sql [new file with mode: 0644]
topology/test/regress/polygonize_expected [new file with mode: 0644]

index addf75a19c2dc786d00292b869ccfc53fa227da9..04cf8620cf4d264858b9d918b8d830cfffb20b62 100644 (file)
@@ -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 (file)
index 0000000..c154398
--- /dev/null
@@ -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 (file)
index 0000000..18191c5
--- /dev/null
@@ -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