@routing @guidance @obvious Feature: Simple Turns Background: Given the profile "car" Given a grid size of 10 meters # https://www.openstreetmap.org/#map=19/52.51802/13.31337 Scenario: Crossing a square Given the node map """ d | e - - - - - - - c - g | | | | | | | | f - - - - - - - b | a """ And the ways | nodes | highway | name | oneway | | ab | residential | losch | no | | cd | residential | ron | no | | cefb | residential | alt | yes | | bc | residential | alt | no | | gc | residential | guer | no | When I route I should get | from | to | route | turns | | a | d | losch,ron | depart,arrive | # https://www.openstreetmap.org/#map=18/52.51355/13.21988 Scenario: Turning tertiary next to residential Given the node map """ a - - - b - - - - c | d ` _ `-_ e """ And the ways | nodes | highway | name | | abde | tertiary | havel | | bc | residential | anger | When I route I should get | from | to | route | turns | | a | c | havel,anger | depart,arrive | | a | e | havel,havel,havel | depart,continue right,arrive | #https://www.openstreetmap.org/#map=19/52.50996/13.23183 Scenario: Tertiary turning at unclassified Given the node map """ a - - - b - - - c | | d """ And the ways | nodes | highway | | ab | tertiary | | bd | tertiary | | bc | unclassified | When I route I should get | from | to | route | turns | | a | c | ab,bc | depart,arrive | | a | d | ab,bd,bd | depart,turn right,arrive | #https://www.openstreetmap.org/#map=19/52.50602/13.25468 # this scenario detects obvious correctly, but requires changes in collapsing roads Scenario: Small offset due to large Intersection Given the node map """ a - - - - - b - - - - - - c | d ` ` ` ` f e """ And the ways | nodes | highway | | abc | residential | | bde | residential | | df | residential | When I route I should get | from | to | route | turns | | a | e | abc,bde,bde,bde | depart,turn right,continue left,arrive | | a | f | abc,bde,df,df | depart,turn right,turn right,arrive | # https://www.openstreetmap.org/#map=19/52.49709/13.26620 # https://www.openstreetmap.org/#map=19/52.49458/13.26273 # scenario requires handling in post-processing @todo Scenario: Offsets in road Given a grid size of 3 meters Given the node map """ i | | | a - - - - - - - b e - - - - - - - - - f `c - - - - - - - d` | | | | | | g h """ And the ways | nodes | highway | name | | abcdef | residential | Zikade | | gc | residential | Lärche | | hd | residential | Kiefer | | ei | residential | Kiefer | When I route I should get | from | to | route | turns | locations | | a | f | Zikade,Zikade | depart,arrive | a,f | | f | a | Zikade,Zikade | depart,arrive | f,a | | a | g | Zikade,Lärche,Lärche | depart,turn right,arrive | a,c,g | | h | i | Kiefer,Kiefer | depart,arrive | h,i | | i | h | Kiefer,Kiefer | depart,arrive | i,h | | h | f | Kiefer,Zikade,Zikade | depart,turn right,arrive | h,d,f | # https://www.openstreetmap.org/#map=20/52.49408/13.27375 Scenario: Straight on unnamed service Given the node map """ a - - - - b - - - - c ` . d """ And the ways | nodes | highway | name | | abc | service | | | bd | service | | When I route I should get | from | to | route | turns | locations | | a | c | , | depart,arrive | a,c | | a | d | ,, | depart,turn slight right,arrive | a,b,d | # https://www.openstreetmap.org/#map=19/52.49198/13.28069 Scenario: Curved roads at turn Given the node map """ ............g .f e``` / a - - - - b c ` ` ` d """ And the ways | nodes | highway | name | oneway | | abcd | residential | herbert | yes | | befg | residential | casper | yes | When I route I should get | from | to | route | turns | | a | d | herbert,herbert,herbert | depart,continue right,arrive | | a | g | herbert,casper,casper | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/52.49189/13.28431 Scenario: Turning residential Given the node map """ d ` a - - - b \ \ c """ And the ways | nodes | highway | name | oneway | | abc | residential | bismark | yes | | bd | residential | caspar | yes | When I route I should get | from | to | route | turns | | a | c | bismark,bismark,bismark | depart,continue right,arrive | | a | d | bismark,caspar,caspar | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/52.48681/13.28547 Scenario: Slight Loss in Category with turning road Given the node map """ g / f e ..c - - - - d a - - - - b````` """ And the ways | nodes | highway | name | | ab | tertiary | warm | | bcd | residential | warm | | befg | tertiary | paul | When I route I should get | from | to | route | turns | | a | d | warm,warm | depart,arrive | | a | g | warm,paul,paul | depart,turn slight left,arrive | # https://www.openstreetmap.org/#map=19/52.48820/13.29947 Scenario: Driveway within curved road Given the node map """ f--e \ ` g d \ | \| c w ./ .b a-` """ And the ways | nodes | highway | name | oneway | | abc | residential | charlot | no | | cdef | residential | fried | yes | | gc | service | | | When I route I should get | from | to | route | turns | | a | f | charlot,fried | depart,arrive | | a | g | charlot,, | depart,turn left,arrive | # https://www.openstreetmap.org/#map=20/52.46815/13.33984 Scenario: Curve onto end of the road Given the node map """ d - - - - e - f-_ ``g h a - - - - - - b - - _ _ _ ` ` ` c """ And the ways | nodes | highway | name | | ab | residential | menz | | defghbc | residential | rem | When I route I should get | from | to | route | turns | | a | c | menz,rem | depart,arrive | | d | c | rem,rem,rem | depart,continue left,arrive | | c | d | rem,rem,rem | depart,continue right,arrive | | c | a | rem,menz | depart,arrive | # https://www.openstreetmap.org/#map=19/37.58151/-122.34863 Scenario: Straight towards oneway street, Service Category, Unnamed Given the node map """ a - - b - - c | d """ And the ways | nodes | highway | name | oneway | | ab | service | | | | cb | service | | yes | | bd | service | | | When I route I should get | from | to | route | turns | | a | d | ,, | depart,turn right,arrive | # https://www.openstreetmap.org/#map=19/37.61256/-122.40371 Scenario: Turning Road with Offset at Segregated Intersection Given the node map """ i h | | | . f - - g a _ | ` | b - c - - d - - e | | | | j k """ And the ways | nodes | highway | name | oneway | | abcd | residential | park | no | | cfg | residential | diego | no | | de | service | | yes | | kdfh | primary | camino | yes | | icj | primary | camino | yes | When I route I should get | from | to | route | turns | | a | g | park,diego,diego | depart,turn slight left,arrive | | a | h | park,diego,camino,camino | depart,turn slight left,turn left,arrive | | a | j | park,camino,camino | depart,turn right,arrive | # https://www.openstreetmap.org/#map=19/37.76407/-122.49642 Scenario: Road splitting of straight turn Given the node map """ d - - - - e - - - - -.f - - - - g .```````` a - - - - b - - - - - c """ And the ways | nodes | highway | name | oneway | | ab | secondary | 37 | yes | | bc | residential | 37 | yes | | bf | secondary_link | Sunset | yes | | defg | secondary | Sunset | yes | When I route I should get | from | to | route | turns | | a | c | 37,37 | depart,arrive | | a | g | 37,Sunset,Sunset | depart,turn slight left,arrive | # https://www.openstreetmap.org/#map=19/37.77072/-122.41727 # requires changes in post-processing @todo Scenario: Splitting road at traffic island before a turn Given the node map """ _ _ e .c - - - - - - - - - d - ` a - - b ` `f g` ` h ` | ` i ` .`.` j. . . . k """ And the ways | nodes | highway | name | oneway | | ab | primary | howard | no | | dcb | primary | howard | yes | | bfghij | primary | howard | yes | | edjk | primary | ness | yes | When I route I should get | from | to | route | turns | # | | a | k | howard,ness,ness | depart,turn left,arrive | | | e | k | ness,ness | depart,continue slight left,arrive | #if modelled better, a depart/arrive would be more desirable | | e | a | ness,howard,howard | depart,turn slight right,arrive | | # https://www.openstreetmap.org/#map=19/37.63171/-122.46205 # requires changes in post-processing @todo Scenario: Weird combination of turning roads Given the node map """ a | b |` | e | `f | ` g _ | j-- - - - h - - i k | l - - - - m - - n | q | p | o | | c | d """ And the ways | nodes | highway | name | oneway | | abk | tertiary_link | loop | no | | kcd | residential | loop | no | | copqm | tertiary_link | | yes | | klmn | tertiary_link | drive | yes | | ih | tertiary_link | drive | yes | | hjk | residential | drive | yes | | hgfeb | tertiary_link | | yes | When I route I should get | from | to | turns | route | | i | a | depart,turn right,arrive | drive,loop,loop | | i | d | depart,turn left,arrive | drive,loop,loop | | a | n | depart,turn left,arrive | loop,drive,drive | | d | n | depart,turn right,arrive | loop,drive,drive | # https://www.openstreetmap.org/#map=19/37.26591/-121.84474 Scenario: Road splitting (unmerged) Given the node map """ . g - - - h d - - - - c - - e - - f ` . ` ` a - - - - b ` ` ` ` ` ` i """ And the ways | nodes | highway | name | oneway | | ei | service | | | | abe | primary | lane | yes | | ecd | primary | lane | yes | | hgfe | primary | lane | no | When I route I should get | from | to | route | turns | | a | h | lane,lane | depart,arrive | | a | i | lane,, | depart,turn sharp right,arrive | | h | d | lane,lane | depart,arrive | | h | i | lane,, | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/37.85108/-122.27078 Scenario: Turning Road category Given the node map """ e d | | | | f c i | | ` | j` | ` | |k | l | |.` g b | | | | | | h a """ And the ways | nodes | highway | name | oneway | | abl | primary | adeline | yes | | bjcd | tertiary | martin | yes | | efg | tertiary | martin | yes | | ijkgh | primary | adeline | yes | When I route I should get | from | to | route | turns | | e | h | martin,adeline,adeline | depart,turn straight,arrive | | a | d | adeline,martin,martin | depart,turn slight left,arrive | | a | l | adeline,adeline,adeline | depart,continue slight right,arrive | | i | h | adeline,adeline | depart,arrive | # https://www.openstreetmap.org/#map=19/37.76471/-122.49639 Scenario: Turning road Given the node map """ f - - - - - - - e - - - - d g h a - - - b - - - - - - - - c | | i """ And the ways | nodes | highway | name | oneway | | abd | primary | lincoln | yes | | def | primary | lincoln | yes | | eghbi | secondary | 37 | yes | When I route I should get | from | to | route | turns | | d | i | lincoln,37,37 | depart,turn slight left,arrive | | d | f | lincoln,lincoln | depart,arrive | # https://www.openstreetmap.org/#map=19/37.63541/-122.48343 # https://www.openstreetmap.org/#map=19/52.47752/13.28864 Scenario: Road Splitting up Given the node map """ d ` ` ` a - - - - - - - - - b ` ` ` c """ And the ways | nodes | highway | name | | abc | residential | vista | | bd | residential | sierra | When I route I should get | from | to | route | turns | | a | c | vista,vista | depart,arrive | | a | d | vista,sierra,sierra | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/52.45191/13.44113 # check service road handling in `is_similar_turn` @todo Scenario: Road Splitting up at a Driveway Given the node map """ d ` ` ` a - - - - - - - - - b - - - - - e ` ` ` `c """ And the ways | nodes | highway | name | | abc | residential | britz | | bd | residential | palz | | be | service | | When I route I should get | from | to | route | turns | | a | c | britz,britz | depart,arrive | | a | e | britz,, | depart,turn straight,arrive | # https://www.openstreetmap.org/#map=20/37.62997/-122.49246 # test is mutually exclusive with features/guidance/fork.feature:27 "Scenario: Don't Fork On Single Road" @todo Scenario: Curving road with name-handoff Given the node map """ a | | b ` c ` d l - k h ` e ` j - i ` ` f - - - - - g """ And the ways | nodes | highway | name | oneway | | abcd | tertiary | palm | no | | defg | tertiary | clare | no | | lkjihd | residential | clare | yes | When I route I should get | from | to | route | turns | | a | g | palm,clare,clare | depart,new name slight left,arrive | | g | a | clare,palm,palm | depart,turn right,arrive | | l | g | clare,clare | depart,arrive | | l | a | clare,palm,palm | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/37.84291/-122.23681 Scenario: Two roads turning into the same direction Given the node map """ e | |.c a - - - b` | | d """ And the ways | nodes | highway | name | oneway | | abc | residential | romany | no | | db | residential | ost | yes | | be | residential | martin | yes | When I route I should get | from | to | route | turns | | a | c | romany,romany | depart,arrive | # https://www.openstreetmap.org/#map=19/37.82815/-122.28733 # the similarity check considers `bc` as non-similar to `bd` due to a name change "mandela"->"horton" # this behavior is captured by features/guidance/turn.feature:126 "Scenario: Three Way Intersection" # and is mutually exclusive with the test expectation @todo Scenario: Turning Secondary Next to Residential Given the node map """ c | | | | -----` | a b - - - d ---------- """ And the ways | nodes | highway | name | | ab | secondary | mandela | | bc | secondary | horton | | bd | residential | yerda | When I route I should get | from | to | route | turns | | a | d | mandela,yerda,yerda | depart,turn straight,arrive | | a | c | mandela,horton,horton | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/52.46341/13.40272 Scenario: Loss of road class on turn (segregated) Given the node map """ f - - - e - - - d | 1 | a - - - b - - - c | | g """ And the ways | nodes | highway | name | oneway | | ab | tertiary | germ | yes | | ef | tertiary | germ | yes | | de | tertiary | ober | yes | | bc | tertiary | ober | yes | | be | tertiary | germ | no | | bg | residential | germ | no | When I route I should get | from | to | route | turns | | 1 | g | germ,germ | depart,arrive | | d | g | ober,germ,germ | depart,turn left,arrive | | a | g | germ,germ,germ | depart,continue right,arrive | # https://www.openstreetmap.org/#map=19/37.29821/-121.86874 Scenario: Sliproads of Higher Category when entering Intersection Given the node map """ e | g| | | h | i | a - - b - - - c - - d j | k | | l| | f """ And the ways | nodes | highway | name | oneway | | abcd | tertiary | stone | no | | ecf | primary | curt | yes | | eghib | primary_link | | yes | | bjklf | primary_link | | yes | When I route I should get | from | to | route | turns | | a | d | stone,stone | depart,arrive | # https://www.openstreetmap.org/#map=19/37.63866/-122.46677 Scenario: Slightly offset traffic circle Given the node map """ i----h ` g ` ` a - - - - - b | c f ` d - e ` """ And the ways | nodes | highway | name | | abcdefghib | residential | road | When I route I should get | from | to | route | turns | | a | e | road,road,road | depart,continue right,arrive | | i | a | road,road,road | depart,continue right,arrive | | d | a | road,road,road | depart,continue left,arrive | # https://www.openstreetmap.org/#map=19/37.63829/-122.46345 # scenario geometry must be updated to catch the OSM map @todo Scenario: Entering a motorway (curved) Given the node map """ a - - - - - - b - - - c - - - - - d e g f | i - h - j """ And the ways | nodes | highway | name | oneway | | abcd | trunk | sky | yes | | befgc | trunk_link | | yes | | fh | trunk_link | | no | | ihj | residential | susan | no | When I route I should get | from | to | route | turns | | i | d | susan,,sky | depart,turn left,arrive | | j | d | susan,,sky | depart,turn right,arrive | # https://www.openstreetmap.org/#map=18/48.99155/8.43520 Scenario: Passing a motorway link on a trunk road Given the node map """ a - - - - - - - - - - b----- ` ````````````c ` d """ And the ways | nodes | highway | name | ref | oneway | | abc | trunk | sued | K 9652 | yes | | bd | motorway_link | | A 5 | yes | When I route I should get | from | to | route | turns | | a | c | sued,sued | depart,arrive | | a | d | sued,, | depart,off ramp slight right,arrive | # https://www.openstreetmap.org/#map=19/48.98900/8.43800 Scenario: Splitting motorway links without names but with destinations Given the node map """ .... h . .g.` ..... e..`............... f ... d---``` c` / / b / a """ And the ways | nodes | highway | name | destination | oneway | | abcde | motorway_link | | | yes | | ef | motorway_link | | right | yes | | egh | motorway_link | | left | yes | When I route I should get | from | to | route | turns | | a | f | ,, | depart,fork slight right,arrive | | a | h | ,, | depart,fork slight left,arrive | # https://www.openstreetmap.org/#map=19/49.01098/8.36052 Scenario: Splitting Road at intersection (modelled turn) Given the node map """ h | j - - - - - g - - - - - - - - - - - - i f e d a - - - b - - - - - - - - - - - - - - c """ And the ways | nodes | highway | name | oneway | | ab | primary | ente | yes | | bc | primary | rhein | yes | | bdefg | primary_link | rhein | yes | | ig | primary | rhein | yes | | gj | primary | ente | yes | | gh | residential | rhein | no | When I route I should get | from | to | route | turns | | a | c | ente,rhein,rhein | depart,new name straight,arrive | | a | h | ente,rhein,rhein | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/48.99776/8.47766 Scenario: Narrow cross Given the node map """ a e \ / \ / \ / b / \ / \ / \ d c """ And the ways | nodes | highway | name | | ab | secondary | baden | | be | primary | gym | | bc | tertiary | ritter | | db | primary | baden | When I route I should get | from | to | route | turns | | a | d | baden,baden,baden | depart,continue right,arrive | | a | c | baden,ritter | depart,arrive | | a | e | baden,gym,gym | depart,turn sharp left,arrive | # https://www.openstreetmap.org/#map=19/48.99870/8.48122 Scenario: Residential Segregated Given the node map """ f e | | | | | | | | | | | | | | a - - b - - c - - d """ And the ways | nodes | highway | name | oneway | | ab | residential | possel | no | | fb | residential | berg | yes | | bc | residential | berg | no | | ce | residential | berg | yes | | cd | residential | kastell | no | When I route I should get | from | to | route | turns | | a | d | possel,kastell | depart,arrive | | a | e | possel,berg,berg | depart,turn left,arrive | # https://www.openstreetmap.org/#map=19/48.99810/8.46749 # the test case depends on geometry: for `da` route both `no_name_change_to_candidate` # and `compare_road_deviation_is_distinct` are true so `bc` is considered non-similar @todo Scenario: Slight End of Road Given the node map """ d / / a - - - - - - b - - - - - - - c """ And the ways | nodes | highway | name | | abd | residential | kanzler | | bc | residential | gartner | When I route I should get | from | to | route | turns | | a | c | kanzler,gartner | depart,arrive | | a | d | kanzler,kanzler,kanzler | depart,continue left,arrive | | d | a | kanzler,kanzler,kanzler | depart,continue right,arrive | # https://www.openstreetmap.org/#map=18/52.46942/13.33159 Scenario: Curved crossing Given the node map """ f .` h . `. e ` `. . ` `. . ` `. . ` d c - ` `. a - - - - - - - - - b - - ` ` ` `. g """ And the ways | nodes | highway | name | oneway | | abcd | residential | hand | no | | def | residential | hand | yes | | hdg | secondary | schmi | no | When I route I should get | from | to | route | turns | | a | f | hand,hand | depart,arrive | | h | g | schmi,schmi | depart,arrive | # https://www.openstreetmap.org/#map=19/52.56562/13.39109 # the obviousness check depends on geometry at node `c` @todo Scenario: Dented Straight Given the node map """ a - - - b. . d - - - - e ` ` `c` | | f """ And the ways | nodes | highway | name | | abcde | residential | nord | | cf | residential | stern | When I route I should get | from | to | route | turns | | a | e | nord,nord | depart,arrive | | e | a | nord,nord | depart,arrive | # https://www.openstreetmap.org/#map=17/52.57124/13.39892 Scenario: Primary road curved turn Given the node map """ m - - l.... `k. a - - b - . ``- - - - p `c . \ `. `j - - - o d \ \ i e \ | h | | f g """ And the ways | nodes | highway | name | oneway | lanes | | abc | primary | schoen | yes | 2 | | cdef | primary | grab | yes | 1 | | klm | primary | schoen | yes | 2 | | ghijk | primary | grab | yes | 1 | | cj | secondary_link | mann | yes | 1 | | jo | secondary | mann | yes | 1 | | pk | secondary | mann | yes | 1 | When I route I should get | from | to | route | turns | | a | f | schoen,grab,grab | depart,turn slight right,arrive | | g | m | grab,schoen | depart,arrive | | a | o | schoen,mann,mann | depart,turn straight,arrive | # https://www.openstreetmap.org/#map=18/52.55374/13.41462 # scenario for internal intersection collapsing @todo Scenario: Turn Links as Straights Given the node map """ l k | | j - - -i - - hg- - - f | / |/ /| / | a - --bc - - d - - - e | | m n """ And the ways | nodes | highway | oneway | name | | abc | primary | yes | born | | ij | primary | yes | born | | cde | primary | yes | wisb | | fghi | primary | yes | wisb | | li | primary | yes | berl | | hk | primary | yes | berl | | icm | primary | yes | scho | | ndh | primary | yes | scho | | bh | primary_link | yes | | | gc | primary_link | yes | | When I route I should get | from | to | route | turns | locations | # | | a | k | born,,berl | depart,turn left,arrive | a,b,k | On improved collapse, this should offer berl on turn | | f | m | wisb,,scho | depart,turn left,arrive | f,g,m | On improved collapse, this should offer scho on turn | # https://www.openstreetmap.org/#map=19/52.56934/13.40131 Scenario: Crossing Segregated before a turn Given the node map """ _-d f - - - e -- ` ` | _-c a - - -.b -- ` ` . ` g` """ And the ways | nodes | highway | oneway | name | | ab | primary | yes | scho | | bc | primary | yes | brei | | de | primary | yes | brei | | ef | primary | yes | scho | | gb | secondary | no | woll | | be | secondary_link | no | woll | When I route I should get | from | to | route | turns | | g | c | woll,brei,brei | depart,turn slight right,arrive | | g | f | woll,scho,scho | depart,turn sharp left,arrive | | a | c | scho,brei | depart,arrive | | d | f | brei,scho | depart,arrive | # https://www.openstreetmap.org/#map=19/52.58072/13.42985 Scenario: Trunk Turning into Motorway Given the node map """ a - - - - - b - - - ` . ` ` ` ` ` ` ` ` c ` - - - - d """ And the ways | nodes | highway | name | oneway | | ab | trunk | prenz | yes | | bc | motorway | | yes | | bd | trunk_link | | yes | When I route I should get | from | to | route | turns | | a | c | prenz, | depart,arrive | | a | d | prenz,, | depart,off ramp slight right,arrive | # https://www.openstreetmap.org/#map=19/52.57800/13.42900 Scenario: Splitting Secondary Given the node map """ . . c .. `` a - - - - - - - b ` ` ` ` \ \ d - - - - - - - - - e """ And the ways | nodes | highway | name | lanes | oneway | | ab | secondary | dame | 2 | no | | bc | secondary | pase | 2 | no | | bde | secondary | feuc | 1 | yes | When I route I should get | from | to | route | turns | | a | c | dame,pase,pase | depart,new name straight,arrive | | a | e | dame,feuc,feuc | depart,turn slight right,arrive | # https://www.openstreetmap.org/#map=19/52.48468/13.34532 Scenario: Forking into Tertiary Given the node map """ d . . ` a - - - - - b - - - - - c """ And the ways | nodes | highway | name | oneway | lanes | | ab | primary | kenny | yes | 4 | | bc | tertiary | kenny | yes | 2 | | bd | primary | domi | yes | 2 | When I route I should get | from | to | route | turns | | a | c | kenny,kenny,kenny | depart,continue straight,arrive | | a | d | kenny,domi,domi | depart,turn slight left,arrive | # https://www.openstreetmap.org/#map=18/52.56960/13.43815 Scenario: Turn onto classified Given the node map """ e f | | | | a - - - - - b - - c - - . . ` ` ` d """ And the ways | nodes | highway | name | oneway | | abc | secondary | roma | no | | cd | unclassified | roma | no | | eb | secondary | roth | yes | | cf | secondary | roth | yes | When I route I should get | from | to | route | turns | | a | d | roma,roma | depart,arrive | | a | f | roma,roth,roth | depart,turn left,arrive | # https://www.openstreetmap.org/#map=18/52.50908/13.27312 Scenario: Merging onto a different street Given the node map """ d `.`.`.`.`.`.b - - - - c a` """ And the ways | nodes | highway | name | oneway | | ab | secondary | masu | yes | | dbc | primary | theo | yes | When I route I should get | from | to | route | turns | # | | a | c | masu,theo,theo | depart,turn straight,arrive | theo is a through street | | d | c | theo,theo | depart,arrive | | # https://www.openstreetmap.org/#map=18/52.51299/13.28936 Scenario: Lanes override road classes Given the node map """ e | | a - - - b - - - c | | d """ And the ways | nodes | highway | name | lanes | | ab | primary | knob | 2 | | bc | unclassified | knob | | | db | primary | soph | 3 | | be | living_street | soph | 3 | When I route I should get | from | to | route | turns | | a | c | knob,knob | depart,arrive | | d | e | soph,soph | depart,arrive | | d | a | soph,knob,knob | depart,turn left,arrive | # https://www.openstreetmap.org/node/30797565 Scenario: No turn instruction when turning from unnamed onto unnamed Given the node map """ a | | | | b----------------c | | | | | | d """ And the ways | nodes | highway | name | ref | | ab | trunk_link | | | | db | secondary | | L 460 | | bc | secondary | | | When I route I should get | from | to | route | turns | | d | c | ,, | depart,turn right,arrive |