Make sure the ruby quadtile code give the same result as the C version

This commit is contained in:
Tom Hughes 2011-05-08 15:18:03 +01:00
parent 741c624e67
commit d2cf09f389
2 changed files with 10 additions and 4 deletions

View file

@ -3,8 +3,8 @@ module QuadTile
require "quad_tile/quad_tile_so" require "quad_tile/quad_tile_so"
rescue MissingSourceFile rescue MissingSourceFile
def self.tile_for_point(lat, lon) def self.tile_for_point(lat, lon)
x = ((lon + 180) * 65535 / 360).round x = ((lon.to_f + 180) * 65535 / 360).round
y = ((lat + 90) * 65535 / 180).round y = ((lat.to_f + 90) * 65535 / 180).round
return tile_for_xy(x, y) return tile_for_xy(x, y)
end end

View file

@ -53,9 +53,15 @@ class ApiControllerTest < ActionController::TestCase
node = current_nodes(:used_node_1) node = current_nodes(:used_node_1)
bbox = "#{node.lon},#{node.lat},#{node.lon},#{node.lat}" bbox = "#{node.lon},#{node.lat},#{node.lon},#{node.lat}"
get :map, :bbox => bbox get :map, :bbox => bbox
#print @response.body
assert_response :success, "The map call should have succeeded" assert_response :success, "The map call should have succeeded"
assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root:empty", :count => 1 assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do
assert_select "bounds[minlon=#{node.lon}][minlat=#{node.lat}][maxlon=#{node.lon}][maxlat=#{node.lat}]", :count => 1
assert_select "node[id=#{node.id}][lat=#{node.lat}][lon=#{node.lon}][version=#{node.version}][changeset=#{node.changeset_id}][visible=#{node.visible}][timestamp=#{node.timestamp.xmlschema}]", :count => 1 do
# This should really be more generic
assert_select "tag[k='test'][v='yes']"
end
# Should also test for the ways and relation
end
end end
def test_tracepoints def test_tracepoints