]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/linking.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / import / linking.feature
index 646f89da179beee066969aab6c4b81c0eaef2fe1..e2696e637098dab0d316c487d0764e348e93ca9c 100644 (file)
@@ -14,7 +14,22 @@ Feature: Linking of places
          | R13     | - |
          | N256    | - |
 
          | R13     | - |
          | N256    | - |
 
-    Scenario: Waterways are linked when in waterway relations
+    Scenario: Postcode areas cannot be linked
+        Given the grid
+         | 1 |   | 2 |
+         |   | 9 |   |
+         | 4 |   | 3 |
+        And the named places
+         | osm | class    | type        | addr+postcode  | extra+wikidata | geometry    |
+         | R13 | boundary | postal_code | 123            | Q87493         | (1,2,3,4,1) |
+         | N25 | place    | suburb      | 123            | Q87493         | 9 |
+        When importing
+        Then placex contains
+         | object | linked_place_id |
+         | R13    | - |
+         | N25    | - |
+
+     Scenario: Waterways are linked when in waterway relations
         Given the scene split-road
         And the places
          | osm | class    | type  | name  | geometry |
         Given the scene split-road
         And the places
          | osm | class    | type  | name  | geometry |
@@ -146,7 +161,7 @@ Feature: Linking of places
     Scenario: Boundaries with place tags are linked against places with same type
         Given the places
          | osm  | class    | type           | admin | name   | extra+place | geometry |
     Scenario: Boundaries with place tags are linked against places with same type
         Given the places
          | osm  | class    | type           | admin | name   | extra+place | geometry |
-         | R13  | boundary | administrative | 5     | Berlin | city        |poly-area:0.1 |
+         | R13  | boundary | administrative | 4     | Berlin | city        |poly-area:0.1 |
         And the places
          | osm  | class    | type           | name   | geometry |
          | N2   | place    | city           | Berlin | 0.006 0.00001 |
         And the places
          | osm  | class    | type           | name   | geometry |
          | N2   | place    | city           | Berlin | 0.006 0.00001 |
@@ -157,11 +172,24 @@ Feature: Linking of places
         And placex contains
          | object | rank_address |
          | R13    | 16 |
         And placex contains
          | object | rank_address |
          | R13    | 16 |
+        When searching for ""
+         | city |
+         | Berlin |
+        Then results contain
+          | ID | osm_type | osm_id |
+          |  0 | R | 13 |
+        When searching for ""
+         | state |
+         | Berlin |
+        Then results contain
+          | ID | osm_type | osm_id |
+          |  0 | R | 13 |
+
 
     Scenario: Boundaries without place tags only link against same admin level
         Given the places
          | osm  | class    | type           | admin | name   | geometry |
 
     Scenario: Boundaries without place tags only link against same admin level
         Given the places
          | osm  | class    | type           | admin | name   | geometry |
-         | R13  | boundary | administrative | 5     | Berlin |poly-area:0.1 |
+         | R13  | boundary | administrative | 4     | Berlin |poly-area:0.1 |
         And the places
          | osm  | class    | type           | name   | geometry |
          | N2   | place    | city           | Berlin | 0.006 0.00001 |
         And the places
          | osm  | class    | type           | name   | geometry |
          | N2   | place    | city           | Berlin | 0.006 0.00001 |
@@ -171,5 +199,53 @@ Feature: Linking of places
          | N2      | -               |
         And placex contains
          | object | rank_address |
          | N2      | -               |
         And placex contains
          | object | rank_address |
-         | R13    | 10 |
+         | R13    | 8 |
+        When searching for ""
+         | state |
+         | Berlin |
+        Then results contain
+          | ID | osm_type | osm_id |
+          |  0 | R | 13 |
+        When searching for ""
+         | city |
+         | Berlin |
+        Then results contain
+          | ID | osm_type | osm_id |
+          |  0 | N | 2 |
+
+    # github #1352
+    Scenario: Do not use linked centroid when it is outside the area
+        Given the named places
+         | osm  | class    | type           | admin | geometry |
+         | R13  | boundary | administrative | 4     | poly-area:0.01 |
+        And the named places
+         | osm  | class    | type           | geometry |
+         | N2   | place    | city           | 0.1 0.1 |
+        And the relations
+         | id | members       | tags+type |
+         | 13 | N2:label      | boundary |
+        When importing
+        Then placex contains
+         | object | linked_place_id |
+         | N2     | R13             |
+        And placex contains
+         | object | centroid |
+         | R13    | in geometry  |
+
+    Scenario: Place nodes can only be linked once
+        Given the named places
+         | osm  | class    | type | extra+wikidata | geometry |
+         | N2   | place    | city | Q1234          | 0 0 |
+        And the named places
+         | osm  | class    | type           | extra+wikidata | admin | geometry |
+         | R1   | boundary | administrative | Q1234          | 8     | poly-area:0.1 |
+         | R2   | boundary | administrative | Q1234          | 9     | poly-area:0.01 |
+        When importing
+        Then placex contains
+         | object | linked_place_id |
+         | N2     | R1              |
+        And placex contains
+         | object | extratags                |
+         | R1     | 'linked_place' : 'city', 'wikidata': 'Q1234'  |
+         | R2     | 'wikidata': 'Q1234'                     |