]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/db/query/housenumbers.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / query / housenumbers.feature
1 @DB
2 Feature: Searching of house numbers
3     Test for specialised treeatment of housenumbers
4
5     Background:
6         Given the grid
7          | 1 |   | 2 |   | 3 |
8          |   | 9 |   |   |   |
9          |   |   |   |   | 4 |
10
11
12     Scenario: A simple ascii digit housenumber is found
13         Given the places
14          | osm | class    | type | housenr  | geometry |
15          | N1  | building | yes  | 45       | 9        |
16         And the places
17          | osm | class   | type | name       | geometry |
18          | W10 | highway | path | North Road | 1,2,3    |
19         When importing
20         And sending search query "45, North Road"
21         Then results contain
22          | osm |
23          | N1  |
24         When sending search query "North Road 45"
25         Then results contain
26          | osm |
27          | N1  |
28
29
30     Scenario Outline: Numeral housenumbers in any script are found
31         Given the places
32          | osm | class    | type | housenr  | geometry |
33          | N1  | building | yes  | <number> | 9        |
34         And the places
35          | osm | class   | type | name       | geometry |
36          | W10 | highway | path | North Road | 1,2,3    |
37         When importing
38         And sending search query "45, North Road"
39         Then results contain
40          | osm |
41          | N1  |
42         When sending search query "North Road ④⑤"
43         Then results contain
44          | osm |
45          | N1  |
46         When sending search query "North Road 𑁪𑁫"
47         Then results contain
48          | osm |
49          | N1  |
50
51     Examples:
52         | number |
53         | 45     |
54         | ④⑤     |
55         | 𑁪𑁫     |
56
57
58     Scenario Outline: Each housenumber in a list is found
59         Given the places
60          | osm | class    | type | housenr | geometry |
61          | N1  | building | yes  | <hnrs>  | 9        |
62         And the places
63          | osm | class   | type | name     | geometry |
64          | W10 | highway | path | Multistr | 1,2,3    |
65         When importing
66         When sending search query "2 Multistr"
67         Then results contain
68          | osm |
69          | N1  |
70         When sending search query "4 Multistr"
71         Then results contain
72          | osm |
73          | N1  |
74         When sending search query "12 Multistr"
75         Then results contain
76          | osm |
77          | N1  |
78
79      Examples:
80         | hnrs |
81         | 2;4;12 |
82         | 2,4,12 |
83         | 2, 4, 12 |
84
85
86     Scenario Outline: Housenumber - letter combinations are found
87         Given the places
88          | osm | class    | type | housenr | geometry |
89          | N1  | building | yes  | <hnr>   | 9        |
90         And the places
91          | osm | class   | type | name     | geometry |
92          | W10 | highway | path | Multistr | 1,2,3    |
93         When importing
94         When sending search query "2A Multistr"
95         Then results contain
96          | osm |
97          | N1  |
98         When sending search query "2 a Multistr"
99         Then results contain
100          | osm |
101          | N1  |
102         When sending search query "2-A Multistr"
103         Then results contain
104          | osm |
105          | N1  |
106         When sending search query "Multistr 2 A"
107         Then results contain
108          | osm |
109          | N1  |
110
111     Examples:
112         | hnr |
113         | 2a  |
114         | 2 A |
115         | 2-a |
116         | 2/A |
117
118
119     Scenario Outline: Number - Number combinations as a housenumber are found
120         Given the places
121          | osm | class    | type | housenr | geometry |
122          | N1  | building | yes  | <hnr>   | 9        |
123         And the places
124          | osm | class   | type | name       | geometry |
125          | W10 | highway | path | Chester St | 1,2,3    |
126         When importing
127         When sending search query "34-10 Chester St"
128         Then results contain
129          | osm |
130          | N1  |
131         When sending search query "34/10 Chester St"
132         Then results contain
133          | osm |
134          | N1  |
135         When sending search query "34 10 Chester St"
136         Then results contain
137          | osm |
138          | N1  |
139         When sending search query "3410 Chester St"
140         Then results contain
141          | osm |
142          | W10 |
143
144     Examples:
145         | hnr   |
146         | 34-10 |
147         | 34 10 |
148         | 34/10 |
149
150
151     Scenario Outline: a bis housenumber is found
152         Given the places
153          | osm | class    | type | housenr | geometry |
154          | N1  | building | yes  | <hnr>   | 9        |
155         And the places
156          | osm | class   | type | name       | geometry |
157          | W10 | highway | path | Rue Paris | 1,2,3    |
158         When importing
159         When sending search query "Rue Paris 45bis"
160         Then results contain
161          | osm |
162          | N1  |
163         When sending search query "Rue Paris 45 BIS"
164         Then results contain
165          | osm |
166          | N1  |
167         When sending search query "Rue Paris 45BIS"
168         Then results contain
169          | osm |
170          | N1  |
171         When sending search query "Rue Paris 45 bis"
172         Then results contain
173          | osm |
174          | N1  |
175
176     Examples:
177         | hnr   |
178         | 45bis |
179         | 45BIS |
180         | 45 BIS |
181         | 45 bis |
182
183
184     Scenario Outline: a ter housenumber is found
185         Given the places
186          | osm | class    | type | housenr | geometry |
187          | N1  | building | yes  | <hnr>   | 9        |
188         And the places
189          | osm | class   | type | name       | geometry |
190          | W10 | highway | path | Rue du Berger | 1,2,3    |
191         When importing
192         When sending search query "Rue du Berger 45ter"
193         Then results contain
194          | osm |
195          | N1  |
196         When sending search query "Rue du Berger 45 TER"
197         Then results contain
198          | osm |
199          | N1  |
200         When sending search query "Rue du Berger 45TER"
201         Then results contain
202          | osm |
203          | N1  |
204         When sending search query "Rue du Berger 45 ter"
205         Then results contain
206          | osm |
207          | N1  |
208
209     Examples:
210         | hnr   |
211         | 45ter |
212         | 45TER |
213         | 45 ter |
214         | 45 TER |
215
216
217     Scenario Outline: a number - letter - number combination housenumber is found
218         Given the places
219          | osm | class    | type | housenr | geometry |
220          | N1  | building | yes  | <hnr>   | 9        |
221         And the places
222          | osm | class   | type | name       | geometry |
223          | W10 | highway | path | Herengracht | 1,2,3    |
224         When importing
225         When sending search query "501-H 1 Herengracht"
226         Then results contain
227          | osm |
228          | N1  |
229         When sending search query "501H-1 Herengracht"
230         Then results contain
231          | osm |
232          | N1  |
233         When sending search query "501H1 Herengracht"
234         Then results contain
235          | osm |
236          | N1  |
237         When sending search query "501-H1 Herengracht"
238         Then results contain
239          | osm |
240          | N1  |
241
242     Examples:
243         | hnr |
244         | 501 H1 |
245         | 501H 1 |
246         | 501/H/1 |
247         | 501h1 |
248
249
250     Scenario Outline: Russian housenumbers are found
251         Given the places
252          | osm | class    | type | housenr | geometry |
253          | N1  | building | yes  | <hnr>   | 9        |
254         And the places
255          | osm | class   | type | name       | geometry |
256          | W10 | highway | path | Голубинская улица | 1,2,3    |
257         When importing
258         When sending search query "Голубинская улица 55к3"
259         Then results contain
260          | osm |
261          | N1  |
262         When sending search query "Голубинская улица 55 k3"
263         Then results contain
264          | osm |
265          | N1  |
266         When sending search query "Голубинская улица 55 к-3"
267         Then results contain
268          | osm |
269          | N1  |
270
271     Examples:
272         | hnr |
273         | 55к3 |
274         | 55 к3 |
275
276
277     Scenario: A name mapped as a housenumber is found
278         Given the places
279          | osm | class    | type | housenr | geometry |
280          | N1  | building | yes  | Warring | 9        |
281         And the places
282          | osm | class   | type | name       | geometry |
283          | W10 | highway | path | Chester St | 1,2,3    |
284         When importing
285         When sending search query "Chester St Warring"
286         Then results contain
287          | osm |
288          | N1  |
289
290
291     Scenario: Interpolations are found according to their type
292         Given the grid
293          | 10  |  | 11  |
294          | 100 |  | 101 |
295          | 20  |  | 21  |
296         And the places
297          | osm  | class   | type        | name    | geometry |
298          | W100 | highway | residential | Ringstr | 100, 101 |
299         And the places
300          | osm | class | type   | addr+interpolation | geometry |
301          | W10 | place | houses | even               | 10, 11   |
302          | W20 | place | houses | odd                | 20, 21   |
303         And the places
304          | osm | class | type  | housenr | geometry |
305          | N10 | place | house | 10      | 10 |
306          | N11 | place | house | 20      | 11 |
307          | N20 | place | house | 11      | 20 |
308          | N21 | place | house | 21      | 21 |
309         And the ways
310          | id | nodes |
311          | 10 | 10, 11 |
312          | 20 | 20, 21 |
313         When importing
314         When sending search query "Ringstr 12"
315         Then results contain
316          | osm |
317          | W10 |
318         When sending search query "Ringstr 13"
319         Then results contain
320          | osm |
321          | W20 |