FA-41866 / Listener lifecycle / Open access
A zero-capacity pause buffer retains every queued event · case 01
A zero-capacity pause buffer retains every queued event; the returned lifecycle plan violates the stated transition contract.
ROOT CAUSE
The retain decision in the pause-resume listener model is computed as s['queued'][-s['capacity']:], losing a required lifecycle condition.
VERIFIED REPAIR
Compute the retain decision from the complete contract: s['queued'][-s['capacity']:] if s['capacity']>0 and not s['closed'] else [].
Unsuccessful approach: The partial repair uses s['queued'][:s['capacity']] if not s['closed'] else []; a retained regression distinguishes it from the full transition.
Case contract
Plan pausing/resuming a subscription. A nested pause counter never underflows. While paused, buffer only if buffering was requested; otherwise count the dropped events. Resume drains in arrival order only when the last pause ends. A closed subscription neither buffers nor resumes. Overflow retains the newest bounded suffix. Inputs are finite state snapshots, including transitional and stale states; output fields are the exact independent actions/metadata defined by the corrected expression table. Numeric fixture capacities and counts vary with N. Field definitions, each independently computed from the input snapshot: depth = max(0,s['pauses']+int(s['pause'])-int(s['resume'])); hold = s['pauses']>0 and s['buffer'] and not s['closed'] and s['incoming'] is not None; resume = s['resume'] and s['pauses']==1 and not s['closed']; drain = list(s['queued']) if s['resume'] and s['pauses']==1 and not s['closed'] and not s['drained'] else []; drops = s['drops']+int(s['pauses']>0 and not s['buffer'] and s['incoming'] is not None); retain = s['queued'][-s['capacity']:] if s['capacity']>0 and not s['closed'] else []; deliver = s['pauses']==0 and not s['closed'] and s['incoming'] is not None; clear = s['closed'] or (s['resume'] and s['pauses']==1 and not s['drained']); overflow = max(0,len(s['queued'])+int(s['incoming'] is not None)-s['capacity']); redundant_resume = s['resume'] and s['pauses']==0
Why this case matters
Observer implementations need to preserve this state while subscriptions enter, execute, and leave their lifecycle.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(s):
return {
'depth': max(0,s['pauses']+int(s['pause'])-int(s['resume'])),
'hold': s['pauses']>0 and s['buffer'] and not s['closed'] and s['incoming'] is not None,
'resume': s['resume'] and s['pauses']==1 and not s['closed'],
'drain': list(s['queued']) if s['resume'] and s['pauses']==1 and not s['closed'] and not s['drained'] else [],
'drops': s['drops']+int(s['pauses']>0 and not s['buffer'] and s['incoming'] is not None),
'retain': s['queued'][-s['capacity']:],
'deliver': s['pauses']==0 and not s['closed'] and s['incoming'] is not None,
'clear': s['closed'] or (s['resume'] and s['pauses']==1 and not s['drained']),
'overflow': max(0,len(s['queued'])+int(s['incoming'] is not None)-s['capacity']),
'redundant_resume': s['resume'] and s['pauses']==0,
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': False}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 1, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 3, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False})], 2: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 4, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 6, 'drops': 4, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 4, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 1, 'drops': 4, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 6, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 3: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 6, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 9, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 8, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 6, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 6, 'retain': ['c'], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 6, 'drained': False}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 4: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 12, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 11, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 8, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a'], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 12, 'drops': 0, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 0, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 8, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 12, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 12, 'drops': 8, 'drained': True}, {'depth': 12, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 5: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 15, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 10, 'drained': False}, {'depth': 14, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 11, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 15, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 15, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})]}
for i,(state,expected) in enumerate(fixtures[N]):
check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| transition 0 | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': ['a', 'b', 'c']} | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Failed |
| transition 1 | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['c']} | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['c']} | Passed |
| transition 2 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': ['a']} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': []} | Failed |
| transition 3 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': ['a', 'b', 'c']} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': []} | Failed |
| transition 4 | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['a', 'b', 'c']} | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': []} | Failed |
| transition 5 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': ['a']} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': []} | Failed |
| transition 6 | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 7 | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': ['a', 'b', 'c']} | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Failed |
SHA-256 / 08ea92e041b9a11463deddf12a18c0b205cf4e27ce6906cc83b1c2c03372fc09
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(s):
return {
'depth': max(0,s['pauses']+int(s['pause'])-int(s['resume'])),
'hold': s['pauses']>0 and s['buffer'] and not s['closed'] and s['incoming'] is not None,
'resume': s['resume'] and s['pauses']==1 and not s['closed'],
'drain': list(s['queued']) if s['resume'] and s['pauses']==1 and not s['closed'] and not s['drained'] else [],
'drops': s['drops']+int(s['pauses']>0 and not s['buffer'] and s['incoming'] is not None),
'retain': s['queued'][:s['capacity']] if not s['closed'] else [],
'deliver': s['pauses']==0 and not s['closed'] and s['incoming'] is not None,
'clear': s['closed'] or (s['resume'] and s['pauses']==1 and not s['drained']),
'overflow': max(0,len(s['queued'])+int(s['incoming'] is not None)-s['capacity']),
'redundant_resume': s['resume'] and s['pauses']==0,
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': False}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 1, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 3, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False})], 2: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 4, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 6, 'drops': 4, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 4, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 1, 'drops': 4, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 6, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 3: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 6, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 9, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 8, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 6, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 6, 'retain': ['c'], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 6, 'drained': False}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 4: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 12, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 11, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 8, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a'], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 12, 'drops': 0, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 0, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 8, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 12, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 12, 'drops': 8, 'drained': True}, {'depth': 12, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 5: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 15, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 10, 'drained': False}, {'depth': 14, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 11, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 15, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 15, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})]}
for i,(state,expected) in enumerate(fixtures[N]):
check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| transition 0 | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 1 | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['a']} | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['c']} | Failed |
| transition 2 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': []} | Passed |
| transition 3 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': []} | Passed |
| transition 4 | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 5 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': []} | Passed |
| transition 6 | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 7 | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
SHA-256 / 1e3612105e023664ce0560436f0a819f8328f4d18dec436d2eb51c92e432ea6e
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(s):
return {
'depth': max(0,s['pauses']+int(s['pause'])-int(s['resume'])),
'hold': s['pauses']>0 and s['buffer'] and not s['closed'] and s['incoming'] is not None,
'resume': s['resume'] and s['pauses']==1 and not s['closed'],
'drain': list(s['queued']) if s['resume'] and s['pauses']==1 and not s['closed'] and not s['drained'] else [],
'drops': s['drops']+int(s['pauses']>0 and not s['buffer'] and s['incoming'] is not None),
'retain': s['queued'][-s['capacity']:] if s['capacity']>0 and not s['closed'] else [],
'deliver': s['pauses']==0 and not s['closed'] and s['incoming'] is not None,
'clear': s['closed'] or (s['resume'] and s['pauses']==1 and not s['drained']),
'overflow': max(0,len(s['queued'])+int(s['incoming'] is not None)-s['capacity']),
'redundant_resume': s['resume'] and s['pauses']==0,
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': False}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 1, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 3, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 0, 'drops': 2, 'drained': False}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 3, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 3, 'drops': 2, 'drained': True}, {'depth': 3, 'hold': False, 'resume': False, 'drain': [], 'drops': 2, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False})], 2: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 4, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 6, 'drops': 4, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 4, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 1, 'drops': 4, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 6, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 6, 'drops': 4, 'drained': True}, {'depth': 6, 'hold': False, 'resume': False, 'drain': [], 'drops': 4, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 3: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': None, 'capacity': 0, 'drops': 6, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 9, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 8, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': True}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 6, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 6, 'retain': ['c'], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 6, 'drained': False}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': True, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 9, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 9, 'drops': 6, 'drained': True}, {'depth': 9, 'hold': False, 'resume': False, 'drain': [], 'drops': 6, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 4: [({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 12, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 11, 'hold': False, 'resume': False, 'drain': [], 'drops': 1, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 3, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 1, 'drops': 8, 'drained': True}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 3, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': None, 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': ['a'], 'drops': 0, 'retain': ['a'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 12, 'drops': 0, 'drained': False}, {'depth': 1, 'hold': False, 'resume': True, 'drain': ['a', 'b', 'c'], 'drops': 0, 'retain': ['a', 'b', 'c'], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 8, 'drained': False}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 12, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 12, 'drops': 8, 'drained': True}, {'depth': 12, 'hold': False, 'resume': False, 'drain': [], 'drops': 8, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})], 5: [({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 0, 'drained': True}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 15, 'pause': False, 'resume': True, 'closed': False, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': None, 'capacity': 1, 'drops': 10, 'drained': False}, {'depth': 14, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': ['c'], 'deliver': False, 'clear': False, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': True, 'closed': True, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 1, 'redundant_resume': True}), ({'pauses': 1, 'pause': False, 'resume': True, 'closed': False, 'buffer': False, 'queued': [], 'incoming': 'new', 'capacity': 1, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': True, 'drain': [], 'drops': 1, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': True, 'closed': True, 'buffer': False, 'queued': ['a'], 'incoming': 'new', 'capacity': 0, 'drops': 10, 'drained': True}, {'depth': 1, 'hold': False, 'resume': False, 'drain': [], 'drops': 11, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 2, 'redundant_resume': False}), ({'pauses': 1, 'pause': True, 'resume': False, 'closed': True, 'buffer': True, 'queued': [], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 2, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 0, 'pause': False, 'resume': False, 'closed': False, 'buffer': False, 'queued': [], 'incoming': None, 'capacity': 0, 'drops': 0, 'drained': False}, {'depth': 0, 'hold': False, 'resume': False, 'drain': [], 'drops': 0, 'retain': [], 'deliver': False, 'clear': False, 'overflow': 0, 'redundant_resume': False}), ({'pauses': 15, 'pause': True, 'resume': True, 'closed': True, 'buffer': True, 'queued': ['a', 'b', 'c'], 'incoming': 'new', 'capacity': 15, 'drops': 10, 'drained': True}, {'depth': 15, 'hold': False, 'resume': False, 'drain': [], 'drops': 10, 'retain': [], 'deliver': False, 'clear': True, 'overflow': 0, 'redundant_resume': False})]}
for i,(state,expected) in enumerate(fixtures[N]):
check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| transition 0 | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 1, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 1 | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['c']} | {'clear': False, 'deliver': False, 'depth': 2, 'drain': [], 'drops': 1, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': ['c']} | Passed |
| transition 2 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': True, 'resume': False, 'retain': []} | Passed |
| transition 3 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': ['a', 'b', 'c'], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': True, 'retain': []} | Passed |
| transition 4 | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': False, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 3, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 5 | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 0, 'redundant_resume': True, 'resume': False, 'retain': []} | Passed |
| transition 6 | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': False, 'deliver': False, 'depth': 0, 'drain': [], 'drops': 0, 'hold': False, 'overflow': 0, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
| transition 7 | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | {'clear': True, 'deliver': False, 'depth': 3, 'drain': [], 'drops': 2, 'hold': False, 'overflow': 1, 'redundant_resume': False, 'resume': False, 'retain': []} | Passed |
SHA-256 / 8c1af85750611a38d4d0af45b726ecd59242915a976d4445640b8a4baeb80be2
Verification & scope
A deterministic, bounded, single-threaded transition planner. Returned plans model state changes; they do not implement a production event framework. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:43:45.707402+00:00.
Case digest / c922a6de8bf139cfe94782b1e107731aa7f4103f8569a0aeb7aa300a8a4a7276