testbot profile and update of time tests

This commit is contained in:
Emil Tin 2012-09-28 08:38:10 +02:00 committed by Emil Tin
parent 2d64dca565
commit 8cd28276ea
2 changed files with 121 additions and 113 deletions

View File

@ -1,14 +1,12 @@
@routing @time
Feature: Estimation of travel time
Note:
15km/h = 15000m/3600s = 150m/36s = 100m/24s
5km/h = 5000m/3600s = 50m/36s = 100m/72s
Going dioganally causes the distance to increase by sqrt(2):
24s * sqrt(2)= 33.941125496954285s
Testbot speeds:
Primary road: 36km/h = 36000m/3600s = 100m/10s
Secondary road: 18km/h = 18000m/3600s = 100m/20s
Tertiary road: 12km/h = 12000m/3600s = 100m/30s
Background: Use specific speeds
Given the speedprofile "bicycle"
Given the speedprofile "testbot"
@basic_time
Scenario: Basic travel time, 1m scale
@ -31,14 +29,14 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| x | a | xa | 0s |
| x | b | xb | 0s |
| x | c | xc | 0s |
| x | d | xd | 0s |
| x | e | xe | 0s |
| x | f | xf | 0s |
| x | g | xg | 0s |
| x | h | xh | 0s |
| x | a | xa | 0s +-1 |
| x | b | xb | 0s +-1 |
| x | c | xc | 0s +-1 |
| x | d | xd | 0s +-1 |
| x | e | xe | 0s +-1 |
| x | f | xf | 0s +-1 |
| x | g | xg | 0s +-1 |
| x | h | xh | 0s +-1 |
@basic_time
Scenario: Basic travel time, 10m scale
@ -61,14 +59,14 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| x | a | xa | 2s |
| x | b | xb | 3s |
| x | c | xc | 2s |
| x | d | xd | 3s |
| x | e | xe | 2s |
| x | f | xf | 3s |
| x | g | xg | 2s |
| x | h | xh | 3s |
| x | a | xa | 1s +-1 |
| x | b | xb | 1s +-1 |
| x | c | xc | 1s +-1 |
| x | d | xd | 1s +-1 |
| x | e | xe | 1s +-1 |
| x | f | xf | 1s +-1 |
| x | g | xg | 1s +-1 |
| x | h | xh | 1s +-1 |
@basic_time
Scenario: Basic travel time, 100m scale
@ -91,14 +89,14 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| x | a | xa | 24s |
| x | b | xb | 34s |
| x | c | xc | 24s |
| x | d | xd | 34s |
| x | e | xe | 24s |
| x | f | xf | 34s |
| x | g | xg | 24s |
| x | h | xh | 34s |
| x | a | xa | 10s +-1 |
| x | b | xb | 14s +-1 |
| x | c | xc | 10s +-1 |
| x | d | xd | 14s +-1 |
| x | e | xe | 10s +-1 |
| x | f | xf | 14s +-1 |
| x | g | xg | 10s +-1 |
| x | h | xh | 14s +-1 |
@basic_time
Scenario: Basic travel time, 1km scale
@ -121,14 +119,14 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| x | a | xa | 240s |
| x | b | xb | 339s |
| x | c | xc | 240s |
| x | d | xd | 339s |
| x | e | xe | 240s |
| x | f | xf | 339s |
| x | g | xg | 240s |
| x | h | xh | 339s |
| x | a | xa | 100s +-1 |
| x | b | xb | 141s +-1 |
| x | c | xc | 100s +-1 |
| x | d | xd | 141s +-1 |
| x | e | xe | 100s +-1 |
| x | f | xf | 141s +-1 |
| x | g | xg | 100s +-1 |
| x | h | xh | 141s +-1 |
@basic_time
Scenario: Basic travel time, 10km scale
@ -151,63 +149,38 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| x | a | xa | 2400s |
| x | b | xb | 3394s |
| x | c | xc | 2400s |
| x | d | xd | 3394s |
| x | e | xe | 2400s |
| x | f | xf | 3394s |
| x | g | xg | 2400s |
| x | h | xh | 3394s |
@basic_time
Scenario: Basic travel time, 100km scale
Given a grid size of 100000 meters
Given the node map
| h | a | b |
| g | x | c |
| f | e | d |
And the ways
| nodes | highway |
| xa | primary |
| xb | primary |
| xc | primary |
| xd | primary |
| xe | primary |
| xf | primary |
| xg | primary |
| xh | primary |
When I route I should get
| from | to | route | time |
| x | a | xa | 24000s |
| x | b | xb | 33941s |
| x | c | xc | 24000s |
| x | d | xd | 33941s |
| x | e | xe | 24000s |
| x | f | xf | 33941s |
| x | g | xg | 24000s |
| x | h | xh | 33941s |
| x | a | xa | 1000s +-1 |
| x | b | xb | 1414s +-1 |
| x | c | xc | 1000s +-1 |
| x | d | xd | 1414s +-1 |
| x | e | xe | 1000s +-1 |
| x | f | xf | 1414s +-1 |
| x | g | xg | 1000s +-1 |
| x | h | xh | 1414s +-1 |
Scenario: Time of travel depending on way type
Given the node map
| a | b |
| c | d |
| e | f |
And the ways
| nodes | highway |
| ab | primary |
| cd | footway |
| cd | secondary |
| ef | tertiary |
| ace | something |
When I route I should get
| from | to | route | time |
| a | b | ab | 24s |
| c | d | cd | 72s |
| a | b | ab | 10s +-1 |
| c | d | cd | 20s +-1 |
| e | f | ef | 30s +-1 |
Scenario: Time of travel on a series of ways
Given the node map
| a | b | c | d |
| a | b | |
| | c | d |
And the ways
| nodes | highway |
@ -217,15 +190,15 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| a | b | ab | 24s |
| a | c | ab,bc | 48s |
| a | d | ab,bc,cd | 72s |
| a | b | ab | 10s +-1 |
| a | c | ab,bc | 20s +-1 |
| a | d | ab,bc,cd | 30s +-1 |
Scenario: Time of travel on a winding way
Given the node map
| a | b | | | | |
| | c | d | e | | i |
| | | | f | g | h |
| a | | i | h |
| b | c | | g |
| | d | e | f |
And the ways
| nodes | highway |
@ -233,25 +206,27 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| a | b | abcdefghi | 24s |
| a | e | abcdefghi | 96s |
| a | i | abcdefghi | 192s |
| a | b | abcdefghi | 10s +-1 |
| a | e | abcdefghi | 40s +-1 |
| a | i | abcdefghi | 80s +-1 |
Scenario: Time of travel on combination of road types
Given the node map
| a | b | c | d | e |
| a | b | c |
| | | d |
| | | e |
And the ways
| nodes | highway |
| abc | primary |
| cde | footway |
| cde | tertiary |
When I route I should get
| from | to | route | time |
| b | c | abc | 24s |
| c | e | cde | 72s |
| b | d | abc,cde | 144s |
| a | e | abc,cde | 192s |
| b | c | abc | 10s +-1 |
| c | e | cde | 60s +-1 |
| b | d | abc,cde | 40s +-1 |
| a | e | abc,cde | 80s +-1 |
Scenario: Time of travel on part of a way
Given the node map
@ -266,9 +241,9 @@ Feature: Estimation of travel time
When I route I should get
| from | to | route | time |
| 1 | 2 | ab | 24s |
| 1 | 3 | ab | 48s |
| 1 | 4 | ab | 72s |
| 4 | 3 | ab | 24s |
| 4 | 2 | ab | 48s |
| 4 | 1 | ab | 72s |
| 1 | 2 | ab | 10s +-1 |
| 1 | 3 | ab | 20s +-1 |
| 1 | 4 | ab | 30s +-1 |
| 4 | 3 | ab | 10s +-1 |
| 4 | 2 | ab | 20s +-1 |
| 4 | 1 | ab | 30s +-1 |

33
profiles/testbot.lua Normal file
View File

@ -0,0 +1,33 @@
-- Testbot profile
-- Moves at fixed, well-known speeds, practical for testing speed and travel times:
-- Primary road: 36km/h = 36000m/3600s = 100m/10s
-- Secondary road: 18km/h = 18000m/3600s = 100m/20s
-- Tertiary road: 12km/h = 12000m/3600s = 100m/30s
speed_profile = {
["primary"] = 36,
["secondary"] = 18,
["tertiary"] = 12,
["default"] = 24
}
function node_function (node)
return 1
end
function way_function (way, numberOfNodesInWay)
-- A way must have two nodes or more
if(numberOfNodesInWay < 2) then
return 0;
end
local highway = way.tags:Find("highway")
local name = way.tags:Find("name")
way.name = name
way.speed = speed_profile[highway] or speed_profile['default']
way.direction = Way.bidirectional
way.type = 1
return 1
end