X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/19e9748874afa4419d89cc36e12613ad57ee867a..8a8e23ef3cb3e7ffb937c75ab1bdeee9ef5b3bf0:/test/bdd/db/import/linking.feature?ds=sidebyside diff --git a/test/bdd/db/import/linking.feature b/test/bdd/db/import/linking.feature index 0954ed4e..fa96e5b3 100644 --- a/test/bdd/db/import/linking.feature +++ b/test/bdd/db/import/linking.feature @@ -40,11 +40,11 @@ Feature: Linking of places Scenario: Relations are not linked when in waterway relations Given the scene split-road And the places - | osm | class | type | name | geometry | - | W1 | waterway | river | Rhein | :w-2 | - | W2 | waterway | river | Rhein | :w-3 | - | R1 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 | - | R2 | waterway | river | Limmat| :w-4a | + | osm | class | type | name | geometry | + | W1 | waterway | stream | Rhein | :w-2 | + | W2 | waterway | river | Rhein | :w-3 | + | R1 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 | + | R2 | waterway | river | Limmat| :w-4a | And the relations | id | members | tags+type | | 1 | R2 | waterway | @@ -69,11 +69,11 @@ Feature: Linking of places | object | linked_place_id | | R1 | - | - Scenario: Waterways are not linked when waterway types don't match + Scenario: Waterways are not linked when the way type is not a river feature Given the scene split-road And the places | osm | class | type | name | geometry | - | W1 | waterway | drain | Rhein | :w-2 | + | W1 | waterway | lock | Rhein | :w-2 | | R1 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 | And the relations | id | members | tags+type | @@ -108,3 +108,111 @@ Feature: Linking of places Then results contain | osm_type | | W | + + # github #573 + Scenario: Boundaries should only be linked to places + Given the named places + | osm | class | type | extra+wikidata | admin | geometry | + | R1 | boundary | administrative | 34 | 8 | poly-area:0.1 | + And the named places + | osm | class | type | geometry | + | N3 | natural | island | 0.00001 0 | + | N3 | place | city | 0.00001 0 | + And the relations + | id | members | + | 1 | N3:label | + When importing + Then placex contains + | object | linked_place_id | + | 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 |