X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/2110207074f4b67b1cea1b4c322201664395a843..3cdfe066336ad19772d300a85d6c1feaadc074ea:/test/bdd/db/import/linking.feature diff --git a/test/bdd/db/import/linking.feature b/test/bdd/db/import/linking.feature index ceb45586..e2696e63 100644 --- a/test/bdd/db/import/linking.feature +++ b/test/bdd/db/import/linking.feature @@ -14,7 +14,22 @@ Feature: Linking of places | 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 | @@ -127,3 +142,110 @@ Feature: Linking of places | N3:natural | - | | N3:place | R1 | + Scenario: Nodes with 'role' label are always linked + Given the places + | osm | class | type | admin | name | geometry | + | R13 | boundary | administrative | 6 | Garbo | poly-area:0.1 | + | N2 | place | hamlet | 15 | Vario | 0.006 0.00001 | + 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 | name+name | extratags+linked_place | + | R13 | 0.006 0.00001 | Garbo | hamlet | + + 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 | 4 | Berlin | city |poly-area:0.1 | + And the places + | osm | class | type | name | geometry | + | N2 | place | city | Berlin | 0.006 0.00001 | + When importing + Then placex contains + | object | linked_place_id | + | N2 | R13 | + 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 | + | 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 | + When importing + Then placex contains + | object | linked_place_id | + | N2 | - | + And placex contains + | object | rank_address | + | 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' | +