]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/interpolation.feature
remove special casing for legacy tokenizer from BDD tests
[nominatim.git] / test / bdd / db / import / interpolation.feature
index 8c136d076ad63b9ed7de92fa44be03f0d7c8bbe4..6b784b78cd4ac1e3abe1275912d22bbc1911b243 100644 (file)
@@ -2,9 +2,26 @@
 Feature: Import of address interpolations
     Tests that interpolated addresses are added correctly
 
 Feature: Import of address interpolations
     Tests that interpolated addresses are added correctly
 
+    Scenario: Simple even interpolation line with two points and no street nearby
+        Given the grid with origin 1,1
+          | 1 |  | 9 |  | 2 |
+        Given the places
+          | osm | class | type   | housenr |
+          | N1  | place | house  | 2       |
+          | N2  | place | house  | 6       |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even               | 1,2      |
+        And the ways
+          | id | nodes |
+          | 1  | 1,2 |
+        When importing
+        Then W1 expands to no interpolation
+
     Scenario: Simple even interpolation line with two points
         Given the grid with origin 1,1
           | 1 |  | 9 |  | 2 |
     Scenario: Simple even interpolation line with two points
         Given the grid with origin 1,1
           | 1 |  | 9 |  | 2 |
+          | 4 |  |   |  | 5 |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
@@ -12,6 +29,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2      |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
@@ -23,24 +43,29 @@ Feature: Import of address interpolations
     Scenario: Backwards even two point interpolation line
         Given the grid with origin 1,1
           | 1 | 8 | 9 | 2 |
     Scenario: Backwards even two point interpolation line
         Given the grid with origin 1,1
           | 1 | 8 | 9 | 2 |
+          | 4 |   |   | 5 |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
           | N2  | place | house  | 8       |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
           | N2  | place | house  | 8       |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
-          | W1  | place | houses | even    | 1,2 |
+          | W1  | place | houses | even               | 2,1      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 2,1 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
         And the ways
           | id | nodes |
           | 1  | 2,1 |
         When importing
         Then W1 expands to interpolation
           | start | end | geometry |
-          | 4     | 6   | 8,9 |
+          | 4     | 6   | 9,8      |
 
     Scenario: Simple odd two point interpolation
         Given the grid with origin 1,1
           | 1 | 8 |  |  | 9 | 2 |
 
     Scenario: Simple odd two point interpolation
         Given the grid with origin 1,1
           | 1 | 8 |  |  | 9 | 2 |
+          | 4 |   |  |  | 5 |   |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 1       |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 1       |
@@ -48,6 +73,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | odd                | 1,2      |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | odd                | 1,2      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
@@ -59,6 +87,7 @@ Feature: Import of address interpolations
     Scenario: Simple all two point interpolation
         Given the grid with origin 1,1
           | 1 | 8 | 9 | 2 |
     Scenario: Simple all two point interpolation
         Given the grid with origin 1,1
           | 1 | 8 | 9 | 2 |
+          | 4 |   |   | 5 |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 1       |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 1       |
@@ -66,6 +95,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | all                | 1,2      |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | all                | 1,2      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
@@ -77,6 +109,7 @@ Feature: Import of address interpolations
     Scenario: Even two point interpolation line with intermediate empty node
         Given the grid
           | 1 | 8 |  | 3 | 9 | 2 |
     Scenario: Even two point interpolation line with intermediate empty node
         Given the grid
           | 1 | 8 |  | 3 | 9 | 2 |
+          | 4 |   |  |   | 5 |   |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 2       |
@@ -84,6 +117,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
@@ -94,6 +130,7 @@ Feature: Import of address interpolations
 
     Scenario: Even two point interpolation line with intermediate duplicated empty node
         Given the grid
 
     Scenario: Even two point interpolation line with intermediate duplicated empty node
         Given the grid
+          | 4 |   |   |   | 5 |
           | 1 | 8 | 3 | 9 | 2 |
         Given the places
           | osm | class | type   | housenr |
           | 1 | 8 | 3 | 9 | 2 |
         Given the places
           | osm | class | type   | housenr |
@@ -102,6 +139,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2 |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2 |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,3,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,3,3,2 |
@@ -112,6 +152,7 @@ Feature: Import of address interpolations
 
     Scenario: Simple even three point interpolation line
         Given the grid
 
     Scenario: Simple even three point interpolation line
         Given the grid
+          | 4 |   |  |   |   |   | 5 |
           | 1 | 8 |  | 9 | 3 | 7 | 2 |
         Given the places
           | osm | class | type   | housenr |
           | 1 | 8 |  | 9 | 3 | 7 | 2 |
         Given the places
           | osm | class | type   | housenr |
@@ -121,6 +162,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
@@ -144,6 +188,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2,4  |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2,4  |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1,3,2,4  |
         And the ways
           | id | nodes |
           | 1  | 1,3,2,4 |
         And the ways
           | id | nodes |
           | 1  | 1,3,2,4 |
@@ -157,6 +204,7 @@ Feature: Import of address interpolations
     Scenario: Reverse simple even three point interpolation line
         Given the grid
           | 1 | 8  |  | 9 | 3 | 7 | 2 |
     Scenario: Reverse simple even three point interpolation line
         Given the grid
           | 1 | 8  |  | 9 | 3 | 7 | 2 |
+          | 4 |    |  |   |   |   | 5 |
         Given the places
           | osm | class | type  | housenr |
           | N1  | place | house | 2       |
         Given the places
           | osm | class | type  | housenr |
           | N1  | place | house | 2       |
@@ -165,6 +213,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 2,3,1    |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 2,3,1    |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 2,3,1 |
         And the ways
           | id | nodes |
           | 1  | 2,3,1 |
@@ -177,6 +228,7 @@ Feature: Import of address interpolations
     Scenario: Even three point interpolation line with odd center point
         Given the grid
           | 1 |  | 10 |  |  | 11 | 3 | 2 |
     Scenario: Even three point interpolation line with odd center point
         Given the grid
           | 1 |  | 10 |  |  | 11 | 3 | 2 |
+          | 4 |  |    |  |  |    |   | 5 |
         Given the places
           | osm | class | type  | housenr |
           | N1  | place | house | 2       |
         Given the places
           | osm | class | type  | housenr |
           | N1  | place | house | 2       |
@@ -185,6 +237,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,3,2    |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,3,2 |
@@ -206,6 +261,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2,3,2  |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2,3,2  |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1,2,3    |
         And the ways
           | id | nodes |
           | 1  | 1,2,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3,2 |
@@ -227,6 +285,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2,3,2  |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2,3,2  |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1,2,3    |
         And the ways
           | id | nodes |
           | 1  | 1,2,3,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3,2 |
@@ -273,12 +334,12 @@ Feature: Import of address interpolations
           | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
           | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 4 |
+         | ID | osm |
+         | 0  | N |
         When sending search query "14 Cloud Street"
         Then results contain
         When sending search query "14 Cloud Street"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | W        | 11 |
+         | ID | osm |
+         | 0  | W11 |
 
     Scenario: addr:street on housenumber way
         Given the grid
 
     Scenario: addr:street on housenumber way
         Given the grid
@@ -318,12 +379,12 @@ Feature: Import of address interpolations
           | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
           | W3              | 14    | 14 |
         When sending search query "16 Cloud Street"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 4 |
+         | ID | osm |
+         | 0  | N |
         When sending search query "14 Cloud Street"
         Then results contain
         When sending search query "14 Cloud Street"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | W        | 11 |
+         | ID | osm |
+         | 0  | W11 |
 
     Scenario: Geometry of points and way don't match (github #253)
         Given the places
 
     Scenario: Geometry of points and way don't match (github #253)
         Given the places
@@ -334,6 +395,9 @@ Feature: Import of address interpolations
         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 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 named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 144.9632341 -37.76163,144.9629794 -37.7630755    |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
@@ -341,11 +405,12 @@ Feature: Import of address interpolations
         Then W1 expands to interpolation
           | start | end | geometry |
           | 4     | 4   | 144.963016 -37.762946 |
         Then W1 expands to interpolation
           | start | end | geometry |
           | 4     | 4   | 144.963016 -37.762946 |
-          | 8     | 8   | 144.963144 -37.7622237 |
+          | 8     | 8   | 144.96314407 -37.762223692 |
 
     Scenario: Place with missing address information
         Given the grid
           | 1 |  | 2 |  |  | 3 |
 
     Scenario: Place with missing address information
         Given the grid
           | 1 |  | 2 |  |  | 3 |
+          | 4 |  |   |  |  | 5 |
         And the places
           | osm | class   | type   | housenr |
           | N1  | place   | house  | 23      |
         And the places
           | osm | class   | type   | housenr |
           | N1  | place   | house  | 23      |
@@ -354,6 +419,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | odd                | 1,2,3 |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | odd                | 1,2,3 |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
         And the ways
           | id | nodes |
           | 1  | 1,2,3 |
@@ -366,12 +434,16 @@ Feature: Import of address interpolations
         Given the places
           | osm | class | type   | housenr | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001 |
         Given the places
           | osm | class | type   | housenr | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001 |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1 1, 1 1.001 |
         When importing
         Then W1 expands to no interpolation
 
     Scenario: Ways with nodes without housenumbers are ignored
         Given the grid
         When importing
         Then W1 expands to no interpolation
 
     Scenario: Ways with nodes without housenumbers are ignored
         Given the grid
-          | 1  |  |  2 |
+          | 1 |  | 2 |
+          | 4 |  | 5 |
         Given the places
           | osm | class | type   |
           | N1  | place | house  |
         Given the places
           | osm | class | type   |
           | N1  | place | house  |
@@ -379,12 +451,16 @@ Feature: Import of address interpolations
         Given the places
           | osm | class | type   | housenr | geometry |
           | W1  | place | houses | even    | 1,2 |
         Given the places
           | osm | class | type   | housenr | geometry |
           | W1  | place | houses | even    | 1,2 |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
         When importing
         Then W1 expands to no interpolation
 
     Scenario: Two point interpolation starting at 0
         Given the grid with origin 1,1
           | 1 | 10 |  |  | 11 | 2 |
         When importing
         Then W1 expands to no interpolation
 
     Scenario: Two point interpolation starting at 0
         Given the grid with origin 1,1
           | 1 | 10 |  |  | 11 | 2 |
+          | 4 |    |  |  |    | 5 |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 0       |
         Given the places
           | osm | class | type   | housenr |
           | N1  | place | house  | 0       |
@@ -392,6 +468,9 @@ Feature: Import of address interpolations
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2      |
         And the places
           | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even               | 1,2      |
+        And the places
+          | osm | class   | type        | name        | geometry |
+          | W10 | highway | residential | London Road |4,5      |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
         And the ways
           | id | nodes |
           | 1  | 1,2 |
@@ -399,7 +478,140 @@ Feature: Import of address interpolations
         Then W1 expands to interpolation
           | start | end | geometry |
           | 2     | 8   | 10,11 |
         Then W1 expands to interpolation
           | start | end | geometry |
           | 2     | 8   | 10,11 |
-        When sending jsonv2 reverse coordinates 1,1
+        When sending v1/reverse at 1,1
         Then results contain
         Then results contain
-          | ID | osm_type | osm_id | type  | display_name |
-          | 0  | node     | 1      | house | 0 |
+          | ID | osm | type  | display_name |
+          | 0  | N1  | house | 0, London Road |
+
+    Scenario: Parenting of interpolation with additional tags
+        Given the grid
+          | 1 |   |   |   |   |   |
+          |   |   |   |   |   |   |
+          |   | 8 |   |   | 9 |   |
+          |   |   |   |   |   |   |
+          | 2 |   |   |   |   | 3 |
+        Given the places
+          | osm | class | type  | housenr | addr+street |
+          | N8  | place | house | 10      | Horiz St    |
+          | N9  | place | house | 16      | Horiz St    |
+        And the places
+          | osm | class   | type        | name     | geometry |
+          | W1  | highway | residential | Vert St  | 1,2      |
+          | W2  | highway | residential | Horiz St | 2,3      |
+        And the places
+          | osm | class | type   | addr+interpolation | addr+inclusion | geometry |
+          | W10 | place | houses | even               | actual         | 8,9      |
+        And the ways
+          | id | nodes |
+          | 10 | 8,9   |
+        When importing
+        Then placex contains
+          | object | parent_place_id |
+          | N8     | W2              |
+          | N9     | W2              |
+        And W10 expands to interpolation
+          | start | end | parent_place_id |
+          | 12    | 14  | W2              |
+
+
+    Scenario Outline: Bad interpolation values are ignored
+        Given the grid with origin 1,1
+          | 1 |  | 9 |  | 2 |
+          | 4 |  |   |  | 5 |
+        Given the places
+          | osm | class | type   | housenr |
+          | N1  | place | house  | 2       |
+          | N2  | place | house  | 6       |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | <value>            | 1,2      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
+        And the ways
+          | id | nodes |
+          | 1  | 1,2 |
+        When importing
+        Then W1 expands to no interpolation
+
+        Examples:
+          | value |
+          | foo   |
+          | x     |
+          | 12-2  |
+
+
+    Scenario: Interpolation line where points have been moved (Github #3022)
+        Given the 0.00001 grid
+         | 1 | | | | | | | | 2 | 3 | 9 | | | | | | | | 4 |
+        Given the places
+          | osm | class | type   | housenr | geometry |
+          | N1  | place | house  | 2       | 1 |
+          | N2  | place | house  | 18      | 3 |
+          | N3  | place | house  | 24      | 9 |
+          | N4  | place | house  | 42      | 4 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even               | 1,2,3,4  |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1,4      |
+        And the ways
+          | id | nodes   |
+          | 1  | 1,2,3,4 |
+        When importing
+        Then W1 expands to interpolation
+          | start | end |
+          | 4     | 16  |
+          | 20    | 22  |
+          | 26    | 40  |
+
+
+    Scenario: Interpolation line with duplicated points
+        Given the grid
+          | 7 | 10 | 8 | 11 | 9 |
+          | 4 |    |   |    | 5 |
+        Given the places
+          | osm | class | type   | housenr | geometry |
+          | N1  | place | house  | 2       | 7 |
+          | N2  | place | house  | 6       | 8 |
+          | N3  | place | house  | 10      | 8 |
+          | N4  | place | house  | 14      | 9 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even               | 7,8,8,9  |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 4,5      |
+        And the ways
+          | id | nodes   |
+          | 1  | 1,2,3,4 |
+        When importing
+        Then W1 expands to interpolation
+          | start | end | geometry |
+          | 4     | 4   | 10       |
+          | 12    | 12  | 11       |
+
+
+    Scenario: Interpolaton line with broken way geometry (Github #2986)
+        Given the grid
+          | 1 | 8 | 10 | 11 | 9 | 2 | 3 | 4 |
+        Given the places
+          | osm | class | type   | housenr |
+          | N1  | place | house  | 2       |
+          | N2  | place | house  | 8       |
+          | N3  | place | house  | 12      |
+          | N4  | place | house  | 14      |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | W1  | place | houses | even               | 8,9      |
+        And the named places
+          | osm | class   | type        | geometry |
+          | W10 | highway | residential | 1,4      |
+        And the ways
+          | id | nodes       |
+          | 1  | 1,8,9,2,3,4 |
+        When importing
+        Then W1 expands to interpolation
+          | start | end | geometry |
+          | 4     | 6   | 10,11    |