def test_days_in_month_december(calendar): if calendar == '360_day': expected = 30 else: expected = 31 date_type = get_date_type(calendar) reference = date_type(1, 12, 5) assert _days_in_month(reference) == expected
def test_onOffset_month_or_year_end( calendar, year_month_args, sub_day_args, offset): date_type = get_date_type(calendar) reference_args = year_month_args + (1,) reference = date_type(*reference_args) date_args = year_month_args + (_days_in_month(reference),) + sub_day_args date = date_type(*date_args) result = offset.onOffset(date) assert result
def test_add_year_end_onOffset( calendar, initial_year_month, initial_sub_day, offset, expected_year_month, expected_sub_day ): date_type = get_date_type(calendar) reference_args = initial_year_month + (1,) reference = date_type(*reference_args) initial_date_args = (initial_year_month + (_days_in_month(reference),) + initial_sub_day) initial = date_type(*initial_date_args) result = initial + offset reference_args = expected_year_month + (1,) reference = date_type(*reference_args) # Here the days at the end of each month varies based on the calendar used expected_date_args = (expected_year_month + (_days_in_month(reference),) + expected_sub_day) expected = date_type(*expected_date_args) assert result == expected
def test_rollback(calendar, offset, initial_date_args, partial_expected_date_args): date_type = get_date_type(calendar) initial = date_type(*initial_date_args) if isinstance(offset, (MonthBegin, YearBegin)): expected_date_args = partial_expected_date_args + (1,) elif isinstance(offset, (MonthEnd, YearEnd)): reference_args = partial_expected_date_args + (1,) reference = date_type(*reference_args) expected_date_args = (partial_expected_date_args + (_days_in_month(reference),)) else: expected_date_args = partial_expected_date_args expected = date_type(*expected_date_args) result = offset.rollback(initial) assert result == expected
def test_rollforward(calendar, offset, initial_date_args, partial_expected_date_args): date_type = get_date_type(calendar) initial = date_type(*initial_date_args) if isinstance(offset, (MonthBegin, YearBegin)): expected_date_args = partial_expected_date_args + (1, ) elif isinstance(offset, (MonthEnd, YearEnd)): reference_args = partial_expected_date_args + (1, ) reference = date_type(*reference_args) expected_date_args = (partial_expected_date_args + (_days_in_month(reference), )) else: expected_date_args = partial_expected_date_args expected = date_type(*expected_date_args) result = offset.rollforward(initial) assert result == expected
def test_days_in_month_non_december(calendar): date_type = get_date_type(calendar) reference = date_type(1, 4, 1) assert _days_in_month(reference) == 30
def test_days_in_month_non_december(calendar): date_type = get_date_type(calendar) reference = date_type(1, 4, 1) assert _days_in_month(reference) == 30