@routing @guidance Feature: Motorway Guidance Background: Given the profile "car" Given a grid size of 10 meters Scenario: Ramp Exit Right Given the node map """ a-b-c-d-e `--f-g """ And the ways | nodes | highway | oneway | | abcde | motorway | | | bfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,bfg,bfg | depart,off ramp slight right,arrive | Scenario: Ramp Exit Right Curved Right Given the node map """ a-b-c `f`d `g`e """ And the ways | nodes | highway | oneway | | abcde | motorway | | | bfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,bfg,bfg | depart,off ramp right,arrive | Scenario: Ramp Exit Right Curved Left Given the node map """ ,e ,d,g a-b-c-f """ And the ways | nodes | highway | oneway | | abcde | motorway | | | cfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,cfg,cfg | depart,off ramp slight right,arrive | Scenario: Ramp Exit Left Given the node map """ /--f-g a-b-c-d-e """ And the ways | nodes | highway | oneway | | abcde | motorway | | | bfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,bfg,bfg | depart,off ramp slight left,arrive | Scenario: Ramp Exit Left Curved Left Given the node map """ ,g,e ,f,d a-b-c """ And the ways | nodes | highway | oneway | | abcde | motorway | | | bfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,bfg,bfg | depart,off ramp left,arrive | Scenario: Ramp Exit Left Curved Right Given the node map """ a-b-c-f `d`g `e """ And the ways | nodes | highway | oneway | | abcde | motorway | | | cfg | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | a,g | abcde,cfg,cfg | depart,off ramp slight left,arrive | Scenario: On Ramp Right Given the node map """ a-b-c-d-e f-g---' """ And the ways | nodes | highway | oneway | | abcde | motorway | | | fgd | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | f,e | fgd,abcde,abcde | depart,merge slight left,arrive | Scenario: On Ramp Left Given the node map """ f-g---, a-b-c-d-e """ And the ways | nodes | highway | oneway | | abcde | motorway | | | fgd | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | f,e | fgd,abcde,abcde | depart,merge slight right,arrive | Scenario: Highway Fork Given the node map """ /--d-e a-b-c \--f-g """ And the ways | nodes | highway | | abcde | motorway | | cfg | motorway | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde,abcde | depart,fork slight left,arrive | | a,g | abcde,cfg,cfg | depart,fork slight right,arrive | Scenario: Fork After Ramp Given the node map """ /--d-e a-b-c \--f-g """ And the ways | nodes | highway | oneway | | abc | motorway_link | yes | | cde | motorway | | | cfg | motorway | | When I route I should get | waypoints | route | turns | | a,e | abc,cde,cde | depart,fork slight left,arrive | | a,g | abc,cfg,cfg | depart,fork slight right,arrive | Scenario: On And Off Ramp Right Given the node map """ a-b---c---d-e f-g--/ \--h i """ And the ways | nodes | highway | oneway | | abcde | motorway | | | fgc | motorway_link | yes | | chi | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | f,e | fgc,abcde,abcde | depart,merge slight left,arrive | | a,i | abcde,chi,chi | depart,off ramp slight right,arrive | | f,i | fgc,chi,chi | depart,off ramp right,arrive | Scenario: On And Off Ramp Left Given the node map """ f-g--\/---h-i a-b---c---d-e """ And the ways | nodes | highway | oneway | | abcde | motorway | | | fgc | motorway_link | yes | | chi | motorway_link | yes | When I route I should get | waypoints | route | turns | | a,e | abcde,abcde | depart,arrive | | f,e | fgc,abcde,abcde | depart,merge slight right,arrive | | a,i | abcde,chi,chi | depart,off ramp slight left,arrive | | f,i | fgc,chi,chi | depart,off ramp left,arrive | Scenario: Merging Motorways Given the node map """ e\ a-b-c d/ """ And the ways | nodes | highway | | abc | motorway | | db | motorway | | eb | motorway | When I route I should get | waypoints | route | turns | | d,c | db,abc,abc | depart,merge slight left,arrive | | e,c | eb,abc,abc | depart,merge slight right,arrive | Scenario: Handle 90 degree off ramps correctly Given the node map """ a\ x-b---c-y d """ And the ways | nodes | name | highway | oneway | | ab | On | motorway_link | yes | | xb | Hwy | motorway | | | bc | Hwy | motorway | | | cd | Off | motorway_link | yes | | cy | Hwy | motorway | | When I route I should get | waypoints | route | turns | | a,d | On,Hwy,Off,Off | depart,merge slight right,off ramp right,arrive |