def test_fractional_timer(): N = 10 def check_fraction(timer, ft): # The running fraction should be approximately equal to the # sum of last N "measurement" intervals over the sum of last # 2N intervals (not 2N - 1 or 2N + 1) actual = ft.running_fraction expected = sum(timer.durations[1][-N:]) / ( sum(timer.durations[0][-N:] + timer.durations[1][-N:])) assert actual == pytest.approx(expected) timer = RandomTimer() ft = FractionalTimer(n_samples=N, timer=timer) for i in range(N): ft.start_timing() ft.stop_timing() assert len(timer.timings) == N * 2 assert ft.running_fraction is None ft.start_timing() ft.stop_timing() assert len(timer.timings) == (N + 1) * 2 assert ft.running_fraction is not None check_fraction(timer, ft) for i in range(N * 10): ft.start_timing() ft.stop_timing() check_fraction(timer, ft)
def test_fractional_timer(): N = 10 def check_fraction(timer, ft): # The running fraction should be approximately equal to the # sum of last N "measurement" intervals over the sum of last # 2N intervals (not 2N - 1 or 2N + 1) actual = ft.running_fraction expected = (sum(timer.durations[1][-N:]) / (sum(timer.durations[0][-N:] + timer.durations[1][-N:]))) assert actual == pytest.approx(expected) timer = RandomTimer() ft = FractionalTimer(n_samples=N, timer=timer) for i in range(N): ft.start_timing() ft.stop_timing() assert len(timer.timings) == N * 2 assert ft.running_fraction is None ft.start_timing() ft.stop_timing() assert len(timer.timings) == (N + 1) * 2 assert ft.running_fraction is not None check_fraction(timer, ft) for i in range(N * 10): ft.start_timing() ft.stop_timing() check_fraction(timer, ft)