]> git.openstreetmap.org Git - rails.git/blobdiff - test/lib/bounding_box_test.rb
User factory associations for all factories.
[rails.git] / test / lib / bounding_box_test.rb
index eff48655cc495c992639a6d69670d67dd0e2246e..dc62531f532414ec885c9d72e8a3d5efc1b80716 100644 (file)
@@ -1,4 +1,4 @@
-require 'test_helper'
+require "test_helper"
 
 class BoundingBoxTest < ActiveSupport::TestCase
   def setup
@@ -21,13 +21,13 @@ class BoundingBoxTest < ActiveSupport::TestCase
 
     @bad_positive_boundary_bbox  = %w(181,91,0,0 0,0,181,91)
     @bad_negative_boundary_bbox  = %w(-181,-91,0,0 0,0,-181,-91)
-    @bad_big_bbox       = %w(-0.1,-0.1,1.1,1.1  10,10,11,11)
-    @bad_malformed_bbox = %w(-0.1  hello 10N2W10.1N2.1W)
-    @bad_lat_mixed_bbox  = %w(0,0.1,0.1,0  -0.1,80,0.1,70  0.24,54.34,0.25,54.33)
-    @bad_lon_mixed_bbox  = %w(80,-0.1,70,0.1  54.34,0.24,54.33,0.25)
+    @bad_big_bbox       = %w(-0.1,-0.1,1.1,1.1 10,10,11,11)
+    @bad_malformed_bbox = %w(-0.1 hello 10N2W10.1N2.1W)
+    @bad_lat_mixed_bbox  = %w(0,0.1,0.1,0 -0.1,80,0.1,70 0.24,54.34,0.25,54.33)
+    @bad_lon_mixed_bbox  = %w(80,-0.1,70,0.1 54.34,0.24,54.33,0.25)
     @bad_limit_bbox = %w(-180.1,-90,180,90 -180,-90.1,180,90 -180,-90,180.1,90 -180,-90,180,90.1)
-    @good_bbox         = %w(-0.1,-0.1,0.1,0.1  51.1,-0.1,51.2,0 -0.1,%20-0.1,%200.1,%200.1
-                            -0.1edcd,-0.1d,0.1,0.1  -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1)
+    @good_bbox = %w(-0.1,-0.1,0.1,0.1 51.1,-0.1,51.2,0 -0.1,%20-0.1,%200.1,%200.1
+                    -0.1edcd,-0.1d,0.1,0.1 -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1)
 
     @expand_min_lon_array = %w(2,10,10,10 1,10,10,10 0,10,10,10 -1,10,10,10 -2,10,10,10 -8,10,10,10)
     @expand_min_lat_array = %w(10,2,10,10 10,1,10,10 10,0,10,10 10,-1,10,10 10,-2,10,10 10,-8,10,10)
@@ -42,7 +42,7 @@ class BoundingBoxTest < ActiveSupport::TestCase
   def test_good_bbox_from_string
     @good_bbox.each do |string|
       bbox = BoundingBox.from_s(string)
-      array = string.split(',').collect(&:to_f)
+      array = string.split(",").collect(&:to_f)
       check_bbox(bbox, array)
     end
   end
@@ -57,14 +57,14 @@ class BoundingBoxTest < ActiveSupport::TestCase
   def test_good_bbox_from_params
     @good_bbox.each do |string|
       bbox = BoundingBox.from_bbox_params(:bbox => string)
-      array = string.split(',').collect(&:to_f)
+      array = string.split(",").collect(&:to_f)
       check_bbox(bbox, array)
     end
   end
 
   def test_good_bbox_from_lon_lat_params
     @good_bbox.each do |string|
-      array = string.split(',')
+      array = string.split(",")
       bbox = BoundingBox.from_lon_lat_params(:minlon => array[0], :minlat => array[1], :maxlon => array[2], :maxlat => array[3])
       check_bbox(bbox, array.collect(&:to_f))
     end
@@ -79,7 +79,7 @@ class BoundingBoxTest < ActiveSupport::TestCase
 
   def test_good_bbox_from_new
     @good_bbox.each do |string|
-      array = string.split(',')
+      array = string.split(",")
       bbox = BoundingBox.new(array[0], array[1], array[2], array[3])
       check_bbox(bbox, array.collect(&:to_f))
     end
@@ -144,7 +144,6 @@ class BoundingBoxTest < ActiveSupport::TestCase
   end
 
   def test_expand_max_lat_with_margin
-    bbox = @bbox_expand
     @expand_max_lat_array.each_with_index do |array_string, index|
       check_expand(@bbox_expand_minus_two, array_string, 1, @expand_max_lat_margin_response[index])
     end
@@ -210,14 +209,18 @@ class BoundingBoxTest < ActiveSupport::TestCase
     end
   end
 
-  def test_bbox_area
+  def test_good_bbox_area
     @good_bbox.each do |string|
       bbox = BoundingBox.from_s(string)
-      array = string.split(',')
+      array = string.split(",")
       assert_equal ((array[2].to_f - array[0].to_f) * (array[3].to_f - array[1].to_f)), bbox.area
     end
   end
 
+  def test_nil_bbox_area
+    assert_equal 0, @bbox_from_nils.area
+  end
+
   def test_complete
     assert !@bbox_from_nils.complete?, "should contain a nil"
     assert @bbox_from_string.complete?, "should not contain a nil"
@@ -225,28 +228,28 @@ class BoundingBoxTest < ActiveSupport::TestCase
 
   def test_centre_lon
     @good_bbox.each do |bbox_string|
-      array = bbox_string.split(',')
+      array = bbox_string.split(",")
       assert_equal ((array[0].to_f + array[2].to_f) / 2.0), BoundingBox.from_s(bbox_string).centre_lon
     end
   end
 
   def test_centre_lat
     @good_bbox.each do |bbox_string|
-      array = bbox_string.split(',')
+      array = bbox_string.split(",")
       assert_equal ((array[1].to_f + array[3].to_f) / 2.0), BoundingBox.from_s(bbox_string).centre_lat
     end
   end
 
   def test_width
     @good_bbox.each do |bbox_string|
-      array = bbox_string.split(',')
+      array = bbox_string.split(",")
       assert_equal (array[2].to_f - array[0].to_f), BoundingBox.from_s(bbox_string).width
     end
   end
 
   def test_height
     @good_bbox.each do |bbox_string|
-      array = bbox_string.split(',')
+      array = bbox_string.split(",")
       assert_equal (array[3].to_f - array[1].to_f), BoundingBox.from_s(bbox_string).height
     end
   end
@@ -262,19 +265,19 @@ class BoundingBoxTest < ActiveSupport::TestCase
   def test_add_bounds_to_no_underscore
     bounds = @bbox_from_string.add_bounds_to({})
     assert_equal 4, bounds.size
-    assert_equal @min_lon.to_s, bounds['minlon']
-    assert_equal @min_lat.to_s, bounds['minlat']
-    assert_equal @max_lon.to_s, bounds['maxlon']
-    assert_equal @max_lat.to_s, bounds['maxlat']
+    assert_equal @min_lon.to_s, bounds["minlon"]
+    assert_equal @min_lat.to_s, bounds["minlat"]
+    assert_equal @max_lon.to_s, bounds["maxlon"]
+    assert_equal @max_lat.to_s, bounds["maxlat"]
   end
 
   def test_add_bounds_to_with_underscore
-    bounds = @bbox_from_string.add_bounds_to({}, '_')
+    bounds = @bbox_from_string.add_bounds_to({}, "_")
     assert_equal 4, bounds.size
-    assert_equal @min_lon.to_s, bounds['min_lon']
-    assert_equal @min_lat.to_s, bounds['min_lat']
-    assert_equal @max_lon.to_s, bounds['max_lon']
-    assert_equal @max_lat.to_s, bounds['max_lat']
+    assert_equal @min_lon.to_s, bounds["min_lon"]
+    assert_equal @min_lat.to_s, bounds["min_lat"]
+    assert_equal @max_lon.to_s, bounds["max_lon"]
+    assert_equal @max_lat.to_s, bounds["max_lat"]
   end
 
   def test_to_scaled
@@ -302,16 +305,16 @@ class BoundingBoxTest < ActiveSupport::TestCase
   private
 
   def check_expand(bbox, array_string, margin = 0, result = nil)
-    array = array_string.split(',').collect(&:to_f)
+    array = array_string.split(",").collect(&:to_f)
     result = array unless result
     bbox.expand!(BoundingBox.new(array[0], array[1], array[2], array[3]), margin)
     check_bbox(bbox, result)
   end
 
   def check_bbox(bbox, result)
-    assert_equal result[0], bbox.min_lon, 'min_lon'
-    assert_equal result[1], bbox.min_lat, 'min_lat'
-    assert_equal result[2], bbox.max_lon, 'max_lon'
-    assert_equal result[3], bbox.max_lat, 'max_lat'
+    assert_equal_allowing_nil result[0], bbox.min_lon, "min_lon"
+    assert_equal_allowing_nil result[1], bbox.min_lat, "min_lat"
+    assert_equal_allowing_nil result[2], bbox.max_lon, "max_lon"
+    assert_equal_allowing_nil result[3], bbox.max_lat, "max_lat"
   end
 end