FAILURE MAP
← Case archive

FA-18906 / Protocols / Open access

Capability-offer negotiation controller: countered / compatible · case 01

While countered, event compatible produces countered/wait instead of active/confirm.

Verified by executionVariant 1 · 14 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

In countered, the compatible handler runs wait and enters countered; it must instead run confirm and enter active.

VERIFIED REPAIR

In phase countered, classify compatible as transition to active and emit confirm.

Unsuccessful approach: The partial repair chooses active/advertise, which still violates this phase-specific event contract.

Case contract

For the stipulated Capability-offer negotiation controller, initialize the explicitly shown resource registers from seed (1..5), then consume classified events sequentially. After each event return a deep snapshot of phase, resource registers, and cumulative emitted control frames. The explicit ten phase/event rules and their resource effects define admission and response semantics. Unlisted events preserve phase and emit rejection. Payload is the consecutive integers seed through 2*seed+1. Empty event input returns no observations.

Why this case matters

Incorrect event admission now changes concrete queued data, resource ownership, or emitted protocol frames and subsequent trace behavior.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(phase, events, seed):
    payload = list(range(seed, seed * 2 + 2))
    r = {'offered': ['base','delta','batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}
    frames = []
    observed = []
    table = {('fresh', 'offer'): ('offered', 'advertise'), ('offered', 'subset_accept'): ('active', 'enable_subset'), ('offered', 'counteroffer'): ('countered', 'validate'), ('countered', 'compatible'): ('countered', 'wait'), ('countered', 'incompatible'): ('failed', 'reject'), ('offered', 'mandatory_missing'): ('failed', 'reject'), ('active', 'renegotiate'): ('offered', 'quiesce'), ('active', 'duplicate_accept'): ('active', 'ack_existing'), ('failed', 'payload'): ('failed', 'reject'), ('fresh', 'payload'): ('fresh', 'reject')}
    for event in events:
        phase, action = table.get((phase, event), (phase, "reject"))
        if action == 'advertise':
            frames.append(['OFFER',r['offered'][:]])
        elif action == 'enable_subset':
            r['enabled']=['base','delta']
        elif action == 'enable_all':
            r['enabled']=r['offered'][:]
        elif action == 'validate':
            r['validations']+=1
        elif action == 'confirm':
            r['enabled']=['base','batch']; frames.append(['ACCEPT',['base','batch']])
        elif action == 'reject':
            frames.append(['REJECT',event])
        elif action == 'quiesce':
            r['quiesced']=True; frames.append(['OFFER',r['offered'][:]])
        elif action == 'ack_existing':
            frames.append(['ACCEPT',r['enabled'][:]])
        elif action == 'enable':
            r['enabled']=r['offered'][:]
        elif action == 'reenable':
            r['validations']+=seed; r['enabled']=r['offered'][:]
        elif action == 'buffer':
            r['queued'].extend(payload)
        elif action == 'deliver':
            r['quiesced']=False; frames.append(['DATA',payload])
        elif action == 'continue':
            frames.append(['DATA',payload])
        else:
            if action not in ("wait", "ignore", "keep", "retain", "keep_peer", "keep_offer", "keep_hold", "keep_batch", "retain_staging", "keep_staging", "keep_local_owner", "keep_old_session", "keep_address", "keep_old_expiry", "ignore_conflict", "keep_service", "keep_subscription", "retain_shadow", "keep_live", "keep_suspicion", "keep_roles", "keep_staged"):
                frames.append([action, payload[:]])
        observed.append(json.loads(json.dumps({"phase": phase, "registers": r, "frames": frames})))
    return observed
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 2: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 3: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 4: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 5: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])]}
for label, phase, events, expected in cases[N]:
    check(label, solve(phase, events, N), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fresh/offer[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/subset_accept[{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/counteroffer[{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Passed
countered/compatible[{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Failed
countered/incompatible[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/mandatory_missing[{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
active/renegotiate[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}]Passed
active/duplicate_accept[{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
failed/payload[{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
fresh/payload[{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
ordered trace 0[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'duplicate_accept']], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Failed
ordered trace 3[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
empty input[][]Passed
unknown event[{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed

SHA-256 / 70671c01be6a289d4fc8739cd120a94339c06d6317108ebdad4443eb258236df

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(phase, events, seed):
    payload = list(range(seed, seed * 2 + 2))
    r = {'offered': ['base','delta','batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}
    frames = []
    observed = []
    table = {('fresh', 'offer'): ('offered', 'advertise'), ('offered', 'subset_accept'): ('active', 'enable_subset'), ('offered', 'counteroffer'): ('countered', 'validate'), ('countered', 'compatible'): ('active', 'advertise'), ('countered', 'incompatible'): ('failed', 'reject'), ('offered', 'mandatory_missing'): ('failed', 'reject'), ('active', 'renegotiate'): ('offered', 'quiesce'), ('active', 'duplicate_accept'): ('active', 'ack_existing'), ('failed', 'payload'): ('failed', 'reject'), ('fresh', 'payload'): ('fresh', 'reject')}
    for event in events:
        phase, action = table.get((phase, event), (phase, "reject"))
        if action == 'advertise':
            frames.append(['OFFER',r['offered'][:]])
        elif action == 'enable_subset':
            r['enabled']=['base','delta']
        elif action == 'enable_all':
            r['enabled']=r['offered'][:]
        elif action == 'validate':
            r['validations']+=1
        elif action == 'confirm':
            r['enabled']=['base','batch']; frames.append(['ACCEPT',['base','batch']])
        elif action == 'reject':
            frames.append(['REJECT',event])
        elif action == 'quiesce':
            r['quiesced']=True; frames.append(['OFFER',r['offered'][:]])
        elif action == 'ack_existing':
            frames.append(['ACCEPT',r['enabled'][:]])
        elif action == 'enable':
            r['enabled']=r['offered'][:]
        elif action == 'reenable':
            r['validations']+=seed; r['enabled']=r['offered'][:]
        elif action == 'buffer':
            r['queued'].extend(payload)
        elif action == 'deliver':
            r['quiesced']=False; frames.append(['DATA',payload])
        elif action == 'continue':
            frames.append(['DATA',payload])
        else:
            if action not in ("wait", "ignore", "keep", "retain", "keep_peer", "keep_offer", "keep_hold", "keep_batch", "retain_staging", "keep_staging", "keep_local_owner", "keep_old_session", "keep_address", "keep_old_expiry", "ignore_conflict", "keep_service", "keep_subscription", "retain_shadow", "keep_live", "keep_suspicion", "keep_roles", "keep_staged"):
                frames.append([action, payload[:]])
        observed.append(json.loads(json.dumps({"phase": phase, "registers": r, "frames": frames})))
    return observed
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 2: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 3: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 4: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 5: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])]}
for label, phase, events, expected in cases[N]:
    check(label, solve(phase, events, N), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fresh/offer[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/subset_accept[{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/counteroffer[{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Passed
countered/compatible[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Failed
countered/incompatible[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/mandatory_missing[{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
active/renegotiate[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}]Passed
active/duplicate_accept[{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
failed/payload[{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
fresh/payload[{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
ordered trace 0[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['OFFER', ['base', 'delta', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Failed
ordered trace 3[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
empty input[][]Passed
unknown event[{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed

SHA-256 / f1fd2f6e9faeeac604808a18c23f5b23df439f3a377994a32209e57fcaa50bf8

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(phase, events, seed):
    payload = list(range(seed, seed * 2 + 2))
    r = {'offered': ['base','delta','batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}
    frames = []
    observed = []
    table = {('fresh', 'offer'): ('offered', 'advertise'), ('offered', 'subset_accept'): ('active', 'enable_subset'), ('offered', 'counteroffer'): ('countered', 'validate'), ('countered', 'compatible'): ('active', 'confirm'), ('countered', 'incompatible'): ('failed', 'reject'), ('offered', 'mandatory_missing'): ('failed', 'reject'), ('active', 'renegotiate'): ('offered', 'quiesce'), ('active', 'duplicate_accept'): ('active', 'ack_existing'), ('failed', 'payload'): ('failed', 'reject'), ('fresh', 'payload'): ('fresh', 'reject')}
    for event in events:
        phase, action = table.get((phase, event), (phase, "reject"))
        if action == 'advertise':
            frames.append(['OFFER',r['offered'][:]])
        elif action == 'enable_subset':
            r['enabled']=['base','delta']
        elif action == 'enable_all':
            r['enabled']=r['offered'][:]
        elif action == 'validate':
            r['validations']+=1
        elif action == 'confirm':
            r['enabled']=['base','batch']; frames.append(['ACCEPT',['base','batch']])
        elif action == 'reject':
            frames.append(['REJECT',event])
        elif action == 'quiesce':
            r['quiesced']=True; frames.append(['OFFER',r['offered'][:]])
        elif action == 'ack_existing':
            frames.append(['ACCEPT',r['enabled'][:]])
        elif action == 'enable':
            r['enabled']=r['offered'][:]
        elif action == 'reenable':
            r['validations']+=seed; r['enabled']=r['offered'][:]
        elif action == 'buffer':
            r['queued'].extend(payload)
        elif action == 'deliver':
            r['quiesced']=False; frames.append(['DATA',payload])
        elif action == 'continue':
            frames.append(['DATA',payload])
        else:
            if action not in ("wait", "ignore", "keep", "retain", "keep_peer", "keep_offer", "keep_hold", "keep_batch", "retain_staging", "keep_staging", "keep_local_owner", "keep_old_session", "keep_address", "keep_old_expiry", "ignore_conflict", "keep_service", "keep_subscription", "retain_shadow", "keep_live", "keep_suspicion", "keep_roles", "keep_staged"):
                frames.append([action, payload[:]])
        observed.append(json.loads(json.dumps({"phase": phase, "registers": r, "frames": frames})))
    return observed
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 2: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 3: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 4: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])], 5: [('fresh/offer', 'fresh', ['offer'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('offered/subset_accept', 'offered', ['subset_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'delta'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': []}]), ('offered/counteroffer', 'offered', ['counteroffer'], [{'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': []}]), ('countered/compatible', 'countered', ['compatible'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base', 'batch']]]}]), ('countered/incompatible', 'countered', ['incompatible'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}]), ('offered/mandatory_missing', 'offered', ['mandatory_missing'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'mandatory_missing']]}]), ('active/renegotiate', 'active', ['renegotiate'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': True, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}]), ('active/duplicate_accept', 'active', ['duplicate_accept'], [{'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['ACCEPT', ['base']]]}]), ('failed/payload', 'failed', ['payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('fresh/payload', 'fresh', ['payload'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'payload']]}]), ('ordered trace 0', 'fresh', ['offer', 'counteroffer', 'compatible', 'duplicate_accept', 'renegotiate', 'mandatory_missing', 'payload', 'payload'], [{'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'countered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'active', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': False, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]]}, {'phase': 'offered', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']]]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base', 'batch'], 'quiesced': True, 'validations': 1, 'queued': []}, 'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']], ['OFFER', ['base', 'delta', 'batch']], ['REJECT', 'mandatory_missing'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('ordered trace 3', 'countered', ['incompatible', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload', 'payload'], [{'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}, {'phase': 'failed', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']]}]), ('empty input', 'fresh', [], []), ('unknown event', 'fresh', ['unsupported'], [{'phase': 'fresh', 'registers': {'offered': ['base', 'delta', 'batch'], 'enabled': ['base'], 'quiesced': False, 'validations': 0, 'queued': []}, 'frames': [['REJECT', 'unsupported']]}])]}
for label, phase, events, expected in cases[N]:
    check(label, solve(phase, events, N), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fresh/offer[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/subset_accept[{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [], 'phase': 'active', 'registers': {'enabled': ['base', 'delta'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/counteroffer[{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Passed
countered/compatible[{'frames': [['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
countered/incompatible[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
offered/mandatory_missing[{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'mandatory_missing']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
active/renegotiate[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': True, 'validations': 0}}]Passed
active/duplicate_accept[{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['ACCEPT', ['base']]], 'phase': 'active', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
failed/payload[{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
fresh/payload[{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'payload']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
ordered trace 0[{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}][{'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'offered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['OFFER', ['base', 'delta', 'batch']]], 'phase': 'countered', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}, {'frames': [['OFFER', ['base', 'delta', 'batch']], ['ACCEPT', ['base', 'batch']], ['ACCEPT', ['base', 'batch']]], 'phase': 'active', 'registers': {'enabled': ['base', 'batch'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 1}}]Passed
ordered trace 3[{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'incompatible']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}, {'frames': [['REJECT', 'incompatible'], ['REJECT', 'payload'], ['REJECT', 'payload'], ['REJECT', 'payload']], 'phase': 'failed', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed
empty input[][]Passed
unknown event[{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}][{'frames': [['REJECT', 'unsupported']], 'phase': 'fresh', 'registers': {'enabled': ['base'], 'offered': ['base', 'delta', 'batch'], 'queued': [], 'quiesced': False, 'validations': 0}}]Passed

SHA-256 / b2e31d2eb915244a7eb8fe44532ded43aaabd43b8d89f085b6443310ced5bb38

Verification & scope

Bounded offline control-plane abstraction with prescribed initial registers and classified events. Not a named protocol implementation or conformance test; excludes wire parsing, transport retries, physical execution, authentication, crash persistence, and timing. Related event faults share the full corrected controller and evaluation group. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:40:02.373264+00:00.

Case digest / 21f3ee5e5eedcaca53ac1b89d1c87d82747669e5280fcee9286c2f70366c2543