@routing @guidance @turn-angles Feature: Simple Turns Background: Given the profile "car" Given a grid size of 1 meters Scenario: Offset Turn Given the node map """ a - - - - - - - - b - - - - - - - - - c | | | | | | d ' ' ' ' ' e ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' f """ And the ways | nodes | highway | name | lanes | | abc | primary | road | 4 | | bdef | primary | turn | 2 | When I route I should get | waypoints | route | turns | | a,c | road,road | depart,arrive | | a,e | road,turn,turn | depart,turn slight right,arrive | | e,a | turn,road,road | depart,turn slight left,arrive | | e,c | turn,road,road | depart,turn sharp right,arrive | Scenario: Road Taking a Turn after Intersection Given the node map """ a - - - - - - - - b - - - - - - - - - c | | | | | | | | | | | | | | | | | d ' ' ' ' ' e ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' f """ And the ways | nodes | highway | name | lanes | | abc | primary | road | 4 | | bdef | primary | turn | 2 | When I route I should get | waypoints | route | turns | | a,c | road,road | depart,arrive | | a,e | road,turn,turn | depart,turn right,arrive | | e,a | turn,road,road | depart,turn left,arrive | | e,c | turn,road,road | depart,turn right,arrive | Scenario: U-Turn Lane Given the node map """ j | | | | | | | i - - - - - - - - - - - - - - - - - g - h | | | | | | f | / / d - - - - - - - - e / c / | | | | | a - k - - - - - - - - - - - - - - - - - b """ And the ways | nodes | highway | name | lanes | oneway | | akb | primary | road | 4 | yes | | hgi | primary | road | 4 | yes | | kcdefg | primary_link | | 1 | yes | | gj | tertiary | turn | 1 | | When I route I should get | waypoints | route | turns | | a,b | road,road | depart,arrive | | a,i | road,road,road | depart,continue uturn,arrive | | a,j | road,turn,turn | depart,turn left,arrive | #http://www.openstreetmap.org/#map=19/52.50871/13.26127 Scenario: Curved Turn Given the node map """ f - - - - - - - - - - - e - - - - - - - d l k \ \ j \ \ i \ \ h | | | | a - - - - - - - - - - - - - - - - - b - c | | | | | | | | g """ And the ways | nodes | highway | name | lanes | oneway | | abc | primary | road | 5 | no | | gb | secondary | turn | 3 | yes | | bhijkle | unclassified | turn | 2 | yes | | de | residential | road | | yes | | ef | residential | road | 2 | yes | When I route I should get | waypoints | route | turns | locations | | a,c | road,road | depart,arrive | a,c | | c,a | road,road | depart,arrive | c,a | | g,a | turn,road,road | depart,turn left,arrive | g,b,a | | g,c | turn,road,road | depart,turn right,arrive | g,b,c | | g,f | turn,road,road | depart,end of road left,arrive | g,e,f | | c,f | road,road,road | depart,turn right,arrive | c,b,f | | a,f | road,road,road | depart,continue uturn,arrive | a,b,f | # http://www.openstreetmap.org/#map=19/52.48753/13.52838 Scenario: Traffic Circle Given the node map """ . l . m k . . j n . . i - - - p o . h a - b g c . d f . . e """ And the ways | nodes | highway | name | lanes | oneway | junction | | ab | residential | road | 1 | yes | | | ip | residential | road | 1 | yes | | | bcdefghijklmnob | residential | road | 1 | yes | roundabout | When I route I should get | waypoints | route | turns | intersections | | a,p | road,road,road | depart,roundabout turn straight exit-1,arrive | true:90;true:165 false:270 false:345,true:90 false:180 true:345;true:270 | Scenario: Splitting Road with many lanes Given the node map """ f - - - - - - - - - - - - - - - - - - - - e ' ' ' ' ' a - - - - - b ' ' ' ' ' c - - - - - - - - - - - - - - - - - - - - d """ And the ways | nodes | highway | name | lanes | oneway | | ab | primary | road | 4 | no | | bcd | primary | road | 2 | yes | | efb | primary | road | 2 | yes | When I route I should get | waypoints | route | turns | | a,d | road,road | depart,arrive | | e,a | road,road | depart,arrive | Scenario: Splitting Road with many lanes; same as above makes sure len(turn:lanes) work as expected Given the node map """ f - - - - - - - - - - - - - - - - - - - - e ' ' ' ' ' a - - - - - b ' ' ' ' ' c - - - - - - - - - - - - - - - - - - - - d """ And the ways | nodes | highway | name | turn:lanes | oneway | | ab | primary | road | left\|left\|right\|right | no | | bcd | primary | road | through\|through | yes | | efb | primary | road | through\|through | yes | When I route I should get | waypoints | route | turns | | a,d | road,road | depart,arrive | | e,a | road,road | depart,arrive | @todo # currently the intersections don't match up do to the `merging` process. # The intermediate intersection is technically no-turn at all, since the road continues. Scenario: Splitting Road with many lanes Given the node map """ f - - - - - - - - - - - - - - - - - - - - e ' ' ' ' ' a - - - - - b ' ' ' ' ' c - - - - - - - - - - - - - - - - - - - - d """ And the ways | nodes | highway | name | lanes | oneway | | ab | primary | road | 4 | no | | bcd | primary | road | 2 | yes | | efb | primary | road | 2 | yes | When I route I should get | waypoints | route | turns | intersections ; | | a,d | road,road | depart,arrive | true:90;true:270 | | e,a | road,road | depart,arrive | true:270;rue:90 | #http://www.openstreetmap.org/#map=19/52.54759/13.43929 Scenario: Curved Turn At Cross Given the node map """ h | | | | | . b - - - - - - - - - - - - - - - - - - - - - - - a | . | . | c | | | d | | | e | . | . | g - - - - - - - - - - - - - - - - - - f | | | | i """ And the ways | nodes | lanes | name | | abcd | 3 | road | | defg | 2 | road | | hdi | 2 | cross | When I route I should get | waypoints | route | turns | | a,g | road,road | depart,arrive | | i,a | cross,road,road | depart,turn right,arrive | | i,g | cross,road,road | depart,turn left,arrive | | h,g | cross,road,road | depart,turn right,arrive | | h,a | cross,road,road | depart,turn left,arrive | #http://www.openstreetmap.org/#map=19/52.56243/13.32666 Scenario: Modelled Curve on Segregated Road Given the node map """ a f | . e - - - - g | h ' | | . ' | | i | | . | | | | . | | | | j | | | | ' | |. | | | m b - - - - - - - - - - - - - - - - - - - k - - - - l | | c d """ And the ways | nodes | name | oneway | lanes | | abc | road | yes | 3 | | dkef | road | yes | 3 | | mbkl | turn | yes | 3 | | gehijb | turn | yes | 3 | When I route I should get | waypoints | route | turns | | a,c | road,road | depart,arrive | | a,l | road,turn,turn | depart,turn left,arrive | | a,f | road,road,road | depart,continue uturn,arrive | | d,f | road,road | depart,arrive | | d,l | road,turn,turn | depart,turn right,arrive | | d,c | road,road,road | depart,continue uturn,arrive | | g,l | turn,turn,turn | depart,continue uturn,arrive | | g,c | turn,road,road | depart,turn left,arrive | #http://www.openstreetmap.org/#map=19/52.50878/13.26085 Scenario: Curved Turn Given the node map """ f - - - - - - - - - e - - - - - - - - - d k . j . i . h | | | | | | | | a - - - - - - - - - - - - - - - - - b - c | | | | | | | | g """ And the ways | nodes | highway | name | lanes | oneway | | abc | primary | road | 5 | no | | gb | secondary | turn | 3 | yes | | bhijke | unclassified | turn | 2 | yes | | de | residential | road | | yes | | ef | residential | road | 2 | yes | When I route I should get | waypoints | route | turns | locations | # | | g,f | turn,road,road | depart,turn left,arrive | g,e,f | #could offer an additional turn at `e` if you don't detect the turn in between as curve | | c,f | road,road,road | depart,continue right,arrive | c,b,f | | #http://www.openstreetmap.org/search?query=52.479264%2013.295617#map=19/52.47926/13.29562 Scenario: Splitting Roads with curved split Given the node map """ f - - - - - - - - - - - - - - - - - e . . g . a - - - - - b . c . . h - - - - - - - - - - - - - - - - - d """ And the ways | nodes | highway | name | lanes | oneway | | ab | primary | road | 4 | no | | bchd | primary | road | 2 | yes | | efgb | primary | road | 2 | yes | When I route I should get | waypoints | route | turns | | a,d | road,road | depart,arrive | | e,a | road,road | depart,arrive | #http://www.openstreetmap.org/#map=19/52.51710/13.35462 Scenario: Merge next to modelled turn Given the node map """ f - - - - - - - - - - - - - - - e . . . a - - - - - - - - b .\ .\ .\ g \ \ . \ c- - - - - - - - - - - - - - - d h | | | | | | | | | | i """ And the ways | nodes | name | oneway | lanes | highway | | ab | spree | no | 6 | tertiary | | bcd | spree | yes | 3 | tertiary | | efb | spree | yes | 3 | tertiary | | bghi | | no | | service | When I route I should get | waypoints | route | turns | | a,d | spree,spree | depart,arrive | | e,a | spree,spree | depart,arrive | | a,i | spree,, | depart,turn right,arrive | | e,i | spree,, | depart,turn left,arrive | Scenario: Merge next to modelled turn Given the node map """ f - - - - - - - - - - - - - - - e . . . a - - - - - - - - b .\ .\ .\ g \ \ . \ c- - - - - - - - - - - - - - - d h | | | | | | | | | | i """ And the ways | nodes | name | oneway | lanes | highway | | ab | spree | no | 6 | tertiary | | bcd | spree | yes | 3 | tertiary | | efb | spree | yes | 3 | tertiary | | bghi | | no | | living_street | When I route I should get | waypoints | route | turns | | a,d | spree,spree | depart,arrive | | e,a | spree,spree | depart,arrive | | a,i | spree,, | depart,turn right,arrive | | e,i | spree,, | depart,turn left,arrive | # http://www.openstreetmap.org/#map=18/52.52147/13.41779 Scenario: Parking Isle Given the node map """ c - - - - - - - - - - - - - - b - - - - - - - - - - - - - - a . . . . . . . 1 . . . . . j - - - - - - - - - - - - - - - - - - - - - - i . . . . d . . . . e . . . k 2 . . g - - - - - - - - - - f - - - - - - - - - - - - - - - - - - h """ And the ways | nodes | name | oneway | lanes | highway | | gfh | allee | yes | 3 | primary | | bjdekf | | yes | | service | | ij | | no | | parking aisle | | abc | allee | yes | 3 | primary | When I route I should get | waypoints | route | turns | | a,c | allee,allee | depart,arrive | | a,h | allee,allee,allee | depart,continue uturn,arrive | | 1,h | ,allee,allee | depart,turn left,arrive | | 2,h | ,allee,allee | depart,turn left,arrive | #http://www.openstreetmap.org/#map=18/52.56251/13.32650 @todo Scenario: Curved Turn on Separated Directions Given the node map """ e d f c - - - - - - - - - - - j | l ' | | ' | | ' | | ' | | ' | | n | | | | ' | | | | ' | | | | | | | |' | | | | | | | | | g | h - - - - - - - - - - - - - - - b - - - - - - - - - - - o | | | | | | | | | | | | i a """ And the ways | nodes | name | oneway | lanes | highway | | jc | Kapweg | yes | 3 | primary | | clng | Kapweg | yes | | primary_link | | hbo | Kapweg | yes | 2 | primary | | efg | Kurt | yes | 4 | secondary | | gh | Kurt | yes | 2 | primary | | hi | Kurt | yes | 3 | primary | | ab | Kurt | yes | 4 | primary | | cd | Kurt | yes | 3 | secondary | | bc | Kurt | yes | 2 | primary | When I route I should get | waypoints | route | turns | | j,i | Kapweg,Kurt,Kurt | depart,turn left,arrive | | j,o | Kapweg,Kapweg,Kapweg | depart,continue uturn,arrive | | a,i | Kurt,Kurt,Kurt | depart,continue uturn,arrive | #http://www.openstreetmap.org/#map=18/52.56251/13.32650 Scenario: Curved Turn on Separated Directions Given the node map """ e d f c - - - - - - - - - - - j | l ' | | ' | | ' | | ' | | ' | | n | | | | ' | | | | ' | | | | | | | |' | | | | | | | | | g | h - - - - - - - - - - - - - - - b - - - - - - - - - - - o | | | | | | | | | | | | i a """ And the ways | nodes | name | oneway | lanes | highway | | jc | Kapweg | yes | 3 | primary | | clngh | Kapweg | yes | | primary_link | | hbo | Kapweg | yes | 2 | primary | | efh | Kurt | yes | 4 | secondary | | hi | Kurt | yes | 3 | primary | | ab | Kurt | yes | 4 | primary | | cd | Kurt | yes | 3 | secondary | | bc | Kurt | yes | 2 | primary | When I route I should get | waypoints | route | turns | | j,i | Kapweg,Kurt,Kurt | depart,turn left,arrive | | j,o | Kapweg,Kapweg,Kapweg | depart,continue uturn,arrive | | a,i | Kurt,Kurt,Kurt | depart,continue uturn,arrive | #http://www.openstreetmap.org/#map=19/52.53731/13.36033 Scenario: Splitting Road to Left Given the node map """ k . . j . . . a - - - - - - - b - - - - - - c - - - - - - - d - - - - - - e . ' f . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g h """ And the nodes | node | highway | | i | traffic_signals | And the ways | nodes | name | oneway | lanes | highway | | abc | Perle | no | 4 | secondary | | cde | Perle | no | 6 | secondary | | cfg | Heide | yes | 2 | secondary | | hic | Heide | yes | 3 | secondary | | cjk | Friede | no | | tertiary | When I route I should get | waypoints | route | turns | intersections | | a,g | Perle,Heide,Heide | depart,turn right,arrive | true:90;true:90 true:195 false:270 true:345;true:18 | | a,k | Perle,Friede,Friede | depart,turn left,arrive | true:90;true:90 true:195 false:270 true:345;true:153 | | a,e | Perle,Perle | depart,arrive | true:90,true:90 true:195 false:270 true:345;true:270 | | e,k | Perle,Friede,Friede | depart,turn right,arrive | true:270;false:90 true:195 true:270 true:345;true:153 | | e,g | Perle,Heide,Heide | depart,turn left,arrive | true:270;false:90 true:195 true:270 true:345;true:18 | | h,k | Heide,Friede | depart,arrive | true:16,true:90 true:195 true:270 true:345;true:153 | | h,e | Heide,Perle,Perle | depart,turn right,arrive | true:16;true:90 true:195 true:270 true:345;true:270 | | h,a | Heide,Perle,Perle | depart,turn left,arrive | true:16;true:90 true:195 true:270 true:345;true:90 | #http://www.openstreetmap.org/#map=19/52.53293/13.32956 # adjusted ways to reflect the case geometry for 2/3/2018 Scenario: Curved Exit from Curved Road Given the node map """ g . . f . . . . . e . d ' c \ a - - - - - - b ' h . i ' . . . j """ And the ways | nodes | name | oneway | lanes | highway | | ab | Siemens | no | 5 | secondary | | bcdefg | Erna | no | 3 | secondary | | dhij | Siemens | no | | residential | When I route I should get | waypoints | route | turns | | a,j | Siemens,Siemens,Siemens | depart,turn slight right,arrive | | a,g | Siemens,Erna | depart,arrive | | g,j | Erna,Siemens,Siemens | depart,turn left,arrive | | g,a | Erna,Siemens | depart,arrive | #http://www.openstreetmap.org/#map=19/52.51303/13.32170 Scenario: Ernst Reuter Platz Given the node map """ j g . . . . . . i h .' e - - k - - d '. ' . f c . . . b . . . . a """ And the ways | nodes | name | oneway | lanes | highway | | abcdk | ernst | yes | 4 | primary | | ek | ernst | yes | 5 | primary | | kef | ernst | yes | 4 | primary | | ghd | march | yes | 3 | secondary | | eij | otto | yes | 2 | secondary | When I route I should get | waypoints | route | turns | | a,j | ernst,otto,otto | depart,turn slight right,arrive | | a,f | ernst,ernst | depart,arrive | #http://www.openstreetmap.org/#map=19/52.52409/13.36829 Scenario: Tiny Curve at Turn Given the node map """ h | | | | | | f - - - - - - - - i - - g e | . d | a - - - - - - - - - - b - c ' j """ And the ways | nodes | name | oneway | lanes | highway | | abcdef | ella | no | | residential | | fig | ella | no | | residential | | hf | ilse | no | | residential | | ij | wash | no | | residential | When I route I should get | waypoints | route | turns | | a,g | ella,ella | depart,arrive | | g,a | ella,ella | depart,arrive | | g,h | ella,ilse,ilse | depart,turn right,arrive | | a,h | ella,ilse,ilse | depart,turn left,arrive | | h,g | ilse,ella,ella | depart,turn left,arrive | | h,a | ilse,ella,ella | depart,turn right,arrive | #http://www.openstreetmap.org/#map=18/52.53738/13.36027 Scenario: Merging at Turn - Don't report u-turn Given the node map """ g . . . . h f . . . . j . . c . . . . . . . . . . . . . . . . . . . . b . . . . . . . . . . d . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e a """ And the ways | nodes | name | oneway | lanes | highway | | abc | Heide | yes | 3 | secondary | | cde | Heide | yes | 2 | secondary | | cjf | Perle | yes | 6 | secondary | | cjf | Perle | no | 6 | secondary | | fg | Fenn | no | 6 | secondary | | ch | Friede | no | | tertiary | | ic | Perle | no | 4 | secondary | And the nodes | node | highway | | j | traffic_signals | | b | traffic_signals | When I route I should get | waypoints | route | turns | | a,e | Heide,Heide,Heide | depart,continue uturn,arrive | | a,g | Heide,Fenn,Fenn | depart,turn right,arrive | | a,h | Heide,Friede,Friede | depart,turn left,arrive | | i,e | Perle,Heide,Heide | depart,turn sharp right,arrive | | i,h | Perle,Friede,Friede | depart,turn left,arrive | #http://www.openstreetmap.org/#map=19/52.48630/13.36017 Scenario: Don't Break U-turns Given the node map """ . . . b - - - - - - - - - - a c ' . ' / . ' i d ' / / j | | | | | | e - - - - - - - k | . f . l ' - g - - - - - - - - - - - h """ And the ways | nodes | name | oneway | lanes | highway | | ab | julius | yes | 2 | secondary | | gh | julius | yes | 2 | secondary | | bcd | kolonne | yes | 2 | secondary | | ekg | kolonne | yes | 2 | secondary | | cijkf | feurig | yes | | residential | | fl | feurig | no | | residential | When I route I should get | waypoints | route | turns | | b,g | kolonne,kolonne,kolonne | depart,continue uturn,arrive | #http://www.openstreetmap.org/#map=19/52.51633/13.42077 Scenario: Service Road at the end with slight offset Given the node map """ d - - - - - - - - - - - - - - e | c - - - - - - - - - - - - - - b | | | | | | | | | a """ And the ways | nodes | name | highway | | ab | holz | residential | | bc | | service | | bde | | service | When I route I should get | waypoints | route | turns | | e,c | , | depart,arrive | | e,a | ,holz,holz | depart,turn left,arrive | | c,e | , | depart,arrive | | c,a | ,holz,holz | depart,turn right,arrive | | a,c | holz,, | depart,turn left,arrive | | a,e | holz,, | depart,turn right,arrive | #http://www.openstreetmap.org/#map=19/52.45037/13.51923 Scenario: Special Turn Road Given the node map """ h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g - - - - f | | | | | d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - e . . . . . a - - - b - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c """ And the ways | nodes | name | ref | lanes | highway | oneway | | abc | mich | b9 | 3 | primary | yes | | fgh | mich | b9 | 3 | primary | yes | | bdeg | mich | | | primary_link | yes | When I route I should get | waypoints | route | ref | turns | | a,h | mich,mich,mich | b9,b9,b9 | depart,continue uturn,arrive | #http://www.openstreetmap.org/#map=19/52.49449/13.18116 Scenario: Curved Parking Lot Road Given the node map """ m | | | | f - - - - - - - - - - - - - - e - - - - - - - - - - - - - - d l k \ j i / h g a - - - - - - - - - - - - - - b - - - - - - - - - - - - - - c """ And the ways | nodes | name | oneway | highway | | abc | gato | yes | residential | | def | gato | yes | residential | | bghijkle | | yes | service | | em | hain | no | service | When I route I should get | waypoints | route | turns | | a,f | gato,gato,gato | depart,continue uturn,arrive | | d,m | gato,hain,hain | depart,turn right,arrive | | a,m | gato,hain,hain | depart,turn left,arrive | | d,f | gato,gato | depart,arrive | #http://www.openstreetmap.org/#map=19/52.60831/13.42990 Scenario: Double Curve Turn Given the node map """ _ . d f - - - - - - - - - - - - - - - - - - - -_- e ' . g . . . . h . _ c . . . . i . . . . . a - - - - - - - - - - - - - - b . . . j . . k """ And the ways | nodes | name | oneway | highway | lanes | | ab | rose | yes | secondary | 2 | | ef | rose | yes | secondary | 2 | | de | trift | yes | secondary | 2 | | bc | trift | yes | secondary | 2 | | eghibj | muhle | yes | tertiary | 1 | And the nodes | node | highway | | h | traffic_signals | | j | traffic_signals | When I route I should get | waypoints | route | turns | | a,c | rose,trift,trift | depart,turn slight left,arrive | | a,k | rose,muhle,muhle | depart,turn slight right,arrive | | d,f | trift,rose | depart,arrive | | d,k | trift,muhle,muhle | depart,turn sharp left,arrive | | d,c | trift,trift,trift | depart,continue uturn,arrive | #http://www.openstreetmap.org/#map=19/52.50740/13.44824 Scenario: Turning Loop at the end of the road Given the node map """ l - - k _ . j m ' . i . . . . . h . . n . . . . g o . . . p f . . . . . . e a - - - - b - - - - c - - - - - - - - - - - - - d ' """ And the ways | nodes | name | highway | lanes | oneway | | abc | circled | residential | 1 | no | | cdefghijklmnopc | circled | residential | 1 | yes | When I route I should get | waypoints | bearings | route | turns | | b,a | 90,2 180,180 | circled,circled | depart,arrive | Scenario: Curved Parking Lot Road Given the node map """ m | | | | f - - - - - - - - - - - - - - e - - - - - - - - - - - - - - d l k j i h g a - - - - - - - - - - - - - - b - - - - - - - - - - - - - - c """ And the ways | nodes | name | oneway | highway | | abc | gato | yes | residential | | def | gato | yes | residential | | bghijkle | | yes | service | | em | hain | no | service | When I route I should get | waypoints | route | turns | | a,m | gato,hain,hain | depart,turn left,arrive | Scenario: Segfaulting Regression Given the node map """ a - - - - - - - - - - - - - - b c | | | d--------------e """ And the ways | nodes | lanes:forward | | ab | | | bcde | 6 | When I route I should get | waypoints | route | | a,e | ab,bcde | @3401 Scenario: Curve With Duplicated Coordinates Given the node locations | node | lat | lon | # | | a | 0.9999280745650984 | 1.0 | | | b | 0.9999280745650984 | 1.0000179813587253 | | | c | 0.9999280745650984 | 1.0000359627174509 | | | d | 0.9999460559238238 | 1.0000674300952204 | | | e | 0.9999640372825492 | 1.0000809161142643 | | | f | 0.9999820186412746 | 1.0000854114539457 | | | g | 1.0 | 1.0000854114539457 | | | h | 1.0 | 1.0000854114539457 | #same as g | | z | 0.9999100932063729 | 1.0000179813587253 | | # g # | # f # ' # e # ' # d # ' #a - b - c # | # z And the ways | nodes | oneway | lanes | # | | ab | yes | 1 | | | zb | yes | 1 | | | bcdefgh | yes | 1 | #intentional duplication | # we don't care for turn instructions, this is a coordinate extraction bug check When I route I should get | waypoints | route | intersections | | a,g | ab,bcdefgh,bcdefgh | true:90;true:45 false:180 false:270;true:180 | #https://github.com/Project-OSRM/osrm-backend/pull/3469#issuecomment-270806580 Scenario: Oszillating Lower Priority Road #Given the node map # """ # a -db c # f # """ Given the node locations | node | lat | lon | # | | a | 1.0 | 1.0 | | | b | 1.0000179813587253 | 1.0 | | | c | 1.0000204580571323 | 1.0 | | | d | 1.0000179813587253 | 1.0 | same as b | | f | 1.0000179813587253 | 1.0000179813587253 | | And the ways | nodes | oneway | lanes | highway | | ab | yes | 1 | primary | | bf | yes | 1 | primary | | bcd | yes | 1 | service | # we don't care for turn instructions, this is a coordinate extraction bug check When I route I should get | waypoints | route | | a,d | ab,ab | Scenario: Sharp Turn Onto A Bridge Given the node map """ e | | | | | | | | | | | | | ga - - -b f / d -c """ And the ways | nodes | oneway | lanes | | gaf | yes | 1 | | abcde | yes | 1 | When I route I should get | waypoints | route | | g,e | abcde,abcde | # 4205 # https://www.openstreetmap.org/node/36153635#map=19/51.97548/7.61795 Scenario: merging onto a through street Given the node map """ e ` ` ` ` d c a - - - - - - - b`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` f """ And the ways | nodes | oneway | name | | abc | yes | fww | | fcde | no | jahn | When I route I should get | waypoints | route | turns | | a,f | fww,jahn,jahn | depart,turn right,arrive | | a,e | fww,jahn,jahn | depart,turn left,arrive |