The scenario matrix is large. Most endpoints are limited by a few scenarios, which is the dominant-corner idea applied to regression. A fast loop runs only those and tells you in minutes whether a batch helped; the full matrix runs overnight and checks the rest.
owned = {"s1": 420, "s2": 310, "s3": 180, "s4": 40, "s5": 25, "s6": 15, "s7": 6, "s8": 4} # endpoints whose worst slack is in each scenario
total = sum(owned.values())
assert total == 1000
order = sorted(owned, key=lambda s: -owned[s])
coverage = {}
running = 0
for i, s in enumerate(order, start=1):
running += owned[s]
coverage[i] = running / total
assert [round(coverage[i], 3) for i in (1, 2, 3, 4)] == [0.42, 0.73, 0.91, 0.95]
fast_set = order[:3]
assert fast_set == ["s1", "s2", "s3"]
uncovered = total - sum(owned[s] for s in fast_set)
assert uncovered == 90
print("PASS: fast set", fast_set, "covers", round(100 * coverage[3], 1), "% of owned endpoints; uncovered", uncovered)Scenarios in the fast set | Endpoints covered | Coverage |
|---|---|---|
1 (s1) | 420 | 42% |
2 (s1, s2) | 730 | 73% |
3 (s1 to s3) | 910 | 91% |
4 (s1 to s4) | 950 | 95% |
Three of eight scenarios own 910 of 1000 endpoints, so a fast loop of three scenarios covers 91% of endpoints by worst-slack ownership. The remaining 90 endpoints are owned by five other scenarios and are seen only in the full run. Coverage grows slowly after the third scenario, which is why the fast set stops there. Ownership changes as fixes land (a fixed scenario hands its endpoints to the next worst), so the table is refreshed regularly.
Loop | Scenarios | When | Purpose |
|---|---|---|---|
Fast | The top few by ownership | After every batch | Quick feedback on progress |
Full | The whole signoff matrix | Nightly or on every milestone | Catches the endpoints the fast set does not own |
The fast set is derived from current ownership data and re-derived after large changes.
The uncovered fraction is stated, so nobody mistakes a fast result for a signoff one.
Failures that appear only in the full run are analysed: they show where the fast set is blind.
73%: the 270 endpoints owned by s3 to s8 are not seen until the full run.