#!/usr/bin/env python3
import data_lib
import sys

data = data_lib.Data(validate_versions=True)

def f(val):
    return (str(val)+"        ")[0:8]


for pipeline_name, pipeline in data.pipelines.items():
    print(pipeline_name)
    print("".join("=" for _ in pipeline_name))
    by_n = data_lib.group_by_n(pipeline)
    for n in sorted(by_n.keys()):
        d = by_n[n]
        scores = [ i.score/n for i in d]
        scores.sort()
        l = len(scores)
        avg = sum(scores) / l
        print(f"{n:8}: {len(scores):4}x {len(list(1 for i in d if i.error)):4}x-err     {f(avg)}  10%:{f(scores[l//10])} 90%:{f(scores[l-1-l//10])}")
        if any(i.mistakes is not None for i in d):
            scores = [ i.mistakes/n for i in d]
            scores.sort()
            l = len(scores)
            avg = sum(scores) / l
            print(f"                   mistakes:  {f(avg)}  10%:{f(scores[l//10])} 90%:{f(scores[l-1-l//10])}")
        for arg in sys.argv[1:]:
            scores = [ eval(arg) for i in d]
            scores.sort()
            l = len(scores)
            avg = sum(scores) / l
            print(f"{arg:30}{f(avg)}  10%:{f(scores[l//10])} 90%:{f(scores[l-1-l//10])}")


    print()