cuke: keep number nodes locally, not in osm file

This commit is contained in:
Emil Tin
2013-04-13 11:38:41 +02:00
parent 1fc11a6b06
commit 5eecd0a57d
4 changed files with 55 additions and 22 deletions
+14 -17
View File
@@ -18,12 +18,13 @@ Given /^the node map$/ do |table|
unless name.empty?
raise "*** node invalid name '#{name}', must be single characters" unless name.size == 1
raise "*** invalid node name '#{name}', must me alphanumeric" unless name.match /[a-z0-9]/
raise "*** duplicate node '#{name}'" if name_node_hash[name]
node = OSM::Node.new make_osm_id, OSM_USER, OSM_TIMESTAMP, ORIGIN[0]+ci*@zoom, ORIGIN[1]-ri*@zoom
node << { :name => name }
node.uid = OSM_UID
osm_db << node
name_node_hash[name] = node
if name.match /[a-z]/
raise "*** duplicate node '#{name}'" if name_node_hash[name]
add_osm_node name, *table_coord_to_lonlat(ci,ri)
else
raise "*** duplicate node '#{name}'" if location_hash[name]
add_location name, *table_coord_to_lonlat(ci,ri)
end
end
end
end
@@ -32,21 +33,18 @@ end
Given /^the node locations$/ do |table|
table.hashes.each do |row|
name = row['node']
raise "*** node invalid name '#{name}', must be single characters" unless name.size == 1
raise "*** invalid node name '#{name}', must me alphanumeric" unless name.match /[a-z0-9]/
raise "*** duplicate node '#{name}'" if name_node_hash[name]
node = OSM::Node.new make_osm_id, OSM_USER, OSM_TIMESTAMP, row['lon'].to_f, row['lat'].to_f
node << { :name => name }
node.uid = OSM_UID
osm_db << node
name_node_hash[name] = node
raise "*** duplicate node '#{name}'" if find_node_by_name name
if name.match /[a-z]/
add_osm_node name, row['lon'].to_f, row['lat'].to_f
else
add_location name, row['lon'].to_f, row['lat'].to_f
end
end
end
Given /^the nodes$/ do |table|
table.hashes.each do |row|
name = row.delete 'node'
raise "***invalid node name '#{c}', must be single characters" unless name.size == 1
node = find_node_by_name(name)
raise "*** unknown node '#{c}'" unless node
node << row
@@ -61,8 +59,7 @@ Given /^the ways$/ do |table|
nodes = row.delete 'nodes'
raise "*** duplicate way '#{nodes}'" if name_way_hash[nodes]
nodes.each_char do |c|
raise "***invalid node name '#{c}', must be single characters" unless c.size == 1
raise "*** ways cannot use numbered nodes, '#{name}'" unless c.match /[a-z]/
raise "*** ways can only use names a-z, '#{name}'" unless c.match /[a-z]/
node = find_node_by_name(c)
raise "*** unknown node '#{c}'" unless node
way << node
+2 -2
View File
@@ -3,10 +3,10 @@ When /^I request nearest I should get$/ do |table|
actual = []
OSRMLauncher.new do
table.hashes.each_with_index do |row,ri|
in_node = @name_node_hash[ row['in'] ]
in_node = find_node_by_name row['in']
raise "*** unknown in-node '#{row['in']}" unless in_node
out_node = @name_node_hash[ row['out'] ]
out_node = find_node_by_name row['out']
raise "*** unknown out-node '#{row['out']}" unless out_node
response = request_nearest("#{in_node.lat},#{in_node.lon}")
+2 -2
View File
@@ -3,9 +3,9 @@ When /^I route I should get$/ do |table|
actual = []
OSRMLauncher.new do
table.hashes.each_with_index do |row,ri|
from_node = @name_node_hash[ row['from'] ]
from_node = find_node_by_name row['from']
raise "*** unknown from-node '#{row['from']}" unless from_node
to_node = @name_node_hash[ row['to'] ]
to_node = find_node_by_name row['to']
raise "*** unknown to-node '#{row['to']}" unless to_node
got = {'from' => row['from'], 'to' => row['to'] }