Source code for n3fit.tests.test_stopwatch

""" Tests the stopwatch does what is supposed to do """

from n3fit.stopwatch import StopWatch


[docs]def time_comparer(internal_dict, computed_dict, base_time): for key, timing in internal_dict.items(): diff = timing - base_time computed = computed_dict[key] assert computed == diff
[docs]def test_register_times(): watch = StopWatch() watch.register_times("now") time_dict = watch.stop() # Check that the internal times are consistent internal_cputimes = watch._cputimes internal_walltimes = watch._walltimes start_cpu, start_wall = watch.get_times() time_comparer(internal_cputimes, time_dict["cputime"], start_cpu) time_comparer(internal_walltimes, time_dict["walltime"], start_wall)
[docs]def test_register_ref(): base1 = "p1" base2 = "p2" watch = StopWatch() watch.register_times(base1) watch.register_ref(base2, base1) time_dict = watch.stop() # Get the absolute times of the bases we got b1_cpu, b1_wall = watch.get_times(base1) b2_cpu, b2_wall = watch.get_times(base2) # Compute the differences cpu_diff = b2_cpu - b1_cpu wall_diff = b2_wall - b1_wall # Check that the watch got the same keyname = f"{base1}_to_{base2}" assert time_dict["cputime"][keyname] == cpu_diff assert time_dict["walltime"][keyname] == wall_diff