broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': True,
        'impossible': (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']),
        'complete': s['left_done'] and s['right_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': s['side']=='right',
        'impossible': (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']),
        'complete': s['left_done'] and s['right_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

prompt:
Combine-latest marks both inputs seen after one notification; the returned lifecycle plan violates the stated transition contract.

Plan a two-input combine-latest observer. A value may be None, so readiness comes from separate seen flags. Updating one side preserves the other. Emit a pair only after both inputs have been seen. A completed input with no value makes a pair impossible; completion after a value keeps its last value usable. Any source error terminates both subscriptions. 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: ready = s['left_seen'] and s['right_seen']; left = s['value'] if s['side']=='left' else s['left']; right = s['value'] if s['side']=='right' else s['right']; left_seen = s['left_seen'] or s['side']=='left'; right_seen = s['right_seen'] or s['side']=='right'; impossible = (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']); complete = s['left_done'] and s['right_done']; pair = [s['left'],s['right']]; cancel_both = ['left','right'] if s['error'] is not None else []; usable_left = s['left_seen']

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': s['right_seen'] or s['side']=='right',
        'impossible': False,
        'complete': s['left_done'] and s['right_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': s['right_seen'] or s['side']=='right',
        'impossible': s['left_done'] and s['right_done'],
        'complete': s['left_done'] and s['right_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

prompt:
An empty completed input leaves combine-latest waiting forever; the returned lifecycle plan violates the stated transition contract.

Plan a two-input combine-latest observer. A value may be None, so readiness comes from separate seen flags. Updating one side preserves the other. Emit a pair only after both inputs have been seen. A completed input with no value makes a pair impossible; completion after a value keeps its last value usable. Any source error terminates both subscriptions. 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: ready = s['left_seen'] and s['right_seen']; left = s['value'] if s['side']=='left' else s['left']; right = s['value'] if s['side']=='right' else s['right']; left_seen = s['left_seen'] or s['side']=='left'; right_seen = s['right_seen'] or s['side']=='right'; impossible = (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']); complete = s['left_done'] and s['right_done']; pair = [s['left'],s['right']]; cancel_both = ['left','right'] if s['error'] is not None else []; usable_left = s['left_seen']

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': s['right_seen'] or s['side']=='right',
        'impossible': (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']),
        'complete': s['left_done'] or s['right_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(s):
    return {
        'ready': s['left_seen'] and s['right_seen'],
        'left': s['value'] if s['side']=='left' else s['left'],
        'right': s['value'] if s['side']=='right' else s['right'],
        'left_seen': s['left_seen'] or s['side']=='left',
        'right_seen': s['right_seen'] or s['side']=='right',
        'impossible': (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']),
        'complete': s['left_done'],
        'pair': [s['left'],s['right']],
        'cancel_both': ['left','right'] if s['error'] is not None else [],
        'usable_left': s['left_seen'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 3}, {'ready': True, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 3}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 2: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 6}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': 'new', 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': False, 'left': 0, 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 6}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 6}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 3: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': True, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', None], 'cancel_both': [], 'usable_left': True}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 9}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 0, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 1}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': ['L', 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 9}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 9}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 4: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': 0, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 12}, {'ready': True, 'left': 0, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': None, 'right': 0, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': False, 'right_done': True, 'error': 'upstream', 'credit': 0}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, 0], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 0, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 1}, {'ready': False, 'left': 'new', 'right': 0, 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': True, 'pair': [0, 0], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'side': 'right', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 12}, {'ready': False, 'left': 0, 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': [0, None], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 12}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})], 5: [({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': True, 'complete': False, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': False}), ({'left': None, 'right': None, 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': False, 'error': 'upstream', 'credit': 1}, {'ready': True, 'left': None, 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 'L', 'right': 'R', 'left_seen': False, 'right_seen': True, 'side': 'left', 'value': 'new', 'left_done': True, 'right_done': True, 'error': None, 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': True, 'impossible': True, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'right', 'value': None, 'left_done': False, 'right_done': True, 'error': None, 'credit': 0}, {'ready': False, 'left': 'L', 'right': None, 'left_seen': False, 'right_seen': True, 'impossible': True, 'complete': False, 'pair': ['L', None], 'cancel_both': [], 'usable_left': False}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': 'new', 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': 'new', 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': 0, 'right': 'R', 'left_seen': True, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': 'upstream', 'credit': 15}, {'ready': False, 'left': None, 'right': 'R', 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [0, 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True}), ({'left': None, 'right': None, 'left_seen': False, 'right_seen': False, 'side': 'left', 'value': None, 'left_done': False, 'right_done': False, 'error': None, 'credit': 0}, {'ready': False, 'left': None, 'right': None, 'left_seen': True, 'right_seen': False, 'impossible': False, 'complete': False, 'pair': [None, None], 'cancel_both': [], 'usable_left': False}), ({'left': 'L', 'right': 'R', 'left_seen': True, 'right_seen': True, 'side': 'right', 'value': 'new', 'left_done': True, 'right_done': True, 'error': 'upstream', 'credit': 15}, {'ready': True, 'left': 'L', 'right': 'new', 'left_seen': True, 'right_seen': True, 'impossible': False, 'complete': True, 'pair': ['L', 'R'], 'cancel_both': ['left', 'right'], 'usable_left': True})]}
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)

prompt:
Combine-latest completes when only a valued input completes; the returned lifecycle plan violates the stated transition contract.

Plan a two-input combine-latest observer. A value may be None, so readiness comes from separate seen flags. Updating one side preserves the other. Emit a pair only after both inputs have been seen. A completed input with no value makes a pair impossible; completion after a value keeps its last value usable. Any source error terminates both subscriptions. 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: ready = s['left_seen'] and s['right_seen']; left = s['value'] if s['side']=='left' else s['left']; right = s['value'] if s['side']=='right' else s['right']; left_seen = s['left_seen'] or s['side']=='left'; right_seen = s['right_seen'] or s['side']=='right'; impossible = (s['left_done'] and not s['left_seen']) or (s['right_done'] and not s['right_seen']); complete = s['left_done'] and s['right_done']; pair = [s['left'],s['right']]; cancel_both = ['left','right'] if s['error'] is not None else []; usable_left = s['left_seen']

split: open-access