"""Do the section-7 records depend on the projection's multiplier? The plain projection's canonical total is 2806 for every multiplier from 1.25 to 4 (measure_budget_factor.py). The records 2527 (shape reading, safe) and 2523 (defect reading, projection) are quoted with the scheduled projection; whether THEY are flat in the multiplier has to be measured, not inferred from the plain rule. python -u measure_records_vs_multiplier.py """ from __future__ import annotations from simroot.pure import pure_root from stage12_validation import load, per_problem, totals FACTORS = (1.25, 1.5, 2.0, 3.0, 4.0) RECORDS = { "shape reading (2527)": dict(similarity="ratio", scale="derived3", guard="safe", prestep="slope", points="shape"), "defect reading (2523)": dict(similarity="ratio", scale="derived3", guard="project", prestep="defect"), "far end by dissimilarity (5511)": dict(similarity="ratio", scale="derived3", guard="project", prestep="slope", direction="dissimilar"), } def main(): probs = load() out = {} print(f"{'configuration':<34} " + " ".join(f"{f:>13.2f}" for f in FACTORS)) for name, cfg in RECORDS.items(): cells = [] out[name] = {} for fac in FACTORS: p = per_problem(lambda f, a, b, xt, mx, _c=cfg, _f=fac: pure_root( f, a, b, xt, mx, budget_factor=_f, **_c), probs, 200, criterion="sign") t, _ok = totals(p, probs) out[name][fac] = (t["APS"], t["CHA"]) cells.append(f"{t['APS']:>6d}/{t['CHA']:<6d}") print(f"{name:<34} " + " ".join(cells)) print("\ncells are APS/CHA totals") return out if __name__ == "__main__": main()