Files
Nominatim/test/bdd/features/osm2pgsql/import/entrances.feature

125 lines
4.5 KiB
Gherkin

Feature: Import of entrance objects by osm2pgsql
Testing of correct setup of the entrance table
Scenario: Import simple entrance
When loading osm data
"""
n1 Tshop=sweets,entrance=yes,access=public x4.5 y-4
n2 Trouting:entrance=main x66.1 y0.1
n3 Tentrance=main,routing:entrance=foot x1 y2
n4 Thighway=bus_stop
"""
Then place contains exactly
| object | class | type |
| N1 | shop | sweets |
| N4 | highway | bus_stop |
And place_entrance contains exactly
| osm_id | type | extratags!dict | geometry!wkt |
| 1 | yes | 'shop': 'sweets', 'access': 'public' | 4.5 -4 |
| 2 | main | - | 66.1 0.1 |
| 3 | main | - | 1 2 |
Scenario: Addresses and entrance information can exist on the same node
When loading osm data
"""
n1 Taddr:housenumber=10,addr:street=North,entrance=main
"""
Then place contains exactly
| object | class | type | address+housenumber |
| N1 | place | house | 10 |
And place_entrance contains exactly
| osm_id | type |
| 1 | main |
Scenario Outline: Entrance import can be disabled
Given the lua style file
"""
local flex = require('import-full')
flex.set_entrance_filter<param>
"""
When loading osm data
"""
n1 Tentrance=yes,access=public
n2 Trouting:entrance=main
"""
Then place contains exactly
| object |
And place_entrance contains exactly
| osm_id |
Examples:
| param |
| () |
| (nil) |
| {} |
| {include={'access'}} |
| {main_tags={}} |
Scenario: Entrance import can have custom main tags
Given the lua style file
"""
local flex = require('import-full')
flex.set_entrance_filter{main_tags = {'door'}}
"""
When loading osm data
"""
n1 Tentrance=yes,access=public
n2 Tdoor=foot,entrance=yes
"""
Then place contains exactly
| object |
And place_entrance contains exactly
| osm_id | type | extratags!dict |
| 2 | foot | 'entrance': 'yes' |
Scenario: Entrance import can have custom extra tags included
Given the lua style file
"""
local flex = require('import-full')
flex.set_entrance_filter{main_tags = {'entrance'},
extra_include = {'access'}}
"""
When loading osm data
"""
n1 Tentrance=yes,access=public,shop=newspaper
n2 Tentrance=yes,shop=sweets
"""
Then place_entrance contains exactly
| osm_id | type | extratags!dict |
| 1 | yes | 'access': 'public' |
| 2 | yes | - |
Scenario: Entrance import can have custom extra tags excluded
Given the lua style file
"""
local flex = require('import-full')
flex.set_entrance_filter{main_tags = {'entrance', 'door'},
extra_exclude = {'shop'}}
"""
When loading osm data
"""
n1 Tentrance=yes,access=public,shop=newspaper
n2 Tentrance=yes,door=yes,shop=sweets
"""
Then place_entrance contains exactly
| osm_id | type | extratags!dict |
| 1 | yes | 'access': 'public' |
| 2 | yes | - |
Scenario: Entrance import can have a custom function
Given the lua style file
"""
local flex = require('import-full')
flex.set_entrance_filter{func = function(object)
return {entrance='always', extratags = {ref = '1'}}
end}
"""
When loading osm data
"""
n1 Tentrance=yes,access=public,shop=newspaper
n2 Tshop=sweets
"""
Then place_entrance contains exactly
| osm_id | type | extratags!dict |
| 1 | always | 'ref': '1' |
| 2 | always | 'ref': '1' |