FA-80581 / Bidirectional text layout / Open access
Bracket pair identification: stack overflow handling · case 01
Pairs keep being found after the opener stack overflowed.
ROOT CAUSE
An overflowing opener is skipped instead of stopping identification.
VERIFIED REPAIR
Stop processing when the stack limit is exceeded.
Unsuccessful approach: Allowing one extra entry delays the stop.
Case contract
Input [text, classes, stack limit]. Only characters of class ON take part. Openers ( [ { are pushed; on overflow of the stack limit stop and keep pairs found so far. A closer searches the stack from the top for its opener; if found it pairs and discards that entry and everything above; otherwise it is ignored. Return pairs sorted by opener.
Why this case matters
Mixed right-to-left and left-to-right text must resolve levels and visual order exactly, or words, numbers and carets land in the wrong place.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
text, classes, limit = x
OPEN = {'(': ')', '[': ']', '{': '}'}
CLOSE = {')', ']', '}'}
stack = []
pairs = []
for i, ch in enumerate(text):
if classes[i] != 'ON':
continue
if ch in OPEN:
if len(stack) >= limit:
continue
stack.append((OPEN[ch], i))
elif ch in CLOSE:
for k in range(len(stack) - 1, -1, -1):
if stack[k][0] == ch:
pairs.append([stack[k][1], i])
del stack[k:]
break
return sorted(pairs)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['(({{[(a){a)', ['ON', 'ON', 'ON', 'R', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'R'], 4], []), ('regression: stack overflow handling', ['{[)(a([]a({](', ['ON', 'ON', 'ON', 'R', 'L', 'R', 'ON', 'L', 'L', 'L', 'L', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['{a[}(((', ['ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[[(a[(}[[{', ['ON', 'R', 'ON', 'L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 3], []), ('control layout', ['][}((}(()([', ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON'], 3], [[6, 8]])], [('regression: stack overflow handling', ['](](a)(](', ['L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['{}((}{[}(())(', ['R', 'L', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'L', 'ON', 'ON', 'ON', 'R'], 2], []), ('regression: stack overflow handling', ['[a[(}](][(){)', ['L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('regression: stack overflow handling', ['{}({a{{(()](}', ['ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 4], [[0, 1]]), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('control layout', [')a{{a}]}({', ['L', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], [[2, 7], [3, 5]]), ('control layout', [')]])([', ['R', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], [])], [('regression: stack overflow handling', ['(][})([{({a]a]', ['ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'ON', 'L', 'R'], 2], [[0, 4]]), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['(()[{a{[[((}', ['ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['a][a', ['L', 'L', 'ON', 'R'], 3], []), ('control layout', ['a))(', ['L', 'L', 'ON', 'L'], 3], [])], [('regression: stack overflow handling', ['[([{{(]]', ['ON', 'ON', 'R', 'R', 'ON', 'ON', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('partial-repair probe', ['()}][[a[(({}}{', ['L', 'R', 'R', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['][', ['ON', 'ON'], 1], []), ('control layout', [')a}]', ['L', 'R', 'ON', 'ON'], 4], [])], [('regression: stack overflow handling', ['[]([[]a)})[', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'ON', 'ON', 'ON', 'ON'], 1], [[0, 1]]), ('regression: stack overflow handling', ['[a{a]})]([}', ['ON', 'L', 'ON', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['(]{[}', ['ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('partial-repair probe', ['{]a[)][(', ['ON', 'ON', 'R', 'ON', 'ON', 'ON', 'R', 'ON'], 1], []), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[)[a{{{(', ['L', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'ON'], 3], []), ('control layout', ['(([)([', ['ON', 'ON', 'ON', 'ON', 'ON', 'L'], 3], [[1, 3]])]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(args), 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| stack overflow stops | [[0, 4], [1, 3]] | [] | Failed |
| regression: stack overflow handling | [[1, 7]] | [] | Failed |
| regression: stack overflow handling | [[1, 11]] | [] | Failed |
| regression: stack overflow handling | [[0, 3]] | [] | Failed |
| overridden bracket ignored | [] | [] | Passed |
| mismatched inner bracket | [[0, 2]] | [[0, 2]] | Passed |
| control layout | [] | [] | Passed |
| control layout | [[6, 8]] | [[6, 8]] | Passed |
SHA-256 / db6ad45672f0d64696184b5fa4d1b98dfac42fece9eb97003688566a7572540b
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
text, classes, limit = x
OPEN = {'(': ')', '[': ']', '{': '}'}
CLOSE = {')', ']', '}'}
stack = []
pairs = []
for i, ch in enumerate(text):
if classes[i] != 'ON':
continue
if ch in OPEN:
if len(stack) > limit:
break
stack.append((OPEN[ch], i))
elif ch in CLOSE:
for k in range(len(stack) - 1, -1, -1):
if stack[k][0] == ch:
pairs.append([stack[k][1], i])
del stack[k:]
break
return sorted(pairs)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['(({{[(a){a)', ['ON', 'ON', 'ON', 'R', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'R'], 4], []), ('regression: stack overflow handling', ['{[)(a([]a({](', ['ON', 'ON', 'ON', 'R', 'L', 'R', 'ON', 'L', 'L', 'L', 'L', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['{a[}(((', ['ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[[(a[(}[[{', ['ON', 'R', 'ON', 'L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 3], []), ('control layout', ['][}((}(()([', ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON'], 3], [[6, 8]])], [('regression: stack overflow handling', ['](](a)(](', ['L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['{}((}{[}(())(', ['R', 'L', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'L', 'ON', 'ON', 'ON', 'R'], 2], []), ('regression: stack overflow handling', ['[a[(}](][(){)', ['L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('regression: stack overflow handling', ['{}({a{{(()](}', ['ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 4], [[0, 1]]), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('control layout', [')a{{a}]}({', ['L', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], [[2, 7], [3, 5]]), ('control layout', [')]])([', ['R', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], [])], [('regression: stack overflow handling', ['(][})([{({a]a]', ['ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'ON', 'L', 'R'], 2], [[0, 4]]), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['(()[{a{[[((}', ['ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['a][a', ['L', 'L', 'ON', 'R'], 3], []), ('control layout', ['a))(', ['L', 'L', 'ON', 'L'], 3], [])], [('regression: stack overflow handling', ['[([{{(]]', ['ON', 'ON', 'R', 'R', 'ON', 'ON', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('partial-repair probe', ['()}][[a[(({}}{', ['L', 'R', 'R', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['][', ['ON', 'ON'], 1], []), ('control layout', [')a}]', ['L', 'R', 'ON', 'ON'], 4], [])], [('regression: stack overflow handling', ['[]([[]a)})[', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'ON', 'ON', 'ON', 'ON'], 1], [[0, 1]]), ('regression: stack overflow handling', ['[a{a]})]([}', ['ON', 'L', 'ON', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['(]{[}', ['ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('partial-repair probe', ['{]a[)][(', ['ON', 'ON', 'R', 'ON', 'ON', 'ON', 'R', 'ON'], 1], []), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[)[a{{{(', ['L', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'ON'], 3], []), ('control layout', ['(([)([', ['ON', 'ON', 'ON', 'ON', 'ON', 'L'], 3], [[1, 3]])]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(args), 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| stack overflow stops | [[0, 5], [1, 4], [2, 3]] | [] | Failed |
| regression: stack overflow handling | [[5, 7]] | [] | Failed |
| regression: stack overflow handling | [[6, 11]] | [] | Failed |
| regression: stack overflow handling | [[0, 3]] | [] | Failed |
| overridden bracket ignored | [] | [] | Passed |
| mismatched inner bracket | [[0, 2]] | [[0, 2]] | Passed |
| control layout | [] | [] | Passed |
| control layout | [[6, 8]] | [[6, 8]] | Passed |
SHA-256 / e06b4fbdbcf59902d1ddb6c1c5a41e9382acc638bd95230fe96a6074ffc264a1
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
text, classes, limit = x
OPEN = {'(': ')', '[': ']', '{': '}'}
CLOSE = {')', ']', '}'}
stack = []
pairs = []
for i, ch in enumerate(text):
if classes[i] != 'ON':
continue
if ch in OPEN:
if len(stack) >= limit:
break
stack.append((OPEN[ch], i))
elif ch in CLOSE:
for k in range(len(stack) - 1, -1, -1):
if stack[k][0] == ch:
pairs.append([stack[k][1], i])
del stack[k:]
break
return sorted(pairs)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['(({{[(a){a)', ['ON', 'ON', 'ON', 'R', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'R'], 4], []), ('regression: stack overflow handling', ['{[)(a([]a({](', ['ON', 'ON', 'ON', 'R', 'L', 'R', 'ON', 'L', 'L', 'L', 'L', 'ON', 'ON'], 2], []), ('regression: stack overflow handling', ['{a[}(((', ['ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[[(a[(}[[{', ['ON', 'R', 'ON', 'L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 3], []), ('control layout', ['][}((}(()([', ['ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON'], 3], [[6, 8]])], [('regression: stack overflow handling', ['](](a)(](', ['L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['{}((}{[}(())(', ['R', 'L', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'L', 'ON', 'ON', 'ON', 'R'], 2], []), ('regression: stack overflow handling', ['[a[(}](][(){)', ['L', 'R', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON'], 1], []), ('regression: stack overflow handling', ['{}({a{{(()](}', ['ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON'], 4], [[0, 1]]), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('control layout', [')a{{a}]}({', ['L', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], [[2, 7], [3, 5]]), ('control layout', [')]])([', ['R', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], [])], [('regression: stack overflow handling', ['(][})([{({a]a]', ['ON', 'ON', 'ON', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'ON', 'L', 'R'], 2], [[0, 4]]), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['(()[{a{[[((}', ['ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'L', 'ON', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['a][a', ['L', 'L', 'ON', 'R'], 3], []), ('control layout', ['a))(', ['L', 'L', 'ON', 'L'], 3], [])], [('regression: stack overflow handling', ['[([{{(]]', ['ON', 'ON', 'R', 'R', 'ON', 'ON', 'ON', 'R'], 1], []), ('regression: stack overflow handling', ['{({{{{}a((a', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'R', 'L'], 2], []), ('partial-repair probe', ['()}][[a[(({}}{', ['L', 'R', 'R', 'ON', 'ON', 'ON', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'ON', 'ON'], 4], []), ('regression: stack overflow handling', ['[]a}}[](a](((', ['ON', 'R', 'R', 'ON', 'R', 'ON', 'ON', 'ON', 'L', 'R', 'L', 'ON', 'R'], 1], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('overridden bracket ignored', ['(a)', ['R', 'L', 'ON'], 4], []), ('control layout', ['][', ['ON', 'ON'], 1], []), ('control layout', [')a}]', ['L', 'R', 'ON', 'ON'], 4], [])], [('regression: stack overflow handling', ['[]([[]a)})[', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'R', 'ON', 'ON', 'ON', 'ON'], 1], [[0, 1]]), ('regression: stack overflow handling', ['[a{a]})]([}', ['ON', 'L', 'ON', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 1], []), ('regression: stack overflow handling', ['(]{[}', ['ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('partial-repair probe', ['{]a[)][(', ['ON', 'ON', 'R', 'ON', 'ON', 'ON', 'R', 'ON'], 1], []), ('stack overflow stops', ['((()))', ['ON', 'ON', 'ON', 'ON', 'ON', 'ON'], 2], []), ('mismatched inner bracket', ['([)]', ['ON', 'ON', 'ON', 'ON'], 4], [[0, 2]]), ('control layout', ['[)[a{{{(', ['L', 'ON', 'ON', 'R', 'ON', 'ON', 'L', 'ON'], 3], []), ('control layout', ['(([)([', ['ON', 'ON', 'ON', 'ON', 'ON', 'L'], 3], [[1, 3]])]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(args), 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| stack overflow stops | [] | [] | Passed |
| regression: stack overflow handling | [] | [] | Passed |
| regression: stack overflow handling | [] | [] | Passed |
| regression: stack overflow handling | [] | [] | Passed |
| overridden bracket ignored | [] | [] | Passed |
| mismatched inner bracket | [[0, 2]] | [[0, 2]] | Passed |
| control layout | [] | [] | Passed |
| control layout | [[6, 8]] | [[6, 8]] | Passed |
SHA-256 / eae7d61977f38fc9a6f3919d13ffeef727219b7fdb467ec195e3d7436c10352d
Verification & scope
A deterministic toy bidi model over stipulated class labels and integer levels; it is inspired by, but does not claim conformance to, any published algorithm. 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:49:55.195024+00:00.
Case digest / 730403c625e63d7e7aad61a97746fae113aa588f0384a83449ec3e3aa64c5992