diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-31 13:28:48 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-31 13:28:48 +0000 |
commit | 899d2c14b055e180308396b5ef36397c0737f6f7 (patch) | |
tree | 09310a78d95c8acd0652f3be4c84359870f8d875 /test/date | |
parent | 3b3cf8753de031cdd109c5a7bd18ca6d18f95e01 (diff) |
* ext/date/date_core.c: use simple/complex mode instead of light/right mode.
* test/date/*.rb: followed the above changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/date')
-rw-r--r-- | test/date/test_date_new.rb | 9 | ||||
-rw-r--r-- | test/date/test_date_strftime.rb | 6 | ||||
-rw-r--r-- | test/date/test_switch_hitter.rb | 134 |
3 files changed, 134 insertions, 15 deletions
diff --git a/test/date/test_date_new.rb b/test/date/test_date_new.rb index da63c2248e..0bbbfee44b 100644 --- a/test/date/test_date_new.rb +++ b/test/date/test_date_new.rb @@ -68,9 +68,6 @@ class TestDateNew < Test::Unit::TestCase 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 @@ -130,9 +127,6 @@ class TestDateNew < Test::Unit::TestCase 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 @@ -200,9 +194,6 @@ class TestDateNew < Test::Unit::TestCase 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 diff --git a/test/date/test_date_strftime.rb b/test/date/test_date_strftime.rb index 72e164c3e5..61a82a17f5 100644 --- a/test/date/test_date_strftime.rb +++ b/test/date/test_date_strftime.rb @@ -184,8 +184,12 @@ class TestDateStrftime < Test::Unit::TestCase s = '2006-08-08T23:15:33' (-24..24).collect{|x| '%+.2d' % x}.each do |hh| %w(00 30).each do |mm| + r = hh + mm + if r[-4,4] == '2430' + r = '+0000' + end d = DateTime.parse(s + hh + mm) - assert_equal(hh + mm, d.strftime('%z')) + assert_equal(r, d.strftime('%z')) end end end diff --git a/test/date/test_switch_hitter.rb b/test/date/test_switch_hitter.rb index d309c8ee69..9500821b2b 100644 --- a/test/date/test_switch_hitter.rb +++ b/test/date/test_switch_hitter.rb @@ -235,6 +235,116 @@ class TestSH < Test::Unit::TestCase assert_equal(false, Date.new(2001,2,3) === Rational('4903886/2')) end + def test_period + # -5000 + d = Date.new(-5000,1,1) + assert_equal([-5000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5001, 11, 22, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(-5000,1,1,Date::JULIAN) + assert_equal([-5000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5001, 11, 22, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(-5000,1,1,Date::GREGORIAN) + assert_equal([-5000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([-5000, 2, 10, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-105192) + assert_equal([-5000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5001, 11, 22, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-105192,Date::JULIAN) + assert_equal([-5000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5001, 11, 22, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-105152,Date::GREGORIAN) + assert_equal([-5000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([-5000, 2, 10, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + # -5000000 + d = Date.new(-5_000_000,1,1) + assert_equal([-5_000_000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5_000_103, 4, 28, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(-5_000_000,1,1,Date::JULIAN) + assert_equal([-5_000_000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5_000_103, 4, 28, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(-5_000_000,1,1,Date::GREGORIAN) + assert_equal([-5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([-4_999_898, 9, 4, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-1824528942) + assert_equal([-5_000_000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5_000_103, 4, 28, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-1824528942,Date::JULIAN) + assert_equal([-5_000_000, 1, 1, 3], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([-5_000_103, 4, 28, 3], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(-1824491440,Date::GREGORIAN) + assert_equal([-5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([-4_999_898, 9, 4, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + # 5000000 + d = Date.new(5_000_000,1,1) + assert_equal([5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([4_999_897, 5, 3, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(5_000_000,1,1,Date::JULIAN) + assert_equal([5_000_000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([5_000_102, 9, 1, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.new(5_000_000,1,1,Date::GREGORIAN) + assert_equal([5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([4_999_897, 5, 3, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(1827933560) + assert_equal([5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([4_999_897, 5, 3, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(1827971058,Date::JULIAN) + assert_equal([5_000_000, 1, 1, 5], [d.year, d.mon, d.mday, d.wday]) + d2 = d.gregorian + assert_equal([5_000_102, 9, 1, 5], [d2.year, d2.mon, d2.mday, d.wday]) + + d = Date.jd(1827933560,Date::GREGORIAN) + assert_equal([5_000_000, 1, 1, 6], [d.year, d.mon, d.mday, d.wday]) + d2 = d.julian + assert_equal([4_999_897, 5, 3, 6], [d2.year, d2.mon, d2.mday, d.wday]) + + # dt + d = DateTime.new(-123456789,2,3,4,5,6,0) + assert_equal([-123456789, 2, 3, 4, 5, 6, 1], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.wday]) + d2 = d.gregorian + assert_equal([-123459325, 12, 27, 4, 5, 6, 1], + [d2.year, d2.mon, d2.mday, d2.hour, d2.min, d2.sec, d.wday]) + + d = DateTime.new(123456789,2,3,4,5,6,0) + assert_equal([123456789, 2, 3, 4, 5, 6, 5], + [d.year, d.mon, d.mday, d.hour, d.min, d.sec, d.wday]) + d2 = d.julian + assert_equal([123454254, 1, 19, 4, 5, 6, 5], + [d2.year, d2.mon, d2.mday, d2.hour, d2.min, d2.sec, d.wday]) + end + def test_marshal s = "\x04\bU:\tDate[\bU:\rRational[\ai\x03\xCF\xD3Ji\ai\x00o:\x13Date::Infinity\x06:\a@di\xFA" d = Marshal.load(s) @@ -245,11 +355,6 @@ class TestSH < Test::Unit::TestCase assert_equal(DateTime.new(2001,2,3,4,5,6,Rational(9,24),Date::GREGORIAN), d) end - def test_base - skip unless defined?(Date.test_all) - assert_equal(true, Date.test_all) - end - def test_taint h = Date._strptime('15:43+09:00', '%R%z') assert_equal(false, h[:zone].tainted?) @@ -277,4 +382,23 @@ class TestSH < Test::Unit::TestCase assert_equal(true, s.tainted?) end + def test_dup + d = Date.new(2001,2,3) + d2 = d.dup + assert_not_equal(d.object_id, d2.object_id) + assert_kind_of(Date, d2) + assert_equal(d, d2) + + d = DateTime.new(2001,2,3) + d2 = d.dup + assert_not_equal(d.object_id, d2.object_id) + assert_kind_of(DateTime, d2) + assert_equal(d, d2) + end + + def test_base + skip unless defined?(Date.test_all) + assert_equal(true, Date.test_all) + end + end |