Coverage for tests\test_noiftimer.py: 100%
95 statements
« prev ^ index » next coverage.py v7.2.2, created at 2024-02-16 17:59 -0600
« prev ^ index » next coverage.py v7.2.2, created at 2024-02-16 17:59 -0600
1import time
3import pytest
5import noiftimer
8def test_noiftimer_start():
9 timer = noiftimer.Timer().start()
10 assert timer.start_time
11 assert timer.started is True
14def test_noiftimer_stop():
15 timer = noiftimer.Timer()
16 timer.start()
17 time.sleep(2)
18 timer.stop()
19 assert timer.stop_time
20 assert not timer.started
21 assert timer.elapsed > 1
22 assert timer.elapsed == timer.average_elapsed
25def test_noiftimer_reset():
26 timer = noiftimer.Timer()
27 timer.start()
28 for i in range(5):
29 timer.reset()
30 assert len(timer.history) == 5
33def test_noiftimer__save_elapsed_time():
34 averaging_window_length = 10
35 timer = noiftimer.Timer(averaging_window_length)
36 timer.start()
37 timer.stop()
38 assert len(timer.history) == 1
39 for _ in range(averaging_window_length * 2):
40 timer.start()
41 timer.stop()
42 assert len(timer.history) == averaging_window_length
45def test_noiftimer_current_elapsed_time():
46 timer = noiftimer.Timer().start()
47 time.sleep(1)
48 elapsed_time = timer.elapsed
49 time.sleep(1)
50 assert 0 < elapsed_time and elapsed_time < timer.elapsed
53def test__noiftimer__elapsed():
54 timer = noiftimer.Timer()
55 timer.start()
56 time.sleep(1)
57 elapsed = timer.elapsed
58 time.sleep(1)
59 assert 0 < elapsed and elapsed < timer.elapsed
60 time.sleep(1)
61 timer.stop()
62 assert timer.elapsed
65def test__noiftimer__elapsed_str():
66 timer = noiftimer.Timer()
67 timer.start()
68 time.sleep(1)
69 assert type(timer.elapsed_str) == str
70 assert timer.elapsed_str != ""
73@pytest.mark.parametrize(
74 "num_seconds,subsecond_resolution,expected",
75 [
76 (3600, False, "1h"),
77 (1800, False, "30m"),
78 (5400, False, "1h 30m"),
79 (
80 (29030400) + (604800 * 2) + (3600 * 3) + (44.250043),
81 True,
82 "1y 2w 3h 44s 250ms 43us",
83 ),
84 (
85 (29030400) + (604800 * 2) + (3600 * 3) + (44.250043),
86 False,
87 "1y 2w 3h 44s",
88 ),
89 ],
90)
91def test_noiftimer_format_time(
92 num_seconds: float, subsecond_resolution: bool, expected: float
93):
94 assert noiftimer.Timer.format_time(num_seconds, subsecond_resolution) == expected
97def test_noiftimer_get_stats():
98 timer = noiftimer.Timer()
99 timer.start()
100 time.sleep(1)
101 timer.stop()
102 assert timer.stats
105def test__noiftimer__time_it():
106 @noiftimer.time_it(10)
107 def zzz():
108 time.sleep(0.1)
109 return True
111 assert zzz()
114def test__pauser():
115 pauser = noiftimer.noiftimer._Pauser() # type: ignore
116 assert not pauser.paused
117 assert pauser.pause_total == 0
118 pauser.pause()
119 assert pauser.paused
120 time.sleep(1.1)
121 pauser.unpause()
122 assert not pauser.paused
123 assert pauser.pause_total > 1
124 pauser.reset()
125 assert pauser.pause_total == 0
128def test__Timer_pause():
129 timer = noiftimer.Timer().start()
130 time.sleep(1)
131 elapsed_time = timer.elapsed
132 timer.pause()
133 assert timer.is_paused
134 time.sleep(1)
135 # amount of time paused should be subtracted from elapsed
136 assert elapsed_time == timer.elapsed
137 timer.unpause()
138 time.sleep(1)
139 # pause tracker should be stopped
140 assert timer.elapsed > elapsed_time
141 timer.pause()
142 time.sleep(1)
143 timer.unpause()