Mercurial > gemma
comparison schema/isrs_tests.sql @ 2486:bca9a7a89f28 octree-diff
Merged default into octree-diff branch.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 01 Mar 2019 18:28:50 +0100 |
parents | 00cac7890574 |
children | 73c8762cee60 |
comparison
equal
deleted
inserted
replaced
2485:86173ac7f222 | 2486:bca9a7a89f28 |
---|---|
40 ('AT', 'XXX', '00001', '00000', 1)::isrs), | 40 ('AT', 'XXX', '00001', '00000', 1)::isrs), |
41 ST_SetSRID('POLYGON((0 1, 0 2, 1 2, 1 1, 0 1))'::geometry, 4326) | 41 ST_SetSRID('POLYGON((0 1, 0 2, 1 2, 1 1, 0 1))'::geometry, 4326) |
42 ) IS NULL, | 42 ) IS NULL, |
43 'ISRSrange_area returns NULL, if given area does not intersect with axis'); | 43 'ISRSrange_area returns NULL, if given area does not intersect with axis'); |
44 | 44 |
45 SELECT ok( | 45 SELECT results_eq($$ |
46 ST_DWithin( | 46 SELECT every(ST_DWithin( |
47 (SELECT geom FROM waterway.distance_marks_virtual | 47 ST_Boundary(ISRSrange_area( |
48 WHERE location_code = ('AT', 'XXX', '00001', '00000', 0)::isrs), | 48 isrsrange( |
49 ST_Boundary(ISRSrange_area(isrsrange( | 49 ('AT', 'XXX', '00001', '00000', 0)::isrs, |
50 ('AT', 'XXX', '00001', '00000', 0)::isrs, | 50 ('AT', 'XXX', '00001', '00000', 1)::isrs), |
51 ('AT', 'XXX', '00001', '00000', 1)::isrs), | 51 (SELECT ST_Collect(CAST(area AS geometry)) |
52 (SELECT ST_Collect(CAST(area AS geometry)) | 52 FROM waterway.waterway_area))), |
53 FROM waterway.waterway_area))), | 53 geom, |
54 1) | 54 1)) |
55 AND | 55 FROM waterway.distance_marks_virtual |
56 ST_DWithin( | 56 WHERE location_code IN( |
57 (SELECT geom FROM waterway.distance_marks_virtual | 57 ('AT', 'XXX', '00001', '00000', 0)::isrs, |
58 WHERE location_code = ('AT', 'XXX', '00001', '00000', 1)::isrs), | 58 ('AT', 'XXX', '00001', '00000', 1)::isrs) |
59 ST_Boundary(ISRSrange_area(isrsrange( | 59 $$, |
60 ('AT', 'XXX', '00001', '00000', 0)::isrs, | 60 $$ |
61 ('AT', 'XXX', '00001', '00000', 1)::isrs), | 61 SELECT true |
62 (SELECT ST_Collect(CAST(area AS geometry)) | 62 $$, |
63 FROM waterway.waterway_area))), | |
64 1), | |
65 'Resulting polygon almost ST_Touches points corresponding to stretch'); | 63 'Resulting polygon almost ST_Touches points corresponding to stretch'); |
66 | 64 |
67 \set test_area 'POLYGON((-1 1, 2 1, 2 -1, -1 -1, -1 1))' | 65 \set test_area 'POLYGON((-1 1, 2 1, 2 -1, -1 -1, -1 1))' |
68 SELECT ok( | 66 SELECT ok( |
69 2 = ST_NumGeometries( | 67 2 = ST_NumGeometries( |
99 - ST_XMin(:'test_area'::geometry))/3), | 97 - ST_XMin(:'test_area'::geometry))/3), |
100 0)), | 98 0)), |
101 4326))), | 99 4326))), |
102 'Self-intersecting multipolygon leads to one polygon in result'); | 100 'Self-intersecting multipolygon leads to one polygon in result'); |
103 | 101 |
104 SELECT ok( | 102 SELECT results_eq($$ |
105 ISRSrange_area( | 103 SELECT every(ST_DWithin( |
106 isrsrange( | 104 ST_Boundary(ISRSrange_area( |
105 isrsrange( | |
106 ('AT', 'XXX', '00001', '00000', 0)::isrs, | |
107 ('AT', 'XXX', '00001', '00000', 2)::isrs), | |
108 (SELECT ST_Collect(CAST(area AS geometry)) | |
109 FROM waterway.waterway_area))), | |
110 geom, | |
111 1)) | |
112 FROM waterway.distance_marks_virtual | |
113 WHERE location_code IN( | |
107 ('AT', 'XXX', '00001', '00000', 0)::isrs, | 114 ('AT', 'XXX', '00001', '00000', 0)::isrs, |
108 ('AT', 'XXX', '00001', '00000', 2)::isrs), | 115 ('AT', 'XXX', '00001', '00000', 2)::isrs) |
109 (SELECT ST_Collect(CAST(area AS geometry)) | 116 $$, |
110 FROM waterway.waterway_area)) IS NOT NULL, | 117 $$ |
118 SELECT true | |
119 $$, | |
111 'Area generated from non-matching distance mark and non-contiguous axis'); | 120 'Area generated from non-matching distance mark and non-contiguous axis'); |