]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/addressing.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / import / addressing.feature
index 479ddd31d39f9011412d78ebeeb7591424628e14..5ab748d93f23871a6bd51f6f469554c5da987f4c 100644 (file)
@@ -17,10 +17,10 @@ Feature: Address computation
         Then place_addressline doesn't contain
             | object | address |
             | N1     | N2      |
-        When searching for "Square"
+        When sending search query "Square"
         Then results contain
-           | osm_type | osm_id | name              |
-           | N        | 1      | Square, East Farm |
+           | osm | display_name      |
+           | N1  | Square, East Farm |
 
     Scenario: given two place nodes, the closer one wins for the address
         Given the grid
@@ -347,10 +347,10 @@ Feature: Address computation
         And place_addressline doesn't contain
            | object | address |
            | W1     | R1      |
-        When searching for "Bolder"
+        When sending search query "Bolder"
         Then results contain
-           | osm_type | osm_id | name                    |
-           | N        | 1      | Bolder, Wonderway, Left |
+           | osm | display_name            |
+           | N1  | Bolder, Wonderway, Left |
 
     Scenario: addr:* tags do not produce addresslines when the parent has the address part
         Given the grid
@@ -371,10 +371,10 @@ Feature: Address computation
         And place_addressline doesn't contain
            | object | address |
            | N1     | R1      |
-        When searching for "Bolder"
+        When sending search query "Bolder"
         Then results contain
-           | osm_type | osm_id | name                     |
-           | N        | 1      | Bolder, Wonderway, Outer |
+           | osm | display_name             |
+           | N1  | Bolder, Wonderway, Outer |
 
     Scenario: addr:* tags on outside do not produce addresslines when the parent has the address part
         Given the grid
@@ -397,10 +397,10 @@ Feature: Address computation
         And place_addressline doesn't contain
            | object | address |
            | N1     | R1      |
-        When searching for "Bolder"
+        When sending search query "Bolder"
         Then results contain
-           | osm_type | osm_id | name                    |
-           | N        | 1      | Bolder, Wonderway, Left |
+           | osm | display_name            |
+           | N1  | Bolder, Wonderway, Left |
 
     Scenario: POIs can correct address parts on the fly
         Given the grid
@@ -425,11 +425,104 @@ Feature: Address computation
            | object | address |
            | N1     | R1      |
            | N2     | R2      |
-        When searching for "Bolder"
+        When sending search query "Bolder"
         Then results contain
-           | osm_type | osm_id | name                    |
-           | N        | 1      | Bolder, Wonderway, Left |
-        When searching for "Leftside"
+           | osm | display_name            |
+           | N1  | Bolder, Wonderway, Left |
+        When sending search query "Leftside"
         Then results contain
-           | osm_type | osm_id | name                       |
-           | N        | 2      | Leftside, Wonderway, Right |
+           | osm | display_name               |
+           | N2  | Leftside, Wonderway, Right |
+
+
+    Scenario: POIs can correct address parts on the fly (with partial unmatching address)
+        Given the grid
+            | 1 |   |   |   |  2 |   | 5 |
+            |   |   |   | 9 |    | 8 |   |
+            |   | 10| 11|   |    | 12|   |
+            | 4 |   |   |   |  3 |   | 6 |
+        And the places
+            | osm | class    | type           | admin | name  | geometry    |
+            | R1  | boundary | administrative | 8     | Left  | (1,2,3,4,1) |
+            | R2  | boundary | administrative | 8     | Right | (2,3,6,5,2) |
+        And the places
+            | osm | class   | type    | name      | geometry |
+            | W1  | highway | primary | Wonderway | 10,11,12 |
+        And the places
+            | osm | class   | type    | name      | addr+suburb | geometry |
+            | N1  | amenity | cafe    | Bolder    | Boring      | 9        |
+            | N2  | amenity | cafe    | Leftside  | Boring      | 8        |
+        When importing
+        Then place_addressline contains
+           | object | address | isaddress |
+           | W1     | R1      | True      |
+           | W1     | R2      | False     |
+        And place_addressline doesn't contain
+           | object | address |
+           | N1     | R1      |
+           | N2     | R2      |
+        When sending search query "Bolder"
+        Then results contain
+           | osm | display_name            |
+           | N1  | Bolder, Wonderway, Left |
+        When sending search query "Leftside"
+        Then results contain
+           | osm | display_name               |
+           | N2  | Leftside, Wonderway, Right |
+
+
+
+    Scenario: POIs can correct address parts on the fly (with partial matching address)
+        Given the grid
+            | 1 |   |   |   |  2 |   | 5 |
+            |   |   |   | 9 |    | 8 |   |
+            |   | 10| 11|   |    | 12|   |
+            | 4 |   |   |   |  3 |   | 6 |
+        And the places
+            | osm | class    | type           | admin | name  | geometry    |
+            | R1  | boundary | administrative | 8     | Left  | (1,2,3,4,1) |
+            | R2  | boundary | administrative | 8     | Right | (2,3,6,5,2) |
+        And the places
+            | osm | class   | type    | name      | geometry |
+            | W1  | highway | primary | Wonderway | 10,11,12 |
+        And the places
+            | osm | class   | type    | name      | addr+state | geometry |
+            | N1  | amenity | cafe    | Bolder    | Left       | 9        |
+            | N2  | amenity | cafe    | Leftside  | Left       | 8        |
+        When importing
+        Then place_addressline contains
+           | object | address | isaddress |
+           | W1     | R1      | True      |
+           | W1     | R2      | False     |
+        And place_addressline doesn't contain
+           | object | address |
+           | N1     | R1      |
+           | N2     | R2      |
+        When sending search query "Bolder"
+        Then results contain
+           | osm | display_name            |
+           | N1  | Bolder, Wonderway, Left |
+        When sending search query "Leftside"
+        Then results contain
+           | osm | display_name               |
+           | N2  | Leftside, Wonderway, Left |
+
+
+    Scenario: addr:* tags always match the closer area
+        Given the grid
+            | 1 |   |   |   |  2 |   | 5 |
+            |   |   |   |   |    |   |   |
+            |   | 10| 11|   |    |   |   |
+            | 4 |   |   |   |  3 |   | 6 |
+        And the places
+            | osm | class    | type           | admin | name  | geometry    |
+            | R1  | boundary | administrative | 8     | Left  | (1,2,3,4,1) |
+            | R2  | boundary | administrative | 8     | Left  | (2,3,6,5,2) |
+        And the places
+            | osm | class   | type    | name      | addr+city | geometry |
+            | W1  | highway | primary | Wonderway | Left      | 10,11    |
+        When importing
+        Then place_addressline doesn't contain
+            | object | address |
+            | W1     | R2      |
+