allow stopwatch to return averages

fix AOCDay._submit()
This commit is contained in:
Stefan Harmuth 2021-12-28 21:11:07 +01:00
parent 082c61beca
commit 6b5d3de95b
2 changed files with 9 additions and 5 deletions

View File

@ -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(

View File

@ -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)