]> git.openstreetmap.org Git - nominatim.git/blob - tests/features/db/import/interpolation.feature
rewrite address interpolation so that planet_osm_node is not needed
[nominatim.git] / tests / features / db / import / interpolation.feature
1 @DB
2 Feature: Import of address interpolations
3     Tests that interpolated addresses are added correctly
4
5     Scenario: Simple even two point interpolation
6         Given the place nodes
7           | osm_id | class | type  | housenumber | geometry
8           | 1      | place | house | 2           | 1 1
9           | 2      | place | house | 6           | 1 1.001
10         And the place ways
11           | osm_id | class | type   | housenumber | geometry
12           | 1      | place | houses | even        | 1 1, 1 1.001
13         And the ways
14           | id | nodes
15           | 1  | 1,2
16         When importing
17         Then node 1 expands to housenumbers
18           | housenumber | centroid
19           | 2           | 1,1
20           | 4           | 1,1.0005
21         And node 2 expands to housenumbers
22           | housenumber | centroid
23           | 6           | 1,1.001
24
25     Scenario: Simple even two point interpolation with zero beginning
26         Given the place nodes
27           | osm_id | class | type  | housenumber | geometry
28           | 1      | place | house | 0           | 1 1
29           | 2      | place | house | 8           | 1 1.001
30         And the place ways
31           | osm_id | class | type   | housenumber | geometry
32           | 1      | place | houses | even        | 1 1, 1 1.001
33         And the ways
34           | id | nodes
35           | 1  | 1,2
36         When importing
37         Then node 1 expands to housenumbers
38           | housenumber | centroid
39           | 0           | 1,1
40           | 2           | 1,1.00025
41           | 4           | 1,1.0005
42           | 6           | 1,1.00075
43         And node 2 expands to housenumbers
44           | housenumber | centroid
45           | 8           | 1,1.001
46
47     Scenario: Backwards even two point interpolation
48         Given the place nodes
49           | osm_id | class | type  | housenumber | geometry
50           | 1      | place | house | 2           | 1 1
51           | 2      | place | house | 6           | 1 1.001
52         And the place ways
53           | osm_id | class | type   | housenumber | geometry
54           | 1      | place | houses | even        | 1 1.001, 1 1
55         And the ways
56           | id | nodes
57           | 1  | 2,1
58         When importing
59         Then node 1 expands to housenumbers
60           | housenumber | centroid
61           | 2           | 1,1
62         And node 2 expands to housenumbers
63           | housenumber | centroid
64           | 4           | 1,1.0005
65           | 6           | 1,1.001
66
67     Scenario: Even two point interpolation with odd beginning
68         Given the place nodes
69           | osm_id | class | type  | housenumber | geometry
70           | 1      | place | house | 11          | 1 1
71           | 2      | place | house | 16          | 1 1.001
72         And the place ways
73           | osm_id | class | type   | housenumber | geometry
74           | 1      | place | houses | even        | 1 1, 1 1.001
75         And the ways
76           | id | nodes
77           | 1  | 1,2
78         When importing
79         Then node 1 expands to housenumbers
80           | housenumber | centroid
81           | 11          | 1,1
82           | 12          | 1,1.0002
83           | 14          | 1,1.0006
84         And node 2 expands to housenumbers
85           | housenumber | centroid
86           | 16          | 1,1.001
87
88     Scenario: Even two point interpolation with odd end
89         Given the place nodes
90           | osm_id | class | type  | housenumber | geometry
91           | 1      | place | house | 10          | 1 1
92           | 2      | place | house | 15          | 1 1.001
93         And the place ways
94           | osm_id | class | type   | housenumber | geometry
95           | 1      | place | houses | even        | 1 1, 1 1.001
96         And the ways
97           | id | nodes
98           | 1  | 1,2
99         When importing
100         Then node 1 expands to housenumbers
101           | housenumber | centroid
102           | 10          | 1,1
103           | 12          | 1,1.0004
104           | 14          | 1,1.0008
105         And node 2 expands to housenumbers
106           | housenumber | centroid
107           | 15          | 1,1.001
108
109     Scenario: Reverse even two point interpolation with odd beginning
110         Given the place nodes
111           | osm_id | class | type  | housenumber | geometry
112           | 1      | place | house | 11          | 1 1
113           | 2      | place | house | 16          | 1 1.001
114         And the place ways
115           | osm_id | class | type   | housenumber | geometry
116           | 1      | place | houses | even        | 1 1.001, 1 1
117         And the ways
118           | id | nodes
119           | 1  | 2,1
120         When importing
121         Then node 1 expands to housenumbers
122           | housenumber | centroid
123           | 11          | 1,1
124         And node 2 expands to housenumbers
125           | housenumber | centroid
126           | 12          | 1,1.0002
127           | 14          | 1,1.0006
128           | 16          | 1,1.001
129
130     Scenario: Reverse even two point interpolation with odd end
131         Given the place nodes
132           | osm_id | class | type  | housenumber | geometry
133           | 1      | place | house | 10          | 1 1
134           | 2      | place | house | 15          | 1 1.001
135         And the place ways
136           | osm_id | class | type   | housenumber | geometry
137           | 1      | place | houses | even        | 1 1.001, 1 1
138         And the ways
139           | id | nodes
140           | 1  | 2,1
141         When importing
142         Then node 1 expands to housenumbers
143           | housenumber | centroid
144           | 10          | 1,1
145         And node 2 expands to housenumbers
146           | housenumber | centroid
147           | 12          | 1,1.0004
148           | 14          | 1,1.0008
149           | 15          | 1,1.001
150
151       Scenario: Simple odd two point interpolation
152         Given the place nodes
153           | osm_id | class | type  | housenumber | geometry
154           | 1      | place | house | 1           | 1 1
155           | 2      | place | house | 11          | 1 1.001
156         And the place ways
157           | osm_id | class | type   | housenumber | geometry
158           | 1      | place | houses | odd         | 1 1, 1 1.001
159         And the ways
160           | id | nodes
161           | 1  | 1,2
162         When importing
163         Then node 1 expands to housenumbers
164           | housenumber | centroid
165           | 1           | 1,1
166           | 3           | 1,1.0002
167           | 5           | 1,1.0004
168           | 7           | 1,1.0006
169           | 9           | 1,1.0008
170         And node 2 expands to housenumbers
171           | housenumber | centroid
172           | 11           | 1,1.001
173
174       Scenario: Odd two point interpolation with even beginning
175         Given the place nodes
176           | osm_id | class | type  | housenumber | geometry
177           | 1      | place | house | 2           | 1 1
178           | 2      | place | house | 7           | 1 1.001
179         And the place ways
180           | osm_id | class | type   | housenumber | geometry
181           | 1      | place | houses | odd         | 1 1, 1 1.001
182         And the ways
183           | id | nodes
184           | 1  | 1,2
185         When importing
186         Then node 1 expands to housenumbers
187           | housenumber | centroid
188           | 2           | 1,1
189           | 3           | 1,1.0002
190           | 5           | 1,1.0006
191         And node 2 expands to housenumbers
192           | housenumber | centroid
193           | 7           | 1,1.001
194
195      Scenario: Simple all two point interpolation
196         Given the place nodes
197           | osm_id | class | type  | housenumber | geometry
198           | 1      | place | house | 1           | 1 1
199           | 2      | place | house | 3           | 1 1.001
200         And the place ways
201           | osm_id | class | type   | housenumber | geometry
202           | 1      | place | houses | all         | 1 1, 1 1.001
203         And the ways
204           | id | nodes
205           | 1  | 1,2
206         When importing
207         Then node 1 expands to housenumbers
208           | housenumber | centroid
209           | 1           | 1,1
210           | 2           | 1,1.0005
211         And node 2 expands to housenumbers
212           | housenumber | centroid
213           | 3           | 1,1.001
214
215     Scenario: Simple numbered two point interpolation
216         Given the place nodes
217           | osm_id | class | type  | housenumber | geometry
218           | 1      | place | house | 3           | 1 1
219           | 2      | place | house | 9           | 1 1.001
220         And the place ways
221           | osm_id | class | type   | housenumber | geometry
222           | 1      | place | houses | 3           | 1 1, 1 1.001
223         And the ways
224           | id | nodes
225           | 1  | 1,2
226         When importing
227         Then node 1 expands to housenumbers
228           | housenumber | centroid
229           | 3           | 1,1
230           | 6           | 1,1.0005
231         And node 2 expands to housenumbers
232           | housenumber | centroid
233           | 9           | 1,1.001
234
235     Scenario: Even two point interpolation with intermediate empty node
236         Given the place nodes
237           | osm_id | class | type  | housenumber | geometry
238           | 1      | place | house | 2           | 1 1
239           | 2      | place | house | 10          | 1.001 1.001
240         And the place ways
241           | osm_id | class | type   | housenumber | geometry
242           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
243         And the ways
244           | id | nodes
245           | 1  | 1,3,2
246         When importing
247         Then node 1 expands to housenumbers
248           | housenumber | centroid
249           | 2           | 1,1
250           | 4           | 1,1.0005
251           | 6           | 1,1.001
252           | 8           | 1.0005,1.001
253         And node 2 expands to housenumbers
254           | housenumber | centroid
255           | 10          | 1.001,1.001
256
257
258     Scenario: Even two point interpolation with intermediate duplicated empty node
259         Given the place nodes
260           | osm_id | class | type  | housenumber | geometry
261           | 1      | place | house | 2           | 1 1
262           | 2      | place | house | 10          | 1.001 1.001
263         And the place ways
264           | osm_id | class | type   | housenumber | geometry
265           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
266         And the ways
267           | id | nodes
268           | 1  | 1,3,3,2
269         When importing
270         Then node 1 expands to housenumbers
271           | housenumber | centroid
272           | 2           | 1,1
273           | 4           | 1,1.0005
274           | 6           | 1,1.001
275           | 8           | 1.0005,1.001
276         And node 2 expands to housenumbers
277           | housenumber | centroid
278           | 10          | 1.001,1.001
279
280     Scenario: Simple even three point interpolation
281         Given the place nodes
282           | osm_id | class | type  | housenumber | geometry
283           | 1      | place | house | 2           | 1 1
284           | 2      | place | house | 8           | 1.001 1.001
285           | 3      | place | house | 4           | 1 1.001
286         And the place ways
287           | osm_id | class | type   | housenumber | geometry
288           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
289         And the ways
290           | id | nodes
291           | 1  | 1,3,2
292         When importing
293         Then node 1 expands to housenumbers
294           | housenumber | centroid
295           | 2           | 1,1
296         Then node 3 expands to housenumbers
297           | housenumber | centroid
298           | 4           | 1,1.001
299           | 6           | 1.0005,1.001
300         And node 2 expands to housenumbers
301           | housenumber | centroid
302           | 8           | 1.001,1.001
303
304     Scenario: Even three point interpolation with odd center point
305         Given the place nodes
306           | osm_id | class | type  | housenumber | geometry
307           | 1      | place | house | 2           | 1 1
308           | 2      | place | house | 8           | 1.001 1.001
309           | 3      | place | house | 7           | 1 1.001
310         And the place ways
311           | osm_id | class | type   | housenumber | geometry
312           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
313         And the ways
314           | id | nodes
315           | 1  | 1,3,2
316         When importing
317         Then node 1 expands to housenumbers
318           | housenumber | centroid
319           | 2           | 1,1
320           | 4           | 1,1.0004
321           | 6           | 1,1.0008
322         Then node 3 expands to housenumbers
323           | housenumber | centroid
324           | 7           | 1,1.001
325         And node 2 expands to housenumbers
326           | housenumber | centroid
327           | 8           | 1.001,1.001
328
329