VeloCT_Base / test_bot /test_timer.py
Taperx's picture
Deploy Base model with clean official lichess-bot folder
3014f14
Raw
History Blame Contribute Delete
2.71 kB
"""Test functions dedicated to time measurement and conversion."""
from datetime import timedelta
from lib import timer
def test_time_conversion() -> None:
"""Test conversion of time units."""
assert timer.msec(1000) == timedelta(milliseconds=1000)
assert timer.to_msec(timedelta(milliseconds=1000)) == 1000
assert timer.msec_str(timedelta(milliseconds=1000)) == "1000"
assert timer.seconds(1) == timedelta(seconds=1)
assert timer.to_seconds(timedelta(seconds=1)) == 1
assert timer.sec_str(timedelta(seconds=1)) == "1"
assert timer.minutes(1) == timedelta(minutes=1)
assert timer.hours(1) == timedelta(hours=1)
assert timer.days(1) == timedelta(days=1)
assert timer.years(1) == timedelta(days=365)
assert timer.to_msec(timer.seconds(1)) == 1000
assert timer.to_seconds(timer.minutes(1)) == 60
assert timer.to_seconds(timer.hours(1)) == 60*60
assert timer.to_seconds(timer.days(1)) == 24*60*60
assert timer.to_seconds(timer.years(1)) == 365*24*60*60
def test_init() -> None:
"""Test Timer class init."""
t = timer.Timer()
assert t.duration == timedelta(0)
assert t.starting_time is not None
duration = timedelta(seconds=10)
t = timer.Timer(duration)
assert t.duration == duration
assert t.starting_time is not None
def test_is_expired() -> None:
"""Test timer expiration."""
t = timer.Timer(timedelta(seconds=10))
assert not t.is_expired()
t = timer.Timer(timedelta(seconds=0))
assert t.is_expired()
t = timer.Timer(timedelta(seconds=10))
t.reset()
t.starting_time -= 10
assert t.is_expired()
def test_reset() -> None:
"""Test timer reset."""
t = timer.Timer(timedelta(seconds=10))
t.reset()
assert t.starting_time is not None
assert timer.sec_str(t.time_since_reset()) == timer.sec_str(timedelta(0))
def test_time() -> None:
"""Test time measurement, expiration, and time until expiration."""
t = timer.Timer(timedelta(seconds=10))
t.starting_time -= 5
assert timer.sec_str(t.time_since_reset()) == timer.sec_str(timedelta(seconds=5))
t = timer.Timer(timedelta(seconds=10))
t.starting_time -= 5
assert timer.sec_str(t.time_until_expiration()) == timer.sec_str(timedelta(seconds=5))
t = timer.Timer(timedelta(seconds=10))
t.starting_time -= 15 # Simulate time passing
assert t.time_until_expiration() == timedelta(0)
t = timer.Timer(timedelta(seconds=10))
t.starting_time -= 15
assert t.time_until_expiration() == timedelta(0)
t = timer.Timer(timedelta(seconds=10))
t.starting_time -= 5
assert timer.sec_str(t.time_until_expiration()) == timer.sec_str(timedelta(seconds=5))