113 lines
5.4 KiB
Gherkin
113 lines
5.4 KiB
Gherkin
@routing @car @oneway
|
|
Feature: Car - Oneway streets
|
|
# Handle oneways streets, as defined at http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing
|
|
|
|
Background:
|
|
Given the profile "car"
|
|
|
|
Scenario: Car - Simple oneway
|
|
Then routability should be
|
|
| highway | oneway | forw | backw |
|
|
| primary | yes | x | |
|
|
|
|
Scenario: Car - Simple reverse oneway
|
|
Then routability should be
|
|
| highway | oneway | forw | backw |
|
|
| primary | -1 | | x |
|
|
|
|
Scenario: Car - Mode specific oneway
|
|
Then routability should be
|
|
| highway | oneway:motorcar | oneway:motor_vehicle | oneway:vehicle | oneway | forw | backw |
|
|
| primary | | | | | x | x |
|
|
| primary | yes | | | | x | |
|
|
| primary | | yes | | | x | |
|
|
| primary | | | yes | | x | |
|
|
| primary | | | | yes | x | |
|
|
| primary | yes | no | | | x | |
|
|
| primary | | yes | no | | x | |
|
|
| primary | | | yes | no | x | |
|
|
| primary | | | | yes | x | |
|
|
| primary | no | yes | | | x | x |
|
|
| primary | | no | yes | | x | x |
|
|
| primary | | | no | yes | x | x |
|
|
|
|
Scenario: Car - Implied oneways
|
|
Then routability should be
|
|
| highway | junction | forw | backw | # |
|
|
| motorway | | x | | |
|
|
| motorway_link | | x | x | does not imply oneway |
|
|
| primary | | x | x | |
|
|
| motorway | roundabout | x | | |
|
|
| motorway_link | roundabout | x | | |
|
|
| primary | roundabout | x | | |
|
|
|
|
Scenario: Car - Overrule implied oneway
|
|
Then routability should be
|
|
| highway | oneway | forw | backw | # |
|
|
| motorway | no | x | x | |
|
|
| motorway_link | no | x | x | |
|
|
| motorway_link | yes | x | | |
|
|
| motorway_link | | x | x | does not imply onway |
|
|
|
|
Scenario: Car - Around the Block
|
|
Given the node map
|
|
"""
|
|
a b
|
|
f d c e
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | |
|
|
| cd | |
|
|
| da | |
|
|
| ce | |
|
|
| df | |
|
|
|
|
When I route I should get
|
|
| from | to | route |
|
|
| a | b | ab,ab |
|
|
| b | a | bc,cd,da,da |
|
|
|
|
Scenario: Car - Cars should not be affected by bicycle tags
|
|
Then routability should be
|
|
| highway | junction | oneway | oneway:bicycle | forw | backw |
|
|
| primary | | yes | yes | x | |
|
|
| primary | | yes | no | x | |
|
|
| primary | | yes | -1 | x | |
|
|
| primary | | no | yes | x | x |
|
|
| primary | | no | no | x | x |
|
|
| primary | | no | -1 | x | x |
|
|
| primary | | -1 | yes | | x |
|
|
| primary | | -1 | no | | x |
|
|
| primary | | -1 | -1 | | x |
|
|
| primary | roundabout | | yes | x | |
|
|
| primary | roundabout | | no | x | |
|
|
| primary | roundabout | | -1 | x | |
|
|
|
|
Scenario: Car - Two consecutive oneways
|
|
Given the node map
|
|
"""
|
|
a b c
|
|
"""
|
|
|
|
And the ways
|
|
| nodes | oneway |
|
|
| ab | yes |
|
|
| bc | yes |
|
|
|
|
|
|
When I route I should get
|
|
| from | to | route |
|
|
| a | c | ab,bc,bc |
|
|
|
|
|
|
# Reversible oneways (low frequency) vs alternating oneways (high frequency).
|
|
# See: https://github.com/Project-OSRM/osrm-backend/issues/2837
|
|
Scenario: Car - Route over alternating but not reversible oneways
|
|
Then routability should be
|
|
| highway | oneway | forw | backw |
|
|
| primary | reversible | | |
|
|
| primary | alternating | x | x |
|