osrm-backend/features/testbot/penalty.feature
Moritz Kobitzsch bbcf343e40 compress traffic signals
- handle penalties within edges (not phantom nodes)
 - changes model from providing penalties on turns to using additional segments
2017-08-04 11:19:32 +02:00

192 lines
5.0 KiB
Gherkin

@routing @penalty @signal @testbot
Feature: Penalties
# Testbot uses a signal penalty of 7s.
Background:
Given the profile "testbot"
Scenario: Traffic signals should incur a delay, without changing distance
Given the node map
"""
a b c
d e f
"""
And the nodes
| node | highway |
| e | traffic_signals |
And the ways
| nodes |
| abc |
| def |
When I route I should get
| from | to | route | time | distance |
| a | c | abc,abc | 20s +-1 | 200m +-1 |
| d | f | def,def | 27s +-1 | 200m +-1 |
# Penalties not on the phantom nodes
Scenario: Traffic signals should incur a delay, without changing distance
Given the node map
"""
a b c d e
f g h i j
"""
And the nodes
| node | highway |
| c | traffic_signals |
And the ways
| nodes |
| ab |
| bcd |
| de |
| fg |
| ghi |
| ij |
When I route I should get
| from | to | route | time | distance |
| a | e | ab,bcd,de | 47s +-1 | 400m +-1 |
| f | j | fg,ghi,ij | 40s +-1 | 400m +-1 |
Scenario: Signal penalty should not depend on way type
Given the node map
"""
a b c
d e f
g h i
"""
And the nodes
| node | highway |
| b | traffic_signals |
| e | traffic_signals |
| h | traffic_signals |
And the ways
| nodes | highway |
| abc | primary |
| def | secondary |
| ghi | tertiary |
When I route I should get
| from | to | route | time |
| a | c | abc,abc | 27s +-1 |
| d | f | def,def | 47s +-1 |
| g | i | ghi,ghi | 67s +-1 |
Scenario: Passing multiple traffic signals should incur a accumulated delay
Given the node map
"""
a b c d e
"""
And the nodes
| node | highway |
| b | traffic_signals |
| c | traffic_signals |
| d | traffic_signals |
And the ways
| nodes |
| abcde |
When I route I should get
| from | to | route | time |
| a | e | abcde,abcde | 61s +-1 |
@todo
Scenario: Signal penalty should not depend on way type
Given the node map
"""
a b c
d e f
g h i
"""
And the nodes
| node | highway |
| b | traffic_signals |
| e | traffic_signals |
| h | traffic_signals |
And the ways
| nodes | highway |
| abc | primary |
| def | secondary |
| ghi | tertiary |
When I route I should get
| from | to | route | time |
| a | b | abc,abc | 10s +-1 |
| a | c | abc,abc | 27s +-1 |
| d | e | def,def | 20s +-1 |
| d | f | def,def | 47s +-1 |
| g | h | ghi,ghi | 30s +-1 |
| g | i | ghi,ghi | 67s +-1 |
@todo
Scenario: Starting or ending at a traffic signal should not incur a delay
Given the node map
"""
a b c
"""
And the nodes
| node | highway |
| b | traffic_signals |
And the ways
| nodes |
| abc |
When I route I should get
| from | to | route | time |
| a | b | abc | 10s +-1 |
| b | a | abc | 10s +-1 |
Scenario: Routing between signals on the same way should not incur a delay
Given the node map
"""
a b c d
"""
And the nodes
| node | highway |
| a | traffic_signals |
| d | traffic_signals |
And the ways
| nodes | highway |
| abcd | primary |
When I route I should get
| from | to | route | time |
| b | c | abcd,abcd | 10s +-1 |
| c | b | abcd,abcd | 10s +-1 |
Scenario: Prefer faster route without traffic signals
Given a grid size of 50 meters
And the node map
"""
a b c
d
"""
And the nodes
| node | highway |
| b | traffic_signals |
And the ways
| nodes | highway |
| abc | primary |
| adc | primary |
When I route I should get
| from | to | route |
| a | c | adc,adc |