]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/db/update/interpolation.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / update / interpolation.feature
1 @DB
2 Feature: Update of address interpolations
3     Test the interpolated address are updated correctly
4
5     Scenario: new interpolation added to existing street
6       Given the scene parallel-road
7       And the places
8           | osm | class   | type         | name         | geometry |
9           | W2  | highway | unclassified | Sun Way      | :w-north |
10           | W3  | highway | unclassified | Cloud Street | :w-south |
11       And the ways
12           | id  | nodes |
13           | 10  | 1,100,101,102,2 |
14       When importing
15       Then W10 expands to no interpolation
16       When updating places
17           | osm | class | type  | housenr | geometry |
18           | N1  | place | house | 2       | :n-middle-w |
19           | N2  | place | house | 6       | :n-middle-e |
20           | W10 | place | houses | even   | :w-middle |
21       Then placex contains
22           | object | parent_place_id |
23           | N1     | W2 |
24           | N2     | W2 |
25       And W10 expands to interpolation
26           | parent_place_id | start | end |
27           | W2              | 2     | 6 |
28
29     Scenario: addr:street added to interpolation
30       Given the scene parallel-road
31       And the places
32           | osm | class | type  | housenr | geometry |
33           | N1  | place | house | 2       | :n-middle-w |
34           | N2  | place | house | 6       | :n-middle-e |
35           | W10 | place | houses | even   | :w-middle |
36       And the places
37           | osm | class   | type         | name         | geometry |
38           | W2  | highway | unclassified | Sun Way      | :w-north |
39           | W3  | highway | unclassified | Cloud Street | :w-south |
40       And the ways
41           | id  | nodes |
42           | 10  | 1,100,101,102,2 |
43       When importing
44       Then placex contains
45           | object | parent_place_id |
46           | N1     | W2 |
47           | N2     | W2 |
48       And W10 expands to interpolation
49           | parent_place_id | start | end |
50           | W2              | 2     | 6 |
51       When updating places
52           | osm | class   | type    | housenr | street       | geometry |
53           | W10 | place   | houses  | even    | Cloud Street | :w-middle |
54       Then placex contains
55           | object | parent_place_id |
56           | N1     | W3 |
57           | N2     | W3 |
58       And W10 expands to interpolation
59           | parent_place_id | start | end |
60           | W3              | 2     | 6 |
61
62     Scenario: addr:street added to housenumbers
63       Given the scene parallel-road
64       And the places
65           | osm | class | type  | housenr | geometry |
66           | N1  | place | house | 2       | :n-middle-w |
67           | N2  | place | house | 6       | :n-middle-e |
68           | W10 | place | houses | even   | :w-middle |
69       And the places
70           | osm | class   | type         | name         | geometry |
71           | W2  | highway | unclassified | Sun Way      | :w-north |
72           | W3  | highway | unclassified | Cloud Street | :w-south |
73       And the ways
74           | id  | nodes |
75           | 10  | 1,100,101,102,2 |
76       When importing
77       Then placex contains
78           | object | parent_place_id |
79           | N1     | W2 |
80           | N2     | W2 |
81       And W10 expands to interpolation
82           | parent_place_id | start | end |
83           | W2              | 2     | 6 |
84       When updating places
85           | osm | class | type  | street      | housenr | geometry |
86           | N1  | place | house | Cloud Street| 2       | :n-middle-w |
87           | N2  | place | house | Cloud Street| 6       | :n-middle-e |
88       Then placex contains
89           | object | parent_place_id |
90           | N1     | W3 |
91           | N2     | W3 |
92       And W10 expands to interpolation
93           | parent_place_id | start | end |
94           | W3              | 2     | 6 |
95
96     Scenario: interpolation tag removed
97       Given the scene parallel-road
98       And the places
99           | osm | class | type  | housenr | geometry |
100           | N1  | place | house | 2       | :n-middle-w |
101           | N2  | place | house | 6       | :n-middle-e |
102           | W10 | place | houses | even   | :w-middle |
103       And the places
104           | osm | class   | type         | name         | geometry |
105           | W2  | highway | unclassified | Sun Way      | :w-north |
106           | W3  | highway | unclassified | Cloud Street | :w-south |
107       And the ways
108           | id  | nodes |
109           | 10  | 1,100,101,102,2 |
110       When importing
111       Then placex contains
112           | object | parent_place_id |
113           | N1     | W2 |
114           | N2     | W2 |
115       And W10 expands to interpolation
116           | parent_place_id | start | end |
117           | W2              | 2     | 6 |
118       When marking for delete W10
119       Then W10 expands to no interpolation
120       And placex contains
121           | object | parent_place_id |
122           | N1     | W2 |
123           | N2     | W2 |
124
125     Scenario: referenced road added
126       Given the scene parallel-road
127       And the places
128           | osm | class | type  | housenr | geometry |
129           | N1  | place | house | 2       | :n-middle-w |
130           | N2  | place | house | 6       | :n-middle-e |
131       And the places
132           | osm | class   | type    | housenr | street      | geometry |
133           | W10 | place   | houses  | even    | Cloud Street| :w-middle |
134       And the places
135           | osm | class   | type         | name     | geometry |
136           | W2  | highway | unclassified | Sun Way  | :w-north |
137       And the ways
138           | id  | nodes |
139           | 10  | 1,100,101,102,2 |
140       When importing
141       Then placex contains
142           | object | parent_place_id |
143           | N1     | W2 |
144           | N2     | W2 |
145       And W10 expands to interpolation
146           | parent_place_id | start | end |
147           | W2              | 2     | 6 |
148       When updating places
149           | osm | class   | type         | name         | geometry |
150           | W3  | highway | unclassified | Cloud Street | :w-south |
151       Then placex contains
152           | object | parent_place_id |
153           | N1     | W3 |
154           | N2     | W3 |
155       And W10 expands to interpolation
156           | parent_place_id | start | end |
157           | W3              | 2     | 6 |
158
159     Scenario: referenced road deleted
160       Given the scene parallel-road
161       And the places
162           | osm | class | type  | housenr | geometry |
163           | N1  | place | house | 2       | :n-middle-w |
164           | N2  | place | house | 6       | :n-middle-e |
165       And the places
166           | osm | class   | type    | housenr | street      | geometry |
167           | W10 | place   | houses  | even    | Cloud Street| :w-middle |
168       And the places
169           | osm | class   | type         | name         | geometry |
170           | W2  | highway | unclassified | Sun Way      | :w-north |
171           | W3  | highway | unclassified | Cloud Street | :w-south |
172       And the ways
173           | id  | nodes |
174           | 10  | 1,100,101,102,2 |
175       When importing
176       Then placex contains
177           | object | parent_place_id |
178           | N1     | W3 |
179           | N2     | W3 |
180       And W10 expands to interpolation
181           | parent_place_id | start | end |
182           | W3              | 2     | 6 |
183       When marking for delete W3
184       Then placex contains
185           | object | parent_place_id |
186           | N1     | W2 |
187           | N2     | W2 |
188       And W10 expands to interpolation
189           | parent_place_id | start | end |
190           | W2              | 2     | 6 |
191
192     Scenario: building becomes interpolation
193       Given the scene building-with-parallel-streets
194       And the places
195           | osm | class    | type  | housenr | geometry |
196           | W1  | place    | house | 3       | :w-building |
197       And the places
198           | osm | class   | type         | name         | geometry |
199           | W2  | highway | unclassified | Cloud Street | :w-south |
200       When importing
201       Then placex contains
202           | object | parent_place_id |
203           | W1     | W2 |
204       Given the ways
205           | id  | nodes |
206           | 1   | 1,100,101,102,2 |
207       When updating places
208           | osm | class | type  | housenr | geometry |
209           | N1  | place | house | 2       | :n-north-w |
210           | N2  | place | house | 6       | :n-north-e |
211       And updating places
212           | osm | class   | type    | housenr | street      | geometry |
213           | W1  | place   | houses  | even    | Cloud Street| :w-north |
214       Then placex has no entry for W1
215       And W1 expands to interpolation
216           | parent_place_id | start | end |
217           | W2              | 2     | 6 |
218
219     Scenario: interpolation becomes building
220       Given the scene building-with-parallel-streets
221       And the places
222           | osm | class | type  | housenr | geometry |
223           | N1  | place | house | 2       | :n-north-w |
224           | N2  | place | house | 6       | :n-north-e |
225       And the places
226           | osm | class   | type         | name         | geometry |
227           | W2  | highway | unclassified | Cloud Street | :w-south |
228       And the ways
229           | id  | nodes |
230           | 1   | 1,100,101,102,2 |
231       And the places
232           | osm | class   | type    | housenr | street      | geometry |
233           | W1  | place   | houses  | even    | Cloud Street| :w-north |
234       When importing
235       Then placex has no entry for W1
236       And W1 expands to interpolation
237           | parent_place_id | start | end |
238           | W2              | 2     | 6 |
239       When updating places
240           | osm | class    | type  | housenr | geometry |
241           | W1  | place    | house | 3       | :w-building |
242       Then placex contains
243           | object | parent_place_id |
244           | W1     | W2 |
245
246     Scenario: housenumbers added to interpolation
247       Given the scene building-with-parallel-streets
248       And the places
249           | osm | class   | type         | name         | geometry |
250           | W2  | highway | unclassified | Cloud Street | :w-south |
251       And the ways
252           | id  | nodes |
253           | 1   | 1,100,101,102,2 |
254       And the places
255           | osm | class   | type    | housenr | geometry |
256           | W1  | place   | houses  | even    | :w-north |
257       When importing
258       Then W1 expands to no interpolation
259       When updating places
260           | osm | class | type  | housenr | geometry |
261           | N1  | place | house | 2       | :n-north-w |
262           | N2  | place | house | 6       | :n-north-e |
263       And updating places
264           | osm | class   | type    | housenr | street      | geometry |
265           | W1  | place   | houses  | even    | Cloud Street| :w-north |
266       Then W1 expands to interpolation
267           | parent_place_id | start | end |
268           | W2              | 2     | 6 |
269
270     @Fail
271     Scenario: housenumber added in middle of interpolation
272       Given the grid
273           | 1 |  |  |   |  | 2 |
274           | 3 |  |  | 4 |  | 5 |
275       And the places
276           | osm | class   | type         | name         | geometry |
277           | W1  | highway | unclassified | Cloud Street | 1, 2     |
278       And the ways
279           | id  | nodes |
280           | 2   | 3,4,5 |
281       And the places
282           | osm | class   | type    | housenr | geometry |
283           | W2  | place   | houses  | even    | 3,4,5    |
284       And the places
285           | osm | class | type  | housenr |
286           | N3  | place | house | 2       |
287           | N5  | place | house | 10      |
288       When importing
289       Then W2 expands to interpolation
290           | parent_place_id | start | end | geometry |
291           | W1              | 2     | 10  | 3,4,5    |
292       When updating places
293           | osm | class | type  | housenr |
294           | N4  | place | house | 6       |
295       Then W2 expands to interpolation
296           | parent_place_id | start | end | geometry |
297           | W1              | 2     | 6   | 3,4      |
298           | W1              | 6     | 10  | 4,5      |
299
300     @Fail
301     Scenario: housenumber removed in middle of interpolation
302       Given the grid
303           | 1 |  |  |   |  | 2 |
304           | 3 |  |  | 4 |  | 5 |
305       And the places
306           | osm | class   | type         | name         | geometry |
307           | W1  | highway | unclassified | Cloud Street | 1, 2     |
308       And the ways
309           | id  | nodes |
310           | 2   | 3,4,5 |
311       And the places
312           | osm | class   | type    | housenr | geometry |
313           | W2  | place   | houses  | even    | 3,4,5    |
314       And the places
315           | osm | class | type  | housenr |
316           | N3  | place | house | 2       |
317           | N4  | place | house | 6       |
318           | N5  | place | house | 10      |
319       When importing
320       Then W2 expands to interpolation
321           | parent_place_id | start | end | geometry |
322           | W1              | 2     | 6   | 3,4      |
323           | W1              | 6     | 10  | 4,5      |
324       When marking for delete N4
325       Then W2 expands to interpolation
326           | parent_place_id | start | end | geometry |
327           | W1              | 2     | 10  | 3,4,5    |
328
329     @Fail
330     Scenario: Change the start housenumber
331       Given the grid
332           | 1 |  | 2 |
333           | 3 |  | 4 |
334       And the places
335           | osm | class   | type         | name         | geometry |
336           | W1  | highway | unclassified | Cloud Street | 1, 2     |
337       And the ways
338           | id  | nodes |
339           | 2   | 3,4   |
340       And the places
341           | osm | class   | type    | housenr | geometry |
342           | W2  | place   | houses  | even    | 3,4      |
343       And the places
344           | osm | class | type  | housenr |
345           | N3  | place | house | 2       |
346           | N4  | place | house | 6       |
347       When importing
348       Then W2 expands to interpolation
349           | parent_place_id | start | end | geometry |
350           | W1              | 2     | 6   | 3,4      |
351       When updating places
352           | osm | class | type  | housenr |
353           | N4  | place | house | 8       |
354       Then W2 expands to interpolation
355           | parent_place_id | start | end | geometry |
356           | W1              | 2     | 8   | 3,4      |
357