From 6b5d3de95b9fcd9768b670aee57f89edfabe02ee Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Tue, 28 Dec 2021 21:11:07 +0100 Subject: [PATCH] allow stopwatch to return averages fix AOCDay._submit() --- tools/aoc.py | 4 +--- tools/stopwatch.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/aoc.py b/tools/aoc.py index 85e2dc7..22fa9ba 100644 --- a/tools/aoc.py +++ b/tools/aoc.py @@ -46,7 +46,7 @@ class AOCDay: for _ in range(timeit_number): answer = self.part_func[part]() stopwatch.stop() - exec_time = str(stopwatch) + exec_time = stopwatch.avg_string(timeit_number) if solution is None: printSolution(self.day, part + 1, answer, solution, case_count, exec_time) @@ -92,7 +92,6 @@ class AOCDay: f.write(response.content) f.flush() - def _submit(self, part: int, answer: Any): answer_cache = JSONFile("answer_cache.json", create=True) print(answer_cache) @@ -121,7 +120,6 @@ class AOCDay: print("Your answer: %s" % answer) return - return print("Submitting %s as answer for %d part %d" % (answer, self.day, part)) session_id = open(".session", "r").readlines()[0].strip() response = requests.post( diff --git a/tools/stopwatch.py b/tools/stopwatch.py index bab00dd..c5940c1 100644 --- a/tools/stopwatch.py +++ b/tools/stopwatch.py @@ -24,12 +24,18 @@ class StopWatch: else: return self.stopped - self.started - def __str__(self): + def avg_elapsed(self, divider: int) -> float: + return self.elapsed() / divider + + def avg_string(self, divider: int) -> str: units = ['s', 'ms', 'µs', 'ns'] unit = 0 - elapsed = self.elapsed() + elapsed = self.avg_elapsed(divider) while elapsed < 1: elapsed *= 1000 unit += 1 return "%1.2f%s" % (elapsed, units[unit]) + + def __str__(self): + return self.avg_string(1)