mud/tests/test_timeofday.py

56 lines
1.7 KiB
Python

"""Tests for time-of-day system."""
from mudlib.timeofday import get_sky_description, get_time_period
def test_get_time_period_dawn():
assert get_time_period(5) == "dawn"
assert get_time_period(6) == "dawn"
def test_get_time_period_day():
assert get_time_period(7) == "day"
assert get_time_period(12) == "day"
assert get_time_period(17) == "day"
def test_get_time_period_dusk():
assert get_time_period(18) == "dusk"
assert get_time_period(19) == "dusk"
def test_get_time_period_night():
assert get_time_period(20) == "night"
assert get_time_period(21) == "night"
assert get_time_period(23) == "night"
assert get_time_period(0) == "night"
assert get_time_period(1) == "night"
assert get_time_period(4) == "night"
def test_get_sky_description_returns_non_empty():
for hour in range(24):
desc = get_sky_description(hour)
assert desc, f"hour {hour} returned empty description"
assert isinstance(desc, str)
def test_get_sky_description_differs_by_period():
dawn_desc = get_sky_description(5)
day_desc = get_sky_description(12)
dusk_desc = get_sky_description(18)
night_desc = get_sky_description(0)
# each period should have different descriptions
descriptions = {dawn_desc, day_desc, dusk_desc, night_desc}
assert len(descriptions) == 4, "periods should have distinct descriptions"
def test_get_sky_description_edge_cases():
# boundaries between periods
assert get_sky_description(0) # night start
assert get_sky_description(5) # dawn start
assert get_sky_description(7) # day start
assert get_sky_description(18) # dusk start
assert get_sky_description(20) # night start
assert get_sky_description(23) # night end