test/unit/graticule/location_test.rb in graticule-0.1.3 vs test/unit/graticule/location_test.rb in graticule-0.2.0

- old
+ new

@@ -1,18 +1,23 @@ require File.dirname(__FILE__) + '/../../test_helper' module Graticule class LocationTest < Test::Unit::TestCase + def setup + @washington_dc = Location.new :latitude => 38.898748, :longitude => -77.037684, + :street => '1600 Pennsylvania Avenue, NW', :locality => 'Washington', + :region => 'DC', :postal_code => 20500, :country => 'US' + end + def test_distance_to - washington_dc = Location.new(:latitude => 38.898748, :longitude => -77.037684) chicago = Location.new(:latitude => 41.85, :longitude => -87.65) - assert_in_delta 594.820, washington_dc.distance_to(chicago), 1.0 + assert_in_delta 594.820, @washington_dc.distance_to(chicago), 1.0 end def test_responds_to - [:latitude, :longitude, :street, :city, :state, :zip, :country, :coordinates, :precision].each do |m| + [:latitude, :longitude, :street, :locality, :region, :postal_code, :country, :coordinates, :precision].each do |m| assert Location.new.respond_to?(m), "should respond to #{m}" end end def test_coordinates @@ -22,30 +27,40 @@ def test_equal assert_equal Location.new, Location.new attrs = {:latitude => 100.5389, :longitude => -147.5893, :street => '123 A Street', - :city => 'Somewhere', :state => 'NO', :zip => '12345', :country => 'USA', :precision => :address} + :locality => 'Somewhere', :region => 'NO', :postal_code => '12345', :country => 'USA', :precision => :address} assert_equal Location.new(attrs), Location.new(attrs) attrs.each do |k,v| assert_equal Location.new(k => v), Location.new(k => v) assert_not_equal Location.new, Location.new(k => v) assert_not_equal Location.new(attrs), Location.new(attrs.update(k => nil)) end end def test_antipode - washington_dc = Location.new(:latitude => 38.898748, :longitude => -77.037684) chicago = Location.new(:latitude => 41.85, :longitude => -87.65) - assert_equal [-38.898748, 102.962316], washington_dc.antipode.coordinates + assert_equal [-38.898748, 102.962316], @washington_dc.antipode.coordinates assert_equal [-41.85, 92.35], chicago.antipode.coordinates assert_equal [-41, -180], Graticule::Location.new(:latitude => 41, :longitude => 0).antipode.coordinates assert_equal [-41, 179], Graticule::Location.new(:latitude => 41, :longitude => -1).antipode.coordinates assert_equal [-41, -179], Graticule::Location.new(:latitude => 41, :longitude => 1).antipode.coordinates - assert_equal washington_dc.coordinates, washington_dc.antipode.antipode.coordinates + assert_equal @washington_dc.coordinates, @washington_dc.antipode.antipode.coordinates assert_equal chicago.coordinates, chicago.antipode.antipode.coordinates + end + + def test_to_s + assert_equal "1600 Pennsylvania Avenue, NW\nWashington, DC 20500 US", + @washington_dc.to_s + assert_equal "1600 Pennsylvania Avenue, NW\nWashington, DC 20500", + @washington_dc.to_s(:country => false) + assert_equal "1600 Pennsylvania Avenue, NW\nWashington, DC 20500", + @washington_dc.to_s(:country => false) + assert_equal "1600 Pennsylvania Avenue, NW\nWashington, DC 20500\nlatitude: 38.898748, longitude: -77.037684", + @washington_dc.to_s(:country => false, :coordinates => true) end end end \ No newline at end of file