from datetime import datetime as dt from retrosheet_data import date_math, weeks_between, date_from_int def test_addition(): start_date = '20240101' assert date_math(start_date, '+', year_delta=1) == '20250101' assert date_math(start_date, '+', month_delta=2) == '20240301' assert date_math(start_date, '+', day_delta=9) == '20240110' assert date_math(start_date, '+', year_delta=1, month_delta=1, day_delta=1) == '20250202' start_date = '20241201' assert date_math(start_date, '+', month_delta=1) == '20250101' assert date_math(start_date, '+', year_delta=2, month_delta=1) == '20270101' assert date_math(start_date, '+', year_delta=2, month_delta=1, day_delta=10) == '20270111' def test_subtraction(): start_date = '20241201' assert date_math(start_date, '-', year_delta=1) == '20231201' assert date_math(start_date, '-', month_delta=2) == '20241001' assert date_math(start_date, '-', day_delta=1) == '20241130' assert date_math(start_date, '-', year_delta=1, month_delta=1, day_delta=1) == '20231031' start_date = '20240101' assert date_math(start_date, '-', month_delta=2) == '20231101' assert date_math(start_date, '-', day_delta=2) == '20231230' def test_date_from_int(): assert date_from_int('20241201') == dt(2024, 12, 1) def test_weeks_between(): assert weeks_between('20241201', '20241214') == 2 assert weeks_between('20241001', '20251001') == 52 assert weeks_between('20251001', '20241001') == 52