@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 |