FAILURE MAP
← Case archive

FA-38661 / Tree accessibility / Open access

Accessible subtree reparent transaction: Old sibling list keeps moved root or mutates rejected drop · case 01

Old sibling list keeps moved root or mutates rejected drop produces the wrong hierarchical widget state in a regression fixture.

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

ROOT CAUSE

The reparent-state contract is violated at `if not(accept and x==d['root'])` by replacing it with `if x!=d['root']`.

VERIFIED REPAIR

Restore `if not(accept and x==d['root'])` at this fault site while retaining the other tree state decisions.

Unsuccessful approach: The partial repair `if True` still violates a boundary or preservation case.

Case contract

The closure contains a moved subtree and the source and destination are distinct parents. Reject drops into that closure or a read-only destination. Accepted moves replace the root parent, shift every descendant level by the parent-depth delta, invalidate sibling metadata, retain ID-based selection and focus, and increment only affected parent versions.

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):
    accept=d['target'] not in d['closure'] and not d['readonly']
    parent=d['target'] if accept else d['old_parent']
    delta=d['target_depth']+1-d['depths'][d['root']]
    depths={x:(v+delta if accept and x in d['closure'] else v) for x,v in d['depths'].items()}
    old_children=[x for x in d['old_children'] if x!=d['root']]
    new_children=d['new_children'][:d['position']]+[d['root']]+d['new_children'][d['position']:] if accept else d['new_children']
    invalid=sorted(set([d['old_parent'],d['target']])) if accept else []
    versions={x:v+(1 if accept and x in invalid else 0) for x,v in d['versions'].items()}
    focus=d['focus']
    selected=d['selected']
    expanded=sorted(set(d['expanded'])|({d['target']} if accept and d['reveal'] else set()))
    return [parent,depths,old_children,new_children,invalid,versions,focus,selected,expanded]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 2: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 3: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 4: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 5: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])]}
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
accepted['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Passed
descendant target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Failed
protected target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Failed
no reveal['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]Passed
insert first['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Passed
insert last['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]Passed

SHA-256 / 174d06812234aabc7c2f9db8abb05c15f4c4dc2a5dd731242da165e2cac263c4

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(d):
    accept=d['target'] not in d['closure'] and not d['readonly']
    parent=d['target'] if accept else d['old_parent']
    delta=d['target_depth']+1-d['depths'][d['root']]
    depths={x:(v+delta if accept and x in d['closure'] else v) for x,v in d['depths'].items()}
    old_children=[x for x in d['old_children'] if True]
    new_children=d['new_children'][:d['position']]+[d['root']]+d['new_children'][d['position']:] if accept else d['new_children']
    invalid=sorted(set([d['old_parent'],d['target']])) if accept else []
    versions={x:v+(1 if accept and x in invalid else 0) for x,v in d['versions'].items()}
    focus=d['focus']
    selected=d['selected']
    expanded=sorted(set(d['expanded'])|({d['target']} if accept and d['reveal'] else set()))
    return [parent,depths,old_children,new_children,invalid,versions,focus,selected,expanded]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 2: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 3: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 4: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 5: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])]}
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
accepted['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Failed
descendant target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Passed
protected target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Passed
no reveal['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]Failed
insert first['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Failed
insert last['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]Failed

SHA-256 / 744cbd83f8382240291ce64f7d7e5cbe54420fb4ee20a4600e72ccf8fdc2c5c1

3 / The verified repair

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

N = 1
observations = []
def solve(d):
    accept=d['target'] not in d['closure'] and not d['readonly']
    parent=d['target'] if accept else d['old_parent']
    delta=d['target_depth']+1-d['depths'][d['root']]
    depths={x:(v+delta if accept and x in d['closure'] else v) for x,v in d['depths'].items()}
    old_children=[x for x in d['old_children'] if not(accept and x==d['root'])]
    new_children=d['new_children'][:d['position']]+[d['root']]+d['new_children'][d['position']:] if accept else d['new_children']
    invalid=sorted(set([d['old_parent'],d['target']])) if accept else []
    versions={x:v+(1 if accept and x in invalid else 0) for x,v in d['versions'].items()}
    focus=d['focus']
    selected=d['selected']
    expanded=sorted(set(d['expanded'])|({d['target']} if accept and d['reveal'] else set()))
    return [parent,depths,old_children,new_children,invalid,versions,focus,selected,expanded]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 2, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 2, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 3, 'c': 4, 'q': 2, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 2: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 3, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 3, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 4, 'c': 5, 'q': 3, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 3: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 4, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 4, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 5, 'c': 6, 'q': 4, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 4: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 5, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 5, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 6, 'c': 7, 'q': 5, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])], 5: [('accepted', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('descendant target', {'target': 'c', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('protected target', {'target': 'q', 'closure': ['b', 'c'], 'readonly': True, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['r', {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'r': 3, 'q': 7, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('no reveal', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 1, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': False}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['r']]), ('insert first', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 0, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'c', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'c', ['c', 'a'], ['q', 'r']]), ('insert last', {'target': 'q', 'closure': ['b', 'c'], 'readonly': False, 'root': 'b', 'old_parent': 'r', 'target_depth': 6, 'depths': {'r': 0, 'b': 1, 'c': 2, 'q': 6, 'outside': 0}, 'old_children': ['a', 'b', 'z'], 'new_children': ['x', 'y'], 'position': 2, 'versions': {'r': 3, 'q': 7, 'outside': 8}, 'focus': 'outside', 'selected': ['c', 'a'], 'expanded': ['r'], 'reveal': True}, ['q', {'r': 0, 'b': 7, 'c': 8, 'q': 6, 'outside': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'r': 4, 'q': 8, 'outside': 8}, 'outside', ['c', 'a'], ['q', 'r']])]}
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
accepted['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Passed
descendant target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Passed
protected target['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]['r', {'b': 1, 'c': 2, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'b', 'z'], ['x', 'y'], [], {'outside': 8, 'q': 7, 'r': 3}, 'c', ['c', 'a'], ['r']]Passed
no reveal['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'b', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['r']]Passed
insert first['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['b', 'x', 'y'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'c', ['c', 'a'], ['q', 'r']]Passed
insert last['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]['q', {'b': 3, 'c': 4, 'outside': 0, 'q': 2, 'r': 0}, ['a', 'z'], ['x', 'y', 'b'], ['q', 'r'], {'outside': 8, 'q': 8, 'r': 4}, 'outside', ['c', 'a'], ['q', 'r']]Passed

SHA-256 / 51b16f82cbd38def432ed28c76aa5fba6728cd8babf180052b79540cd225a9fb

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:13.443335+00:00.

Case digest / 30a36f94de5ec0dce0e9858fbf8d28bf6171e23307384ce551ff78fb1905fb44