]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/query/normalization.feature
bdd: extend reverse API tests for format checks
[nominatim.git] / test / bdd / db / query / normalization.feature
index 8a324a229b86bfaa450a35d5d095bed647d483d3..e5a7a5922b7f18db1abc4fb7a497b01348747938 100644 (file)
@@ -3,6 +3,31 @@ Feature: Import and search of names
     Tests all naming related issues: normalisation,
     abbreviations, internationalisation, etc.
 
+    Scenario: non-latin scripts can be found
+        Given the places
+          | osm | class | type      | name |
+          | N1  | place | locality  | Речицкий район |
+          | N2  | place | locality  | Refugio de montaña |
+          | N3  | place | locality  | 高槻市|
+          | N4  | place | locality  | الدوحة |
+        When importing
+        When sending search query "Речицкий район"
+        Then results contain
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Refugio de montaña"
+        Then results contain
+         | ID | osm |
+         | 0  | N2 |
+        When sending search query "高槻市"
+        Then results contain
+         | ID | osm |
+         | 0  | N3 |
+        When sending search query "الدوحة"
+        Then results contain
+         | ID | osm |
+         | 0  | N4 |
+
     Scenario: Case-insensitivity of search
         Given the places
           | osm | class | type      | name |
@@ -11,141 +36,137 @@ Feature: Import and search of names
         Then placex contains
           | object | class  | type     | name+name |
           | N1     | place  | locality | FooBar |
-        When searching for "FooBar"
+        When sending search query "FooBar"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "foobar"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "foobar"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "fOObar"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "fOObar"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "FOOBAR"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "FOOBAR"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
+         | ID | osm |
+         | 0  | N1 |
 
     Scenario: Multiple spaces in name
         Given the places
           | osm | class | type      | name |
           | N1  | place | locality  | one two  three |
         When importing
-        When searching for "one two three"
+        When sending search query "one two three"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "one   two three"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "one   two three"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "one two  three"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "one two  three"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "    one two three"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "    one two three"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
+         | ID | osm |
+         | 0  | N1 |
 
     Scenario: Special characters in name
         Given the places
-          | osm | class | type      | name |
-          | N1  | place | locality  | Jim-Knopf-Str |
+          | osm | class | type      | name+name:de |
+          | N1  | place | locality  | Jim-Knopf-Straße |
           | N2  | place | locality  | Smith/Weston |
           | N3  | place | locality  | space mountain |
           | N4  | place | locality  | space |
           | N5  | place | locality  | mountain |
         When importing
-        When searching for "Jim-Knopf-Str"
+        When sending search query "Jim-Knopf-Str"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "Jim Knopf-Str"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Jim Knopf-Str"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "Jim Knopf Str"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Jim Knopf Str"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "Jim/Knopf-Str"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Jim/Knopf-Str"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "Jim-Knopfstr"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Jim-Knopfstr"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 1 |
-        When searching for "Smith/Weston"
+         | ID | osm |
+         | 0  | N1 |
+        When sending search query "Smith/Weston"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 2 |
-        When searching for "Smith Weston"
+         | ID | osm |
+         | 0  | N2 |
+        When sending search query "Smith Weston"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 2 |
-        When searching for "Smith-Weston"
+         | ID | osm |
+         | 0  | N2 |
+        When sending search query "Smith-Weston"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 2 |
-        When searching for "space mountain"
+         | ID | osm |
+         | 0  | N2 |
+        When sending search query "space mountain"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 3 |
-        When searching for "space-mountain"
+         | ID | osm |
+         | 0  | N3 |
+        When sending search query "space-mountain"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 3 |
-        When searching for "space/mountain"
+         | ID | osm |
+         | 0  | N3 |
+        When sending search query "space/mountain"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 3 |
-        When searching for "space\mountain"
+         | ID | osm |
+         | 0  | N3 |
+        When sending search query "space\mountain"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 3 |
-        When searching for "space(mountain)"
+         | ID | osm |
+         | 0  | N3 |
+        When sending search query "space(mountain)"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | N        | 3 |
+         | ID | osm |
+         | 0  | N3 |
 
     Scenario: Landuse with name are found
+        Given the grid
+          | 1 | 2 |
+          | 3 |   |
         Given the places
           | osm | class    | type        | name     | geometry |
-          | R1  | natural  | meadow      | landuse1 | (0 0, 1 0, 1 1, 0 1, 0 0) |
-          | R2  | landuse  | industrial  | landuse2 | (0 0, -1 0, -1 -1, 0 -1, 0 0) |
+          | R1  | natural  | meadow      | landuse1 | (1,2,3,1) |
+          | R2  | landuse  | industrial  | landuse2 | (2,3,1,2) |
         When importing
-        When searching for "landuse1"
+        When sending search query "landuse1"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | R        | 1 |
-        When searching for "landuse2"
+         | ID | osm |
+         | 0  | R1 |
+        When sending search query "landuse2"
         Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | R        | 2 |
+         | ID | osm |
+         | 0  | R2 |
 
     Scenario: Postcode boundaries without ref
+        Given the grid with origin FR
+          |   | 2 |   |
+          | 1 |   | 3 |
         Given the places
           | osm | class    | type        | postcode | geometry |
-          | R1  | boundary | postal_code | 12345    | (0 0, 1 0, 1 1, 0 1, 0 0) |
-        When importing
-        When searching for "12345"
-        Then results contain
-         | ID | osm_type | osm_id |
-         | 0  | R        | 1 |
-
-    Scenario: Unprintable characters in postcodes are ignored
-        Given the named places
-            | osm  | class   | type   | address |
-            | N234 | amenity | prison | 'postcode' : u'1234\u200e' |
+          | R1  | boundary | postal_code | 12345    | (1,2,3,1) |
         When importing
-        And searching for "1234"
+        When sending search query "12345"
         Then results contain
-         | ID | osm_type |
-         | 0  | P        |
+         | ID | osm |
+         | 0  | R1 |
 
     Scenario Outline: Housenumbers with special characters are found
         Given the grid
@@ -158,10 +179,10 @@ Feature: Import and search of names
             | osm | class    | type | housenr | geometry |
             | N1  | building | yes  | <nr>    | 9        |
         When importing
-        And searching for "Main St <nr>"
+        And sending search query "Main St <nr>"
         Then results contain
-         | osm_type | osm_id | name |
-         | N        | 1      | <nr>, Main St |
+         | osm | display_name |
+         | N1  | <nr>, Main St |
 
     Examples:
         | nr |
@@ -186,10 +207,10 @@ Feature: Import and search of names
             | osm | class    | type | housenr   | geometry |
             | N1  | building | yes  | <nr-list> | 9        |
         When importing
-        And searching for "Main St <nr>"
+        And sending search query "Main St <nr>"
         Then results contain
-         | osm_type | osm_id | name |
-         | N        | 1      | <nr-list>, Main St |
+         | osm | display_name |
+         | N1  | <nr-list>, Main St |
 
     Examples:
         | nr-list    | nr |