27 lines
1.2 KiB
Python
27 lines
1.2 KiB
Python
import datetime
|
|
import dates
|
|
from dates import Precision
|
|
|
|
def test_easter_known_years():
|
|
# Anonymous Gregorian algorithm — verified against published tables
|
|
assert dates.easter(2024) == datetime.date(2024, 3, 31)
|
|
assert dates.easter(2000) == datetime.date(2000, 4, 23)
|
|
assert dates.easter(1922) == datetime.date(1922, 4, 16)
|
|
assert dates.easter(1888) == datetime.date(1888, 4, 1)
|
|
|
|
def test_resolve_feast_movable():
|
|
assert dates.resolve_feast_or_season("Pfingsten", 1922) == ("1922-06-04", Precision.DAY)
|
|
assert dates.resolve_feast_or_season("Ostern", 2024) == ("2024-03-31", Precision.DAY)
|
|
assert dates.resolve_feast_or_season("Pfingstmontag", 1922) == ("1922-06-05", Precision.DAY)
|
|
|
|
def test_resolve_feast_fixed():
|
|
assert dates.resolve_feast_or_season("Weihnachten", 1900) == ("1900-12-25", Precision.DAY)
|
|
assert dates.resolve_feast_or_season("Neujahr", 1910) == ("1910-01-01", Precision.DAY)
|
|
|
|
def test_resolve_season():
|
|
assert dates.resolve_feast_or_season("Herbst", 1913) == ("1913-10-01", Precision.SEASON)
|
|
assert dates.resolve_feast_or_season("Sommer", 1910) == ("1910-07-01", Precision.SEASON)
|
|
|
|
def test_resolve_unknown_token_returns_none():
|
|
assert dates.resolve_feast_or_season("Freitag", 1919) is None
|