def bottleneck(budgets):
    units = {unit for demand, capacity, unit in budgets.values()}
    if len(units) != 1:
        raise ValueError("mixed dimensions")
    margins = {name: capacity - demand for name, (demand, capacity, unit) in budgets.items()}
    return min(margins, key=margins.get), margins
fixtures = {
    "timing":{"timing":(1.2,1.0,"us"),"routing":(.8,1.0,"us")},
    "routing":{"routing":(120,100,"edges"),"decoder":(900,1200,"edges")},
    "decoder":{"decoder":(1.3,1.0,"us"),"control":(.7,1.0,"us")},
    "failure":{"failure":(.012,.010,"probability"),"readout":(.004,.010,"probability")},
}
baseline = {name:bottleneck(case)[0] for name, case in fixtures.items()}
counterfactual = bottleneck({"routing":(90,100,"edges"),"decoder":(1300,1200,"edges")})
try:
    bottleneck({"time":(1,2,"us"),"load":(1,2,"watts")})
    raise AssertionError("mixed units accepted")
except ValueError:
    rejected = True
assert baseline == {name:name for name in fixtures} and counterfactual[0] == "decoder"
assert counterfactual[1]["decoder"] < 0 and rejected
print(f"PASS: 53 bottleneck evidence fixtures={baseline} changed={counterfactual[0]} mixed_units_rejected={rejected}")
