]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/interpolation.feature
ICU: matching any street name will do again
[nominatim.git] / test / bdd / db / import / interpolation.feature
index 4ed66b91980e2dbc1306b61c196475b8c90b08ab..181e87eec56f3b471616cf883964f4e84eb4bd2b 100644 (file)
@@ -7,6 +7,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 6       | 1 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 6       | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
@@ -21,6 +23,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 6       | 1 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 6       | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1.001, 1 1 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1.001, 1 1 |
         And the ways
           | id | nodes |
@@ -35,6 +39,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 1       | 1 1 |
           | N2  | place | house  | 11      | 1 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 1       | 1 1 |
           | N2  | place | house  | 11      | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | odd     | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | odd     | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
@@ -49,6 +55,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 1       | 1 1 |
           | N2  | place | house  | 3       | 1 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 1       | 1 1 |
           | N2  | place | house  | 3       | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | all     | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | all     | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
@@ -63,6 +71,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 10      | 1.001 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 10      | 1.001 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
@@ -77,6 +87,8 @@ Feature: Import of address interpolations
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 10      | 1.001 1.001 |
           | osm | class | type   | housenr | geometry |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 10      | 1.001 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
@@ -92,6 +104,8 @@ Feature: Import of address interpolations
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 14      | 1.001 1.001 |
           | N3  | place | house  | 10      | 1 1.001 |
           | N1  | place | house  | 2       | 1 1 |
           | N2  | place | house  | 14      | 1.001 1.001 |
           | N3  | place | house  | 10      | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
@@ -109,6 +123,8 @@ Feature: Import of address interpolations
           | N2  | place | house | 14      | 1.001 1.001 |
           | N3  | place | house | 10      | 1 1.001 |
           | N4  | place | house | 18      | 1.001 1.002 |
           | N2  | place | house | 14      | 1.001 1.001 |
           | N3  | place | house | 10      | 1 1.001 |
           | N4  | place | house | 18      | 1.001 1.002 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001, 1.001 1.002 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001, 1.001 1.002 |
         And the ways
           | id | nodes |
@@ -126,6 +142,8 @@ Feature: Import of address interpolations
           | N1  | place | house | 2       | 1 1 |
           | N2  | place | house | 14      | 1.001 1.001 |
           | N3  | place | house | 10      | 1 1.001 |
           | N1  | place | house | 2       | 1 1 |
           | N2  | place | house | 14      | 1.001 1.001 |
           | N3  | place | house | 10      | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1.001 1.001, 1 1.001, 1 1 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1.001 1.001, 1 1.001, 1 1 |
         And the ways
           | id | nodes |
@@ -142,6 +160,8 @@ Feature: Import of address interpolations
           | N1  | place | house | 2       | 1 1 |
           | N2  | place | house | 8       | 1.001 1.001 |
           | N3  | place | house | 7       | 1 1.001 |
           | N1  | place | house | 2       | 1 1 |
           | N2  | place | house | 8       | 1.001 1.001 |
           | N3  | place | house | 7       | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 1 1, 1 1.001, 1.001 1.001 |
         And the ways
           | id | nodes |
@@ -158,6 +178,8 @@ Feature: Import of address interpolations
           | N1  | place | house | 2       | 0 0 |
           | N2  | place | house | 6       | 0 0.001 |
           | N3  | place | house | 10      | 0 0.002 |
           | N1  | place | house | 2       | 0 0 |
           | N2  | place | house | 6       | 0 0.001 |
           | N3  | place | house | 10      | 0 0.002 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 0 0, 0 0.001, 0 0.002, 0 0.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 0 0, 0 0.001, 0 0.002, 0 0.001 |
         And the ways
           | id | nodes |
@@ -174,6 +196,8 @@ Feature: Import of address interpolations
           | osm | class | type  | housenr | geometry |
           | N1  | place | house | 2       | 0 0 |
           | N2  | place | house | 6       | 0 0.001 |
           | osm | class | type  | housenr | geometry |
           | N1  | place | house | 2       | 0 0 |
           | N2  | place | house | 6       | 0 0.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 0 0, 0 0.001, 0 0.002, 0 0.001 |
         And the ways
           | id | nodes |
           | W1  | place | houses | even    | 0 0, 0 0.001, 0 0.002, 0 0.001 |
         And the ways
           | id | nodes |
@@ -192,7 +216,7 @@ Feature: Import of address interpolations
           | N3  | place | house | 12      | :n-middle-w |
           | N4  | place | house | 16      | :n-middle-e |
         And the places
           | N3  | place | house | 12      | :n-middle-w |
           | N4  | place | house | 16      | :n-middle-e |
         And the places
-          | osm | class   | type    | housenr | street       | geometry |
+          | osm | class   | type    | addr+interpolation | street       | geometry |
           | W10 | place   | houses  | even    |              | :w-middle |
           | W11 | place   | houses  | even    | Cloud Street | :w-middle |
         And the places
           | W10 | place   | houses  | even    |              | :w-middle |
           | W11 | place   | houses  | even    | Cloud Street | :w-middle |
         And the places
@@ -216,18 +240,14 @@ Feature: Import of address interpolations
         Then W11 expands to interpolation
           | parent_place_id | start | end |
           | W3              | 12    | 16 |
         Then W11 expands to interpolation
           | parent_place_id | start | end |
           | W3              | 12    | 16 |
-        When searching for "16 Cloud Street"
+        When sending search query "16 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | N        | 4 |
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | N        | 4 |
-        When searching for "14 Cloud Street"
+        When sending search query "14 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | W        | 11 |
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | W        | 11 |
-        When searching for "18 Cloud Street"
-        Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | W        | 3 |
 
     Scenario: addr:street on housenumber way
         Given the scene parallel-road
 
     Scenario: addr:street on housenumber way
         Given the scene parallel-road
@@ -238,9 +258,9 @@ Feature: Import of address interpolations
           | N3  | place | house | 12      | Cloud Street | :n-middle-w |
           | N4  | place | house | 16      | Cloud Street | :n-middle-e |
         And the places
           | N3  | place | house | 12      | Cloud Street | :n-middle-w |
           | N4  | place | house | 16      | Cloud Street | :n-middle-e |
         And the places
-          | osm | class   | type    | housenr | geometry |
-          | W10 | place   | houses  | even    | :w-middle |
-          | W11 | place   | houses  | even    | :w-middle |
+          | osm | class   | type    | addr+interpolation | geometry |
+          | W10 | place   | houses  | even               | :w-middle |
+          | W11 | place   | houses  | even               | :w-middle |
         And the places
           | osm | class   | type     | name         | geometry |
           | W2  | highway | tertiary | Sun Way      | :w-north |
         And the places
           | osm | class   | type     | name         | geometry |
           | W2  | highway | tertiary | Sun Way      | :w-north |
@@ -262,11 +282,11 @@ Feature: Import of address interpolations
         Then W11 expands to interpolation
           | parent_place_id | start | end |
           | W3              | 12    | 16 |
         Then W11 expands to interpolation
           | parent_place_id | start | end |
           | W3              | 12    | 16 |
-        When searching for "16 Cloud Street"
+        When sending search query "16 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | N        | 4 |
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | N        | 4 |
-        When searching for "14 Cloud Street"
+        When sending search query "14 Cloud Street"
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | W        | 11 |
         Then results contain
          | ID | osm_type | osm_id |
          | 0  | W        | 11 |
@@ -277,7 +297,9 @@ Feature: Import of address interpolations
           | N1  | place | house       | 10      | 144.9632341 -37.76163 |
           | N2  | place | house       | 6       | 144.9630541 -37.7628174 |
           | N3  | shop  | supermarket | 2       | 144.9629794 -37.7630755 |
           | N1  | place | house       | 10      | 144.9632341 -37.76163 |
           | N2  | place | house       | 6       | 144.9630541 -37.7628174 |
           | N3  | shop  | supermarket | 2       | 144.9629794 -37.7630755 |
-          | W1  | place | houses      | even    | 144.9632341 -37.76163,144.9630541 -37.7628172,144.9629794 -37.7630755 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even    | 144.9632341 -37.76163,144.9630541 -37.7628172,144.9629794 -37.7630755 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
@@ -288,16 +310,57 @@ Feature: Import of address interpolations
           | 6     | 10  | 144.9630541 -37.7628174, 144.9632341 -37.76163 |
 
     Scenario: Place with missing address information
           | 6     | 10  | 144.9630541 -37.7628174, 144.9632341 -37.76163 |
 
     Scenario: Place with missing address information
-        Given the places
-          | osm | class   | type   | housenr | geometry |
-          | N1  | place   | house  | 23      | 0.0001 0.0001 |
-          | N2  | amenity | school |         | 0.0001 0.0002 |
-          | N3  | place   | house  | 29      | 0.0001 0.0004 |
-          | W1  | place   | houses | odd     | 0.0001 0.0001,0.0001 0.0002,0.0001 0.0004 |
+        Given the grid
+          | 1 |  | 2 |  |  | 3 |
+        And the places
+          | osm | class   | type   | housenr |
+          | N1  | place   | house  | 23      |
+          | N2  | amenity | school |         |
+          | N3  | place   | house  | 29      |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | odd                | 1,2,3 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 23    | 29  | 0.0001 0.0001, 0.0001 0.0002, 0.0001 0.0004 |
+          | 23    | 29  | 1,2,3 |
+
+    Scenario: Ways without node entries are ignored
+        Given the places
+          | osm | class | type   | housenr | geometry |
+          | W1  | place | houses | even    | 1 1, 1 1.001 |
+        When importing
+        Then W1 expands to no interpolation
+
+    Scenario: Ways without nodes without housenumbers are ignored
+        Given the places
+          | osm | class | type   | housenr | geometry |
+          | N1  | place | house  |         | 1 1 |
+          | N2  | place | house  |         | 1 1.001 |
+          | W1  | place | houses | even    | 1 1, 1 1.001 |
+        When importing
+        Then W1 expands to no interpolation
+
+    Scenario: Two point interpolation starting at 0
+        Given the places
+          | osm | class | type   | housenr | geometry |
+          | N1  | place | house  | 0       | 1 1 |
+          | N2  | place | house  | 2       | 1 1.001 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even     | 1 1, 1 1.001 |
+        And the ways
+          | id | nodes |
+          | 1  | 1,2 |
+        When importing
+        Then W1 expands to interpolation
+          | start | end | geometry |
+          | 0     | 2   | 1 1, 1 1.001 |
+        When sending jsonv2 reverse coordinates 1,1
+        Then results contain
+          | ID | osm_type | osm_id | type  | display_name |
+          | 0  | way      | 1      | house | 0 |
+