]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/db/query/normalization.feature
350455891495f470a92954b0545a260c8c7531dd
[nominatim.git] / test / bdd / db / query / normalization.feature
1 @DB
2 Feature: Import and search of names
3     Tests all naming related issues: normalisation,
4     abbreviations, internationalisation, etc.
5
6     Scenario: Case-insensitivity of search
7         Given the places
8           | osm | class | type      | name |
9           | N1  | place | locality  | FooBar |
10         When importing
11         Then placex contains
12           | object | class  | type     | name+name |
13           | N1     | place  | locality | FooBar |
14         When sending search query "FooBar"
15         Then results contain
16          | ID | osm |
17          | 0  | N1 |
18         When sending search query "foobar"
19         Then results contain
20          | ID | osm |
21          | 0  | N1 |
22         When sending search query "fOObar"
23         Then results contain
24          | ID | osm |
25          | 0  | N1 |
26         When sending search query "FOOBAR"
27         Then results contain
28          | ID | osm |
29          | 0  | N1 |
30
31     Scenario: Multiple spaces in name
32         Given the places
33           | osm | class | type      | name |
34           | N1  | place | locality  | one two  three |
35         When importing
36         When sending search query "one two three"
37         Then results contain
38          | ID | osm |
39          | 0  | N1 |
40         When sending search query "one   two three"
41         Then results contain
42          | ID | osm |
43          | 0  | N1 |
44         When sending search query "one two  three"
45         Then results contain
46          | ID | osm |
47          | 0  | N1 |
48         When sending search query "    one two three"
49         Then results contain
50          | ID | osm |
51          | 0  | N1 |
52
53     Scenario: Special characters in name
54         Given the places
55           | osm | class | type      | name |
56           | N1  | place | locality  | Jim-Knopf-Str |
57           | N2  | place | locality  | Smith/Weston |
58           | N3  | place | locality  | space mountain |
59           | N4  | place | locality  | space |
60           | N5  | place | locality  | mountain |
61         When importing
62         When sending search query "Jim-Knopf-Str"
63         Then results contain
64          | ID | osm |
65          | 0  | N1 |
66         When sending search query "Jim Knopf-Str"
67         Then results contain
68          | ID | osm |
69          | 0  | N1 |
70         When sending search query "Jim Knopf Str"
71         Then results contain
72          | ID | osm |
73          | 0  | N1 |
74         When sending search query "Jim/Knopf-Str"
75         Then results contain
76          | ID | osm |
77          | 0  | N1 |
78         When sending search query "Jim-Knopfstr"
79         Then results contain
80          | ID | osm |
81          | 0  | N1 |
82         When sending search query "Smith/Weston"
83         Then results contain
84          | ID | osm |
85          | 0  | N2 |
86         When sending search query "Smith Weston"
87         Then results contain
88          | ID | osm |
89          | 0  | N2 |
90         When sending search query "Smith-Weston"
91         Then results contain
92          | ID | osm |
93          | 0  | N2 |
94         When sending search query "space mountain"
95         Then results contain
96          | ID | osm |
97          | 0  | N3 |
98         When sending search query "space-mountain"
99         Then results contain
100          | ID | osm |
101          | 0  | N3 |
102         When sending search query "space/mountain"
103         Then results contain
104          | ID | osm |
105          | 0  | N3 |
106         When sending search query "space\mountain"
107         Then results contain
108          | ID | osm |
109          | 0  | N3 |
110         When sending search query "space(mountain)"
111         Then results contain
112          | ID | osm |
113          | 0  | N3 |
114
115     Scenario: Landuse with name are found
116         Given the places
117           | osm | class    | type        | name     | geometry |
118           | R1  | natural  | meadow      | landuse1 | (0 0, 1 0, 1 1, 0 1, 0 0) |
119           | R2  | landuse  | industrial  | landuse2 | (0 0, -1 0, -1 -1, 0 -1, 0 0) |
120         When importing
121         When sending search query "landuse1"
122         Then results contain
123          | ID | osm |
124          | 0  | R1 |
125         When sending search query "landuse2"
126         Then results contain
127          | ID | osm |
128          | 0  | R2 |
129
130     Scenario: Postcode boundaries without ref
131         Given the places
132           | osm | class    | type        | postcode | geometry |
133           | R1  | boundary | postal_code | 12345    | (0 0, 1 0, 1 1, 0 1, 0 0) |
134         When importing
135         When sending search query "12345"
136         Then results contain
137          | ID | osm |
138          | 0  | R1 |
139
140     Scenario: Unprintable characters in postcodes are ignored
141         Given the named places
142             | osm  | class   | type   | address |
143             | N234 | amenity | prison | 'postcode' : u'1234\u200e' |
144         When importing
145         And sending search query "1234"
146         Then result 0 has not attributes osm_type
147
148     Scenario Outline: Housenumbers with special characters are found
149         Given the grid
150             | 1 |  |   |  | 2 |
151             |   |  | 9 |  |   |
152         And the places
153             | osm | class   | type    | name    | geometry |
154             | W1  | highway | primary | Main St | 1,2      |
155         And the places
156             | osm | class    | type | housenr | geometry |
157             | N1  | building | yes  | <nr>    | 9        |
158         When importing
159         And sending search query "Main St <nr>"
160         Then results contain
161          | osm | display_name |
162          | N1  | <nr>, Main St |
163
164     Examples:
165         | nr |
166         | 1  |
167         | 3456 |
168         | 1 a |
169         | 56b |
170         | 1 A |
171         | 2號 |
172         | 1Б  |
173         | 1 к1 |
174         | 23-123 |
175
176     Scenario Outline: Housenumbers in lists are found
177         Given the grid
178             | 1 |  |   |  | 2 |
179             |   |  | 9 |  |   |
180         And the places
181             | osm | class   | type    | name    | geometry |
182             | W1  | highway | primary | Main St | 1,2      |
183         And the places
184             | osm | class    | type | housenr   | geometry |
185             | N1  | building | yes  | <nr-list> | 9        |
186         When importing
187         And sending search query "Main St <nr>"
188         Then results contain
189          | osm | display_name |
190          | N1  | <nr-list>, Main St |
191
192     Examples:
193         | nr-list    | nr |
194         | 1,2,3      | 1  |
195         | 1,2,3      | 2  |
196         | 1, 2, 3    | 3  |
197         | 45 ;67;3   | 45 |
198         | 45 ;67;3   | 67 |
199         | 1a;1k      | 1a |
200         | 1a;1k      | 1k |
201         | 34/678     | 34 |
202         | 34/678     | 678 |
203         | 34/678     | 34/678 |