Then location_postcode contains exactly
| country | postcode | geometry |
| de | 01982 | country:de |
- And word contains
- | word | class | type |
- | 01982 | place | postcode |
+ And there are word tokens for postcodes 01982
Scenario: Different postcodes with the same normalization can both be found
Given the places
| country | postcode | geometry |
| gb | EH4 7EA | country:gb |
| gb | E4 7EA | country:gb |
- When searching for "EH4 7EA"
+ When sending search query "EH4 7EA"
Then results contain
- | type | placename |
+ | type | display_name |
| postcode | EH4 7EA |
- When searching for "E4 7EA"
+ When sending search query "E4 7EA"
Then results contain
- | type | placename |
- | postcode | E4 7EA |
+ | type | display_name |
+ | postcode | E4 7EA |
+
+ 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 location_postcode contains exactly
+ | postcode | country | rank_search | rank_address |
+ | E45 2CD | gb | 25 | 5 |
+ | E45 2 | gb | 23 | 5 |
+ | Y45 | gb | 21 | 5 |
+
+ 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 location_postcode contains exactly
+ | postcode | country | rank_search | rank_address |
+ | EA452CD | gb | 30 | 30 |
+ | E45 23 | gb | 30 | 30 |
+
+ 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 location_postcode contains exactly
+ | postcode | country | rank_search | rank_address |
+ | 56427 | de | 21 | 11 |
+ | 5642 | de | 30 | 30 |
+ | 5642A | de | 30 | 30 |
+ | 564276 | de | 30 | 30 |
+
+ 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 location_postcode contains exactly
+ | postcode | country | rank_search | rank_address |
+ | 1 | ca | 21 | 11 |
+ | X3 | ca | 21 | 11 |
+ | 543 | ca | 21 | 11 |
+ | 54DC | ca | 21 | 11 |
+ | 12345 | ca | 21 | 11 |
+ | 55TT667 | ca | 21 | 11 |
+ | 123-65 | ca | 25 | 11 |
+ | 12 445 4 | ca | 25 | 11 |
+ | A1:BC10 | ca | 25 | 11 |
+
+