))
print()
for (f, sl) in scenarios:
- tl = [s["sc"]["time"] for s in sl if "sc" in s and "time" in s["sc"]]
- if len(tl) == 0:
- tl_mean = inf
- tl_std = inf
- tl_max = inf
- tl_min = -inf
- else:
- tl_mean = sum(tl) / len(tl)
- tl_tmp = [(x - tl_mean)**2 for x in tl]
- tl_std = (sum(tl_tmp) / len(tl_tmp))**0.5
- tl_max = max(tl)
- tl_min = min(tl)
- cl = [s["sc"]["cost"] for s in sl if "sc" in s and "cost" in s["sc"]]
- if len(cl) == 0:
- cl_mean = -inf
- cl_std = inf
- cl_max = inf
- cl_min = -inf
- else:
- cl_mean = sum(cl) / len(cl)
- cl_tmp = [(x - cl_mean)**2 for x in cl]
- cl_std = (sum(cl_tmp) / len(cl_tmp))**0.5
- cl_max = max(cl)
- cl_min = min(cl)
+ tl = compute_stats(sl, "time")
+ cl = compute_stats(sl, "cost")
print(gos().format(
- 100 * (len(sl) - len(tl)) / len(sl),
+ tl["err"],
f,
- tl_max,
- tl_min,
- tl_mean,
- tl_std,
- cl_max,
- cl_min,
- cl_mean,
- cl_std,
+ tl["max"],
+ tl["min"],
+ tl["mean"],
+ tl["std"],
+ cl["max"],
+ cl["min"],
+ cl["mean"],
+ cl["std"],
))