]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/import/placex.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / import / placex.feature
index 7cbedaa3f349e693765c1754ac779149c662877f..e0e8925fd4332000b9ddd80e9d1455ebb6352860 100644 (file)
@@ -8,8 +8,8 @@ Feature: Import into placex
           | N1  | highway | primary  | country:us |
         When importing
         Then placex contains
           | N1  | highway | primary  | country:us |
         When importing
         Then placex contains
-          | object | country_code | calculated_country_code |
-          | N1     | None         | us                      |
+          | object | addr+country | country_code |
+          | N1     | -            | us           |
 
     Scenario: Location overwrites country code tag
         Given the named places
 
     Scenario: Location overwrites country code tag
         Given the named places
@@ -17,8 +17,8 @@ Feature: Import into placex
           | N1  | highway | primary  | de      | country:us |
         When importing
         Then placex contains
           | N1  | highway | primary  | de      | country:us |
         When importing
         Then placex contains
-          | object | country_code | calculated_country_code |
-          | N1     | de           | us                      |
+          | object | addr+country | country_code |
+          | N1     | de           | us           |
 
     Scenario: Country code tag overwrites location for countries
         Given the named places
 
     Scenario: Country code tag overwrites location for countries
         Given the named places
@@ -26,8 +26,8 @@ Feature: Import into placex
           | R1  | boundary | administrative  | 2     | de      | (-100 40, -101 40, -101 41, -100 41, -100 40) |
         When importing
         Then placex contains
           | R1  | boundary | administrative  | 2     | de      | (-100 40, -101 40, -101 41, -100 41, -100 40) |
         When importing
         Then placex contains
-          | object | country_code | calculated_country_code |
-          | R1     | de           | de                      |
+          | object | rank_search| addr+country | country_code |
+          | R1     | 4          | de           | de           |
 
     Scenario: Illegal country code tag for countries is ignored
         Given the named places
 
     Scenario: Illegal country code tag for countries is ignored
         Given the named places
@@ -35,8 +35,8 @@ Feature: Import into placex
           | R1  | boundary | administrative  | 2     | xx      | (-100 40, -101 40, -101 41, -100 41, -100 40) |
         When importing
         Then placex contains
           | R1  | boundary | administrative  | 2     | xx      | (-100 40, -101 40, -101 41, -100 41, -100 40) |
         When importing
         Then placex contains
-          | object | country_code | calculated_country_code |
-          | R1     | xx           | us                      |
+          | object | addr+country | country_code |
+          | R1     | xx           | us           |
 
     Scenario: admin level is copied over
         Given the named places
 
     Scenario: admin level is copied over
         Given the named places
@@ -47,24 +47,6 @@ Feature: Import into placex
           | object | admin_level |
           | N1     | 3           |
 
           | object | admin_level |
           | N1     | 3           |
 
-    Scenario: admin level is default 15
-        Given the named places
-          | osm | class   | type   |
-          | N1  | amenity | prison |
-        When importing
-        Then placex contains
-          | object | admin_level |
-          | N1     | 15          |
-
-    Scenario: admin level is never larger than 15
-        Given the named places
-          | osm | class   | type   | admin |
-          | N1  | amenity | prison | 16 |
-        When importing
-        Then placex contains
-          | object | admin_level |
-          | N1     | 15          |
-
     Scenario: postcode node without postcode is dropped
         Given the places
           | osm | class   | type     | name+ref |
     Scenario: postcode node without postcode is dropped
         Given the places
           | osm | class   | type     | name+ref |
@@ -73,151 +55,15 @@ Feature: Import into placex
         Then placex has no entry for N1
 
     Scenario: postcode boundary without postcode is dropped
         Then placex has no entry for N1
 
     Scenario: postcode boundary without postcode is dropped
+        Given the 0.01 grid
+          | 1 | 2 |
+          | 3 |   |
         Given the places
         Given the places
-          | osm | class    | type        | name+ref | geometry |
-          | R1  | boundary | postal_code | 554476   | poly-area:0.1 |
+          | osm | class    | type        | name+ref | geometry  |
+          | R1  | boundary | postal_code | 554476   | (1,2,3,1) |
         When importing
         Then placex has no entry for R1
 
         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 | calculated_country_code | rank_search | rank_address |
-         | N1     | E45 2CD  | gb                      | 25          | 5 |
-         | N2     | E45 2    | gb                      | 23          | 5 |
-         | N3     | 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 |
-         | N3   | place | postcode | y45      | country:gb |
-        When importing
-        Then placex contains
-         | object | calculated_country_code | rank_search | rank_address |
-         | N1     | gb                      | 30          | 30 |
-         | N2     | gb                      | 30          | 30 |
-         | N3     | 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 placex contains
-         | object | calculated_country_code | rank_search | rank_address |
-         | N1     | de                      | 21          | 11 |
-         | N2     | de                      | 30          | 30 |
-         | N3     | de                      | 30          | 30 |
-         | N4     | 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 placex contains
-         | object | calculated_country_code | rank_search | rank_address |
-         | N1     | ca                      | 21          | 11 |
-         | N2     | ca                      | 21          | 11 |
-         | N3     | ca                      | 21          | 11 |
-         | N4     | ca                      | 21          | 11 |
-         | N5     | ca                      | 21          | 11 |
-         | N6     | ca                      | 21          | 11 |
-         | N7     | ca                      | 25          | 11 |
-         | N8     | ca                      | 25          | 11 |
-         | N9     | ca                      | 25          | 11 |
-
-    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 |
     Scenario: search and address ranks for boundaries are correctly assigned
         Given the named places
           | osm | class    | type |
@@ -231,29 +77,36 @@ Feature: Import into placex
           | 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) |
           | 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) |
+        And the named places
+          | osm | class | type    | geometry |
+          | R40 | place | country | (1 1, 2 2, 1 2, 1 1) |
+          | R41 | place | state   | (3 3, 4 4, 3 4, 3 3) |
         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 |
         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 |
+          | R21    | 25          | 0 |
+          | R22    | 25          | 0 |
+          | R23    | 25          | 0 |
+          | R40    | 4           | 0 |
+          | R41    | 8           | 0 |
 
     Scenario: search and address ranks for highways correctly assigned
 
     Scenario: search and address ranks for highways correctly assigned
-        Given the scene roads-with-pois
+        Given the grid
+          | 10 | 1 | 11 |   | 12 |   | 13 |  | 14 | | 15 |   | 16 |
         And the places
           | osm | class    | type  |
           | N1  | highway  | bus_stop |
         And the places
           | osm | class    | type         | geometry |
         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 |
+          | W1  | highway  | primary      | 10,11 |
+          | W2  | highway  | secondary    | 11,12 |
+          | W3  | highway  | tertiary     | 12,13 |
+          | W4  | highway  | residential  | 13,14 |
+          | W5  | highway  | unclassified | 14,15 |
+          | W6  | highway  | something    | 15,16 |
         When importing
         Then placex contains
           | object | rank_search | rank_address |
         When importing
         Then placex contains
           | object | rank_search | rank_address |
@@ -263,18 +116,21 @@ Feature: Import into placex
           | W3     | 26          | 26 |
           | W4     | 26          | 26 |
           | W5     | 26          | 26 |
           | W3     | 26          | 26 |
           | W4     | 26          | 26 |
           | W5     | 26          | 26 |
-          | W6     | 26          | 26 |
+          | W6     | 30          | 30 |
 
     Scenario: rank and inclusion of landuses
 
     Scenario: rank and inclusion of landuses
+        Given the 0.4 grid
+          | 1 | 2 | | | | | | 5 |
+          | 4 | 3 | | | | | | 6 |
         Given the named places
           | osm | class   | type |
           | N2  | landuse | residential |
         And the named places
         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 |
+          | osm | class   | type        | geometry    |
+          | W2  | landuse | residential | 1,2,5       |
+          | W4  | landuse | residential | (1,4,3,1)   |
+          | R2  | landuse | residential | (1,2,3,4,1) |
+          | R3  | landuse | forrest     | (1,5,6,4,1) |
         When importing
         Then placex contains
           | object | rank_search | rank_address |
         When importing
         Then placex contains
           | object | rank_search | rank_address |
@@ -282,32 +138,57 @@ Feature: Import into placex
           | W2     | 30          | 30 |
           | W4     | 22          | 22 |
           | R2     | 22          | 22 |
           | W2     | 30          | 30 |
           | W4     | 22          | 22 |
           | R2     | 22          | 22 |
-          | R3     | 22          | 0 |
+          | R3     | 22          |  0 |
 
     Scenario: rank and inclusion of naturals
 
     Scenario: rank and inclusion of naturals
+        Given the 0.4 grid
+          | 1 | 2 | | | | | | 5 |
+          | 4 | 3 | | | | | | 6 |
        Given the named places
           | osm | class   | type |
           | N2  | natural | peak |
           | N4  | natural | volcano |
           | N5  | natural | foobar |
        And the named places
        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 |
+          | osm | class   | type           | geometry    |
+          | W2  | natural | mountain_range | 1,2,5       |
+          | W3  | natural | foobar         | 2,3         |
+          | R3  | natural | volcano        | (1,2,4,1)   |
+          | R4  | natural | foobar         | (1,2,3,4,1) |
+          | R5  | natural | sea            | (1,2,5,6,3,4,1) |
+          | R6  | natural | sea            | (2,3,4,2)   |
        When importing
        Then placex contains
           | object | rank_search | rank_address |
           | N2     | 18          | 0 |
           | N4     | 18          | 0 |
        When importing
        Then placex contains
           | object | rank_search | rank_address |
           | N2     | 18          | 0 |
           | N4     | 18          | 0 |
-          | N5     | 30          | 30 |
+          | N5     | 22          | 0 |
           | W2     | 18          | 0 |
           | R3     | 18          | 0 |
           | R4     | 22          | 0 |
           | W2     | 18          | 0 |
           | R3     | 18          | 0 |
           | R4     | 22          | 0 |
-          | R5     | 4           | 4 |
-          | R6     | 4           | 4 |
-          | W3     | 30          | 30 |
-
+          | R5     | 4           | 0 |
+          | R6     | 4           | 0 |
+          | W3     | 22          | 0 |
+
+    Scenario: boundary ways for countries and states are ignored
+        Given the 0.3 grid
+          | 1 | 2 |
+          | 4 | 3 |
+        Given the named places
+          | osm | class    | type           | admin | geometry |
+          | W4  | boundary | administrative | 2     | (1,2,3,4,1) |
+          | R4  | boundary | administrative | 2     | (1,2,3,4,1) |
+          | W5  | boundary | administrative | 3     | (1,2,3,4,1) |
+          | R5  | boundary | administrative | 3     | (1,2,3,4,1) |
+          | W6  | boundary | administrative | 4     | (1,2,3,4,1) |
+          | R6  | boundary | administrative | 4     | (1,2,3,4,1) |
+          | W7  | boundary | administrative | 5     | (1,2,3,4,1) |
+          | R7  | boundary | administrative | 5     | (1,2,3,4,1) |
+       When importing
+       Then placex contains exactly
+           | object |
+           | R4     |
+           | R5     |
+           | R6     |
+           | W7     |
+           | R7     |