#!/usr/bin/env python3
import csv
import statistics
import sys

path = sys.argv[1]
with open(path, newline='') as f:
    rows = list(csv.DictReader(f, delimiter='\t'))

metrics = ['usable_live_ratio', 'rss_live_ratio']
print('\t'.join(['allocator', 'mode', 'runs', *metrics]))
keys = sorted({(r['allocator'], r['mode']) for r in rows})
for alloc, mode in keys:
    group = [r for r in rows if r['allocator'] == alloc and r['mode'] == mode]
    vals = []
    for m in metrics:
        vals.append(f"{statistics.median(float(r[m]) for r in group):.2f}")
    print('\t'.join([alloc, mode, str(len(group)), *vals]))
