osrm-backend/features/testbot/mode.feature
2016-10-11 09:07:48 +02:00

287 lines
11 KiB
Gherkin

@routing @testbot @mode
Feature: Testbot - Travel mode
# testbot modes:
# 1 driving
# 2 route
# 3 river downstream
# 4 river upstream
# 5 steps down
# 6 steps up
Background:
Given the profile "testbot"
Given a grid size of 200 meters
Scenario: Testbot - Always announce mode change
Given the node map
"""
a b c d
"""
And the ways
| nodes | highway | name |
| ab | residential | foo |
| bc | river | foo |
| cd | residential | foo |
When I route I should get
| from | to | route | modes |
| a | d | foo,foo,foo,foo | driving,river downstream,driving,driving |
| b | d | foo,foo,foo | river downstream,driving,driving |
Scenario: Testbot - Compressed Modes
Given the node map
"""
a b c d e f g
"""
And the ways
| nodes | highway | name |
| abc | residential | road |
| cde | river | liquid |
| efg | residential | solid |
When I route I should get
| from | to | route | modes |
| a | g | road,liquid,solid,solid | driving,river downstream,driving,driving |
| c | g | liquid,solid,solid | river downstream,driving,driving |
Scenario: Testbot - Modes in each direction, different forward/backward speeds
Given the node map
"""
0 1
a b
"""
And the ways
| nodes | highway | oneway |
| ab | river | |
When I route I should get
| from | to | route | modes |
| a | 0 | ab,ab | river downstream,river downstream |
| a | b | ab,ab | river downstream,river downstream |
| 0 | 1 | ab,ab | river downstream,river downstream |
| 0 | b | ab,ab | river downstream,river downstream |
| b | 1 | ab,ab | river upstream,river upstream |
| b | a | ab,ab | river upstream,river upstream |
| 1 | 0 | ab,ab | river upstream,river upstream |
| 1 | a | ab,ab | river upstream,river upstream |
Scenario: Testbot - Modes in each direction, same forward/backward speeds
Given the node map
"""
0 1
a b
"""
And the ways
| nodes | highway |
| ab | steps |
When I route I should get
| from | to | route | modes | time |
| 0 | 1 | ab,ab | steps down,steps down | 120s +-1 |
| 1 | 0 | ab,ab | steps up,steps up | 120s +-1 |
@oneway
Scenario: Testbot - Modes for oneway, different forward/backward speeds
Given the node map
"""
a b
"""
And the ways
| nodes | highway | oneway |
| ab | river | yes |
When I route I should get
| from | to | route | modes |
| a | b | ab,ab | river downstream,river downstream |
| b | a | | |
@oneway
Scenario: Testbot - Modes for oneway, same forward/backward speeds
Given the node map
"""
a b
"""
And the ways
| nodes | highway | oneway |
| ab | steps | yes |
When I route I should get
| from | to | route | modes |
| a | b | ab,ab | steps down,steps down |
| b | a | | |
@oneway
Scenario: Testbot - Modes for reverse oneway, different forward/backward speeds
Given the node map
"""
a b
"""
And the ways
| nodes | highway | oneway |
| ab | river | -1 |
When I route I should get
| from | to | route | modes |
| a | b | | |
| b | a | ab,ab | river upstream,river upstream |
@oneway
Scenario: Testbot - Modes for reverse oneway, same forward/backward speeds
Given the node map
"""
a b
"""
And the ways
| nodes | highway | oneway |
| ab | steps | -1 |
When I route I should get
| from | to | route | modes |
| a | b | | |
| b | a | ab,ab | steps up,steps up |
@via
Scenario: Testbot - Mode should be set at via points
Given the node map
"""
a 1 b
"""
And the ways
| nodes | highway |
| ab | river |
When I route I should get
| waypoints | route | modes |
| a,1,b | ab,ab,ab,ab | river downstream,river downstream,river downstream,river downstream |
| b,1,a | ab,ab,ab,ab | river upstream,river upstream,river upstream,river upstream |
Scenario: Testbot - Starting at a tricky node
Given the node map
"""
a
b c
"""
And the ways
| nodes | highway |
| ab | river |
| bc | primary |
When I route I should get
| from | to | route | modes |
| b | a | ab,ab | river upstream,river upstream |
Scenario: Testbot - Mode changes on straight way without name change
Given the node map
"""
a 1 b 2 c
"""
And the ways
| nodes | highway | name |
| ab | primary | Avenue |
| bc | river | Avenue |
When I route I should get
| from | to | route | modes |
| a | c | Avenue,Avenue,Avenue | driving,river downstream,river downstream |
| c | a | Avenue,Avenue,Avenue | river upstream,driving,driving |
| 1 | 2 | Avenue,Avenue,Avenue | driving,river downstream,river downstream |
| 2 | 1 | Avenue,Avenue,Avenue | river upstream,driving,driving |
Scenario: Testbot - Mode for routes
Given the node map
"""
a b
c d e f
"""
And the ways
| nodes | highway | route | duration |
| ab | primary | | |
| bc | | ferry | 0:01 |
| cd | primary | | |
| de | primary | | |
| ef | primary | | |
When I route I should get
| from | to | route | modes |
| a | d | ab,bc,cd,cd | driving,route,driving,driving |
| d | a | cd,bc,ab,ab | driving,route,driving,driving |
| c | a | bc,ab,ab | route,driving,driving |
| d | b | cd,bc,bc | driving,route,route |
| a | c | ab,bc,bc | driving,route,route |
| b | d | bc,cd,cd | route,driving,driving |
| a | f | ab,bc,cd,de,ef,ef | driving,route,driving,driving,driving,driving |
Scenario: Testbot - Modes, triangle map
Given the node map
"""
d
2
6 5
a 0 b c
4 1
3
e
"""
And the ways
| nodes | highway | oneway |
| abc | primary | |
| cd | primary | yes |
| ce | river | |
| de | primary | |
When I route I should get
| from | to | route | modes |
| 0 | 1 | abc,ce,de,de | driving,river downstream,driving,driving |
| 1 | 0 | de,ce,abc,abc | driving,river upstream,driving,driving |
| 0 | 2 | abc,cd,cd | driving,driving,driving |
| 2 | 0 | cd,de,ce,abc,abc | driving,driving,river upstream,driving,driving |
| 0 | 3 | abc,ce,ce | driving,river downstream,river downstream |
| 3 | 0 | ce,abc,abc | river upstream,driving,driving |
| 4 | 3 | ce,ce | river downstream,river downstream |
| 3 | 4 | ce,ce | river upstream,river upstream |
| 3 | 1 | ce,de,de | river downstream,driving,driving |
| 1 | 3 | de,ce,ce | driving,river upstream,river upstream |
| a | e | abc,ce,ce | driving,river downstream,river downstream |
| e | a | ce,abc,abc | river upstream,driving,driving |
| a | d | abc,cd,cd | driving,driving,driving |
| d | a | de,ce,abc,abc | driving,river upstream,driving,driving |
Scenario: Testbot - River in the middle
Given the node map
"""
a b c
d
e f g
"""
And the ways
| nodes | highway |
| abc | primary |
| cde | river |
| efg | primary |
When I route I should get
| from | to | route | modes |
| a | g | abc,cde,efg,efg | driving,river downstream,driving,driving |
| b | f | abc,cde,efg,efg | driving,river downstream,driving,driving |
| e | c | cde,cde | river upstream,river upstream |
| e | b | cde,abc,abc | river upstream,driving,driving |
| e | a | cde,abc,abc | river upstream,driving,driving |
| c | e | cde,cde | river downstream,river downstream |
| c | f | cde,efg,efg | river downstream,driving,driving |
| c | g | cde,efg,efg | river downstream,driving,driving |