Spaces:
Runtime error
Runtime error
| """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)) | |