267 lines
15 KiB
Gherkin
267 lines
15 KiB
Gherkin
@routing @guidance
|
|
Feature: Slipways and Dedicated Turn Lanes
|
|
|
|
Background:
|
|
Given the profile "car"
|
|
Given a grid size of 5 meters
|
|
|
|
Scenario: Turn Instead of Ramp
|
|
Given the node map
|
|
| | | | | e | |
|
|
| a | b | | | c | d |
|
|
| | | | h | | |
|
|
| | | | | | |
|
|
| | | | 1 | | |
|
|
| | | | | | |
|
|
| | | | | f | |
|
|
| | | | | | |
|
|
| | | | | g | |
|
|
|
|
And the ways
|
|
| nodes | highway | name |
|
|
| abcd | trunk | first |
|
|
| bhf | trunk_link | |
|
|
| ecfg | primary | second |
|
|
|
|
And the relations
|
|
| type | way:from | way:to | node:via | restriction |
|
|
| restriction | abcd | ecfg | c | no_right_turn |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,g | first,second,second | depart,turn right,arrive |
|
|
| a,1 | first,, | depart,turn slight right,arrive |
|
|
|
|
Scenario: Turn Instead of Ramp
|
|
Given the node map
|
|
| | | | | e | |
|
|
| a | b | | | c | d |
|
|
| | | | h | | |
|
|
| | | | | | |
|
|
| | | | | | |
|
|
| | | | | | |
|
|
| | | | | f | |
|
|
| | | | | | |
|
|
| | | | | | |
|
|
| | | | | g | |
|
|
|
|
And the ways
|
|
| nodes | highway | name |
|
|
| abcd | motorway | first |
|
|
| bhf | motorway_link | |
|
|
| efg | primary | second |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,g | first,,second,second | depart,off ramp slight right,turn straight,arrive |
|
|
|
|
Scenario: Inner city expressway with on road
|
|
Given the node map
|
|
| a | b | | | | c | g |
|
|
| | | | | f | | |
|
|
| | | | | | | |
|
|
| | | | | | | |
|
|
| | | | | | | |
|
|
| | | | | | d | |
|
|
| | | | | | | |
|
|
| | | | | | | |
|
|
| | | | | | | |
|
|
| | | | | | e | |
|
|
|
|
And the ways
|
|
| nodes | highway | name |
|
|
| abc | primary | road |
|
|
| cg | primary | road |
|
|
| bfd | trunk_link | |
|
|
| cde | trunk | trunk |
|
|
|
|
And the relations
|
|
| type | way:from | way:to | node:via | restriction |
|
|
| restriction | abc | cde | c | no_right_turn |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,e | road,trunk,trunk | depart,turn right,arrive |
|
|
|
|
|
|
Scenario: Slipway Round U-Turn
|
|
Given the node map
|
|
| a | | f |
|
|
| | | |
|
|
| b | | e |
|
|
| | | |
|
|
| | | |
|
|
| | g | |
|
|
| | | |
|
|
| c | | d |
|
|
|
|
And the ways
|
|
| nodes | highway | name | oneway |
|
|
| abc | primary | road | yes |
|
|
| bge | primary_link | | yes |
|
|
| def | primary | road | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,f | road,road,road | depart,continue uturn,arrive |
|
|
|
|
Scenario: Slipway Steep U-Turn
|
|
Given the node map
|
|
| a | | f |
|
|
| | | |
|
|
| b | | e |
|
|
| | g | |
|
|
| | | |
|
|
| | | |
|
|
| c | | d |
|
|
|
|
And the ways
|
|
| nodes | highway | name | oneway |
|
|
| abc | primary | road | yes |
|
|
| bge | primary_link | | yes |
|
|
| def | primary | road | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,f | road,road,road | depart,continue uturn,arrive |
|
|
|
|
Scenario: Schwarzwaldstrasse Autobahn
|
|
Given the node map
|
|
| | | | | i | | | | | | h | | | | | g |
|
|
| | | j | | | | | | | | | | | | | |
|
|
| a | | | | | | | k | | | | | | | | |
|
|
| | | | b | | r | c | | d | | e | | | | | f |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | l | | | | | | | | | | |
|
|
| | | | | | m | | | | | | | | | | |
|
|
| | | | | | | n | | q | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | |
|
|
| | | | | | | o | | p | | | | | | | |
|
|
|
|
And the nodes
|
|
# the traffic light at `l` is not actually in the data, but necessary for the test to check everything
|
|
# http://www.openstreetmap.org/#map=19/48.99211/8.40336
|
|
| node | highway |
|
|
| r | traffic_signals |
|
|
| l | traffic_signals |
|
|
|
|
And the ways
|
|
| nodes | highway | name | ref | oneway |
|
|
| abrcd | secondary | Schwarzwaldstrasse | L561 | yes |
|
|
| hija | secondary | Schwarzwaldstrasse | L561 | yes |
|
|
| def | secondary | Ettlinger Strasse | | yes |
|
|
| gh | secondary | Ettlinger Strasse | | yes |
|
|
| blmn | secondary_link | | L561 | yes |
|
|
| hkc | secondary_link | Ettlinger Strasse | | yes |
|
|
| qdki | secondary_link | Ettlinger Allee | | yes |
|
|
| cn | secondary_link | Ettlinger Allee | | yes |
|
|
| no | primary | Ettlinger Allee | | yes |
|
|
| pq | primary | Ettlinger Allee | | yes |
|
|
| qe | secondary_link | Ettlinger Allee | | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,o | Schwarzwaldstrasse (L561),Ettlinger Allee,Ettlinger Allee | depart,turn right,arrive |
|
|
|
|
Scenario: Traffic Lights everywhere
|
|
#http://map.project-osrm.org/?z=18¢er=48.995336%2C8.383813&loc=48.995467%2C8.384548&loc=48.995115%2C8.382761&hl=en&alt=0
|
|
Given the node map
|
|
| a | | | k | l | | | j | |
|
|
| | | | | | d | b | c | i |
|
|
| | | | | | | | | |
|
|
| | | | | | | e | g | |
|
|
| | | | | | | | | |
|
|
| | | | | | | 1 | | |
|
|
| | | | | | | | h | |
|
|
| | | | | | | | | |
|
|
| | | | | | | | f | |
|
|
|
|
And the nodes
|
|
| node | highway |
|
|
| b | traffic_signals |
|
|
| e | traffic_signals |
|
|
| g | traffic_signals |
|
|
|
|
And the ways
|
|
| nodes | highway | name | oneway |
|
|
| aklbci | secondary | Ebertstrasse | yes |
|
|
| kdeh | secondary_link | | yes |
|
|
| jcghf | primary | Brauerstrasse | yes |
|
|
|
|
When I route I should get
|
|
| waypoints | route | turns |
|
|
| a,i | Ebertstrasse,Ebertstrasse | depart,arrive |
|
|
| a,l | Ebertstrasse,Ebertstrasse | depart,arrive |
|
|
| a,f | Ebertstrasse,Brauerstrasse,Brauerstrasse | depart,turn right,arrive |
|
|
| a,1 | Ebertstrasse,, | depart,turn slight right,arrive |
|
|
|
|
#2839
|
|
Scenario: Self-Loop
|
|
Given the node map
|
|
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
|
| | | | | | | | | | | | | | | | | | | | | | l | | | k | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | j | | | |
|
|
| | | | | | | | | | | | | | | | | | | | m | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | h |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | n | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g |
|
|
| | | | | | | | | | | | | | | | | | | o | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f | |
|
|
| | | | | | | | | | | | | | | | | | p | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | e | | | |
|
|
| a | | | | | b | | | | | | | | | c | | | | | | | | | | d | | | | | | |
|
|
|
|
And the ways
|
|
| nodes | name | oneway | highway | lanes |
|
|
| abc | circled | no | residential | 1 |
|
|
| cdefghijklmnopc | circled | yes | residential | 1 |
|
|
|
|
When I route I should get
|
|
| waypoints | bearings | route | turns |
|
|
| b,a | 90,10 270,10 | circled,circled | depart,arrive |
|
|
|
|
@todo
|
|
#due to the current turn function, the left turn bcp is exactly the same cost as pcb, a right turn. The right turn should be way faster,though
|
|
#for that reason we cannot distinguish between driving clockwise through the circle or counter-clockwise. Until this is improved, this case here
|
|
#has to remain as todo (see #https://github.com/Project-OSRM/osrm-backend/pull/2849)
|
|
Scenario: Self-Loop - Bidirectional
|
|
Given the node map
|
|
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
|
| | | | | | | | | | | | | | | | | | | | | | l | | | k | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | j | | | |
|
|
| | | | | | | | | | | | | | | | | | | | m | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | h |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | n | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g |
|
|
| | | | | | | | | | | | | | | | | | | o | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f | |
|
|
| | | | | | | | | | | | | | | | | | p | | | | | | | | | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | e | | | |
|
|
| a | | | | | b | | | | | | | | | c | | | | | | | | | | d | | | | | | |
|
|
|
|
And the ways
|
|
| nodes | name | oneway | highway | lanes |
|
|
| abc | circled | no | residential | 1 |
|
|
| cdefghijklmnopc | circled | no | residential | 1 |
|
|
|
|
When I route I should get
|
|
| waypoints | bearings | route | turns |
|
|
| b,a | 90,10 270,10 | circled,circled | depart,arrive |
|