]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/interpolation.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / import / interpolation.feature
index 4ed66b91980e2dbc1306b61c196475b8c90b08ab..54d22962c5373cde05aad755c91d2c1fadc485cb 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 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
           | W1  | place | houses | even    | 1 1, 1 1.001 |
         And the ways
           | id | nodes |
@@ -14,27 +16,31 @@ 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 |
-          | W1  | place | houses | even    | 1 1.001, 1 1 |
+          | N2  | place | house  | 8       | 1 1.003 |
+        And the places
+          | osm | class | type   | addr+interpolation | geometry |
+          | 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
           | 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 |
@@ -42,27 +48,31 @@ 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 |
-          | W1  | place | houses | all     | 1 1, 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.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
           | 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 |
@@ -70,13 +80,15 @@ 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
           | 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 |
@@ -84,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
@@ -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 |
+        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 |
@@ -99,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
@@ -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 |
+        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 |
@@ -116,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
@@ -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 |
+        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 |
@@ -133,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
@@ -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 |
+        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 |
@@ -149,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
@@ -158,6 +177,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 |
+        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 |
@@ -165,15 +186,17 @@ 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
           | 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 |
@@ -181,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
@@ -192,7 +215,7 @@ Feature: Import of address interpolations
           | 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
@@ -212,22 +235,18 @@ 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 |
-        When searching for "16 Cloud Street"
+          | W3              | 14    | 14 |
+        When sending search query "16 Cloud Street"
         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 |
-        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
@@ -238,9 +257,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
-          | 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 |
@@ -258,15 +277,15 @@ 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 |
-        When searching for "16 Cloud Street"
+          | W3              | 14    | 14 |
+        When sending search query "16 Cloud Street"
         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 |
@@ -277,27 +296,69 @@ 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 |
-          | 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 |
         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 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 |
-          | 23    | 29  | 0.0001 0.0001, 0.0001 0.0002, 0.0001 0.0004 |
+          | 25    | 27  | 0.000016 0,0.00002 0,0.000033 0 |
+
+    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  | 10      | 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 |
+          | 2     | 8   | 1 1.0002, 1 1.0008 |
+        When sending jsonv2 reverse coordinates 1,1
+        Then results contain
+          | ID | osm_type | osm_id | type  | display_name |
+          | 0  | node     | 1      | house | 0 |