require File.dirname(__FILE__) + '/abstract_unit' class DateExtensionsTest < Test::Unit::TestCase def test_wday_from_monday assert_equal 0, d(9, 4).wday_from_monday assert_equal 4, d(9, 8).wday_from_monday assert_equal 6, d(9, 10).wday_from_monday end def test_rest_of_days_in_week assert_equal 5, d(9, 6).rest_of_days_in_week.size assert_equal 2, d(9, 9).rest_of_days_in_week.size assert_equal 1, d(9, 10).rest_of_days_in_week.size assert_equal 7, d(9, 11).rest_of_days_in_week.size assert_equal (5..10).map { |i| d(9, i) }, d(9, 5).rest_of_days_in_week end def test_start_of_next_week assert_equal d(9, 18).to_s, d(9, 17).start_of_next_week.to_s assert_equal d(9, 25), d(9, 19).start_of_next_week assert_equal d(9, 25), d(9, 18).start_of_next_week end def test_start_of_next_week_with_interval assert_equal d(9, 11), d(9, 1).start_of_next_week(2) assert_equal d(9, 25), d(9, 4).start_of_next_week(3) assert_equal d(10, 2), d(9, 13).start_of_next_week(3) end def test_start_of_next_month assert_equal d(10, 1), d(9, 10).start_of_next_month end def test_start_of_next_month_with_interval assert_equal d(11, 1), d(9, 10).start_of_next_month(2) assert_equal Date.new(2007, 1, 1), d(8, 22).start_of_next_month(5) assert_equal Date.new(2010, 6, 1), d(11, 14).start_of_next_month(43) end def test_start_of_next_year assert_equal Date.new(2007, 1, 1), d(9, 9).start_of_next_year end def test_start_of_next_year_with_interval assert_equal Date.new(2009, 1, 1), d(9, 9).start_of_next_year(3) end def test_day_occurrence_range assert_equal 1..7, d(9, 9).day_occurrence_range(:first) assert_equal 8..14, d(9, 9).day_occurrence_range(:second) assert_equal 15..21, d(9, 9).day_occurrence_range(:third) assert_equal 22..28, d(9, 9).day_occurrence_range(:fourth) assert_equal 24..30, d(9, 9).day_occurrence_range(:last) end def test_day_occurrences assert_equal [d(9, 8), d(9, 9), d(9, 10), d(9, 11), d(9, 12), d(9, 13), d(9, 14)], d(9, 9).day_occurrences(:second) end def test_weekday assert d(8, 1).weekday? assert !d(8, 5).weekday? end def test_days_in_month assert_equal 30, d(9, 9).days_in_month assert_equal 28, d(2, 1).days_in_month assert_equal 29, Date.new(2004, 2, 1).days_in_month assert_equal 31, d(2000, 3, 1).days_in_month end end