def test_calculate_as_of_times_one_day_freq(): expected_result = [ datetime.datetime(2011, 1, 1, 0, 0), datetime.datetime(2011, 1, 2, 0, 0), datetime.datetime(2011, 1, 3, 0, 0), datetime.datetime(2011, 1, 4, 0, 0), datetime.datetime(2011, 1, 5, 0, 0), datetime.datetime(2011, 1, 6, 0, 0), datetime.datetime(2011, 1, 7, 0, 0), datetime.datetime(2011, 1, 8, 0, 0), datetime.datetime(2011, 1, 9, 0, 0), datetime.datetime(2011, 1, 10, 0, 0), datetime.datetime(2011, 1, 11, 0, 0), ] chopper = Timechop( feature_start_time=datetime.datetime(1990, 1, 1, 0, 0), feature_end_time=datetime.datetime(2012, 1, 1, 0, 0), label_start_time=datetime.datetime(2010, 1, 1, 0, 0), label_end_time=datetime.datetime(2012, 1, 1, 0, 0), model_update_frequency="1 year", training_as_of_date_frequencies=["1 days"], test_as_of_date_frequencies=["7 days"], max_training_histories=["10 days", "1 year"], test_durations=["1 month"], test_label_timespans=["1 day"], training_label_timespans=["3 months"], ) result = chopper.calculate_as_of_times( as_of_start_limit=datetime.datetime(2011, 1, 1, 0, 0), as_of_end_limit=datetime.datetime(2011, 1, 11, 0, 0), data_frequency=convert_str_to_relativedelta("1 days"), ) assert result == expected_result
def test_calculate_as_of_times_three_day_freq(): expected_result = [ datetime.datetime(2011, 1, 1, 0, 0), datetime.datetime(2011, 1, 4, 0, 0), datetime.datetime(2011, 1, 7, 0, 0), datetime.datetime(2011, 1, 10, 0, 0), ] chopper = Timechop( feature_start_time=datetime.datetime(1990, 1, 1, 0, 0), feature_end_time=datetime.datetime(2012, 1, 1, 0, 0), label_start_time=datetime.datetime(2010, 1, 1, 0, 0), label_end_time=datetime.datetime(2012, 1, 1, 0, 0), model_update_frequency='1 year', training_as_of_date_frequencies=['1 days'], test_as_of_date_frequencies=['7 days'], max_training_histories=['10 days', '1 year'], test_durations=['1 month'], test_label_timespans=['1 day'], training_label_timespans=['3 months'] ) result = chopper.calculate_as_of_times( as_of_start_limit=datetime.datetime(2011, 1, 1, 0, 0), as_of_end_limit=datetime.datetime(2011, 1, 11, 0, 0), data_frequency=convert_str_to_relativedelta('3 days'), forward=True ) assert result == expected_result