FA-42761 / Listener lifecycle / Open access
Transferring one disposer removes every disposer from the composite · case 01
Transferring one disposer removes every disposer from the composite; the returned lifecycle plan violates the stated transition contract.
ROOT CAUSE
The retained decision in the teardown-stack listener model is computed as [] if s['transfer'] is not None else list(s['stack']), losing a required lifecycle condition.
VERIFIED REPAIR
Compute the retained decision from the complete contract: [r for r in s['stack'] if r[0]!=s['transfer']].
Unsuccessful approach: The partial repair uses list(s['stack']); a retained regression distinguishes it from the full transition.
Case contract
Plan a subscription composite teardown stack. Disposers are [id,already_run] entries and run in reverse acquisition order. Duplicate disposer IDs run at most once, keeping the latest acquisition position. Disposers added after closure run immediately. Teardown failures accumulate without suppressing later cleanup. Ownership transfer removes the transferred disposer from this stack without executing it. The current disposal wave finishes in its existing order; disposers added reentrantly form a subsequent wave in reverse acquisition order. Relinquishing a scope severs only capture references to that exact owner; unrelated receiver captures survive. The already-run projection groups aliases by disposer identity: any completed alias marks the identity completed, preserving first identity order. 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: order = list(dict.fromkeys(r[0] for r in reversed(s['stack']) if not r[1] and r[0]!=s['transfer'])); immediate = [s['added']] if s['closed'] and s['added'] is not None else []; store_added = [s['added']] if not s['closed'] and s['added'] is not None else []; transferred = [r[0] for r in s['stack'] if r[0]==s['transfer']]; retained = [r for r in s['stack'] if r[0]!=s['transfer']]; already_run = [k for k in dict.fromkeys(r[0] for r in s['stack']) if any(r[0]==k and r[1] for r in s['stack'])]; errors = list(s['errors']); reentrant = list(s['wave_remaining'])+list(reversed(s['added_during'])); owner = s['new_owner'] if s['transfer'] is not None else s['owner']; pending = [[r[0],None if r[1]==s['relinquished_owner'] else r[1]] for r in s['captures']]
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 {
'order': list(dict.fromkeys(r[0] for r in reversed(s['stack']) if not r[1] and r[0]!=s['transfer'])),
'immediate': [s['added']] if s['closed'] and s['added'] is not None else [],
'store_added': [s['added']] if not s['closed'] and s['added'] is not None else [],
'transferred': [r[0] for r in s['stack'] if r[0]==s['transfer']],
'retained': [] if s['transfer'] is not None else list(s['stack']),
'already_run': [k for k in dict.fromkeys(r[0] for r in s['stack']) if any(r[0]==k and r[1] for r in s['stack'])],
'errors': list(s['errors']),
'reentrant': list(s['wave_remaining'])+list(reversed(s['added_during'])),
'owner': s['new_owner'] if s['transfer'] is not None else s['owner'],
'pending': [[r[0],None if r[1]==s['relinquished_owner'] else r[1]] for r in s['captures']],
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': None, 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': [], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 2, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': 'missing', 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['a', 'b', 'x'], 'owner': 'scope', 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 2: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 4, 'wave_remaining': [], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['x'], 'owner': 'scope', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['c', None]]}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': [], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 3: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 6, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['a'], 'owner': None, 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': ['a'], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 4: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one'], 'reentrant': ['a'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 8, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['a', 'b'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 5: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})]}
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 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [], 'store_added': [], 'transferred': ['a', 'a']} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['b', False], ['b', True]], 'store_added': [], 'transferred': ['a', 'a']} | Failed |
| transition 1 | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 2 | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 3 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 4 | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Failed |
| transition 5 | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Passed |
| transition 6 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | Passed |
| transition 7 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [], 'store_added': [], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': []} | Failed |
SHA-256 / 5d9b26d043d528542e7a8eb8f171891bde40f015c108cc585e329e220aa59b0c
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(s):
return {
'order': list(dict.fromkeys(r[0] for r in reversed(s['stack']) if not r[1] and r[0]!=s['transfer'])),
'immediate': [s['added']] if s['closed'] and s['added'] is not None else [],
'store_added': [s['added']] if not s['closed'] and s['added'] is not None else [],
'transferred': [r[0] for r in s['stack'] if r[0]==s['transfer']],
'retained': list(s['stack']),
'already_run': [k for k in dict.fromkeys(r[0] for r in s['stack']) if any(r[0]==k and r[1] for r in s['stack'])],
'errors': list(s['errors']),
'reentrant': list(s['wave_remaining'])+list(reversed(s['added_during'])),
'owner': s['new_owner'] if s['transfer'] is not None else s['owner'],
'pending': [[r[0],None if r[1]==s['relinquished_owner'] else r[1]] for r in s['captures']],
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': None, 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': [], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 2, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': 'missing', 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['a', 'b', 'x'], 'owner': 'scope', 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 2: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 4, 'wave_remaining': [], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['x'], 'owner': 'scope', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['c', None]]}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': [], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 3: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 6, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['a'], 'owner': None, 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': ['a'], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 4: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one'], 'reentrant': ['a'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 8, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['a', 'b'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 5: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})]}
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 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': ['a', 'a']} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['b', False], ['b', True]], 'store_added': [], 'transferred': ['a', 'a']} | Failed |
| transition 1 | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 2 | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 3 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 4 | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Passed |
| transition 5 | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Passed |
| transition 6 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | Passed |
| transition 7 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': []} | Passed |
SHA-256 / 4c232faa81ce9096ddc1afe888b525055859a849d2d60c2425087f17d0c3a189
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(s):
return {
'order': list(dict.fromkeys(r[0] for r in reversed(s['stack']) if not r[1] and r[0]!=s['transfer'])),
'immediate': [s['added']] if s['closed'] and s['added'] is not None else [],
'store_added': [s['added']] if not s['closed'] and s['added'] is not None else [],
'transferred': [r[0] for r in s['stack'] if r[0]==s['transfer']],
'retained': [r for r in s['stack'] if r[0]!=s['transfer']],
'already_run': [k for k in dict.fromkeys(r[0] for r in s['stack']) if any(r[0]==k and r[1] for r in s['stack'])],
'errors': list(s['errors']),
'reentrant': list(s['wave_remaining'])+list(reversed(s['added_during'])),
'owner': s['new_owner'] if s['transfer'] is not None else s['owner'],
'pending': [[r[0],None if r[1]==s['relinquished_owner'] else r[1]] for r in s['captures']],
}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': None, 'pending': 2, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': [], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 2, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': 'missing', 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['a', 'b', 'x'], 'owner': 'scope', 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 2, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 2: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 4, 'wave_remaining': [], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one', 'two'], 'reentrant': ['x'], 'owner': 'scope', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 4, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['c', None]]}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': [], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 4, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 3: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 6, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['a'], 'owner': None, 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': [], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': ['a'], 'retained': [], 'already_run': [], 'errors': ['one'], 'reentrant': ['y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': None, 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': None, 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 6, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 4: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': ['new'], 'store_added': [], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': ['one'], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': ['one'], 'reentrant': ['a'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', False]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': [], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 8, 'wave_remaining': [], 'added_during': ['x'], 'captures': [['c', None]], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['x'], 'owner': None, 'pending': [['c', None]]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': [], 'reentrant': ['a', 'b'], 'owner': 'scope', 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 8, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})], 5: [({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': False, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['b'], 'immediate': [], 'store_added': ['new'], 'transferred': ['a', 'a'], 'retained': [['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'y', 'x'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', False], ['b', True], ['a', False], ['c', False]], 'closed': True, 'added': 'new', 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': 'scope', 'new_owner': None, 'pending': 0, 'wave_remaining': ['a'], 'added_during': ['x', 'y'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': ['c', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'already_run': ['b'], 'errors': [], 'reentrant': ['a', 'y', 'x'], 'owner': 'scope', 'pending': [['a', None], ['b', 'other']]}), ({'stack': [], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': None, 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': [], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b'], 'owner': None, 'pending': [['a', None], ['b', 'other']]}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': False, 'added': 'new', 'transfer': 'missing', 'errors': ['one'], 'disposing': True, 'completed': False, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'old'}, {'order': ['b', 'a'], 'immediate': [], 'store_added': ['new'], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': True, 'added': 'new', 'transfer': 'a', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x'], 'captures': [['a', 'old'], ['b', 'other']], 'relinquished_owner': 'missing'}, {'order': [], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'x'], 'owner': 'other', 'pending': [['a', 'old'], ['b', 'other']]}), ({'stack': [['a', False]], 'closed': True, 'added': None, 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': None, 'new_owner': 'other', 'pending': 0, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [], 'relinquished_owner': 'missing'}, {'order': ['a'], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [['a', False]], 'already_run': [], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': []}), ({'stack': [], 'closed': False, 'added': None, 'transfer': None, 'errors': [], 'disposing': False, 'completed': False, 'owner': None, 'new_owner': None, 'pending': 0, 'wave_remaining': [], 'added_during': [], 'captures': [], 'relinquished_owner': 'old'}, {'order': [], 'immediate': [], 'store_added': [], 'transferred': [], 'retained': [], 'already_run': [], 'errors': [], 'reentrant': [], 'owner': None, 'pending': []}), ({'stack': [['a', True], ['a', False], ['b', False], ['b', True]], 'closed': True, 'added': 'new', 'transfer': 'missing', 'errors': ['one', 'two'], 'disposing': True, 'completed': True, 'owner': 'scope', 'new_owner': 'other', 'pending': 10, 'wave_remaining': ['a', 'b'], 'added_during': ['x', 'y'], 'captures': [['c', None]], 'relinquished_owner': 'missing'}, {'order': ['b', 'a'], 'immediate': ['new'], 'store_added': [], 'transferred': [], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'reentrant': ['a', 'b', 'y', 'x'], 'owner': 'other', 'pending': [['c', None]]})]}
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 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['b', False], ['b', True]], 'store_added': [], 'transferred': ['a', 'a']} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b'], 'owner': 'other', 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['b', False], ['b', True]], 'store_added': [], 'transferred': ['a', 'a']} | Passed |
| transition 1 | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['b'], 'errors': ['one', 'two'], 'immediate': [], 'order': ['c', 'a'], 'owner': 'scope', 'pending': [], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', False], ['b', True], ['a', False], ['c', False]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 2 | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one'], 'immediate': [], 'order': ['b', 'a'], 'owner': None, 'pending': [['a', 'old'], ['b', 'other']], 'reentrant': ['a', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 3 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': [], 'retained': [], 'store_added': ['new'], 'transferred': []} | Passed |
| transition 4 | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': ['a'], 'owner': None, 'pending': [['a', None], ['b', 'other']], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Passed |
| transition 5 | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': ['one'], 'immediate': [], 'order': ['a'], 'owner': 'scope', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'x'], 'retained': [['a', False]], 'store_added': [], 'transferred': []} | Passed |
| transition 6 | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | {'already_run': [], 'errors': [], 'immediate': [], 'order': [], 'owner': None, 'pending': [], 'reentrant': [], 'retained': [], 'store_added': [], 'transferred': []} | Passed |
| transition 7 | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': []} | {'already_run': ['a', 'b'], 'errors': ['one', 'two'], 'immediate': ['new'], 'order': ['b', 'a'], 'owner': 'other', 'pending': [['c', None]], 'reentrant': ['a', 'b', 'y', 'x'], 'retained': [['a', True], ['a', False], ['b', False], ['b', True]], 'store_added': [], 'transferred': []} | Passed |
SHA-256 / 110986e6a586ee85f7a0864ca251a5176ece729a2ea2598cadb8696b0495a015
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:55.098971+00:00.
Case digest / 98e28ec1969526e8d81a5fe1343df342803cbaeefb851ddd06736a8d05eab71d