FAILURE MAP
← Case archive

FA-39491 / Tree accessibility / Open access

Exclusive sibling branch expansion: Exclusive expand accepts leaf or disabled row · case 01

Exclusive expand accepts leaf or disabled row produces the wrong hierarchical widget state in a regression fixture.

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

ROOT CAUSE

The exclusive-branches contract is violated at `d['target'] in d['branches'] and d['target'] not in d['disabled']` by replacing it with `d['target'] not in d['disabled']`.

VERIFIED REPAIR

Restore `d['target'] in d['branches'] and d['target'] not in d['disabled']` at this fault site while retaining the other tree state decisions.

Unsuccessful approach: The partial repair `d['target'] in d['branches']` still violates a boundary or preservation case.

Case contract

Expanding a branch in exclusive mode closes its sibling branches and their descendants, but leaves ancestor and unrelated branch expansion intact. Expansion of disabled or leaf nodes is ignored. Focus within a newly closed sibling moves to that sibling root. Manual expansion survives later mode-off operation. Report whether pre-operation focus was a terminal row as provenance.

Why this case matters

Offline executable model of a hierarchical accessibility interaction; inputs are bounded and valid as stipulated. No browser, assistive technology, or normative ARIA conformance is claimed.

1 / The failure

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

N = 1
observations = []
def solve(d):
    allowed=d['target'] not in d['disabled']
    siblings=[x for x in d['branches'] if x!=d['target'] and d['parents'].get(x)==d['parents'].get(d['target'])]
    closed_roots=set(siblings) if allowed and d['exclusive'] else set()
    closed={x for x in d['open'] if x in closed_roots or any(a in closed_roots for a in d['ancestors'].get(x,[]))}
    expanded=(set(d['open'])-closed)|({d['target']} if allowed else set())
    focusroot=next((a for a in d['ancestors'].get(d['focus'],[]) if a in closed_roots),None)
    focus=focusroot if focusroot is not None else d['focus']
    changed=sorted(expanded^set(d['open']))
    state={x:x in expanded for x in d['branches']}
    leaf_focus=d['focus'] not in d['branches']
    return [sorted(expanded),focus,changed,state,leaf_focus]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False}, True])], 2: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False}, True])], 3: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False}, True])], 4: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False}, True])], 5: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3', 'v4'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False, 'v4': False}, True])]}
for label, data, expected in cases[N]:
    check(label, solve(data), 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
close sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
mode off[['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
disabled target[['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
leaf target[['c'], 'r', ['b', 'bb', 'c', 'q', 'r'], {'a': False, 'b': False, 'bb': False, 'q': False, 'r': False}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Failed
unrelated focus[['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False][['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False]Passed
already open target[['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
deeper varying sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True]Passed

SHA-256 / 6627cf3f8d87145eaa7256debf6485a4be817c702b19106ed7db3c02a45a8dbb

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(d):
    allowed=d['target'] in d['branches']
    siblings=[x for x in d['branches'] if x!=d['target'] and d['parents'].get(x)==d['parents'].get(d['target'])]
    closed_roots=set(siblings) if allowed and d['exclusive'] else set()
    closed={x for x in d['open'] if x in closed_roots or any(a in closed_roots for a in d['ancestors'].get(x,[]))}
    expanded=(set(d['open'])-closed)|({d['target']} if allowed else set())
    focusroot=next((a for a in d['ancestors'].get(d['focus'],[]) if a in closed_roots),None)
    focus=focusroot if focusroot is not None else d['focus']
    changed=sorted(expanded^set(d['open']))
    state={x:x in expanded for x in d['branches']}
    leaf_focus=d['focus'] not in d['branches']
    return [sorted(expanded),focus,changed,state,leaf_focus]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False}, True])], 2: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False}, True])], 3: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False}, True])], 4: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False}, True])], 5: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3', 'v4'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False, 'v4': False}, True])]}
for label, data, expected in cases[N]:
    check(label, solve(data), 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
close sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
mode off[['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
disabled target[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Failed
leaf target[['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
unrelated focus[['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False][['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False]Passed
already open target[['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
deeper varying sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True]Passed

SHA-256 / 80b347b562d7fb8bc572db4d569ea7b03b86b0bff1734ce9628173e1d0ee7be9

3 / The verified repair

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

N = 1
observations = []
def solve(d):
    allowed=d['target'] in d['branches'] and d['target'] not in d['disabled']
    siblings=[x for x in d['branches'] if x!=d['target'] and d['parents'].get(x)==d['parents'].get(d['target'])]
    closed_roots=set(siblings) if allowed and d['exclusive'] else set()
    closed={x for x in d['open'] if x in closed_roots or any(a in closed_roots for a in d['ancestors'].get(x,[]))}
    expanded=(set(d['open'])-closed)|({d['target']} if allowed else set())
    focusroot=next((a for a in d['ancestors'].get(d['focus'],[]) if a in closed_roots),None)
    focus=focusroot if focusroot is not None else d['focus']
    changed=sorted(expanded^set(d['open']))
    state={x:x in expanded for x in d['branches']}
    leaf_focus=d['focus'] not in d['branches']
    return [sorted(expanded),focus,changed,state,leaf_focus]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False}, True])], 2: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False}, True])], 3: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False}, True])], 4: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False}, True])], 5: [('close sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('mode off', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': False, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'r': True, 'a': True, 'b': True, 'bb': True, 'q': True}, True]), ('disabled target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': ['a'], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('leaf target', {'target': 'c', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['b', 'bb', 'q', 'r'], 'c', [], {'r': True, 'a': False, 'b': True, 'bb': True, 'q': True}, True]), ('unrelated focus', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'q'}, [['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, False]), ('already open target', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'a', 'b', 'bb', 'q', 'aa'], 'ancestors': {'aa': ['r', 'a'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True}, True]), ('deeper varying sibling', {'target': 'a', 'branches': ['r', 'a', 'b', 'bb', 'q', 'v0', 'v1', 'v2', 'v3', 'v4'], 'disabled': [], 'parents': {'r': None, 'a': 'r', 'b': 'r', 'bb': 'b', 'q': None}, 'exclusive': True, 'open': ['r', 'b', 'bb', 'q'], 'ancestors': {'a': ['r'], 'b': ['r'], 'bb': ['r', 'b'], 'c': ['r', 'b', 'bb']}, 'focus': 'c'}, [['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'r': True, 'a': True, 'b': False, 'bb': False, 'q': True, 'v0': False, 'v1': False, 'v2': False, 'v3': False, 'v4': False}, True])]}
for label, data, expected in cases[N]:
    check(label, solve(data), 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
close sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
mode off[['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['a', 'b', 'bb', 'q', 'r'], 'c', ['a'], {'a': True, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
disabled target[['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
leaf target[['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True][['b', 'bb', 'q', 'r'], 'c', [], {'a': False, 'b': True, 'bb': True, 'q': True, 'r': True}, True]Passed
unrelated focus[['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False][['a', 'q', 'r'], 'q', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, False]Passed
already open target[['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True][['a', 'aa', 'q', 'r'], 'b', ['b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True}, True]Passed
deeper varying sibling[['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True][['a', 'q', 'r'], 'b', ['a', 'b', 'bb'], {'a': True, 'b': False, 'bb': False, 'q': True, 'r': True, 'v0': False}, True]Passed

SHA-256 / a5f43ab0262919cfe1b29bff17775e988182052958bffa2e229249cd0883e49e

Verification & scope

Synthetic deterministic hierarchical-widget data contract; not an implementation of a browser accessibility tree. 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:21.742677+00:00.

Case digest / 96208fe7024291f9ebf04350b1551075a64f107a3817fd2d750863fdd7b53476