Mercurial > gemma
changeset 2453:00cac7890574
Improve TAP tests
Reduce code duplication in one test and infer correctness of result
a bit closer in another.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 01 Mar 2019 17:26:08 +0100 |
parents | 0f1a915344c5 |
children | 219c5b57ef5b |
files | schema/isrs_tests.sql |
diffstat | 1 files changed, 35 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/schema/isrs_tests.sql Fri Mar 01 17:06:25 2019 +0100 +++ b/schema/isrs_tests.sql Fri Mar 01 17:26:08 2019 +0100 @@ -42,26 +42,24 @@ ) IS NULL, 'ISRSrange_area returns NULL, if given area does not intersect with axis'); -SELECT ok( - ST_DWithin( - (SELECT geom FROM waterway.distance_marks_virtual - WHERE location_code = ('AT', 'XXX', '00001', '00000', 0)::isrs), - ST_Boundary(ISRSrange_area(isrsrange( - ('AT', 'XXX', '00001', '00000', 0)::isrs, - ('AT', 'XXX', '00001', '00000', 1)::isrs), - (SELECT ST_Collect(CAST(area AS geometry)) - FROM waterway.waterway_area))), - 1) - AND - ST_DWithin( - (SELECT geom FROM waterway.distance_marks_virtual - WHERE location_code = ('AT', 'XXX', '00001', '00000', 1)::isrs), - ST_Boundary(ISRSrange_area(isrsrange( - ('AT', 'XXX', '00001', '00000', 0)::isrs, - ('AT', 'XXX', '00001', '00000', 1)::isrs), - (SELECT ST_Collect(CAST(area AS geometry)) - FROM waterway.waterway_area))), - 1), +SELECT results_eq($$ + SELECT every(ST_DWithin( + ST_Boundary(ISRSrange_area( + isrsrange( + ('AT', 'XXX', '00001', '00000', 0)::isrs, + ('AT', 'XXX', '00001', '00000', 1)::isrs), + (SELECT ST_Collect(CAST(area AS geometry)) + FROM waterway.waterway_area))), + geom, + 1)) + FROM waterway.distance_marks_virtual + WHERE location_code IN( + ('AT', 'XXX', '00001', '00000', 0)::isrs, + ('AT', 'XXX', '00001', '00000', 1)::isrs) + $$, + $$ + SELECT true + $$, 'Resulting polygon almost ST_Touches points corresponding to stretch'); \set test_area 'POLYGON((-1 1, 2 1, 2 -1, -1 -1, -1 1))' @@ -101,11 +99,22 @@ 4326))), 'Self-intersecting multipolygon leads to one polygon in result'); -SELECT ok( - ISRSrange_area( - isrsrange( +SELECT results_eq($$ + SELECT every(ST_DWithin( + ST_Boundary(ISRSrange_area( + isrsrange( + ('AT', 'XXX', '00001', '00000', 0)::isrs, + ('AT', 'XXX', '00001', '00000', 2)::isrs), + (SELECT ST_Collect(CAST(area AS geometry)) + FROM waterway.waterway_area))), + geom, + 1)) + FROM waterway.distance_marks_virtual + WHERE location_code IN( ('AT', 'XXX', '00001', '00000', 0)::isrs, - ('AT', 'XXX', '00001', '00000', 2)::isrs), - (SELECT ST_Collect(CAST(area AS geometry)) - FROM waterway.waterway_area)) IS NOT NULL, + ('AT', 'XXX', '00001', '00000', 2)::isrs) + $$, + $$ + SELECT true + $$, 'Area generated from non-matching distance mark and non-contiguous axis');