{"abstract":"Sorting detaches deep descendants from their child subtree produces the wrong hierarchical widget state in a regression fixture.","category":"Tree accessibility","checks":6,"contract":"Only direct children of the target parent are sorted by casefolded display label, with original order retained on ties; each child subtree moves as one block. Missing labels sort last in ascending order; descending reverses the complete comparison order. Focus, selection and expansion remain ID-based; sibling positions are recomputed from sorted roots.","contract_signature":"d","evaluation_group":"s3-tree-sibling-sort","failed_approach":"The partial repair `d['parents'].get(x)==r or x==r` still violates a boundary or preservation case.","family":"s3-tree_accessibility-sibling-sort-05","id":"FA-39661","implementations":{"attempt":{"sha256":"9ee74638045f0ab45577c45e9cfdc0063dcf4e7c5dceaedeefab6017072efc9d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    roots=[x for x in d['order'] if d['parents'].get(x)==d['parent']]\n    key=lambda x:(d['labels'].get(x) is None,(d['labels'].get(x) or '').casefold())\n    ordered=sorted(roots,key=key,reverse=d['descending'])\n    blocks={r:[x for x in d['order'] if d['parents'].get(x)==r or x==r] for r in roots}\n    closure={x for block in blocks.values() for x in block}\n    first=min((d['order'].index(x) for x in closure),default=len(d['order']))\n    prefix=[x for x in d['order'][:first] if x not in closure]\n    suffix=[x for x in d['order'][first:] if x not in closure]\n    result=prefix+[x for r in ordered for x in blocks[r]]+suffix\n    positions={x:i+1 for i,x in enumerate(ordered)}\n    return [result,positions,d['focus'],d['selected'],d['expanded']]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X1', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 2: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X2', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 3: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X3', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 4: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X4', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 5: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X5', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])]}\nfor label, data, expected in cases[N]:\n    check(label, solve(data), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"0a7272b2ecfa53d6bf52108d85d1fc1de882be7047b959c2624421f33382229c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    roots=[x for x in d['order'] if d['parents'].get(x)==d['parent']]\n    key=lambda x:(d['labels'].get(x) is None,(d['labels'].get(x) or '').casefold())\n    ordered=sorted(roots,key=key,reverse=d['descending'])\n    blocks={r:[x for x in d['order'] if x==r] for r in roots}\n    closure={x for block in blocks.values() for x in block}\n    first=min((d['order'].index(x) for x in closure),default=len(d['order']))\n    prefix=[x for x in d['order'][:first] if x not in closure]\n    suffix=[x for x in d['order'][first:] if x not in closure]\n    result=prefix+[x for r in ordered for x in blocks[r]]+suffix\n    positions={x:i+1 for i,x in enumerate(ordered)}\n    return [result,positions,d['focus'],d['selected'],d['expanded']]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X1', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 2: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X2', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 3: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X3', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 4: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X4', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])], 5: [('ascending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'a', 'z', 'zz', 'zzz', 'b', 'q'], {'a': 1, 'z': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']]), ('descending', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': True, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('stable tie', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'SAME', 'a': 'same', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('case fold', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'Straße', 'a': 'STRASSE', 'b': 'other'}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'b', 'z', 'zz', 'zzz', 'a', 'q'], {'b': 1, 'z': 2, 'a': 3}, 'z', ['zzz'], ['r', 'z']]), ('empty siblings', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'absent', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': 'beta', 'a': 'Alpha', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {}, 'z', ['zzz'], ['r', 'z']]), ('empty label', {'order': ['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], 'parents': {'outside': None, 'r': None, 'z': 'r', 'zz': 'z', 'zzz': 'zz', 'a': 'r', 'b': 'r', 'q': None}, 'parent': 'r', 'ancestors': {'z': ['r'], 'zz': ['r', 'z'], 'zzz': ['r', 'z', 'zz'], 'a': ['r'], 'b': ['r']}, 'labels': {'z': '', 'a': 'X5', 'b': None}, 'descending': False, 'focus': 'z', 'selected': ['zzz'], 'expanded': ['r', 'z']}, [['outside', 'r', 'z', 'zz', 'zzz', 'a', 'b', 'q'], {'z': 1, 'a': 2, 'b': 3}, 'z', ['zzz'], ['r', 'z']])]}\nfor label, data, expected in cases[N]:\n    check(label, solve(data), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-tree_accessibility-sibling-sort-05","generated_at":"2026-09-29T14:43:23.724377+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"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.","root_cause":"The sibling-sort contract is violated at `x==r or r in d['ancestors'].get(x,[])` by replacing it with `x==r`.","sha256":"d25534d10607512c33c26f3708ec9aed47276f0d0229312e26529d6567ae9cdc","title":"Hierarchical sibling sort and stable identity: Sorting detaches deep descendants from their child subtree · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":48.075,"exit_code":1,"observations":[{"actual":[["outside","r","a","z","zz","b","zzz","q"],{"a":1,"b":3,"z":2},"z",["zzz"],["r","z"]],"check":"ascending","expected":[["outside","r","a","z","zz","zzz","b","q"],{"a":1,"b":3,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","zz","a","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"descending","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","zz","a","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"stable tie","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","zz","a","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"case fold","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","z","zz","zzz","a","b","q"],{},"z",["zzz"],["r","z"]],"check":"empty siblings","expected":[["outside","r","z","zz","zzz","a","b","q"],{},"z",["zzz"],["r","z"]],"passed":true},{"actual":[["outside","r","z","zz","a","b","zzz","q"],{"a":2,"b":3,"z":1},"z",["zzz"],["r","z"]],"check":"empty label","expected":[["outside","r","z","zz","zzz","a","b","q"],{"a":2,"b":3,"z":1},"z",["zzz"],["r","z"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ascending\", \"actual\": [[\"outside\", \"r\", \"a\", \"z\", \"zz\", \"b\", \"zzz\", \"q\"], {\"a\": 1, \"z\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"a\", \"z\", \"zz\", \"zzz\", \"b\", \"q\"], {\"a\": 1, \"z\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"descending\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"a\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"stable tie\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"a\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"case fold\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"a\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"empty siblings\", \"actual\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": true}, {\"check\": \"empty label\", \"actual\": [[\"outside\", \"r\", \"z\", \"zz\", \"a\", \"b\", \"zzz\", \"q\"], {\"z\": 1, \"a\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {\"z\": 1, \"a\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.014,"exit_code":1,"observations":[{"actual":[["outside","r","a","z","b","zz","zzz","q"],{"a":1,"b":3,"z":2},"z",["zzz"],["r","z"]],"check":"ascending","expected":[["outside","r","a","z","zz","zzz","b","q"],{"a":1,"b":3,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","a","zz","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"descending","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","a","zz","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"stable tie","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","b","z","a","zz","zzz","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"check":"case fold","expected":[["outside","r","b","z","zz","zzz","a","q"],{"a":3,"b":1,"z":2},"z",["zzz"],["r","z"]],"passed":false},{"actual":[["outside","r","z","zz","zzz","a","b","q"],{},"z",["zzz"],["r","z"]],"check":"empty siblings","expected":[["outside","r","z","zz","zzz","a","b","q"],{},"z",["zzz"],["r","z"]],"passed":true},{"actual":[["outside","r","z","a","b","zz","zzz","q"],{"a":2,"b":3,"z":1},"z",["zzz"],["r","z"]],"check":"empty label","expected":[["outside","r","z","zz","zzz","a","b","q"],{"a":2,"b":3,"z":1},"z",["zzz"],["r","z"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ascending\", \"actual\": [[\"outside\", \"r\", \"a\", \"z\", \"b\", \"zz\", \"zzz\", \"q\"], {\"a\": 1, \"z\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"a\", \"z\", \"zz\", \"zzz\", \"b\", \"q\"], {\"a\": 1, \"z\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"descending\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"a\", \"zz\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"stable tie\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"a\", \"zz\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"case fold\", \"actual\": [[\"outside\", \"r\", \"b\", \"z\", \"a\", \"zz\", \"zzz\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"b\", \"z\", \"zz\", \"zzz\", \"a\", \"q\"], {\"b\": 1, \"z\": 2, \"a\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}, {\"check\": \"empty siblings\", \"actual\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": true}, {\"check\": \"empty label\", \"actual\": [[\"outside\", \"r\", \"z\", \"a\", \"b\", \"zz\", \"zzz\", \"q\"], {\"z\": 1, \"a\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"expected\": [[\"outside\", \"r\", \"z\", \"zz\", \"zzz\", \"a\", \"b\", \"q\"], {\"z\": 1, \"a\": 2, \"b\": 3}, \"z\", [\"zzz\"], [\"r\", \"z\"]], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}