2016-04-29 03:48:13 -04:00
|
|
|
@routing @speed @traffic
|
|
|
|
Feature: Traffic - turn penalties
|
|
|
|
|
|
|
|
Background: Evenly spaced grid with multiple intersections
|
|
|
|
Given the node map
|
2016-09-30 03:33:08 -04:00
|
|
|
"""
|
|
|
|
a b
|
|
|
|
c d e f g
|
|
|
|
h i
|
|
|
|
j k l m n
|
|
|
|
o p
|
|
|
|
"""
|
|
|
|
|
|
|
|
And the nodes
|
|
|
|
| node | id |
|
|
|
|
| a | 1 |
|
|
|
|
| b | 2 |
|
|
|
|
| c | 3 |
|
|
|
|
| d | 4 |
|
|
|
|
| e | 5 |
|
|
|
|
| f | 6 |
|
|
|
|
| g | 7 |
|
|
|
|
| h | 8 |
|
|
|
|
| i | 9 |
|
|
|
|
| j | 10 |
|
|
|
|
| k | 11 |
|
|
|
|
| l | 12 |
|
|
|
|
| m | 13 |
|
|
|
|
| n | 14 |
|
|
|
|
| o | 15 |
|
|
|
|
| p | 16 |
|
|
|
|
|
2016-04-29 03:48:13 -04:00
|
|
|
And the ways
|
|
|
|
| nodes | highway |
|
|
|
|
| ad | primary |
|
|
|
|
| cd | primary |
|
2016-05-30 11:42:28 -04:00
|
|
|
| def | primary |
|
2016-04-29 03:48:13 -04:00
|
|
|
| dhk | primary |
|
|
|
|
|
|
|
|
| bf | primary |
|
|
|
|
| fg | primary |
|
|
|
|
| fim | primary |
|
|
|
|
|
|
|
|
| jk | primary |
|
2016-05-30 11:42:28 -04:00
|
|
|
| klm | primary |
|
2016-04-29 03:48:13 -04:00
|
|
|
| ko | primary |
|
|
|
|
|
|
|
|
| mn | primary |
|
|
|
|
| mp | primary |
|
|
|
|
And the profile "car"
|
|
|
|
And the extract extra arguments "--generate-edge-lookup"
|
|
|
|
|
|
|
|
Scenario: Weighting not based on turn penalty file
|
|
|
|
When I route I should get
|
2016-05-30 11:42:28 -04:00
|
|
|
| from | to | route | speed | time |
|
2017-02-03 07:46:28 -05:00
|
|
|
| a | h | ad,dhk,dhk | 65 km/h | 11s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# straight
|
2017-02-03 07:46:28 -05:00
|
|
|
| i | g | fim,fg,fg | 55 km/h | 13s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# right
|
2017-02-03 07:46:28 -05:00
|
|
|
| a | e | ad,def,def | 44 km/h | 16.3s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# left
|
2017-02-03 07:46:28 -05:00
|
|
|
| c | g | cd,def,fg,fg | 65 km/h | 22s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double straight
|
2017-02-03 07:46:28 -05:00
|
|
|
| p | g | mp,fim,fg,fg | 60 km/h | 24s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# straight-right
|
2017-02-03 07:46:28 -05:00
|
|
|
| a | l | ad,dhk,klm,klm | 53 km/h | 27s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# straight-left
|
2017-02-03 07:46:28 -05:00
|
|
|
| l | e | klm,dhk,def,def | 55 km/h | 26s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double right
|
2017-02-03 07:46:28 -05:00
|
|
|
| g | n | fg,fim,mn,mn | 44 km/h | 32s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double left
|
|
|
|
|
|
|
|
Scenario: Weighting based on turn penalty file
|
|
|
|
Given the turn penalty file
|
|
|
|
"""
|
|
|
|
9,6,7,1.8
|
|
|
|
9,13,14,24.5
|
2016-10-17 21:12:11 -04:00
|
|
|
8,4,3,35
|
2016-04-29 03:48:13 -04:00
|
|
|
12,11,8,9
|
2016-09-07 05:52:43 -04:00
|
|
|
8,11,12,23
|
2016-04-29 03:48:13 -04:00
|
|
|
1,4,5,-0.2
|
|
|
|
"""
|
2016-09-19 17:13:44 -04:00
|
|
|
And the contract extra arguments "--turn-penalty-file {penalties_file}"
|
2016-04-29 03:48:13 -04:00
|
|
|
When I route I should get
|
2016-05-30 11:42:28 -04:00
|
|
|
| from | to | route | speed | time |
|
2016-10-17 21:12:11 -04:00
|
|
|
| a | h | ad,dhk,dhk | 52 km/h | 14s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# straight
|
2016-10-17 21:12:11 -04:00
|
|
|
| i | g | fim,fg,fg | 46 km/h | 15s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# right - ifg penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| a | e | ad,def,def | 53 km/h | 14s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# left - faster because of negative ade penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| c | g | cd,def,fg,fg | 52 km/h | 27s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double straight
|
2016-10-17 21:12:11 -04:00
|
|
|
| p | g | mp,fim,fg,fg | 49 km/h | 29s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# straight-right - ifg penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| a | l | ad,def,fim,klm,klm | 48 km/h | 45s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# was straight-left - forced around by hkl penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| l | e | klm,fim,def,def | 38 km/h | 38s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double right - forced left by lkh penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| g | n | fg,fim,mn,mn | 25 km/h | 57s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double left - imn penalty
|
2016-10-17 21:12:11 -04:00
|
|
|
| j | c | jk,klm,fim,def,cd,cd | 44 km/h | 65.8s +-1 |
|
2016-04-29 03:48:13 -04:00
|
|
|
# double left - hdc penalty ever so slightly higher than imn; forces all the way around
|
|
|
|
|
|
|
|
Scenario: Too-negative penalty clamps, but does not fail
|
2016-09-19 17:13:44 -04:00
|
|
|
Given the contract extra arguments "--turn-penalty-file {penalties_file}"
|
2016-04-29 03:48:13 -04:00
|
|
|
And the profile "testbot"
|
|
|
|
And the turn penalty file
|
|
|
|
"""
|
|
|
|
1,4,5,-10
|
|
|
|
"""
|
|
|
|
When I route I should get
|
2016-05-30 11:42:28 -04:00
|
|
|
| from | to | route | time |
|
2016-11-22 15:08:12 -05:00
|
|
|
# The target point `d` can be in `ad`, `cd`, `deh` and `dhk`
|
|
|
|
# The test must be fixed by #2287
|
|
|
|
#| a | d | ad,ad | 10s +-1 |
|
2016-05-30 11:42:28 -04:00
|
|
|
| a | e | ad,def,def | 10s +-1 |
|
|
|
|
| b | f | bf,bf | 10s +-1 |
|
|
|
|
| b | g | bf,fg,fg | 20s +-1 |
|