]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/parenting.feature
correctly match abbreviated addr:street
[nominatim.git] / test / bdd / db / import / parenting.feature
index c00f47016f23af13afbbedc9b35f7e450b121090..ef25b6cc0acd6b9c4c9501109e697f1fcf158d20 100644 (file)
@@ -1,6 +1,6 @@
 @DB
 Feature: Parenting of objects
-    Tests that the correct parent is choosen
+    Tests that the correct parent is chosen
 
     Scenario: Address inherits postcode from its street unless it has a postcode
         Given the scene roads-with-pois
@@ -18,10 +18,14 @@ Feature: Parenting of objects
          | object | parent_place_id |
          | N1     | W1 |
          | N2     | W1 |
-        And search_name contains
-         | object | nameaddress_vector |
-         | N1     | 4, galoo, 12345 |
-         | N2     | 5, galoo, 99999 |
+        When sending search query "4 galoo"
+        Then results contain
+         | ID | osm_type | osm_id | display_name |
+         | 0  | N        | 1      | 4, galoo, 12345 |
+        When sending search query "5 galoo"
+        Then results contain
+         | ID | osm_type | osm_id | display_name |
+         | 0  | N        | 2      | 5, galoo, 99999 |
 
     Scenario: Address without tags, closest street
         Given the scene roads-with-pois
@@ -83,6 +87,52 @@ Feature: Parenting of objects
          | N3     | W2 |
          | N4     | W1 |
 
+    @fail-legacy
+    Scenario: addr:street tag parents to appropriately named street, locale names
+        Given the scene roads-with-pois
+        And the places
+         | osm | class | type  | street| addr+street:de | geometry |
+         | N1  | place | house | south | Süd               | :p-N1 |
+         | N2  | place | house | north | Nord              | :p-N2 |
+         | N3  | place | house | south | Süd               | :p-S1 |
+         | N4  | place | house | north | Nord              | :p-S2 |
+        And the places
+         | osm | class   | type        | name  | geometry |
+         | W1  | highway | residential | Nord | :w-north |
+         | W2  | highway | residential | Süd | :w-south |
+        And the places
+         | osm | class | type   | name  | name+name:old |
+         | N5  | place | hamlet | south | north         |
+        When importing
+        Then placex contains
+         | object | parent_place_id |
+         | N1     | W2 |
+         | N2     | W1 |
+         | N3     | W2 |
+         | N4     | W1 |
+
+    Scenario: addr:street tag parents to appropriately named street with abbreviation
+        Given the scene roads-with-pois
+        And the places
+         | osm | class | type  | street| geometry |
+         | N1  | place | house | south st | :p-N1 |
+         | N2  | place | house | north st | :p-N2 |
+         | N3  | place | house | south st | :p-S1 |
+         | N4  | place | house | north st | :p-S2 |
+        And the places
+         | osm | class   | type        | name+name:en  | geometry |
+         | W1  | highway | residential | north street | :w-north |
+         | W2  | highway | residential | south street | :w-south |
+        When importing
+        Then placex contains
+         | object | parent_place_id |
+         | N1     | W2 |
+         | N2     | W1 |
+         | N3     | W2 |
+         | N4     | W1 |
+
+
+
     Scenario: addr:street tag parents to next named street
         Given the scene roads-with-pois
         And the places
@@ -220,7 +270,7 @@ Feature: Parenting of objects
         When importing
         Then placex contains
          | object | parent_place_id |
-         | W1     | W3 |
+         | W1     | W2 |
 
     Scenario: Building with addr:street tags
         Given the scene building-on-street-corner
@@ -321,11 +371,11 @@ Feature: Parenting of objects
          | W3  | highway  | residential | foo  | :w-NS |
         When importing
         Then placex contains
-         | object | parent_place_id | street | addr_place | housenumber |
-         | W1     | W3              | foo    | nowhere    | 3 |
-         | N1     | W3              | foo    | nowhere    | 3 |
-         | N2     | W3              | foo    | nowhere    | 3 |
-         | N3     | W3              | foo    | nowhere    | 3 |
+         | object | parent_place_id | housenumber |
+         | W1     | W3              | 3 |
+         | N1     | W3              | 3 |
+         | N2     | W3              | 3 |
+         | N3     | W3              | 3 |
 
     Scenario: POIs don't inherit from streets
         Given the scene building-on-street-corner
@@ -340,8 +390,8 @@ Feature: Parenting of objects
          | W3  | highway  | residential | foo  | :w-NS |
         When importing
         Then placex contains
-         | object | parent_place_id | street | addr_place | housenumber |
-         | N1     | W3              | None   | None       | None |
+         | object | parent_place_id | housenumber |
+         | N1     | W3              | None |
 
     Scenario: POIs with own address do not inherit building address
         Given the scene building-on-street-corner
@@ -366,11 +416,11 @@ Feature: Parenting of objects
          | W3  | highway  | residential | foo  | :w-NS |
         When importing
         Then placex contains
-         | object | parent_place_id | street | addr_place | housenumber |
-         | W1     | N4              | None   | theplace   | 3 |
-         | N1     | W2              | bar    | None       | None |
-         | N2     | W3              | None   | None       | 4 |
-         | N3     | W2              | None   | nowhere    | None |
+         | object | parent_place_id | housenumber |
+         | W1     | N4              | 3 |
+         | N1     | W2              | None |
+         | N2     | W3              | 4 |
+         | N3     | N4              | None |
 
     Scenario: POIs parent a road if they are attached to it
         Given the scene points-on-roads
@@ -437,3 +487,42 @@ Feature: Parenting of objects
          | object | parent_place_id |
          | N1     | W2 |
 
+    # github #1056
+    Scenario: Full names should be preferably matched for nearest road
+        Given the grid
+            | 1 |   | 2 | 5 |
+            |   |   |   |   |
+            | 3 |   |   | 4 |
+            |   | 10|   |   |
+        And the places
+            | osm | class   | type    | name+name               | geometry |
+            | W1  | highway | residential | Via Cavassico superiore | 1, 2 |
+            | W3  | highway | residential | Via Cavassico superiore | 2, 5 |
+            | W2  | highway | primary | Via Frazione Cavassico  | 3, 4     |
+        And the named places
+            | osm | class   | type    | addr+street             |
+            | N10 | shop    | yes     | Via Cavassico superiore |
+        When importing
+        Then placex contains
+          | object | parent_place_id |
+          | N10    | W1 |
+
+     Scenario: place=square may be parented via addr:place
+        Given the grid
+            |   |   | 9 |   |   |
+            |   | 5 |   | 6 |   |
+            |   | 8 |   | 7 |   |
+        And the places
+            | osm | class    | type    | name+name | geometry        |
+            | W2  | place    | square  | Foo pl    | (5, 6, 7, 8, 5) |
+        And the places
+            | osm | class    | type    | name+name | housenr | addr_place | geometry |
+            | N10 | shop     | grocery | le shop   | 5       | Foo pl     | 9        |
+        When importing
+        Then placex contains
+            | object | rank_address |
+            | W2     | 25           |
+        Then placex contains
+            | object | parent_place_id |
+            | N10    | W2              |
+