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');