FA-80541 / Bidirectional text layout / Open access
Explicit embedding stack: PDF overflow priority · case 01
A PDF closes a real embedding while an overflowed one is still open.
ROOT CAUSE
PDF pops the stack before consuming pending overflow.
VERIFIED REPAIR
Cancel pending overflow first; only then pop the stack.
Unsuccessful approach: Doing both on one PDF pops too far.
Case contract
Input [classes, paragraph level, max depth]. RLE/RLO push the next odd level, LRE/LRO the next even level (RLO/LRO set an R/L override, RLE/LRE clear it) if the level <= max depth and no overflow is pending, else count an overflow. PDF first cancels an overflow, else pops if above the base. Codes get level "x" and class BN; other characters take the top level and the override class if any. Return [levels, classes].
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):
classes, para, max_depth = x
stack = [(para, None)]
overflow = 0
levels = []
types = []
for c in classes:
if c in ('RLE', 'LRE', 'RLO', 'LRO'):
cur = stack[-1][0]
if c in ('RLE', 'RLO'):
new = cur + 1 if cur % 2 == 0 else cur + 2
else:
new = cur + 2 if cur % 2 == 0 else cur + 1
if new <= max_depth and overflow == 0:
ovr = None if c in ('RLE', 'LRE') else ('R' if c == 'RLO' else 'L')
stack.append((new, ovr))
else:
overflow += 1
levels.append('x')
types.append('BN')
elif c == 'PDF':
if len(stack) > 1:
stack.pop()
elif overflow > 0:
overflow -= 1
levels.append('x')
types.append('BN')
else:
lv, ovr = stack[-1]
levels.append(lv)
types.append(ovr if ovr else c)
return [levels, types]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['PDF', 'RLO', 'RLE', 'LRE', 'LRO', 'PDF', 'PDF', 'EN', 'PDF', 'R', 'L', 'EN', 'L'], 1, 5], [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']]), ('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'R', 'RLO', 'L', 'R', 'PDF', 'WS', 'LRE', 'RLE', 'PDF', 'L'], 0, 4], [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'L', 'L', 'R'], 1, 6], [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']]), ('control layout', [['ON', 'L', 'PDF', 'RLO', 'R'], 1, 4], [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['ON', 'ON', 'RLE', 'RLE', 'EN', 'L', 'LRO', 'RLE', 'EN', 'PDF', 'R'], 0, 4], [[0, 0, 'x', 'x', 3, 3, 'x', 'x', 4, 'x', 4], ['ON', 'ON', 'BN', 'BN', 'EN', 'L', 'BN', 'BN', 'L', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'PDF', 'EN', 'LRE', 'R', 'LRE', 'RLE', 'PDF', 'WS', 'RLO', 'ON', 'L', 'R', 'R'], 1, 3], [[1, 'x', 1, 'x', 2, 'x', 'x', 'x', 2, 'x', 2, 2, 2, 2], ['L', 'BN', 'EN', 'BN', 'R', 'BN', 'BN', 'BN', 'WS', 'BN', 'ON', 'L', 'R', 'R']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['PDF', 'RLE', 'L', 'L', 'RLE', 'PDF', 'PDF', 'L', 'R', 'L', 'PDF', 'EN', 'WS'], 0, 4], [['x', 'x', 1, 1, 'x', 'x', 'x', 0, 0, 0, 'x', 0, 0], ['BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'L', 'R', 'L', 'BN', 'EN', 'WS']]), ('control layout', [['R', 'L', 'RLE', 'WS', 'R', 'LRE', 'ON', 'PDF', 'RLE'], 0, 4], [[0, 0, 'x', 1, 1, 'x', 2, 'x', 'x'], ['R', 'L', 'BN', 'WS', 'R', 'BN', 'ON', 'BN', 'BN']])], [('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'L', 'PDF', 'PDF', 'ON', 'RLE', 'LRE', 'EN', 'PDF', 'EN'], 1, 3], [['x', 2, 'x', 'x', 1, 'x', 'x', 3, 'x', 3], ['BN', 'L', 'BN', 'BN', 'ON', 'BN', 'BN', 'EN', 'BN', 'EN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['PDF', 'LRE', 'RLE', 'RLE', 'LRE', 'EN', 'LRE', 'PDF', 'EN', 'ON', 'EN', 'ON'], 0, 4], [['x', 'x', 'x', 'x', 'x', 3, 'x', 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'EN', 'ON', 'EN', 'ON']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'RLE', 'LRE', 'ON', 'L', 'ON', 'PDF', 'LRE', 'PDF', 'ON'], 0, 3], [['x', 'x', 'x', 'x', 2, 2, 2, 'x', 'x', 'x', 1], ['BN', 'BN', 'BN', 'BN', 'ON', 'L', 'ON', 'BN', 'BN', 'BN', 'ON']]), ('control layout', [['R', 'EN', 'ON'], 1, 3], [[1, 1, 1], ['R', 'EN', 'ON']])], [('regression: PDF overflow priority', [['RLE', 'L', 'ON', 'RLE', 'L', 'EN', 'ON', 'PDF', 'L'], 1, 3], [['x', 3, 3, 'x', 3, 3, 3, 'x', 3], ['BN', 'L', 'ON', 'BN', 'L', 'EN', 'ON', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'PDF', 'LRE', 'ON', 'ON', 'RLO', 'LRE', 'R', 'L', 'PDF', 'EN', 'RLO', 'L'], 0, 3], [[0, 0, 'x', 'x', 2, 2, 'x', 'x', 3, 3, 'x', 3, 'x', 3], ['L', 'L', 'BN', 'BN', 'ON', 'ON', 'BN', 'BN', 'R', 'R', 'BN', 'R', 'BN', 'R']]), ('regression: PDF overflow priority', [['R', 'WS', 'RLE', 'LRE', 'PDF', 'L', 'RLO', 'LRE', 'L', 'RLE', 'L', 'PDF', 'ON', 'PDF'], 1, 4], [[1, 1, 'x', 'x', 'x', 3, 'x', 'x', 3, 'x', 3, 'x', 3, 'x'], ['R', 'WS', 'BN', 'BN', 'BN', 'L', 'BN', 'BN', 'L', 'BN', 'L', 'BN', 'ON', 'BN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['R', 'EN', 'EN', 'PDF', 'LRO', 'PDF', 'RLE', 'RLO'], 0, 4], [[0, 0, 0, 'x', 'x', 'x', 'x', 'x'], ['R', 'EN', 'EN', 'BN', 'BN', 'BN', 'BN', 'BN']]), ('control layout', [['R', 'EN', 'L', 'R', 'RLE', 'RLE', 'LRE', 'R', 'EN', 'L', 'RLE', 'EN', 'R'], 0, 2], [[0, 0, 0, 0, 'x', 'x', 'x', 1, 1, 1, 'x', 1, 1], ['R', 'EN', 'L', 'R', 'BN', 'BN', 'BN', 'R', 'EN', 'L', 'BN', 'EN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['LRE', 'RLE', 'L', 'R', 'EN', 'PDF', 'RLE', 'L', 'L', 'L', 'ON', 'RLE'], 1, 2], [['x', 'x', 2, 2, 2, 'x', 'x', 2, 2, 2, 2, 'x'], ['BN', 'BN', 'L', 'R', 'EN', 'BN', 'BN', 'L', 'L', 'L', 'ON', 'BN']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['L', 'PDF', 'L', 'WS'], 1, 4], [[1, 'x', 1, 1], ['L', 'BN', 'L', 'WS']]), ('control layout', [['RLE', 'LRO', 'L', 'WS', 'R', 'EN', 'EN', 'R', 'L', 'PDF', 'ON', 'L', 'ON'], 0, 6], [['x', 'x', 2, 2, 2, 2, 2, 2, 2, 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'BN', 'ON', 'L', 'ON']])]]
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 |
|---|---|---|---|
| regression: PDF overflow priority | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 1, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN']] | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']] | Failed |
| regression: PDF overflow priority | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 1, 'x', 1, 1, 1, 1], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'L', 'EN', 'L']] | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']] | Failed |
| regression: PDF overflow priority | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 0], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | Failed |
| regression: PDF overflow priority | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | Failed |
| RLE from odd level | [['x', 'x', 3], ['BN', 'BN', 'L']] | [['x', 'x', 3], ['BN', 'BN', 'L']] | Passed |
| depth limit exactly reached | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | Passed |
| control layout | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | Passed |
| control layout | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | Passed |
SHA-256 / 560f08dec9cccbfd460fec5515e969fd389d736272bcc0daf610d657582a0f26
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
classes, para, max_depth = x
stack = [(para, None)]
overflow = 0
levels = []
types = []
for c in classes:
if c in ('RLE', 'LRE', 'RLO', 'LRO'):
cur = stack[-1][0]
if c in ('RLE', 'RLO'):
new = cur + 1 if cur % 2 == 0 else cur + 2
else:
new = cur + 2 if cur % 2 == 0 else cur + 1
if new <= max_depth and overflow == 0:
ovr = None if c in ('RLE', 'LRE') else ('R' if c == 'RLO' else 'L')
stack.append((new, ovr))
else:
overflow += 1
levels.append('x')
types.append('BN')
elif c == 'PDF':
if overflow > 0:
overflow -= 1
if len(stack) > 1:
stack.pop()
levels.append('x')
types.append('BN')
else:
lv, ovr = stack[-1]
levels.append(lv)
types.append(ovr if ovr else c)
return [levels, types]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['PDF', 'RLO', 'RLE', 'LRE', 'LRO', 'PDF', 'PDF', 'EN', 'PDF', 'R', 'L', 'EN', 'L'], 1, 5], [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']]), ('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'R', 'RLO', 'L', 'R', 'PDF', 'WS', 'LRE', 'RLE', 'PDF', 'L'], 0, 4], [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'L', 'L', 'R'], 1, 6], [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']]), ('control layout', [['ON', 'L', 'PDF', 'RLO', 'R'], 1, 4], [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['ON', 'ON', 'RLE', 'RLE', 'EN', 'L', 'LRO', 'RLE', 'EN', 'PDF', 'R'], 0, 4], [[0, 0, 'x', 'x', 3, 3, 'x', 'x', 4, 'x', 4], ['ON', 'ON', 'BN', 'BN', 'EN', 'L', 'BN', 'BN', 'L', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'PDF', 'EN', 'LRE', 'R', 'LRE', 'RLE', 'PDF', 'WS', 'RLO', 'ON', 'L', 'R', 'R'], 1, 3], [[1, 'x', 1, 'x', 2, 'x', 'x', 'x', 2, 'x', 2, 2, 2, 2], ['L', 'BN', 'EN', 'BN', 'R', 'BN', 'BN', 'BN', 'WS', 'BN', 'ON', 'L', 'R', 'R']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['PDF', 'RLE', 'L', 'L', 'RLE', 'PDF', 'PDF', 'L', 'R', 'L', 'PDF', 'EN', 'WS'], 0, 4], [['x', 'x', 1, 1, 'x', 'x', 'x', 0, 0, 0, 'x', 0, 0], ['BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'L', 'R', 'L', 'BN', 'EN', 'WS']]), ('control layout', [['R', 'L', 'RLE', 'WS', 'R', 'LRE', 'ON', 'PDF', 'RLE'], 0, 4], [[0, 0, 'x', 1, 1, 'x', 2, 'x', 'x'], ['R', 'L', 'BN', 'WS', 'R', 'BN', 'ON', 'BN', 'BN']])], [('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'L', 'PDF', 'PDF', 'ON', 'RLE', 'LRE', 'EN', 'PDF', 'EN'], 1, 3], [['x', 2, 'x', 'x', 1, 'x', 'x', 3, 'x', 3], ['BN', 'L', 'BN', 'BN', 'ON', 'BN', 'BN', 'EN', 'BN', 'EN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['PDF', 'LRE', 'RLE', 'RLE', 'LRE', 'EN', 'LRE', 'PDF', 'EN', 'ON', 'EN', 'ON'], 0, 4], [['x', 'x', 'x', 'x', 'x', 3, 'x', 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'EN', 'ON', 'EN', 'ON']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'RLE', 'LRE', 'ON', 'L', 'ON', 'PDF', 'LRE', 'PDF', 'ON'], 0, 3], [['x', 'x', 'x', 'x', 2, 2, 2, 'x', 'x', 'x', 1], ['BN', 'BN', 'BN', 'BN', 'ON', 'L', 'ON', 'BN', 'BN', 'BN', 'ON']]), ('control layout', [['R', 'EN', 'ON'], 1, 3], [[1, 1, 1], ['R', 'EN', 'ON']])], [('regression: PDF overflow priority', [['RLE', 'L', 'ON', 'RLE', 'L', 'EN', 'ON', 'PDF', 'L'], 1, 3], [['x', 3, 3, 'x', 3, 3, 3, 'x', 3], ['BN', 'L', 'ON', 'BN', 'L', 'EN', 'ON', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'PDF', 'LRE', 'ON', 'ON', 'RLO', 'LRE', 'R', 'L', 'PDF', 'EN', 'RLO', 'L'], 0, 3], [[0, 0, 'x', 'x', 2, 2, 'x', 'x', 3, 3, 'x', 3, 'x', 3], ['L', 'L', 'BN', 'BN', 'ON', 'ON', 'BN', 'BN', 'R', 'R', 'BN', 'R', 'BN', 'R']]), ('regression: PDF overflow priority', [['R', 'WS', 'RLE', 'LRE', 'PDF', 'L', 'RLO', 'LRE', 'L', 'RLE', 'L', 'PDF', 'ON', 'PDF'], 1, 4], [[1, 1, 'x', 'x', 'x', 3, 'x', 'x', 3, 'x', 3, 'x', 3, 'x'], ['R', 'WS', 'BN', 'BN', 'BN', 'L', 'BN', 'BN', 'L', 'BN', 'L', 'BN', 'ON', 'BN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['R', 'EN', 'EN', 'PDF', 'LRO', 'PDF', 'RLE', 'RLO'], 0, 4], [[0, 0, 0, 'x', 'x', 'x', 'x', 'x'], ['R', 'EN', 'EN', 'BN', 'BN', 'BN', 'BN', 'BN']]), ('control layout', [['R', 'EN', 'L', 'R', 'RLE', 'RLE', 'LRE', 'R', 'EN', 'L', 'RLE', 'EN', 'R'], 0, 2], [[0, 0, 0, 0, 'x', 'x', 'x', 1, 1, 1, 'x', 1, 1], ['R', 'EN', 'L', 'R', 'BN', 'BN', 'BN', 'R', 'EN', 'L', 'BN', 'EN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['LRE', 'RLE', 'L', 'R', 'EN', 'PDF', 'RLE', 'L', 'L', 'L', 'ON', 'RLE'], 1, 2], [['x', 'x', 2, 2, 2, 'x', 'x', 2, 2, 2, 2, 'x'], ['BN', 'BN', 'L', 'R', 'EN', 'BN', 'BN', 'L', 'L', 'L', 'ON', 'BN']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['L', 'PDF', 'L', 'WS'], 1, 4], [[1, 'x', 1, 1], ['L', 'BN', 'L', 'WS']]), ('control layout', [['RLE', 'LRO', 'L', 'WS', 'R', 'EN', 'EN', 'R', 'L', 'PDF', 'ON', 'L', 'ON'], 0, 6], [['x', 'x', 2, 2, 2, 2, 2, 2, 2, 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'BN', 'ON', 'L', 'ON']])]]
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 |
|---|---|---|---|
| regression: PDF overflow priority | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 1, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN']] | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']] | Failed |
| regression: PDF overflow priority | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 1, 'x', 1, 1, 1, 1], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'L', 'EN', 'L']] | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']] | Failed |
| regression: PDF overflow priority | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 0], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | Failed |
| regression: PDF overflow priority | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | Failed |
| RLE from odd level | [['x', 'x', 3], ['BN', 'BN', 'L']] | [['x', 'x', 3], ['BN', 'BN', 'L']] | Passed |
| depth limit exactly reached | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | Passed |
| control layout | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | Passed |
| control layout | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | Passed |
SHA-256 / c25ad1c280f132eae82d2c22e721ac7504200435521fb81d32cf68cc7c25bacd
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
classes, para, max_depth = x
stack = [(para, None)]
overflow = 0
levels = []
types = []
for c in classes:
if c in ('RLE', 'LRE', 'RLO', 'LRO'):
cur = stack[-1][0]
if c in ('RLE', 'RLO'):
new = cur + 1 if cur % 2 == 0 else cur + 2
else:
new = cur + 2 if cur % 2 == 0 else cur + 1
if new <= max_depth and overflow == 0:
ovr = None if c in ('RLE', 'LRE') else ('R' if c == 'RLO' else 'L')
stack.append((new, ovr))
else:
overflow += 1
levels.append('x')
types.append('BN')
elif c == 'PDF':
if overflow > 0:
overflow -= 1
elif len(stack) > 1:
stack.pop()
levels.append('x')
types.append('BN')
else:
lv, ovr = stack[-1]
levels.append(lv)
types.append(ovr if ovr else c)
return [levels, types]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['PDF', 'RLO', 'RLE', 'LRE', 'LRO', 'PDF', 'PDF', 'EN', 'PDF', 'R', 'L', 'EN', 'L'], 1, 5], [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']]), ('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'R', 'RLO', 'L', 'R', 'PDF', 'WS', 'LRE', 'RLE', 'PDF', 'L'], 0, 4], [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'L', 'L', 'R'], 1, 6], [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']]), ('control layout', [['ON', 'L', 'PDF', 'RLO', 'R'], 1, 4], [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['ON', 'ON', 'RLE', 'RLE', 'EN', 'L', 'LRO', 'RLE', 'EN', 'PDF', 'R'], 0, 4], [[0, 0, 'x', 'x', 3, 3, 'x', 'x', 4, 'x', 4], ['ON', 'ON', 'BN', 'BN', 'EN', 'L', 'BN', 'BN', 'L', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'PDF', 'EN', 'LRE', 'R', 'LRE', 'RLE', 'PDF', 'WS', 'RLO', 'ON', 'L', 'R', 'R'], 1, 3], [[1, 'x', 1, 'x', 2, 'x', 'x', 'x', 2, 'x', 2, 2, 2, 2], ['L', 'BN', 'EN', 'BN', 'R', 'BN', 'BN', 'BN', 'WS', 'BN', 'ON', 'L', 'R', 'R']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['PDF', 'RLE', 'L', 'L', 'RLE', 'PDF', 'PDF', 'L', 'R', 'L', 'PDF', 'EN', 'WS'], 0, 4], [['x', 'x', 1, 1, 'x', 'x', 'x', 0, 0, 0, 'x', 0, 0], ['BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'L', 'R', 'L', 'BN', 'EN', 'WS']]), ('control layout', [['R', 'L', 'RLE', 'WS', 'R', 'LRE', 'ON', 'PDF', 'RLE'], 0, 4], [[0, 0, 'x', 1, 1, 'x', 2, 'x', 'x'], ['R', 'L', 'BN', 'WS', 'R', 'BN', 'ON', 'BN', 'BN']])], [('regression: PDF overflow priority', [['LRE', 'R', 'R', 'LRE', 'LRE', 'LRE', 'EN', 'PDF', 'RLO', 'PDF', 'L'], 0, 3], [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['LRE', 'L', 'PDF', 'PDF', 'ON', 'RLE', 'LRE', 'EN', 'PDF', 'EN'], 1, 3], [['x', 2, 'x', 'x', 1, 'x', 'x', 3, 'x', 3], ['BN', 'L', 'BN', 'BN', 'ON', 'BN', 'BN', 'EN', 'BN', 'EN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['PDF', 'LRE', 'RLE', 'RLE', 'LRE', 'EN', 'LRE', 'PDF', 'EN', 'ON', 'EN', 'ON'], 0, 4], [['x', 'x', 'x', 'x', 'x', 3, 'x', 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'EN', 'ON', 'EN', 'ON']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('control layout', [['RLE', 'PDF', 'RLE', 'LRE', 'ON', 'L', 'ON', 'PDF', 'LRE', 'PDF', 'ON'], 0, 3], [['x', 'x', 'x', 'x', 2, 2, 2, 'x', 'x', 'x', 1], ['BN', 'BN', 'BN', 'BN', 'ON', 'L', 'ON', 'BN', 'BN', 'BN', 'ON']]), ('control layout', [['R', 'EN', 'ON'], 1, 3], [[1, 1, 1], ['R', 'EN', 'ON']])], [('regression: PDF overflow priority', [['RLE', 'L', 'ON', 'RLE', 'L', 'EN', 'ON', 'PDF', 'L'], 1, 3], [['x', 3, 3, 'x', 3, 3, 3, 'x', 3], ['BN', 'L', 'ON', 'BN', 'L', 'EN', 'ON', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'PDF', 'LRE', 'ON', 'ON', 'RLO', 'LRE', 'R', 'L', 'PDF', 'EN', 'RLO', 'L'], 0, 3], [[0, 0, 'x', 'x', 2, 2, 'x', 'x', 3, 3, 'x', 3, 'x', 3], ['L', 'L', 'BN', 'BN', 'ON', 'ON', 'BN', 'BN', 'R', 'R', 'BN', 'R', 'BN', 'R']]), ('regression: PDF overflow priority', [['R', 'WS', 'RLE', 'LRE', 'PDF', 'L', 'RLO', 'LRE', 'L', 'RLE', 'L', 'PDF', 'ON', 'PDF'], 1, 4], [[1, 1, 'x', 'x', 'x', 3, 'x', 'x', 3, 'x', 3, 'x', 3, 'x'], ['R', 'WS', 'BN', 'BN', 'BN', 'L', 'BN', 'BN', 'L', 'BN', 'L', 'BN', 'ON', 'BN']]), ('regression: PDF overflow priority', [['R', 'LRO', 'R', 'RLO', 'PDF', 'R', 'EN', 'RLO', 'LRE', 'RLE', 'PDF', 'L'], 0, 2], [[0, 'x', 2, 'x', 'x', 2, 2, 'x', 'x', 'x', 'x', 2], ['R', 'BN', 'L', 'BN', 'BN', 'L', 'L', 'BN', 'BN', 'BN', 'BN', 'L']]), ('depth limit exactly reached', [['RLE', 'LRE', 'L', 'PDF', 'L'], 0, 2], [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['R', 'EN', 'EN', 'PDF', 'LRO', 'PDF', 'RLE', 'RLO'], 0, 4], [[0, 0, 0, 'x', 'x', 'x', 'x', 'x'], ['R', 'EN', 'EN', 'BN', 'BN', 'BN', 'BN', 'BN']]), ('control layout', [['R', 'EN', 'L', 'R', 'RLE', 'RLE', 'LRE', 'R', 'EN', 'L', 'RLE', 'EN', 'R'], 0, 2], [[0, 0, 0, 0, 'x', 'x', 'x', 1, 1, 1, 'x', 1, 1], ['R', 'EN', 'L', 'R', 'BN', 'BN', 'BN', 'R', 'EN', 'L', 'BN', 'EN', 'R']])], [('regression: PDF overflow priority', [['RLE', 'L', 'LRE', 'EN', 'RLE', 'PDF', 'L'], 0, 2], [['x', 1, 'x', 2, 'x', 'x', 2], ['BN', 'L', 'BN', 'EN', 'BN', 'BN', 'L']]), ('regression: PDF overflow priority', [['L', 'L', 'L', 'R', 'RLE', 'LRE', 'PDF', 'LRE', 'PDF', 'L', 'R', 'PDF', 'LRE', 'R'], 1, 3], [[1, 1, 1, 1, 'x', 'x', 'x', 'x', 'x', 3, 3, 'x', 'x', 2], ['L', 'L', 'L', 'R', 'BN', 'BN', 'BN', 'BN', 'BN', 'L', 'R', 'BN', 'BN', 'R']]), ('regression: PDF overflow priority', [['RLO', 'EN', 'R', 'ON', 'EN', 'L', 'ON', 'R', 'RLO', 'RLE', 'LRE', 'PDF', 'EN', 'LRE'], 1, 3], [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']]), ('regression: PDF overflow priority', [['LRE', 'RLE', 'L', 'R', 'EN', 'PDF', 'RLE', 'L', 'L', 'L', 'ON', 'RLE'], 1, 2], [['x', 'x', 2, 2, 2, 'x', 'x', 2, 2, 2, 2, 'x'], ['BN', 'BN', 'L', 'R', 'EN', 'BN', 'BN', 'L', 'L', 'L', 'ON', 'BN']]), ('override on neutrals', [['RLO', 'ON', 'L', 'WS'], 0, 6], [['x', 1, 1, 1], ['BN', 'R', 'R', 'R']]), ('RLE from odd level', [['RLE', 'RLE', 'L'], 0, 6], [['x', 'x', 3], ['BN', 'BN', 'L']]), ('control layout', [['L', 'PDF', 'L', 'WS'], 1, 4], [[1, 'x', 1, 1], ['L', 'BN', 'L', 'WS']]), ('control layout', [['RLE', 'LRO', 'L', 'WS', 'R', 'EN', 'EN', 'R', 'L', 'PDF', 'ON', 'L', 'ON'], 0, 6], [['x', 'x', 2, 2, 2, 2, 2, 2, 2, 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'BN', 'ON', 'L', 'ON']])]]
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 |
|---|---|---|---|
| regression: PDF overflow priority | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']] | [['x', 3, 3, 3, 3, 3, 3, 3, 'x', 'x', 'x', 'x', 3, 'x'], ['BN', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'BN', 'BN', 'BN', 'BN', 'R', 'BN']] | Passed |
| regression: PDF overflow priority | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']] | [['x', 'x', 'x', 'x', 'x', 'x', 'x', 5, 'x', 3, 3, 3, 3], ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'EN', 'BN', 'R', 'R', 'R', 'R']] | Passed |
| regression: PDF overflow priority | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 2, 'x', 'x', 'x', 2, 'x', 'x', 'x', 2], ['BN', 'R', 'R', 'BN', 'BN', 'BN', 'EN', 'BN', 'BN', 'BN', 'L']] | Passed |
| regression: PDF overflow priority | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | [['x', 2, 'x', 3, 3, 'x', 2, 'x', 'x', 'x', 4], ['BN', 'R', 'BN', 'R', 'R', 'BN', 'WS', 'BN', 'BN', 'BN', 'L']] | Passed |
| RLE from odd level | [['x', 'x', 3], ['BN', 'BN', 'L']] | [['x', 'x', 3], ['BN', 'BN', 'L']] | Passed |
| depth limit exactly reached | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | [['x', 'x', 2, 'x', 1], ['BN', 'BN', 'L', 'BN', 'L']] | Passed |
| control layout | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | [['x', 'x', 1, 1, 1], ['BN', 'BN', 'L', 'L', 'R']] | Passed |
| control layout | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | [[1, 1, 'x', 'x', 3], ['ON', 'L', 'BN', 'BN', 'R']] | Passed |
SHA-256 / ea27e0c408008c9b6a8d3e1d01f5c81459b277c74471dae9a898dde81b37d63c
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:54.854915+00:00.
Case digest / f30b1ec0fbea629e4c079afc0685b50fa996646359b27d6c2740eed9d53a16a2