"""Reproduce the fictional elapsed-time exercise; Python standard library only."""
import csv, hashlib, json, statistics
from pathlib import Path
path = Path(__file__).with_name("elapsed-times.csv")
groups = {}
for row in csv.DictReader(path.open(encoding="utf-8")):
    groups.setdefault(row["period"], []).append(float(row["elapsed_minutes"]))
result = {"nature": "fictional-teaching-example", "unit": "elapsed minutes", "lateRule": ">20 minutes", "csvSha256": hashlib.sha256(path.read_bytes()).hexdigest(), "periods": {}}
for period, values in groups.items():
    assert len(values) == 10 and all(x >= 0 for x in values)
    result["periods"][period] = {"n": len(values), "total": sum(values), "mean": statistics.mean(values), "median": statistics.median(values), "maximum": max(values), "over20": sum(x > 20 for x in values)}
print(json.dumps(result, indent=2))
