diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-28 10:06:13 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-28 10:06:13 +0000 |
commit | 0e395a600215e9060cd9915940caa789b92a275a (patch) | |
tree | f4dd180dc8689c250ef6912004e5f70d65d6c002 /test/date/test_date_new.rb | |
parent | f7aef0f7b1ad5fec79054ad532208d9430ec89aa (diff) |
* test/date/*.rb: imported a date test suite ruby 1.9 limited ed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/date/test_date_new.rb')
-rw-r--r-- | test/date/test_date_new.rb | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/test/date/test_date_new.rb b/test/date/test_date_new.rb new file mode 100644 index 0000000000..6c1e463474 --- /dev/null +++ b/test/date/test_date_new.rb @@ -0,0 +1,276 @@ +require 'test/unit' +require 'date' + +class TestDateNew < Test::Unit::TestCase + + def test_jd + d = Date.jd + dt = DateTime.jd + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d2 = Date.jd + dt2 = DateTime.jd + assert_equal(d, d2) + assert_equal(dt, dt2) + + d = Date.jd(0) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + d = DateTime.jd(0, 0,0,0, 0) + assert_equal([-4712, 1, 1, 0, 0, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.jd(0, 0,0,0, '+0900') + assert_equal([-4712, 1, 1, 0, 0, 0, 9.to_r/24], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + end + + def test_jd__ex + assert_raise(ArgumentError) do + DateTime.jd(0, 23,59,60,0) + end + end + + def test_ordinal + d = Date.ordinal + dt = DateTime.ordinal + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d2 = Date.ordinal + dt2 = DateTime.ordinal + assert_equal(d, d2) + assert_equal(dt, dt2) + + d = Date.ordinal(-4712,1) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + + d = Date.ordinal(-4712,1.0) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + + d = DateTime.ordinal(-4712,1, 0,0,0, 0) + assert_equal([-4712, 1, 1, 0, 0, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.ordinal(-4712,1, 0,0,0, '+0900') + assert_equal([-4712, 1, 1, 0, 0, 0, 9.to_r/24], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + end + + def test_ordinal__neg + d = Date.ordinal(-1,-1) + assert_equal([-1, 365], [d.year, d.yday]) + + d = DateTime.ordinal(-1,-1, -1,-1,-1, 0) + assert_equal([-1, 365, 23, 59, 59, 0], + [d.year, d.yday, d.hour, d.min, d.sec, d.offset]) + end + + def test_ordinal__ex + assert_raise(ArgumentError) do + Date.ordinal(2001,1.1) + end + assert_raise(ArgumentError) do + Date.ordinal(2001,366) + end + assert_raise(ArgumentError) do + DateTime.ordinal(2001,365, 23,59,60, 0) + end + end + + def test_civil + d = Date.civil + dt = DateTime.civil + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d2 = Date.civil + dt2 = DateTime.civil + assert_equal(d, d2) + assert_equal(dt, dt2) + + d = Date.civil(-4712,1,1) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + + d = Date.civil(-4712,1,1.0) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + + d = DateTime.civil(-4712,1,1, 0,0,0, 0) + assert_equal([-4712, 1, 1, 0, 0, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.civil(-4712,1,1, 0,0,0, '+0900') + assert_equal([-4712, 1, 1, 0, 0, 0, 9.to_r/24], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + + + d = DateTime.civil(2001,2,3 + 1.to_r/2) + assert_equal([2001, 2, 3, 12, 0, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.civil(2001,2,3, 4 + 1.to_r/2) + assert_equal([2001, 2, 3, 4, 30, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.civil(2001,2,3, 4,5 + 1.to_r/2) + assert_equal([2001, 2, 3, 4, 5, 30, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.civil(2001,2,3, 4,5,6 + 1.to_r/2) + assert_equal([2001, 2, 3, 4, 5, 6, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + assert_equal(1.to_r/2, d.sec_fraction) + end + + def test_civil__neg + d = Date.civil(-1,-1,-1) + assert_equal([-1, 12, 31], [d.year, d.mon, d.mday]) + + d = DateTime.civil(-1,-1,-1, -1,-1,-1, 0) + assert_equal([-1, 12, 31, 23, 59, 59, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + end + + def test_civil__ex + assert_raise(ArgumentError) do + Date.civil(2001,2,1.1) + end + assert_raise(ArgumentError) do + Date.civil(2001,2,29) + end + assert_raise(ArgumentError) do + DateTime.civil(2001,2,28, 23,59,60, 0) + end + assert_raise(ArgumentError) do + DateTime.civil(2001,2,28, 24,59,59, 0) + end + end + + def test_civil__reform + d = Date.jd(Date::ENGLAND, Date::ENGLAND) + dt = DateTime.jd(Date::ENGLAND, 0,0,0,0, Date::ENGLAND) + assert_equal([1752, 9, 14], [d.year, d.mon, d.mday]) + assert_equal([1752, 9, 14], [dt.year, dt.mon, dt.mday]) + d -= 1 + dt -= 1 + assert_equal([1752, 9, 2], [d.year, d.mon, d.mday]) + assert_equal([1752, 9, 2], [dt.year, dt.mon, dt.mday]) + + d = Date.jd(Date::ITALY, Date::ITALY) + dt = DateTime.jd(Date::ITALY, 0,0,0,0, Date::ITALY) + assert_equal([1582, 10, 15], [d.year, d.mon, d.mday]) + assert_equal([1582, 10, 15], [dt.year, dt.mon, dt.mday]) + d -= 1 + dt -= 1 + assert_equal([1582, 10, 4], [d.year, d.mon, d.mday]) + assert_equal([1582, 10, 4], [dt.year, dt.mon, dt.mday]) + end + + def test_commercial + d = Date.commercial + dt = DateTime.commercial + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d2 = Date.commercial + dt2 = DateTime.commercial + assert_equal(d, d2) + assert_equal(dt, dt2) + + d = Date.commercial(1582,40,5) + assert_equal([1582, 10, 15], [d.year, d.mon, d.mday]) + + d = Date.commercial(1582,40,5.0) + assert_equal([1582, 10, 15], [d.year, d.mon, d.mday]) + + d = DateTime.commercial(1582,40,5, 0,0,0, 0) + assert_equal([1582, 10, 15, 0, 0, 0, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + d = DateTime.commercial(1582,40,5, 0,0,0, '+0900') + assert_equal([1582, 10, 15, 0, 0, 0, 9.to_r/24], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + end + + def test_commercial__neg + d = Date.commercial(1998,-1,-1) + assert_equal([1999, 1, 3], [d.year, d.mon, d.mday]) + + d = DateTime.commercial(1998,-1,-1, -1,-1,-1, 0) + assert_equal([1999, 1, 3, 23, 59, 59, 0], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.offset]) + end + + def test_commercial__ex + assert_raise(ArgumentError) do + Date.commercial(1997,1,1.1) + end + assert_raise(ArgumentError) do + Date.commercial(1997,53,1) + end + assert_raise(ArgumentError) do + DateTime.commercial(1997,52,1, 23,59,60, 0) + end + end + + def test_weeknum + d = Date.__send__(:weeknum) + dt = DateTime.__send__(:weeknum) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d = Date.__send__(:weeknum, 2002,11,4, 0) + assert_equal(2452355, d.jd) + + d = DateTime.__send__(:weeknum, 2002,11,4, 0, 11,22,33) + assert_equal(2452355, d.jd) + assert_equal([11,22,33], [d.hour, d.min, d.sec]) + + assert_raise(ArgumentError) do + Date.__send__(:weeknum, 1999,53,0, 0) + end + assert_raise(ArgumentError) do + Date.__send__(:weeknum, 1999,-53,-1, 0) + end + end + + def test_nth_kday + d = Date.__send__(:nth_kday) + dt = DateTime.__send__(:nth_kday) + assert_equal([-4712, 1, 1], [d.year, d.mon, d.mday]) + assert_equal([-4712, 1, 1], [dt.year, dt.mon, dt.mday]) + assert_equal([0, 0, 0], [dt.hour, dt.min, dt.sec]) + + d = Date.__send__(:nth_kday, 1992,2, 5,6) + assert_equal(2448682, d.jd) + + d = DateTime.__send__(:nth_kday, 1992,2, 5,6, 11,22,33) + assert_equal(2448682, d.jd) + assert_equal([11,22,33], [d.hour, d.min, d.sec]) + + assert_raise(ArgumentError) do + Date.__send__(:nth_kday, 2006,5, 5,0) + end + assert_raise(ArgumentError) do + Date.__send__(:nth_kday, 2006,5, -5,0) + end + end + + def test_today + d = Date.today + t = Time.now + t2 = Time.utc(t.year, t.mon, t.mday) + t3 = Time.utc(d.year, d.mon, d.mday) + assert_in_delta(t2, t3, 10) + + assert_equal(false, DateTime.respond_to?(:today)) + end + + def test_now + assert_equal(false, Date.respond_to?(:now)) + + d = DateTime.now + t = Time.now + t2 = Time.local(d.year, d.mon, d.mday, d.hour, d.min, d.sec) + assert_in_delta(t, t2, 10) + end + +end |