def print_stats(func: Callable[[int], int], input_args: List[int]):
if not input_args:
return
min_value_elapsed, min_value_result = 0, 0
max_value_elapsed, max_value_result = 0, 0
elapsed_sum = 0
result_sum = 0
counter = len(input_args)
for input_arg in input_args:
start = time.perf_counter()
result = func(input_arg)
elapsed = time.time() - start
min_value_elapsed = min(elapsed, min_value_elapsed)
max_value_elapsed = max(elapsed, max_value_elapsed)
elapsed_sum += elapsed
min_value_result = min(result, min_value_result)
max_value_result = max(result, max_value_result)
result_sum += result
print(
"Evaluation time min/avg/max: {}/{}/{}".format(
min_value_elapsed,
elapsed_sum / counter,
max_value_elapsed,
)
)
print(
"Result min/avg/max: {}/{}/{}".format(
min_value_result,
result_sum / counter,
max_value_result,
)
)