2 Feature: Import of address interpolations
 
   3     Tests that interpolated addresses are added correctly
 
   5     Scenario: Simple even two point interpolation
 
   7           | osm_id | class | type  | housenumber | geometry
 
   8           | 1      | place | house | 2           | 1 1
 
   9           | 2      | place | house | 6           | 1 1.001
 
  11           | osm_id | class | type   | housenumber | geometry
 
  12           | 1      | place | houses | even        | 1 1, 1 1.001
 
  17         Then way 1 expands to housenumbers
 
  18           | housenumber | centroid
 
  21     Scenario: Simple even two point interpolation with zero beginning
 
  23           | osm_id | class | type  | housenumber | geometry
 
  24           | 1      | place | house | 0           | 1 1
 
  25           | 2      | place | house | 8           | 1 1.001
 
  27           | osm_id | class | type   | housenumber | geometry
 
  28           | 1      | place | houses | even        | 1 1, 1 1.001
 
  33         Then way 1 expands to housenumbers
 
  34           | housenumber | centroid
 
  39     Scenario: Backwards even two point interpolation
 
  41           | osm_id | class | type  | housenumber | geometry
 
  42           | 1      | place | house | 2           | 1 1
 
  43           | 2      | place | house | 6           | 1 1.001
 
  45           | osm_id | class | type   | housenumber | geometry
 
  46           | 1      | place | houses | even        | 1 1.001, 1 1
 
  51         Then way 1 expands to housenumbers
 
  52           | housenumber | centroid
 
  55     Scenario: Even two point interpolation with odd beginning
 
  57           | osm_id | class | type  | housenumber | geometry
 
  58           | 1      | place | house | 11          | 1 1
 
  59           | 2      | place | house | 16          | 1 1.001
 
  61           | osm_id | class | type   | housenumber | geometry
 
  62           | 1      | place | houses | even        | 1 1, 1 1.001
 
  67         Then way 1 expands to housenumbers
 
  68           | housenumber | centroid
 
  72     Scenario: Even two point interpolation with odd end
 
  74           | osm_id | class | type  | housenumber | geometry
 
  75           | 1      | place | house | 10          | 1 1
 
  76           | 2      | place | house | 15          | 1 1.001
 
  78           | osm_id | class | type   | housenumber | geometry
 
  79           | 1      | place | houses | even        | 1 1, 1 1.001
 
  84         Then way 1 expands to housenumbers
 
  85           | housenumber | centroid
 
  89     Scenario: Reverse even two point interpolation with odd beginning
 
  91           | osm_id | class | type  | housenumber | geometry
 
  92           | 1      | place | house | 11          | 1 1
 
  93           | 2      | place | house | 16          | 1 1.001
 
  95           | osm_id | class | type   | housenumber | geometry
 
  96           | 1      | place | houses | even        | 1 1.001, 1 1
 
 101         Then way 1 expands to housenumbers
 
 102           | housenumber | centroid
 
 106     Scenario: Reverse even two point interpolation with odd end
 
 107         Given the place nodes
 
 108           | osm_id | class | type  | housenumber | geometry
 
 109           | 1      | place | house | 10          | 1 1
 
 110           | 2      | place | house | 15          | 1 1.001
 
 112           | osm_id | class | type   | housenumber | geometry
 
 113           | 1      | place | houses | even        | 1 1.001, 1 1
 
 118         Then way 1 expands to housenumbers
 
 119           | housenumber | centroid
 
 123       Scenario: Simple odd two point interpolation
 
 124         Given the place nodes
 
 125           | osm_id | class | type  | housenumber | geometry
 
 126           | 1      | place | house | 1           | 1 1
 
 127           | 2      | place | house | 11          | 1 1.001
 
 129           | osm_id | class | type   | housenumber | geometry
 
 130           | 1      | place | houses | odd         | 1 1, 1 1.001
 
 135         Then way 1 expands to housenumbers
 
 136           | housenumber | centroid
 
 142       Scenario: Odd two point interpolation with even beginning
 
 143         Given the place nodes
 
 144           | osm_id | class | type  | housenumber | geometry
 
 145           | 1      | place | house | 2           | 1 1
 
 146           | 2      | place | house | 7           | 1 1.001
 
 148           | osm_id | class | type   | housenumber | geometry
 
 149           | 1      | place | houses | odd         | 1 1, 1 1.001
 
 154         Then way 1 expands to housenumbers
 
 155           | housenumber | centroid
 
 159      Scenario: Simple all two point interpolation
 
 160         Given the place nodes
 
 161           | osm_id | class | type  | housenumber | geometry
 
 162           | 1      | place | house | 1           | 1 1
 
 163           | 2      | place | house | 3           | 1 1.001
 
 165           | osm_id | class | type   | housenumber | geometry
 
 166           | 1      | place | houses | all         | 1 1, 1 1.001
 
 171         Then way 1 expands to housenumbers
 
 172           | housenumber | centroid
 
 175     Scenario: Simple numbered two point interpolation
 
 176         Given the place nodes
 
 177           | osm_id | class | type  | housenumber | geometry
 
 178           | 1      | place | house | 3           | 1 1
 
 179           | 2      | place | house | 9           | 1 1.001
 
 181           | osm_id | class | type   | housenumber | geometry
 
 182           | 1      | place | houses | 3           | 1 1, 1 1.001
 
 187         Then way 1 expands to housenumbers
 
 188           | housenumber | centroid
 
 191     Scenario: Even two point interpolation with intermediate empty node
 
 192         Given the place nodes
 
 193           | osm_id | class | type  | housenumber | geometry
 
 194           | 1      | place | house | 2           | 1 1
 
 195           | 2      | place | house | 10          | 1.001 1.001
 
 197           | osm_id | class | type   | housenumber | geometry
 
 198           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
 
 203         Then way 1 expands to housenumbers
 
 204           | housenumber | centroid
 
 210     Scenario: Even two point interpolation with intermediate duplicated empty node
 
 211         Given the place nodes
 
 212           | osm_id | class | type  | housenumber | geometry
 
 213           | 1      | place | house | 2           | 1 1
 
 214           | 2      | place | house | 10          | 1.001 1.001
 
 216           | osm_id | class | type   | housenumber | geometry
 
 217           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
 
 222         Then way 1 expands to housenumbers
 
 223           | housenumber | centroid
 
 228     Scenario: Simple even three point interpolation
 
 229         Given the place nodes
 
 230           | osm_id | class | type  | housenumber | geometry
 
 231           | 1      | place | house | 2           | 1 1
 
 232           | 2      | place | house | 14          | 1.001 1.001
 
 233           | 3      | place | house | 10          | 1 1.001
 
 235           | osm_id | class | type   | housenumber | geometry
 
 236           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
 
 241         Then way 1 expands to housenumbers
 
 242           | housenumber | centroid
 
 248      Scenario: Simple even four point interpolation
 
 249         Given the place nodes
 
 250           | osm_id | class | type  | housenumber | geometry
 
 251           | 1      | place | house | 2           | 1 1
 
 252           | 2      | place | house | 14          | 1.001 1.001
 
 253           | 3      | place | house | 10          | 1 1.001
 
 254           | 4      | place | house | 18          | 1.001 1.002
 
 256           | osm_id | class | type   | housenumber | geometry
 
 257           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001, 1.001 1.002
 
 262         Then way 1 expands to housenumbers
 
 263           | housenumber | centroid
 
 270     Scenario: Reverse simple even three point interpolation
 
 271         Given the place nodes
 
 272           | osm_id | class | type  | housenumber | geometry
 
 273           | 1      | place | house | 2           | 1 1
 
 274           | 2      | place | house | 14          | 1.001 1.001
 
 275           | 3      | place | house | 10          | 1 1.001
 
 277           | osm_id | class | type   | housenumber | geometry
 
 278           | 1      | place | houses | even        | 1.001 1.001, 1 1.001, 1 1
 
 283         Then way 1 expands to housenumbers
 
 284           | housenumber | centroid
 
 290     Scenario: Even three point interpolation with odd center point
 
 291         Given the place nodes
 
 292           | osm_id | class | type  | housenumber | geometry
 
 293           | 1      | place | house | 2           | 1 1
 
 294           | 2      | place | house | 8           | 1.001 1.001
 
 295           | 3      | place | house | 7           | 1 1.001
 
 297           | osm_id | class | type   | housenumber | geometry
 
 298           | 1      | place | houses | even        | 1 1, 1 1.001, 1.001 1.001
 
 303         Then way 1 expands to housenumbers
 
 304           | housenumber | centroid
 
 308     Scenario: Interpolation on self-intersecting way
 
 309         Given the place nodes
 
 310           | osm_id | class | type  | housenumber | geometry
 
 311           | 1      | place | house | 2           | 0 0
 
 312           | 2      | place | house | 6           | 0 0.001
 
 313           | 3      | place | house | 10          | 0 0.002
 
 315           | osm_id | class | type   | housenumber | geometry
 
 316           | 1      | place | houses | even        | 0 0, 0 0.001, 0 0.002, 0 0.001
 
 321         Then way 1 expands to housenumbers
 
 322           | housenumber | centroid
 
 326     Scenario: Interpolation on self-intersecting way II
 
 327         Given the place nodes
 
 328           | osm_id | class | type  | housenumber | geometry
 
 329           | 1      | place | house | 2           | 0 0
 
 330           | 2      | place | house | 6           | 0 0.001
 
 332           | osm_id | class | type   | housenumber | geometry
 
 333           | 1      | place | houses | even        | 0 0, 0 0.001, 0 0.002, 0 0.001
 
 338         Then way 1 expands to housenumbers
 
 339           | housenumber | centroid
 
 343      Scenario: addr:street on interpolation way
 
 344        Given the scene parallel-road
 
 346           | osm_id | class | type  | housenumber | geometry
 
 347           | 1      | place | house | 2           | :n-middle-w
 
 348           | 2      | place | house | 6           | :n-middle-e
 
 349           | 3      | place | house | 12          | :n-middle-w
 
 350           | 4      | place | house | 16          | :n-middle-e
 
 352           | osm_id | class   | type    | housenumber | street       | geometry
 
 353           | 10     | place   | houses  | even        |              | :w-middle
 
 354           | 11     | place   | houses  | even        | Cloud Street | :w-middle
 
 356           | osm_id | class   | type     | name                    | geometry
 
 357           | 2      | highway | tertiary | 'name' : 'Sun Way'      | :w-north
 
 358           | 3      | highway | tertiary | 'name' : 'Cloud Street' | :w-south
 
 361           | 10  | 1,100,101,102,2
 
 362           | 11  | 3,200,201,202,4
 
 364        Then table placex contains
 
 365           | object | parent_place_id
 
 372        And way 10 expands exactly to housenumbers 4
 
 373        And way 11 expands exactly to housenumbers 14
 
 375      Scenario: addr:street on housenumber way
 
 376        Given the scene parallel-road
 
 378           | osm_id | class | type  | housenumber | street       | geometry
 
 379           | 1      | place | house | 2           |              | :n-middle-w
 
 380           | 2      | place | house | 6           |              | :n-middle-e
 
 381           | 3      | place | house | 12          | Cloud Street | :n-middle-w
 
 382           | 4      | place | house | 16          | Cloud Street | :n-middle-e
 
 384           | osm_id | class   | type    | housenumber | geometry
 
 385           | 10     | place   | houses  | even        | :w-middle
 
 386           | 11     | place   | houses  | even        | :w-middle
 
 388           | osm_id | class   | type     | name                    | geometry
 
 389           | 2      | highway | tertiary | 'name' : 'Sun Way'      | :w-north
 
 390           | 3      | highway | tertiary | 'name' : 'Cloud Street' | :w-south
 
 393           | 10  | 1,100,101,102,2
 
 394           | 11  | 3,200,201,202,4
 
 396        Then table placex contains
 
 397           | object | parent_place_id
 
 404        And way 10 expands exactly to housenumbers 4
 
 405        And way 11 expands exactly to housenumbers 14
 
 407     Scenario: Geometry of points and way don't match (github #253)
 
 408         Given the place nodes
 
 409           | osm_id | class | type   | housenumber | geometry
 
 410           | 1      | place | house  | 10          | 144.9632341 -37.76163
 
 411           | 2      | place | house  | 6           | 144.9630541 -37.7628174
 
 412           | 3      | shop  | supermarket | 2      | 144.9629794 -37.7630755
 
 414           | osm_id | class | type   | housenumber | geometry
 
 415           | 1      | place | houses | even        | 144.9632341 -37.76163,144.9630541 -37.7628172,144.9629794 -37.7630755
 
 420         Then way 1 expands to housenumbers
 
 421           | housenumber  | centroid
 
 422           | 4            | 144.963016723312,-37.7629464422819+-0.000005
 
 423           | 8            | 144.9631440856,-37.762223694978+-0.000005