]> git.openstreetmap.org Git - nominatim.git/commitdiff
adapt BDD tests for new interpolation style
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 26 Jan 2022 14:24:06 +0000 (15:24 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Thu, 27 Jan 2022 10:14:55 +0000 (11:14 +0100)
lib-sql/functions/interpolation.sql
test/bdd/db/import/interpolation.feature
test/bdd/db/update/interpolation.feature

index c018155680039df6b3ae7e44e7e822fb9cc981d0..64775678bb26f8159969ca1144a64aa05ab18ce3 100644 (file)
@@ -53,9 +53,13 @@ BEGIN
   IF parent_place_id is null THEN
     FOR location IN SELECT place_id FROM placex
         WHERE ST_DWithin(geom, placex.geometry, 0.001) and placex.rank_search = 26
-        ORDER BY (ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0))+
+        ORDER BY CASE WHEN ST_GeometryType(geom) = 'ST_Line' THEN
+                  (ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0))+
                   ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0.5))+
-                  ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,1))) ASC limit 1
+                  ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,1)))
+                 ELSE ST_distance(placex.geometry, geom) END
+              ASC
+        LIMIT 1
     LOOP
       parent_place_id := location.place_id;
     END LOOP;
index 181e87eec56f3b471616cf883964f4e84eb4bd2b..4624705e848e5d4ae0c5bac76670b88d8f43a8d7 100644 (file)
@@ -16,23 +16,23 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 6   | 1 1, 1 1.001 |
+          | 4     | 4   | 1 1.0005 |
 
     Scenario: Backwards even two point interpolation line
         Given the places
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
-          | N2  | place | house  | 6       | 1 1.001 |
+          | N2  | place | house  | 8       | 1 1.003 |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
-          | W1  | place | houses | even    | 1 1.001, 1 1 |
+          | W1  | place | houses | even    | 1 1.003, 1 1 |
         And the ways
           | id | nodes |
           | 1  | 2,1 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 6   | 1 1, 1 1.001 |
+          | 4     | 6   | 1 1.001, 1 1.002 |
 
     Scenario: Simple odd two point interpolation
         Given the places
@@ -48,23 +48,23 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 1     | 11  | 1 1, 1 1.001 |
+          | 3     | 9  | 1 1.0002, 1 1.0008 |
 
     Scenario: Simple all two point interpolation
         Given the places
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 1       | 1 1 |
-          | N2  | place | house  | 3       | 1 1.001 |
+          | N2  | place | house  | 4       | 1 1.003 |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
-          | W1  | place | houses | all     | 1 1, 1 1.001 |
+          | W1  | place | houses | all     | 1 1, 1 1.003 |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 1     | 3   | 1 1, 1 1.001 |
+          | 2     | 3   | 1 1.001, 1 1.002 |
 
     Scenario: Even two point interpolation line with intermediate empty node
         Given the places
@@ -80,7 +80,7 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 10  | 1 1, 1 1.001, 1.001 1.001 |
+          | 4     | 8   | 1 1.0005, 1 1.001, 1.0005 1.001 |
 
     Scenario: Even two point interpolation line with intermediate duplicated empty node
         Given the places
@@ -96,7 +96,7 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 10  | 1 1, 1 1.001, 1.001 1.001 |
+          | 4     | 8   | 1 1.0005, 1 1.001, 1.0005 1.001 |
 
     Scenario: Simple even three point interpolation line
         Given the places
@@ -113,8 +113,8 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 10  | 1 1, 1 1.001 |
-          | 10    | 14  | 1 1.001, 1.001 1.001 |
+          | 4     |  8  | 1 1.00025, 1 1.00075 |
+          | 12    | 12  | 1.0005 1.001 |
 
     Scenario: Simple even four point interpolation line
         Given the places
@@ -132,9 +132,9 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 10  | 1 1, 1 1.001 |
-          | 10    | 14  | 1 1.001, 1.001 1.001 |
-          | 14    | 18  | 1.001 1.001, 1.001 1.002 |
+          | 4     | 8   | 1 1.00025, 1 1.00075 |
+          | 12    | 12  | 1.0005 1.001 |
+          | 16    | 16  | 1.001 1.0015 |
 
     Scenario: Reverse simple even three point interpolation line
         Given the places
@@ -151,8 +151,8 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 10  | 1 1, 1 1.001 |
-          | 10    | 14  | 1 1.001, 1.001 1.001 |
+          | 4     |  8  | 1 1.00025, 1 1.00075 |
+          | 12    | 12  | 1.0005 1.001 |
 
     Scenario: Even three point interpolation line with odd center point
         Given the places
@@ -169,8 +169,7 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 7   | 1 1, 1 1.001 |
-          | 7     | 8   | 1 1.001, 1.001 1.001 |
+          | 4     | 6   | 1 1.0004, 1 1.0008 |
 
     Scenario: Interpolation line with self-intersecting way
         Given the places
@@ -187,9 +186,9 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 6   | 0 0, 0 0.001 |
-          | 6     | 10  | 0 0.001, 0 0.002 |
-          | 6     | 10  | 0 0.001, 0 0.002 |
+          | 4     | 4   | 0 0.0005 |
+          | 8     | 8   | 0 0.0015 |
+          | 8     | 8   | 0 0.0015 |
 
     Scenario: Interpolation line with self-intersecting way II
         Given the places
@@ -205,7 +204,7 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 6   | 0 0, 0 0.001 |
+          | 4     | 4   | 0 0.0005 |
 
     Scenario: addr:street on interpolation way
         Given the scene parallel-road
@@ -236,10 +235,10 @@ Feature: Import of address interpolations
           | N4     | W3 |
         Then W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4 |
         Then W11 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 12    | 16 |
+          | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
@@ -278,10 +277,10 @@ Feature: Import of address interpolations
           | N4     | W3 |
         Then W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4 |
         Then W11 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 12    | 16 |
+          | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
@@ -306,8 +305,8 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 2     | 6   | 144.9629794 -37.7630755, 144.9630541 -37.7628174 |
-          | 6     | 10  | 144.9630541 -37.7628174, 144.9632341 -37.76163 |
+          | 4     | 4   | 144.963016 -37.762946 |
+          | 8     | 8   | 144.963144 -37.7622237 |
 
     Scenario: Place with missing address information
         Given the grid
@@ -326,7 +325,7 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 23    | 29  | 1,2,3 |
+          | 25    | 27  | 0.000016 0,0.00002 0,0.000033 0 |
 
     Scenario: Ways without node entries are ignored
         Given the places
@@ -348,7 +347,7 @@ Feature: Import of address interpolations
         Given the places
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 0       | 1 1 |
-          | N2  | place | house  | 2       | 1 1.001 |
+          | N2  | place | house  | 8       | 1 1.001 |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even     | 1 1, 1 1.001 |
@@ -358,9 +357,8 @@ Feature: Import of address interpolations
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 0     | 2   | 1 1, 1 1.001 |
+          | 2     | 6   | 1 0002, 1 1.0008 |
         When sending jsonv2 reverse coordinates 1,1
         Then results contain
           | ID | osm_type | osm_id | type  | display_name |
           | 0  | way      | 1      | house | 0 |
-
index 27ac552e4d907315b2c711d756ddefdc317bf9b5..5c07f434e1ec715b9132d4ab620babf0bd3fc56d 100644 (file)
@@ -26,7 +26,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
 
     Scenario: addr:street added to interpolation
       Given the scene parallel-road
@@ -51,7 +51,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
       When updating places
           | osm | class   | type    | addr+interpolation | street       | geometry |
           | W10 | place   | houses  | even    | Cloud Street | :w-middle |
@@ -61,7 +61,7 @@ Feature: Update of address interpolations
           | N2     | W3 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 2     | 6 |
+          | W3              | 4     | 4   |
 
     Scenario: addr:street added to housenumbers
       Given the scene parallel-road
@@ -86,7 +86,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4 |
       When updating places
           | osm | class | type  | street      | housenr | geometry |
           | N1  | place | house | Cloud Street| 2       | :n-middle-w |
@@ -97,7 +97,7 @@ Feature: Update of address interpolations
           | N2     | W3 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 2     | 6 |
+          | W3              | 4     | 4   |
 
     Scenario: interpolation tag removed
       Given the scene parallel-road
@@ -122,7 +122,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
       When marking for delete W10
       Then W10 expands to no interpolation
       And placex contains
@@ -152,7 +152,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4 |
       When updating places
           | osm | class   | type         | name         | geometry |
           | W3  | highway | unclassified | Cloud Street | :w-south |
@@ -162,7 +162,7 @@ Feature: Update of address interpolations
           | N2     | W3 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 2     | 6 |
+          | W3              | 4     | 4   |
 
     Scenario: referenced road deleted
       Given the scene parallel-road
@@ -187,7 +187,7 @@ Feature: Update of address interpolations
           | N2     | W3 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W3              | 2     | 6 |
+          | W3              | 4     | 4   |
       When marking for delete W3
       Then placex contains
           | object | parent_place_id |
@@ -195,7 +195,7 @@ Feature: Update of address interpolations
           | N2     | W2 |
       And W10 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
 
     Scenario: building becomes interpolation
       Given the scene building-with-parallel-streets
@@ -222,7 +222,7 @@ Feature: Update of address interpolations
       Then placex has no entry for W1
       And W1 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
 
     Scenario: interpolation becomes building
       Given the scene building-with-parallel-streets
@@ -243,7 +243,7 @@ Feature: Update of address interpolations
       Then placex has no entry for W1
       And W1 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
       When updating places
           | osm | class    | type  | housenr | geometry |
           | W1  | place    | house | 3       | :w-building |
@@ -273,7 +273,7 @@ Feature: Update of address interpolations
           | W1  | place   | houses  | even    | Cloud Street| :w-north |
       Then W1 expands to interpolation
           | parent_place_id | start | end |
-          | W2              | 2     | 6 |
+          | W2              | 4     | 4   |
 
     Scenario: housenumber added in middle of interpolation
       Given the grid
@@ -294,15 +294,15 @@ Feature: Update of address interpolations
           | N5  | place | house | 10      |
       When importing
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 10  | 3,4,5    |
+          | parent_place_id | start | end |
+          | W1              | 4     | 8  |
       When updating places
           | osm | class | type  | housenr |
           | N4  | place | house | 6       |
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 6   | 3,4      |
-          | W1              | 6     | 10  | 4,5      |
+          | parent_place_id | start | end |
+          | W1              | 4     | 4   |
+          | W1              | 8     | 8   |
 
     @Fail
     Scenario: housenumber removed in middle of interpolation
@@ -325,13 +325,13 @@ Feature: Update of address interpolations
           | N5  | place | house | 10      |
       When importing
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 6   | 3,4      |
-          | W1              | 6     | 10  | 4,5      |
+          | parent_place_id | start | end |
+          | W1              | 4     | 4   |
+          | W1              | 8     | 8   |
       When marking for delete N4
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 10  | 3,4,5    |
+          | parent_place_id | start | end |
+          | W1              | 4     | 8   |
 
     Scenario: Change the start housenumber
       Given the grid
@@ -352,12 +352,12 @@ Feature: Update of address interpolations
           | N4  | place | house | 6       |
       When importing
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 6   | 3,4      |
+          | parent_place_id | start | end |
+          | W1              | 4     | 4   |
       When updating places
           | osm | class | type  | housenr |
           | N4  | place | house | 8       |
       Then W2 expands to interpolation
-          | parent_place_id | start | end | geometry |
-          | W1              | 2     | 8   | 3,4      |
+          | parent_place_id | start | end |
+          | W1              | 4     | 6   |