56 lines
1.7 KiB
Python
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
|