FAILURE MAP
← Case archive

FA-41716 / Listener lifecycle / Open access

A passive callback cancels the event default action · case 01

A passive callback cancels the event default action; the returned lifecycle plan violates the stated transition contract.

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

ROOT CAUSE

The default_prevented decision in the propagation-plan listener model is computed as s['prevented'] or s['prevent'], losing a required lifecycle condition.

VERIFIED REPAIR

Compute the default_prevented decision from the complete contract: s['prevented'] or (s['prevent'] and s['cancelable'] and not s['passive']).

Unsuccessful approach: The partial repair uses s['prevented'] or (s['prevent'] and s['cancelable']); a retained regression distinguishes it from the full transition.

Case contract

A stipulated non-UI event path is root-to-target. Capture visits ancestors in that order; bubble visits ancestors in reverse only for bubbling events. Target is visited once. stopPropagation prevents later nodes but not sibling callbacks on the current node; stopImmediate prevents both. Only cancelable, nonpassive listeners may prevent the default action. A prior prevented marker is monotonic. Inputs are finite state snapshots, including transitional and stale states; output fields are the exact independent actions/metadata defined by the corrected expression table. Numeric fixture capacities and counts vary with N. Field definitions, each independently computed from the input snapshot: capture = s['path'][:-1]; bubble = list(reversed(s['path'][:-1])) if s['bubbles'] else []; target = s['path'][-1] if s['path'] else None; next_node = not s['stopped'] and not s['immediate']; siblings = 0 if s['immediate'] else s['siblings']; default_prevented = s['prevented'] or (s['prevent'] and s['cancelable'] and not s['passive']); default_run = not s['prevented'] and not(s['prevent'] and s['cancelable'] and not s['passive']); current_target = s['current']; path_copy = list(s['path']); prevent_ignored = s['prevent'] and (s['passive'] or not s['cancelable'])

Why this case matters

Observer implementations need to preserve this state while subscriptions enter, execute, and leave their lifecycle.

1 / The failure

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

N = 1
observations = []
def solve(s):
    return {
        'capture': s['path'][:-1],
        'bubble': list(reversed(s['path'][:-1])) if s['bubbles'] else [],
        'target': s['path'][-1] if s['path'] else None,
        'next_node': not s['stopped'] and not s['immediate'],
        'siblings': 0 if s['immediate'] else s['siblings'],
        'default_prevented': s['prevented'] or s['prevent'],
        'default_run': not s['prevented'] and not(s['prevent'] and s['cancelable'] and not s['passive']),
        'current_target': s['current'],
        'path_copy': list(s['path']),
        'prevent_ignored': s['prevent'] and (s['passive'] or not s['cancelable']),
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 3, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 3, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 2: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 6, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 6, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 3: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 9, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 4: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 5: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 15, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
transition 0{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}Failed
transition 1{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 2{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 3{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}Passed
transition 4{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Failed
transition 5{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Failed
transition 6{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}Passed
transition 7{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed

SHA-256 / fd262bc0a21028d3fec22bb65610e84055ef7700f27e93df58bc3eb01cd14f3c

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(s):
    return {
        'capture': s['path'][:-1],
        'bubble': list(reversed(s['path'][:-1])) if s['bubbles'] else [],
        'target': s['path'][-1] if s['path'] else None,
        'next_node': not s['stopped'] and not s['immediate'],
        'siblings': 0 if s['immediate'] else s['siblings'],
        'default_prevented': s['prevented'] or (s['prevent'] and s['cancelable']),
        'default_run': not s['prevented'] and not(s['prevent'] and s['cancelable'] and not s['passive']),
        'current_target': s['current'],
        'path_copy': list(s['path']),
        'prevent_ignored': s['prevent'] and (s['passive'] or not s['cancelable']),
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 3, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 3, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 2: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 6, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 6, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 3: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 9, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 4: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 5: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 15, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
transition 0{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}Failed
transition 1{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 2{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 3{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}Passed
transition 4{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 5{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 6{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}Passed
transition 7{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed

SHA-256 / 0bbbfcba215ce15d5adca0825eaa553cd1295f82f10b5e5cef1eedd6c5e2c36c

3 / The verified repair

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

N = 1
observations = []
def solve(s):
    return {
        'capture': s['path'][:-1],
        'bubble': list(reversed(s['path'][:-1])) if s['bubbles'] else [],
        'target': s['path'][-1] if s['path'] else None,
        'next_node': not s['stopped'] and not s['immediate'],
        'siblings': 0 if s['immediate'] else s['siblings'],
        'default_prevented': s['prevented'] or (s['prevent'] and s['cancelable'] and not s['passive']),
        'default_run': not s['prevented'] and not(s['prevent'] and s['cancelable'] and not s['passive']),
        'current_target': s['current'],
        'path_copy': list(s['path']),
        'prevent_ignored': s['prevent'] and (s['passive'] or not s['cancelable']),
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 3, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 3, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 3, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 2: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 6, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 6, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 6, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 6, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 6, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 3: [({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 9, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 9, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 9, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 4: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 12, 'default_prevented': False, 'default_run': True, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': False, 'siblings': 12, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 12, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})], 5: [({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': True, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True}), ({'path': ['target'], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': False, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': True}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': False, 'cancelable': False, 'passive': True, 'prevent': False, 'prevented': False, 'siblings': 15, 'current': 'root'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 15, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': True, 'stopped': False, 'immediate': True, 'cancelable': True, 'passive': False, 'prevent': True, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': False, 'prevent': False, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 15, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': False}), ({'path': ['target'], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': True, 'passive': True, 'prevent': False, 'prevented': True, 'siblings': 0, 'current': 'target'}, {'capture': [], 'bubble': [], 'target': 'target', 'next_node': True, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['target'], 'prevent_ignored': False}), ({'path': [], 'bubbles': False, 'stopped': False, 'immediate': False, 'cancelable': False, 'passive': False, 'prevent': False, 'prevented': False, 'siblings': 0, 'current': 'root'}, {'capture': [], 'bubble': [], 'target': None, 'next_node': True, 'siblings': 0, 'default_prevented': False, 'default_run': True, 'current_target': 'root', 'path_copy': [], 'prevent_ignored': False}), ({'path': ['root', 'middle', 'target'], 'bubbles': True, 'stopped': True, 'immediate': True, 'cancelable': True, 'passive': True, 'prevent': True, 'prevented': True, 'siblings': 15, 'current': 'target'}, {'capture': ['root', 'middle'], 'bubble': ['middle', 'root'], 'target': 'target', 'next_node': False, 'siblings': 0, 'default_prevented': True, 'default_run': False, 'current_target': 'target', 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
transition 0{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}{'bubble': [], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 3, 'target': 'target'}Passed
transition 1{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 2{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'root', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 3{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': False, 'siblings': 0, 'target': 'target'}Passed
transition 4{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': False, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 5{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': [], 'capture': [], 'current_target': 'target', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': ['target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed
transition 6{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}{'bubble': [], 'capture': [], 'current_target': 'root', 'default_prevented': False, 'default_run': True, 'next_node': True, 'path_copy': [], 'prevent_ignored': False, 'siblings': 0, 'target': None}Passed
transition 7{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}{'bubble': ['middle', 'root'], 'capture': ['root', 'middle'], 'current_target': 'target', 'default_prevented': True, 'default_run': False, 'next_node': False, 'path_copy': ['root', 'middle', 'target'], 'prevent_ignored': True, 'siblings': 0, 'target': 'target'}Passed

SHA-256 / 32e66e0ca367468432b4cf23079173657e9405bb0e59fc43fd67ce6705b3a3a8

Verification & scope

A deterministic, bounded, single-threaded transition planner. Returned plans model state changes; they do not implement a production event framework. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:43:44.197102+00:00.

Case digest / 601e76e5ac9294816c85a50984300e6c3ef998ea01ac903295e71b48127ef59d