spec/lib/aixm/xy_spec.rb in aixm-0.1.3 vs spec/lib/aixm/xy_spec.rb in aixm-0.2.0

- old
+ new

@@ -1,130 +1,136 @@ require_relative '../../spec_helper' describe AIXM::XY do describe :initialize do it "must parse valid DD" do - subject = AIXM::XY.new(lat: 11.2233, long: 22.3344) + subject = AIXM.xy(lat: 11.2233, long: 22.3344) subject.lat.must_equal 11.2233 subject.long.must_equal 22.3344 end it "must parse valid DMS N/E" do - subject = AIXM::XY.new(lat: %q(11°22'33"N), long: %q(22°33'44"E)) + subject = AIXM.xy(lat: %q(11°22'33"N), long: %q(22°33'44"E)) subject.lat.must_equal 11.37583333 subject.long.must_equal 22.56222222 end it "must parse valid DMS S/W" do - subject = AIXM::XY.new(lat: %q(11°22'33"S), long: %q(22°33'44"W)) + subject = AIXM.xy(lat: %q(11°22'33"S), long: %q(22°33'44"W)) subject.lat.must_equal(-11.37583333) subject.long.must_equal(-22.56222222) end it "won't parse invalid latitude" do - -> { AIXM::XY.new(lat: 91, long: 22.3344) }.must_raise ArgumentError + -> { AIXM.xy(lat: 91, long: 22.3344) }.must_raise ArgumentError end it "won't parse invalid longitude" do - -> { AIXM::XY.new(lat: 11.2233, long: 181) }.must_raise ArgumentError + -> { AIXM.xy(lat: 11.2233, long: 181) }.must_raise ArgumentError end it "won't parse invalid DMS" do - -> { AIXM::XY.new(lat: "foo", long: "bar") }.must_raise ArgumentError + -> { AIXM.xy(lat: "foo", long: "bar") }.must_raise ArgumentError end end describe :lat do context "north" do subject do - AIXM::XY.new(lat: 1.1234, long: 0) + AIXM.xy(lat: 1.1234, long: 0) end it "must format DD (default) correctly" do subject.lat.must_equal 1.1234 end it "must format AIXM correctly" do - subject.lat(:AIXM).must_equal %q(010724.24N) + subject.lat(:aixm).must_equal %q(010724.24N) end it "must format OFM correctly" do - subject.lat(:OFM).must_equal '1.12340000N' + subject.lat(:ofm).must_equal '1.12340000N' end end context "south" do subject do - AIXM::XY.new(lat: -1.1234, long: 0) + AIXM.xy(lat: -1.1234, long: 0) end it "must format DD (default) correctly" do subject.lat.must_equal(-1.1234) end it "must format AIXM correctly" do - subject.lat(:AIXM).must_equal %q(010724.24S) + subject.lat(:aixm).must_equal %q(010724.24S) end it "must format OFM correctly" do - subject.lat(:OFM).must_equal '1.12340000S' + subject.lat(:ofm).must_equal '1.12340000S' end end end describe :long do context "east" do subject do - AIXM::XY.new(lat: 0, long: 1.1234) + AIXM.xy(lat: 0, long: 1.1234) end it "must format DD (default) correctly" do subject.long.must_equal 1.1234 end it "must format AIXM correctly" do - subject.long(:AIXM).must_equal %q(0010724.24E) + subject.long(:aixm).must_equal %q(0010724.24E) end it "must format OFM correctly" do - subject.long(:OFM).must_equal '1.12340000E' + subject.long(:ofm).must_equal '1.12340000E' end end context "west" do subject do - AIXM::XY.new(lat: 0, long: -1.1234) + AIXM.xy(lat: 0, long: -1.1234) end it "must format DD (default) correctly" do subject.long.must_equal(-1.1234) end it "must format AIXM correctly" do - subject.long(:AIXM).must_equal %q(0010724.24W) + subject.long(:aixm).must_equal %q(0010724.24W) end it "must format OFM correctly" do - subject.long(:OFM).must_equal '1.12340000W' + subject.long(:ofm).must_equal '1.12340000W' end end end + describe :to_digest do + it "must return digest of payload" do + AIXM::Factory.xy.to_digest.must_equal 783044788 + end + end + describe :== do it "recognizes objects with identical latitude and longitude as equal" do - a = AIXM::XY.new(lat: "112233N", long: "0223344E") - b = AIXM::XY.new(lat: 11.37583333, long: 22.56222222) + a = AIXM.xy(lat: "112233N", long: "0223344E") + b = AIXM.xy(lat: 11.37583333, long: 22.56222222) a.must_equal b end it "recognizes objects with different latitude or longitude as unequal" do - a = AIXM::XY.new(lat: "112233.44N", long: "0223344.55E") - b = AIXM::XY.new(lat: 11, long: 22) + a = AIXM.xy(lat: "112233.44N", long: "0223344.55E") + b = AIXM.xy(lat: 11, long: 22) a.wont_equal b end it "recognizes objects of different class as unequal" do - a = AIXM::XY.new(lat: "112233.44N", long: "0223344.55E") + a = AIXM.xy(lat: "112233.44N", long: "0223344.55E") b = :oggy a.wont_equal b end end end