test for bearing param (todo)
This commit is contained in:
parent
081831e6ea
commit
8893fd1656
@ -7,7 +7,22 @@ When /^I route I should get$/ do |table|
|
||||
raise "*** unknown from-node '#{row['from']}" unless from_node
|
||||
to_node = @name_node_hash[ row['to'] ]
|
||||
raise "*** unknown to-node '#{row['to']}" unless to_node
|
||||
response = request_route("#{from_node.lat},#{from_node.lon}", "#{to_node.lat},#{to_node.lon}")
|
||||
|
||||
got = {'from' => row['from'], 'to' => row['to'] }
|
||||
|
||||
params = {}
|
||||
row.each_pair do |k,v|
|
||||
if k =~ /param:(.*)/
|
||||
if v=='(nil)'
|
||||
params[$1]=nil
|
||||
elsif v!=nil
|
||||
params[$1]=v
|
||||
end
|
||||
got[k]=v
|
||||
end
|
||||
end
|
||||
|
||||
response = request_route("#{from_node.lat},#{from_node.lon}", "#{to_node.lat},#{to_node.lon}", params)
|
||||
if response.code == "200" && response.body.empty? == false
|
||||
json = JSON.parse response.body
|
||||
if json['status'] == 0
|
||||
@ -19,7 +34,6 @@ When /^I route I should get$/ do |table|
|
||||
end
|
||||
end
|
||||
|
||||
got = {'from' => row['from'], 'to' => row['to'] }
|
||||
if table.headers.include? 'start'
|
||||
got['start'] = instructions ? json['route_summary']['start_point'] : nil
|
||||
end
|
||||
|
@ -4,10 +4,16 @@ HOST = "http://localhost:#{OSRM_PORT}"
|
||||
REQUEST_TIMEOUT = 1
|
||||
DESTINATION_REACHED = 15 #OSRM instruction code
|
||||
|
||||
class Hash
|
||||
def to_param(namespace = nil)
|
||||
collect do |key, value|
|
||||
"#{key}=#{value}"
|
||||
end.sort * '&'
|
||||
end
|
||||
end
|
||||
|
||||
def request_path path
|
||||
@query = path
|
||||
uri = URI.parse "#{HOST}/#{path}"
|
||||
def request_path path, params={}
|
||||
uri = URI.parse ["#{HOST}/#{path}",params.to_param].join('&')
|
||||
Timeout.timeout(REQUEST_TIMEOUT) do
|
||||
Net::HTTP.get_response uri
|
||||
end
|
||||
@ -17,8 +23,9 @@ rescue Timeout::Error
|
||||
raise "*** osrm-routed did not respond."
|
||||
end
|
||||
|
||||
def request_route a,b
|
||||
request_path "viaroute?loc=#{a}&loc=#{b}&output=json&instructions=true&alt=true"
|
||||
def request_route a,b, params={}
|
||||
defaults = { 'output' => 'json', 'instructions' => true, 'alt' => true }
|
||||
request_path "viaroute?loc=#{a}&loc=#{b}", defaults.merge(params)
|
||||
end
|
||||
|
||||
def parse_response response
|
||||
|
94
features/testbot/bearing_param.feature
Normal file
94
features/testbot/bearing_param.feature
Normal file
@ -0,0 +1,94 @@
|
||||
@routing @bearing_param @todo
|
||||
Feature: Bearing parameter
|
||||
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
And a grid size of 10 meters
|
||||
|
||||
Scenario: Testbot - Intial bearing in simple case
|
||||
Given the node map
|
||||
| a | |
|
||||
| 0 | c |
|
||||
| b | |
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
| ac |
|
||||
| bc |
|
||||
|
||||
When I route I should get
|
||||
| from | to | param:bearing | route | bearing |
|
||||
| 0 | c | 0 | bc | 45 |
|
||||
| 0 | c | 45 | bc | 45 |
|
||||
| 0 | c | 85 | bc | 45 |
|
||||
| 0 | c | 95 | ac | 135 |
|
||||
| 0 | c | 135 | ac | 135 |
|
||||
| 0 | c | 180 | ac | 135 |
|
||||
|
||||
Scenario: Testbot - Initial bearing on split way
|
||||
Given the node map
|
||||
| d | | | | | 1 | | | | | c |
|
||||
| a | | | | | 0 | | | | | b |
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
| ab | yes |
|
||||
| bc | yes |
|
||||
| cd | yes |
|
||||
| da | yes |
|
||||
|
||||
When I route I should get
|
||||
| from | to | param:bearing | route | bearing |
|
||||
| 0 | b | 10 | ab | 90 |
|
||||
| 0 | b | 90 | ab | 90 |
|
||||
| 0 | b | 170 | ab | 90 |
|
||||
| 0 | b | 190 | cd,da,ab | 270 |
|
||||
| 0 | b | 270 | cd,da,ab | 270 |
|
||||
| 0 | b | 350 | cd,da,ab | 270 |
|
||||
| 1 | d | 10 | cd | 90 |
|
||||
| 1 | d | 90 | cd | 90 |
|
||||
| 1 | d | 170 | cd | 90 |
|
||||
| 1 | d | 190 | ab,bc,cd | 270 |
|
||||
| 1 | d | 270 | ab,bc,cd | 270 |
|
||||
| 1 | d | 350 | ab,bc,cd | 270 |
|
||||
|
||||
@xx
|
||||
Scenario: Testbot - Initial bearing in all direction
|
||||
Given the node map
|
||||
| h | | | a | | | b |
|
||||
| | | | | | | |
|
||||
| | | p | i | j | | |
|
||||
| g | | o | 0 | k | | c |
|
||||
| | | n | m | l | | |
|
||||
| | | | | | | |
|
||||
| f | | | e | | | d |
|
||||
|
||||
And the ways
|
||||
| nodes | oneway |
|
||||
| ia | yes |
|
||||
| jb | yes |
|
||||
| kc | yes |
|
||||
| ld | yes |
|
||||
| me | yes |
|
||||
| nf | yes |
|
||||
| og | yes |
|
||||
| ph | yes |
|
||||
| ab | yes |
|
||||
| bc | yes |
|
||||
| cd | yes |
|
||||
| de | yes |
|
||||
| ef | yes |
|
||||
| fg | yes |
|
||||
| gh | yes |
|
||||
| ha | yes |
|
||||
|
||||
When I route I should get
|
||||
| from | to | param:bearing | route | bearing |
|
||||
| 0 | a | 0 | ia | 0 |
|
||||
| 0 | a | 45 | jb,bc,cd,de,ef,fg,gh,ha | 45 |
|
||||
| 0 | a | 90 | kc,cd,de,ef,fg,gh,ha | 90 |
|
||||
| 0 | a | 135 | ld,de,ef,fg,gh,ha | 135 |
|
||||
| 0 | a | 180 | me,de,ef,fg,gh,ha | 180 |
|
||||
| 0 | a | 225 | nf,ef,fg,gh,ha | 225 |
|
||||
| 0 | a | 270 | og,gh,ha | 270 |
|
||||
| 0 | a | 315 | pn,ha | 315 |
|
Loading…
Reference in New Issue
Block a user