]> granicus.if.org Git - postgis/commitdiff
Rewrite test for ST_AddIsoNode (see #1503)
authorSandro Santilli <strk@keybit.net>
Fri, 27 Jan 2012 11:05:44 +0000 (11:05 +0000)
committerSandro Santilli <strk@keybit.net>
Fri, 27 Jan 2012 11:05:44 +0000 (11:05 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8942 b70326c6-7e19-0410-871a-916f4a2858ee

topology/test/regress/st_addisonode.sql
topology/test/regress/st_addisonode_expected

index f15054c16542fdfce5af538a412f0069e0b9e659..57585f68a42f07227df6691495812d84486ae944 100644 (file)
@@ -1,75 +1,53 @@
 set client_min_messages to WARNING;
+\set VERBOSITY terse
 
-select topology.CreateTopology('tt', -1) > 0;
+-- Usual city_data input 
 
-select 'ST_AddIsoNode: test NULL exceptions';
---
-select topology.ST_AddIsoNode(NULL, 0, 'POINT(1 4)');
-select topology.ST_AddIsoNode('tt', 0, NULL);
-select topology.ST_AddIsoNode('tt', NULL, NULL);
-select topology.ST_AddIsoNode(NULL, NULL, NULL);
---
-select 'ST_AddIsoNode: test wrong topology name';
---
-select topology.ST_AddIsoNode('wrong_name', 0, 'POINT(1 4)');
---
-select 'ST_AddIsoNode: test negative idface';
---
-select topology.ST_AddIsoNode('tt', -1, 'POINT(1 4)');
---
-select 'ST_AddIsoNode: test wrong idface';
---
-select topology.ST_AddIsoNode('tt', 1, 'POINT(1 4)');
---
-select 'ST_AddIsoNode: test smart creation ISO Node (without know idface)';
---
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(1 4)');
---
-select 'ST_AddIsoNode: test coincident nodes';
---
-select topology.ST_AddIsoNode('tt', 0, 'POINT(1 4)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(1 4)');
-select topology.ST_AddIsoNode('tt', 1, 'POINT(1 4)');
---
-select 'ST_AddIsoNode: test add a node in UniverseFace';
---
-select topology.ST_AddIsoNode('tt', 0, 'POINT(2 2)');
---
-select 'ST_AddIsoNode - prepare to test the creation inside a face';
---
-select topology.DropTopology('tt');
-select topology.CreateTopology('tt', -1) > 0;
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(1 1)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(5 2)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(4 6)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(0 4)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(2 2)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(4 3)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(3 5)');
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(1 3)');
-select count(*) from tt.node where containing_face<>0;
-select count(*) from tt.node where containing_face is null;
-INSERT INTO tt.face (face_id, mbr) VALUES (2, '010300000001000000050000000000000000000000000000000000F03F00000000000000000000000000001840000000000000144000000000000018400000000000001440000000000000F03F0000000000000000000000000000F03F');
-INSERT INTO tt.face (face_id, mbr) VALUES (3, '01030000000100000005000000000000000000F03F0000000000000040000000000000F03F00000000000014400000000000001040000000000000144000000000000010400000000000000040000000000000F03F0000000000000040');
-BEGIN;
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (1, 1, 2, 2, 2, -4, 4, 2, 0, '010200000002000000000000000000F03F000000000000F03F00000000000014400000000000000040');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (2, 2, 3, 3, 3, -1, 1, 2, 0, '0102000000020000000000000000001440000000000000004000000000000010400000000000001840');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (3, 3, 4, 4, 4, -2, 2, 2, 0, '0102000000020000000000000000001040000000000000184000000000000000000000000000001040');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (4, 4, 1, 1, 1, -3, 3, 2, 0, '01020000000200000000000000000000000000000000001040000000000000F03F000000000000F03F');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (5, 5, 6, 6, 6, -8, 8, 3, 2, '0102000000020000000000000000000040000000000000004000000000000010400000000000000840');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (6, 6, 7, 7, 7, -5, 5, 3, 2, '0102000000020000000000000000001040000000000000084000000000000008400000000000001440');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (7, 7, 8, 8, 8, -6, 6, 3, 2, '01020000000200000000000000000008400000000000001440000000000000F03F0000000000000840');
-INSERT INTO tt.edge_data (edge_id, start_node, end_node, next_left_edge, abs_next_left_edge, next_right_edge, abs_next_right_edge, left_face, right_face, geom) VALUES (8, 8, 5, 5, 5, -7, 7, 3, 2, '010200000002000000000000000000F03F000000000000084000000000000000400000000000000040');
-END;
---
-select 'ST_AddIsoNode: test a node inside a hole';
---
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(3 3)');
-select count(*) from tt.node where node_id=9 AND containing_face=3;
---
-select 'ST_AddIsoNode: test a node inside a face';
---
-select topology.ST_AddIsoNode('tt', NULL, 'POINT(4 5)');
-select count(*) from tt.node where node_id=10 AND containing_face=2;
---
-select topology.DropTopology('tt');
+\i load_topology.sql
+
+
+-- NULL exceptions
+select ST_AddIsoNode(NULL, 0, 'POINT(1 4)');
+select ST_AddIsoNode('tt', 0, NULL);
+select ST_AddIsoNode('tt', NULL, NULL);
+select ST_AddIsoNode(NULL, NULL, NULL);
+-- Wrong topology name
+select ST_AddIsoNode('wrong_name', 0, 'POINT(1 4)');
+select ST_AddIsoNode('', 0, 'POINT(1 4)');
+-- Negative idface';
+select ST_AddIsoNode('city_data', -1, 'POINT(1 4)');
+-- Wrong idface
+select ST_AddIsoNode('city_data', 5, 'POINT(5 33)'); -- in face 9
+select ST_AddIsoNode('city_data', 9, 'POINT(39 18)'); -- in face 5
+--  Coincident nodes';
+select ST_AddIsoNode('city_data', 0, 'POINT(21 22)');
+select ST_AddIsoNode('city_data', NULL, 'POINT(21 22)');
+select ST_AddIsoNode('city_data', 1, 'POINT(21 22)');
+
+-- Smart creation ISO Node (without know idface)';
+
+-- in face 5
+select 1 as id, ST_AddIsoNode('city_data', NULL, 'POINT(39 18)') as n
+  into nn;
+insert into nn -- in universe
+select '2', ST_AddIsoNode('city_data', NULL, 'POINT(50 18)');
+insert into nn -- in face 9
+select '3', ST_AddIsoNode('city_data', NULL, 'POINT(5 33)');
+
+-- Explicit face
+
+insert into nn -- in face 5
+select '4', ST_AddIsoNode('city_data', 5, 'POINT(42 18)');
+insert into nn -- in universe
+select '5', ST_AddIsoNode('city_data', 0, 'POINT(50 17)');
+insert into nn -- in face 9
+select '6', ST_AddIsoNode('city_data', 9, 'POINT(5 32)');
+
+SELECT 'T'||t.id, n.node_id, n.containing_face FROM nn t, city_data.node n
+  WHERE t.n = n.node_id ORDER BY t.id;
+
+-- TODO: test for bug #1503
+--SELECT 'T5', st_addisonode('city_data', 22, 'POINT(28.5 32.5)');
+
+DROP TABLE nn;
+select topology.DropTopology('city_data');
index ba6d65bd2b74e21109fc85c4d76e1935fb3c27b4..15fcaecf3c1e48275a6e8d087ba5936829d0af9d 100644 (file)
@@ -1,42 +1,25 @@
+BEGIN
 t
-ST_AddIsoNode: test NULL exceptions
+9
+22
+26
+COMMIT
 ERROR:  SQL/MM Spatial exception - null argument
 ERROR:  SQL/MM Spatial exception - null argument
 ERROR:  SQL/MM Spatial exception - null argument
 ERROR:  SQL/MM Spatial exception - null argument
-ST_AddIsoNode: test wrong topology name
 ERROR:  SQL/MM Spatial exception - invalid topology name
-ST_AddIsoNode: test negative idface
+ERROR:  zero-length delimited identifier at or near """" at character 21
+ERROR:  SQL/MM Spatial exception - not within face
 ERROR:  SQL/MM Spatial exception - not within face
-ST_AddIsoNode: test wrong idface
 ERROR:  SQL/MM Spatial exception - not within face
-ST_AddIsoNode: test smart creation ISO Node (without know idface)
-1
-ST_AddIsoNode: test coincident nodes
 ERROR:  SQL/MM Spatial exception - coincident node
 ERROR:  SQL/MM Spatial exception - coincident node
 ERROR:  SQL/MM Spatial exception - coincident node
-ST_AddIsoNode: test add a node in UniverseFace
-2
-ST_AddIsoNode - prepare to test the creation inside a face
-Topology 'tt' dropped
-t
-1
-2
-3
-4
-5
-6
-7
-8
-0
-0
-BEGIN
-COMMIT
-ST_AddIsoNode: test a node inside a hole
-9
-1
-ST_AddIsoNode: test a node inside a face
-10
-1
-Topology 'tt' dropped
+T1|23|5
+T2|24|0
+T3|25|9
+T4|26|5
+T5|27|0
+T6|28|9
+Topology 'city_data' dropped