mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
Many of the postcode nodes are actually derived from incomplete addresses and are as such not even centroids. Better let them only take part in the address computation via the postcode table.
294 lines
12 KiB
Gherkin
294 lines
12 KiB
Gherkin
@DB
|
|
Feature: Import into placex
|
|
Tests that data in placex is completed correctly.
|
|
|
|
Scenario: No country code tag is available
|
|
Given the named places
|
|
| osm | class | type | geometry |
|
|
| N1 | highway | primary | country:us |
|
|
When importing
|
|
Then placex contains
|
|
| object | addr+country | country_code |
|
|
| N1 | - | us |
|
|
|
|
Scenario: Location overwrites country code tag
|
|
Given the named places
|
|
| osm | class | type | country | geometry |
|
|
| N1 | highway | primary | de | country:us |
|
|
When importing
|
|
Then placex contains
|
|
| object | addr+country | country_code |
|
|
| N1 | de | us |
|
|
|
|
Scenario: Country code tag overwrites location for countries
|
|
Given the named places
|
|
| osm | class | type | admin | country | geometry |
|
|
| R1 | boundary | administrative | 2 | de | (-100 40, -101 40, -101 41, -100 41, -100 40) |
|
|
When importing
|
|
Then placex contains
|
|
| object | addr+country | country_code |
|
|
| R1 | de | de |
|
|
|
|
Scenario: Illegal country code tag for countries is ignored
|
|
Given the named places
|
|
| osm | class | type | admin | country | geometry |
|
|
| R1 | boundary | administrative | 2 | xx | (-100 40, -101 40, -101 41, -100 41, -100 40) |
|
|
When importing
|
|
Then placex contains
|
|
| object | addr+country | country_code |
|
|
| R1 | xx | us |
|
|
|
|
Scenario: admin level is copied over
|
|
Given the named places
|
|
| osm | class | type | admin |
|
|
| N1 | place | state | 3 |
|
|
When importing
|
|
Then placex contains
|
|
| object | admin_level |
|
|
| N1 | 3 |
|
|
|
|
Scenario: postcode node without postcode is dropped
|
|
Given the places
|
|
| osm | class | type | name+ref |
|
|
| N1 | place | postcode | 12334 |
|
|
When importing
|
|
Then placex has no entry for N1
|
|
|
|
Scenario: postcode boundary without postcode is dropped
|
|
Given the places
|
|
| osm | class | type | name+ref | geometry |
|
|
| R1 | boundary | postal_code | 554476 | poly-area:0.1 |
|
|
When importing
|
|
Then placex has no entry for R1
|
|
|
|
Scenario: search and address ranks for GB post codes correctly assigned
|
|
Given the places
|
|
| osm | class | type | postcode | geometry |
|
|
| N1 | place | postcode | E45 2CD | country:gb |
|
|
| N2 | place | postcode | E45 2 | country:gb |
|
|
| N3 | place | postcode | Y45 | country:gb |
|
|
When importing
|
|
Then placex contains
|
|
| object | postcode | country_code | rank_search | rank_address |
|
|
| N1 | E45 2CD | gb | 25 | 0 |
|
|
| N2 | E45 2 | gb | 23 | 0 |
|
|
| N3 | Y45 | gb | 21 | 0 |
|
|
|
|
Scenario: wrongly formatted GB postcodes are down-ranked
|
|
Given the places
|
|
| osm | class | type | postcode | geometry |
|
|
| N1 | place | postcode | EA452CD | country:gb |
|
|
| N2 | place | postcode | E45 23 | country:gb |
|
|
When importing
|
|
Then placex contains
|
|
| object | country_code | rank_search | rank_address |
|
|
| N1 | gb | 30 | 0 |
|
|
| N2 | gb | 30 | 0 |
|
|
|
|
Scenario: search and address rank for DE postcodes correctly assigned
|
|
Given the places
|
|
| osm | class | type | postcode | geometry |
|
|
| N1 | place | postcode | 56427 | country:de |
|
|
| N2 | place | postcode | 5642 | country:de |
|
|
| N3 | place | postcode | 5642A | country:de |
|
|
| N4 | place | postcode | 564276 | country:de |
|
|
When importing
|
|
Then placex contains
|
|
| object | country_code | rank_search | rank_address |
|
|
| N1 | de | 21 | 0 |
|
|
| N2 | de | 30 | 0 |
|
|
| N3 | de | 30 | 0 |
|
|
| N4 | de | 30 | 0 |
|
|
|
|
Scenario: search and address rank for other postcodes are correctly assigned
|
|
Given the places
|
|
| osm | class | type | postcode | geometry |
|
|
| N1 | place | postcode | 1 | country:ca |
|
|
| N2 | place | postcode | X3 | country:ca |
|
|
| N3 | place | postcode | 543 | country:ca |
|
|
| N4 | place | postcode | 54dc | country:ca |
|
|
| N5 | place | postcode | 12345 | country:ca |
|
|
| N6 | place | postcode | 55TT667 | country:ca |
|
|
| N7 | place | postcode | 123-65 | country:ca |
|
|
| N8 | place | postcode | 12 445 4 | country:ca |
|
|
| N9 | place | postcode | A1:bc10 | country:ca |
|
|
When importing
|
|
Then placex contains
|
|
| object | country_code | rank_search | rank_address |
|
|
| N1 | ca | 21 | 0 |
|
|
| N2 | ca | 21 | 0 |
|
|
| N3 | ca | 21 | 0 |
|
|
| N4 | ca | 21 | 0 |
|
|
| N5 | ca | 21 | 0 |
|
|
| N6 | ca | 21 | 0 |
|
|
| N7 | ca | 25 | 0 |
|
|
| N8 | ca | 25 | 0 |
|
|
| N9 | ca | 25 | 0 |
|
|
|
|
Scenario: search and address ranks for places are correctly assigned
|
|
Given the named places
|
|
| osm | class | type |
|
|
| N1 | foo | bar |
|
|
| N11 | place | Continent |
|
|
| N12 | place | continent |
|
|
| N13 | place | sea |
|
|
| N14 | place | country |
|
|
| N15 | place | state |
|
|
| N16 | place | region |
|
|
| N17 | place | county |
|
|
| N18 | place | city |
|
|
| N19 | place | island |
|
|
| N20 | place | town |
|
|
| N21 | place | village |
|
|
| N22 | place | hamlet |
|
|
| N23 | place | municipality |
|
|
| N24 | place | district |
|
|
| N25 | place | unincorporated_area |
|
|
| N26 | place | borough |
|
|
| N27 | place | suburb |
|
|
| N28 | place | croft |
|
|
| N29 | place | subdivision |
|
|
| N30 | place | isolated_dwelling |
|
|
| N31 | place | farm |
|
|
| N32 | place | locality |
|
|
| N33 | place | islet |
|
|
| N34 | place | mountain_pass |
|
|
| N35 | place | neighbourhood |
|
|
| N36 | place | house |
|
|
| N37 | place | building |
|
|
| N38 | place | houses |
|
|
And the named places
|
|
| osm | class | type | extra+locality |
|
|
| N100 | place | locality | townland |
|
|
And the named places
|
|
| osm | class | type | extra+capital |
|
|
| N101 | place | city | yes |
|
|
When importing
|
|
Then placex contains
|
|
| object | rank_search | rank_address |
|
|
| N1 | 30 | 30 |
|
|
| N11 | 30 | 30 |
|
|
| N12 | 2 | 2 |
|
|
| N13 | 2 | 0 |
|
|
| N14 | 4 | 4 |
|
|
| N15 | 8 | 8 |
|
|
| N16 | 18 | 0 |
|
|
| N17 | 12 | 12 |
|
|
| N18 | 16 | 16 |
|
|
| N19 | 17 | 0 |
|
|
| N20 | 18 | 16 |
|
|
| N21 | 19 | 16 |
|
|
| N22 | 19 | 16 |
|
|
| N23 | 19 | 16 |
|
|
| N24 | 19 | 16 |
|
|
| N25 | 19 | 16 |
|
|
| N26 | 19 | 16 |
|
|
| N27 | 20 | 20 |
|
|
| N28 | 20 | 20 |
|
|
| N29 | 20 | 20 |
|
|
| N30 | 20 | 20 |
|
|
| N31 | 20 | 0 |
|
|
| N32 | 20 | 0 |
|
|
| N33 | 20 | 0 |
|
|
| N34 | 20 | 0 |
|
|
| N100 | 20 | 20 |
|
|
| N101 | 15 | 16 |
|
|
| N35 | 22 | 22 |
|
|
| N36 | 30 | 30 |
|
|
| N37 | 30 | 30 |
|
|
| N38 | 28 | 0 |
|
|
|
|
Scenario: search and address ranks for boundaries are correctly assigned
|
|
Given the named places
|
|
| osm | class | type |
|
|
| N1 | boundary | administrative |
|
|
And the named places
|
|
| osm | class | type | geometry |
|
|
| W10 | boundary | administrative | 10 10, 11 11 |
|
|
And the named places
|
|
| osm | class | type | admin | geometry |
|
|
| R20 | boundary | administrative | 2 | (1 1, 2 2, 1 2, 1 1) |
|
|
| R21 | boundary | administrative | 32 | (3 3, 4 4, 3 4, 3 3) |
|
|
| R22 | boundary | nature_park | 6 | (0 0, 1 0, 0 1, 0 0) |
|
|
| R23 | boundary | natural_reserve| 10 | (0 0, 1 1, 1 0, 0 0) |
|
|
When importing
|
|
Then placex has no entry for N1
|
|
And placex has no entry for W10
|
|
And placex contains
|
|
| object | rank_search | rank_address |
|
|
| R20 | 4 | 4 |
|
|
| R21 | 30 | 30 |
|
|
| R22 | 12 | 0 |
|
|
| R23 | 20 | 0 |
|
|
|
|
Scenario: search and address ranks for highways correctly assigned
|
|
Given the scene roads-with-pois
|
|
And the places
|
|
| osm | class | type |
|
|
| N1 | highway | bus_stop |
|
|
And the places
|
|
| osm | class | type | geometry |
|
|
| W1 | highway | primary | :w-south |
|
|
| W2 | highway | secondary | :w-south |
|
|
| W3 | highway | tertiary | :w-south |
|
|
| W4 | highway | residential | :w-north |
|
|
| W5 | highway | unclassified | :w-north |
|
|
| W6 | highway | something | :w-north |
|
|
When importing
|
|
Then placex contains
|
|
| object | rank_search | rank_address |
|
|
| N1 | 30 | 30 |
|
|
| W1 | 26 | 26 |
|
|
| W2 | 26 | 26 |
|
|
| W3 | 26 | 26 |
|
|
| W4 | 26 | 26 |
|
|
| W5 | 26 | 26 |
|
|
| W6 | 26 | 26 |
|
|
|
|
Scenario: rank and inclusion of landuses
|
|
Given the named places
|
|
| osm | class | type |
|
|
| N2 | landuse | residential |
|
|
And the named places
|
|
| osm | class | type | geometry |
|
|
| W2 | landuse | residential | 1 1, 1 1.1 |
|
|
| W4 | landuse | residential | poly-area:0.1 |
|
|
| R2 | landuse | residential | poly-area:0.05 |
|
|
| R3 | landuse | forrest | poly-area:0.5 |
|
|
When importing
|
|
Then placex contains
|
|
| object | rank_search | rank_address |
|
|
| N2 | 30 | 30 |
|
|
| W2 | 30 | 30 |
|
|
| W4 | 22 | 22 |
|
|
| R2 | 22 | 22 |
|
|
| R3 | 22 | 0 |
|
|
|
|
Scenario: rank and inclusion of naturals
|
|
Given the named places
|
|
| osm | class | type |
|
|
| N2 | natural | peak |
|
|
| N4 | natural | volcano |
|
|
| N5 | natural | foobar |
|
|
And the named places
|
|
| osm | class | type | geometry |
|
|
| W2 | natural | mountain_range | 12 12,11 11 |
|
|
| W3 | natural | foobar | 13 13,13.1 13 |
|
|
| R3 | natural | volcano | poly-area:0.1 |
|
|
| R4 | natural | foobar | poly-area:0.5 |
|
|
| R5 | natural | sea | poly-area:5.0 |
|
|
| R6 | natural | sea | poly-area:0.01 |
|
|
When importing
|
|
Then placex contains
|
|
| object | rank_search | rank_address |
|
|
| N2 | 18 | 0 |
|
|
| N4 | 18 | 0 |
|
|
| N5 | 30 | 30 |
|
|
| W2 | 18 | 0 |
|
|
| R3 | 18 | 0 |
|
|
| R4 | 22 | 0 |
|
|
| R5 | 4 | 4 |
|
|
| R6 | 4 | 4 |
|
|
| W3 | 30 | 30 |
|
|
|