Removing the in_world test from the model since it is included in the geo_record...
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Tue, 8 Jul 2008 18:17:08 +0000 (18:17 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Tue, 8 Jul 2008 18:17:08 +0000 (18:17 +0000)
app/models/old_node.rb
test/fixtures/current_nodes.yml
test/fixtures/nodes.yml
test/unit/node_test.rb
test/unit/old_node_test.rb [new file with mode: 0644]

index 42f55f2d0fbd6db5ef66390e3bd08a192482ceb3..6b6b71b53eaae06d0f7c591c919aaa51c81f3dd1 100644 (file)
@@ -14,12 +14,6 @@ class OldNode < ActiveRecord::Base
     errors.add_to_base("Node is not in the world") unless in_world?
   end
 
-  def in_world?
-    return false if self.lat < -90 or self.lat > 90
-    return false if self.lon < -180 or self.lon > 180
-    return true
-  end
-
   def self.from_node(node)
     old_node = OldNode.new
     old_node.latitude = node.latitude
@@ -90,7 +84,8 @@ class OldNode < ActiveRecord::Base
 
   def tags=(t)
     @tags = t 
-  end 
+  end
+
   def tags_as_hash 
     hash = {} 
     Tags.split(self.tags) do |k,v| 
index ef5e688f6a1a79a35aaf738d059dbd461982bbac..19fad704e1ac98c876ad8542d8aad90ed4665027 100644 (file)
@@ -1,11 +1,14 @@
 # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
 <% SCALE = 10000000 unless defined?(SCALE) %>
+
 visible_node:
   id: 1
   latitude: <%= 1*SCALE %>
   longitude: <%= 1*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(1,1) %>
   timestamp: 2007-01-01 00:00:00
 
 invisible_node:
@@ -14,6 +17,8 @@ invisible_node:
   longitude: <%= 2*SCALE %>
   user_id: 1
   visible: 0
+  version: 1
+  tile: <%= QuadTile.tile_for_point(2,2) %>
   timestamp: 2007-01-01 00:00:00
 
 used_node_1:
@@ -22,6 +27,8 @@ used_node_1:
   longitude: <%= 3*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(3,3) %>
   timestamp: 2007-01-01 00:00:00
 
 used_node_2:
@@ -30,6 +37,8 @@ used_node_2:
   longitude: <%= 4*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(4,4) %>
   timestamp: 2007-01-01 00:00:00
 
 node_used_by_relationship:
@@ -38,6 +47,8 @@ node_used_by_relationship:
   longitude: <%= 5*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(5,5) %>
   timestamp: 2007-01-01 00:00:00
   
 node_too_far_north:
@@ -45,6 +56,9 @@ node_too_far_north:
   latitude: <%= 90.01*SCALE %>
   longitude: <%= 6*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(90.01,6) %>
   timestamp: 2007-01-01 00:00:00
   
 node_north_limit:
@@ -52,6 +66,9 @@ node_north_limit:
   latitude: <%= 90*SCALE %>
   longitude: <%= 11*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(90,11) %>
   timestamp: 2008-07-08 14:50:00
   
 node_too_far_south:
@@ -59,6 +76,9 @@ node_too_far_south:
   latitude: <%= -90.01*SCALE %>
   longitude: <%= 7*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(-90.01,7) %>
   timestamp: 2007-01-01 00:00:00
   
 node_south_limit:
@@ -66,6 +86,9 @@ node_south_limit:
   latitude: <%= -90*SCALE %>
   longitude: <%= 12*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(-90,12) %>
   timestamp: 2008-07-08 15:02:18
   
 node_too_far_west:
@@ -73,6 +96,9 @@ node_too_far_west:
   latitude: <%= 8*SCALE %>
   longitude: <%= -180.01*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(8,-180.01) %>
   timestamp: 2007-01-01 00:00:00
   
 node_west_limit:
@@ -80,6 +106,9 @@ node_west_limit:
   latitude: <%= 13*SCALE %>
   longitude: <%= -180*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(13,-180) %>
   timestamp: 2008-07-08 15:17:37
   
 node_too_far_east:
@@ -87,6 +116,9 @@ node_too_far_east:
   latitude: <%= 9*SCALE %>
   longitude: <%= 180.01*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(9,180.01) %>
   timestamp: 2007-01-01 00:00:00
   
 node_east_limit:
@@ -94,6 +126,9 @@ node_east_limit:
   latitude: <%= 14*SCALE %>
   longitude: <%= 180*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(14,180) %>
   timestamp: 2008-07-08 15:46:16
   
 node_totally_wrong:
@@ -101,5 +136,8 @@ node_totally_wrong:
   latitude: <%= 200*SCALE %>
   longitude: <%= 200*SCALE %>
   user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(200,200) %>
   timestamp: 2007-01-01 00:00:00
   
index 202a7d931e5611f782fbbe0c2c113309a15fb564..9699e395c79e14f68966aa282b2b630a6b3357e7 100644 (file)
@@ -1,10 +1,14 @@
 # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+<% SCALE = 10000000 unless defined?(SCALE) %>
+
 visible_node:
   id: 1
   latitude: <%= 1*SCALE %>
   longitude: <%= 1*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(1,1) %>
   timestamp: 2007-01-01 00:00:00
 
 invisible_node:
@@ -13,6 +17,8 @@ invisible_node:
   longitude: <%= 2*SCALE %>
   user_id: 1
   visible: 0
+  version: 1
+  tile: <%= QuadTile.tile_for_point(2,2) %>
   timestamp: 2007-01-01 00:00:00
 
 used_node_1:
@@ -21,6 +27,8 @@ used_node_1:
   longitude: <%= 3*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(3,3) %>
   timestamp: 2007-01-01 00:00:00
 
 used_node_2:
@@ -29,6 +37,8 @@ used_node_2:
   longitude: <%= 4*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(4,4) %>
   timestamp: 2007-01-01 00:00:00
 
 node_used_by_relationship:
@@ -37,5 +47,97 @@ node_used_by_relationship:
   longitude: <%= 5*SCALE %>
   user_id: 1
   visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(5,5) %>
   timestamp: 2007-01-01 00:00:00
 
+node_too_far_north:
+  id: 6
+  latitude: <%= 90.01*SCALE %>
+  longitude: <%= 6*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(90.01,6) %>
+  timestamp: 2007-01-01 00:00:00
+  
+node_north_limit:
+  id: 11
+  latitude: <%= 90*SCALE %>
+  longitude: <%= 11*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(90,11) %>
+  timestamp: 2008-07-08 14:50:00
+  
+node_too_far_south:
+  id: 7
+  latitude: <%= -90.01*SCALE %>
+  longitude: <%= 7*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(-90.01,7) %>
+  timestamp: 2007-01-01 00:00:00
+  
+node_south_limit:
+  id: 12
+  latitude: <%= -90*SCALE %>
+  longitude: <%= 12*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(-90,12) %>
+  timestamp: 2008-07-08 15:02:18
+  
+node_too_far_west:
+  id: 8
+  latitude: <%= 8*SCALE %>
+  longitude: <%= -180.01*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(8,-180.01) %>
+  timestamp: 2007-01-01 00:00:00
+  
+node_west_limit:
+  id: 13
+  latitude: <%= 13*SCALE %>
+  longitude: <%= -180*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(13,-180) %>
+  timestamp: 2008-07-08 15:17:37
+  
+node_too_far_east:
+  id: 9
+  latitude: <%= 9*SCALE %>
+  longitude: <%= 180.01*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(9,180.01) %>
+  timestamp: 2007-01-01 00:00:00
+  
+node_east_limit:
+  id: 14
+  latitude: <%= 14*SCALE %>
+  longitude: <%= 180*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(14,180) %>
+  timestamp: 2008-07-08 15:46:16
+
+node_totally_wrong:
+  id: 10
+  latitude: <%= 200*SCALE %>
+  longitude: <%= 200*SCALE %>
+  user_id: 1
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(200,200) %>
+  timestamp: 2007-01-01 00:00:00
+  
index 87b61a7453a541263d7c0ca2c263a60651326f96..b5ef30298044cd99f18dc3ea5e4531197cc71aff 100644 (file)
@@ -1,7 +1,7 @@
 require File.dirname(__FILE__) + '/../test_helper'
 
 class NodeTest < Test::Unit::TestCase
-  fixtures :current_nodes, :users, :current_node_tags,:nodes,  :node_tags
+  fixtures :current_nodes, :users, :current_node_tags, :nodes, :node_tags
   set_fixture_class :current_nodes => :Node
   set_fixture_class :nodes => :OldNode
   set_fixture_class :node_tags => :OldNodeTag
@@ -48,21 +48,31 @@ class NodeTest < Test::Unit::TestCase
   # the fixture
   def valid_node_test(nod)
     node = current_nodes(nod)
-    assert_equal node.lat, current_nodes(nod).latitude.to_f/SCALE
-    assert_equal node.lon, current_nodes(nod).longitude.to_f/SCALE
-    assert_equal node.timestamp, current_nodes(nod).timestamp
+    dbnode = Node.find(node.id)
+    assert_equal dbnode.lat, node.latitude.to_f/SCALE
+    assert_equal dbnode.lon, node.longitude.to_f/SCALE
+    assert_equal dbnode.user_id, node.user_id
+    assert_equal dbnode.timestamp, node.timestamp
+    assert_equal dbnode.version, node.version
+    assert_equal dbnode.visible, node.visible
+    #assert_equal node.tile, QuadTile.tile_for_point(node.lat, node.lon)
     assert_valid node
   end
   
-  # This helpermethod will check to make sure that a node is outwith the world, 
+  # This helper method will check to make sure that a node is outwith the world, 
   # and has the same lat, lon and timesamp than what was put into the db by the
   # fixture
   def invalid_node_test(nod)
     node = current_nodes(nod)
-    assert_equal node.lat, current_nodes(nod).latitude.to_f/SCALE
-    assert_equal node.lon, current_nodes(nod).longitude.to_f/SCALE
-    assert_equal node.timestamp, current_nodes(nod).timestamp
-    assert_equal false, node.valid?
+    dbnode = Node.find(node.id)
+    assert_equal dbnode.lat, node.latitude.to_f/SCALE
+    assert_equal dbnode.lon, node.longitude.to_f/SCALE
+    assert_equal dbnode.user_id, node.user_id
+    assert_equal dbnode.timestamp, node.timestamp
+    assert_equal dbnode.version, node.version
+    assert_equal dbnode.visible, node.visible
+    #assert_equal node.tile, QuadTile.tile_for_point(node.lat, node.lon)
+    assert_equal false, dbnode.valid?
   end
   
   # Check that you can create a node and store it
diff --git a/test/unit/old_node_test.rb b/test/unit/old_node_test.rb
new file mode 100644 (file)
index 0000000..85c2037
--- /dev/null
@@ -0,0 +1,79 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class OldNodeTest < Test::Unit::TestCase
+  fixtures :current_nodes, :users, :current_node_tags, :nodes, :node_tags
+  set_fixture_class :current_nodes => :Node
+  set_fixture_class :nodes => :OldNode
+  set_fixture_class :node_tags => :OldNodeTag
+  set_fixture_class :current_node_tags => :NodeTag
+    
+  def test_node_too_far_north
+         invalid_node_test(:node_too_far_north)
+  end
+  
+  def test_node_north_limit
+    valid_node_test(:node_north_limit)
+  end
+  
+  def test_node_too_far_south
+    invalid_node_test(:node_too_far_south)
+  end
+  
+  def test_node_south_limit
+    valid_node_test(:node_south_limit)
+  end
+  
+  def test_node_too_far_west
+    invalid_node_test(:node_too_far_west)
+  end
+  
+  def test_node_west_limit
+    valid_node_test(:node_west_limit)
+  end
+  
+  def test_node_too_far_east
+    invalid_node_test(:node_too_far_east)
+  end
+  
+  def test_node_east_limit
+    valid_node_test(:node_east_limit)
+  end
+  
+  def test_totally_wrong
+    invalid_node_test(:node_totally_wrong)
+  end
+  
+  # This helper method will check to make sure that a node is within the world, and
+  # has the the same lat, lon and timestamp than what was put into the db by 
+  # the fixture
+  def valid_node_test(nod)
+    node = nodes(nod)
+    dbnode = Node.find(node.id)
+    assert_equal dbnode.lat, node.latitude.to_f/SCALE
+    assert_equal dbnode.lon, node.longitude.to_f/SCALE
+    assert_equal dbnode.user_id, node.user_id
+    assert_equal dbnode.version, node.version
+    assert_equal dbnode.visible, node.visible
+    assert_equal dbnode.timestamp, node.timestamp
+    #assert_equal node.tile, QuadTile.tile_for_point(nodes(nod).lat, nodes(nod).lon)
+    assert_valid node
+  end
+  
+  # This helpermethod will check to make sure that a node is outwith the world, 
+  # and has the same lat, lon and timesamp than what was put into the db by the
+  # fixture
+  def invalid_node_test(nod)
+    node = nodes(nod)
+    dbnode = Node.find(node.id)
+    assert_equal dbnode.lat, node.latitude.to_f/SCALE
+    assert_equal dbnode.lon, node.longitude.to_f/SCALE
+    assert_equal dbnode.user_id, node.user_id
+    assert_equal dbnode.version, node.version
+    assert_equal dbnode.visible, node.visible
+    assert_equal dbnode.timestamp, node.timestamp
+    #assert_equal node.tile, QuadTile.tile_for_point(nodes(nod).lat, nodes(nod).lon)
+    assert_equal false, node.valid?
+  end
+  
+
+end