@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
| object | parent_place_id |
| N1 | W1 |
| N2 | W1 |
- When searching for "4 galoo"
+ When sending search query "4 galoo"
Then results contain
- | ID | osm_type | osm_id | langaddress
- | 0 | N | 1 | 4, galoo, 12345
- When searching for "5 galoo"
+ | 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 | langaddress
- | 0 | N | 2 | 5, galoo, 99999
+ | 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
| 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
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
| 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
| 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
| 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
| 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 |
+