CBot / lichess-bot-master /test_bot /test_timer.py
BlueMoonBot's picture
Upload 67 files
76f79da verified
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))