From: Sandro Santilli Date: Tue, 29 Mar 2011 13:57:01 +0000 (+0000) Subject: Add another test for topology.AddFace in presence of an open edge whose endpoints... X-Git-Tag: 2.0.0alpha1~1815 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=83db921ad5b2c7ec0ecbfad586f0ca40ee3c916b;p=postgis Add another test for topology.AddFace in presence of an open edge whose endpoints both intersect a polygon ring which does not cover it. git-svn-id: http://svn.osgeo.org/postgis/trunk@6987 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/topology/test/regress/addface.sql b/topology/test/regress/addface.sql index c1fea2646..0099bdc75 100644 --- a/topology/test/regress/addface.sql +++ b/topology/test/regress/addface.sql @@ -112,3 +112,38 @@ SELECT face_id, Box2d(mbr) from t2.face ORDER by face_id; SELECT edge_id, left_face, right_face from t2.edge ORDER by edge_id; SELECT topology.DropTopology('t2'); + +-- +-- Test edge touching face ring on both endpoints but not covered +-- (E1 with F1) +-- +-- +-- N2 +-------. +-- |\ F1 | +-- E1 | \ | E3 +-- |F2\ | +-- | / | +-- | /E2 | +-- |/ | +-- N1 +-------' +-- +SELECT topology.CreateTopology('t3') > 0; + +SELECT 't3.e1', topology.addEdge('t3', 'LINESTRING(0 0, 0 10)'); +SELECT 't3.e2', topology.addEdge('t3', 'LINESTRING(0 10, 5 5, 0 0)'); +SELECT 't3.e3', topology.addEdge('t3', 'LINESTRING(0 10, 10 10, 10 0, 0 0)'); + +-- Register F1 +SELECT 't3.f1', topology.addFace('t3', +'POLYGON((5 5, 0 10, 10 10, 10 0, 0 0, 5 5))'); + +-- Register F2 +SELECT 't3.f2', topology.addFace('t3', 'POLYGON((0 0, 5 5, 0 10, 0 0))'); + +-- Check added faces +SELECT face_id, Box2d(mbr) from t3.face ORDER by face_id; + +-- Check linking +SELECT edge_id, left_face, right_face from t3.edge ORDER by edge_id; + +SELECT topology.DropTopology('t3'); diff --git a/topology/test/regress/addface_expected b/topology/test/regress/addface_expected index 4961e7301..aa5445f20 100644 --- a/topology/test/regress/addface_expected +++ b/topology/test/regress/addface_expected @@ -83,3 +83,20 @@ ERROR: Polygon boundary is not fully defined by existing edges at or near point 10|5|2 11|2|5 Topology 't2' dropped +t +t3.e1|1 +t3.e2|2 +t3.e3|3 +WARNING: Not checking if face contains any edge +WARNING: Not updating next_{left,right}_face fields of face boundary edges +t3.f1|1 +WARNING: Not checking if face contains any edge +WARNING: Not updating next_{left,right}_face fields of face boundary edges +t3.f2|2 +0| +1|BOX(0 0,10 10) +2|BOX(0 0,5 10) +1|0|2 +2|1|2 +3|0|1 +Topology 't3' dropped