FA-80826 / Bidirectional text layout / Open access
Paragraph separation and direction: trailing empty paragraph · case 01
Text ending with a separator gains a phantom empty paragraph.
ROOT CAUSE
The remainder is appended even when empty.
VERIFIED REPAIR
Only append a non-empty remainder.
Unsuccessful approach: Dropping whitespace-only remainders loses a real paragraph.
Case contract
Input [text, default level]. Paragraph separators (\n, \r, U+2029; \r\n counts once) end a paragraph and stay with it. A trailing non-empty remainder is a paragraph. Each paragraph takes level 1 if its first letter is uppercase (stand-in for RTL), 0 if lowercase, else the default. Return [[paragraph, level]].
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, default = x
paras = []
cur = ''
i = 0
while i < len(text):
ch = text[i]
if ch == '\r' and text[i + 1:i + 2] == '\n':
cur += '\r\n'
paras.append(cur)
cur = ''
i += 2
continue
cur += ch
if ch in '\n\r\u2029':
paras.append(cur)
cur = ''
i += 1
paras.append(cur)
out = []
for p in paras:
level = default
for ch in p:
if ch.isalpha():
level = 1 if ch.isupper() else 0
break
out.append([p, level])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('regression: trailing empty paragraph', ['.b\r\n1\r', 0], [['.b\r\n', 0], ['1\r', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('partial-repair probe', ['\n\raa\r\ncY \r\n ', 1], [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['.a1Y\r\r\nY2a,,,\r\n2', 0], [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]]), ('control layout', ['b \r\nc2,\u202911\na,', 1], [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]])], [('regression: trailing empty paragraph', ['XY\r \r\n', 0], [['XY\r', 1], [' \r\n', 0]]), ('regression: trailing empty paragraph', ['\n\r\n \nc2\r\n', 0], [['\n', 0], ['\r\n', 0], [' \n', 0], ['c2\r\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', [',\u2029 Z', 1], [[',\u2029', 1], [' Z', 1]]), ('control layout', [' .X', 0], [[' .X', 1]])], [('regression: trailing empty paragraph', ['\nbcY\n', 1], [['\n', 1], ['bcY\n', 0]]), ('regression: trailing empty paragraph', ['2,\r\n', 0], [['2,\r\n', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['1XcXc\r11b', 0], [['1XcXc\r', 1], ['11b', 0]]), ('control layout', ['X.\r\n\r\n\rX,c Y c1', 0], [['X.\r\n', 1], ['\r\n', 0], ['\r', 0], ['X,c Y c1', 1]])], [('regression: trailing empty paragraph', [',,.,Y \u2029', 0], [[',,.,Y \u2029', 1]]), ('regression: trailing empty paragraph', ['b \r\n1\n,\ncbb\n\n!\n\n', 0], [['b \r\n', 0], ['1\n', 0], [',\n', 0], ['cbb\n', 0], ['\n', 0], ['!\n', 0], ['\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', ['ZcZ\u2029. !\n ', 0], [['ZcZ\u2029', 1], ['. !\n', 0], [' ', 0]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('control layout', ['2 c.ZZ\n\u2029Y.\n\r\nb2b ', 0], [['2 c.ZZ\n', 0], ['\u2029', 0], ['Y.\n', 1], ['\r\n', 0], ['b2b ', 0]]), ('control layout', [',c2aaYZZ\u2029\r\nX.X', 0], [[',c2aaYZZ\u2029', 0], ['\r\n', 0], ['X.X', 1]])], [('regression: trailing empty paragraph', ['Z\r\r\n\rcX!X12.!.c\u2029', 0], [['Z\r', 1], ['\r\n', 0], ['\r', 0], ['cX!X12.!.c\u2029', 0]]), ('regression: trailing empty paragraph', [' Y,1Y\n\r\n', 1], [[' Y,1Y\n', 1], ['\r\n', 1]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', ['\nYc!', 0], [['\n', 0], ['Yc!', 1]]), ('control layout', ['Z,!', 0], [['Z,!', 1]])]]
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 |
|---|---|---|---|
| digits then letter | [['12 X\n', 1], ['', 0]] | [['12 X\n', 1]] | Failed |
| regression: trailing empty paragraph | [['.b\r\n', 0], ['1\r', 0], ['', 0]] | [['.b\r\n', 0], ['1\r', 0]] | Failed |
| partial-repair probe | [['bXY.b\n', 0], [' ', 1]] | [['bXY.b\n', 0], [' ', 1]] | Passed |
| partial-repair probe | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]] | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]] | Passed |
| CRLF is one separator | [['ab\r\n', 0], ['XY', 1]] | [['ab\r\n', 0], ['XY', 1]] | Passed |
| separator only paragraph | [['a\n', 0], ['\n', 1], ['Z', 1]] | [['a\n', 0], ['\n', 1], ['Z', 1]] | Passed |
| control layout | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | Passed |
| control layout | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | Passed |
SHA-256 / 4a54aa85e78b269e6e08d7c27dd06a7e26b9af432e38f00554a3bb9c17edcaab
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
text, default = x
paras = []
cur = ''
i = 0
while i < len(text):
ch = text[i]
if ch == '\r' and text[i + 1:i + 2] == '\n':
cur += '\r\n'
paras.append(cur)
cur = ''
i += 2
continue
cur += ch
if ch in '\n\r\u2029':
paras.append(cur)
cur = ''
i += 1
if cur.strip():
paras.append(cur)
out = []
for p in paras:
level = default
for ch in p:
if ch.isalpha():
level = 1 if ch.isupper() else 0
break
out.append([p, level])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('regression: trailing empty paragraph', ['.b\r\n1\r', 0], [['.b\r\n', 0], ['1\r', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('partial-repair probe', ['\n\raa\r\ncY \r\n ', 1], [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['.a1Y\r\r\nY2a,,,\r\n2', 0], [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]]), ('control layout', ['b \r\nc2,\u202911\na,', 1], [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]])], [('regression: trailing empty paragraph', ['XY\r \r\n', 0], [['XY\r', 1], [' \r\n', 0]]), ('regression: trailing empty paragraph', ['\n\r\n \nc2\r\n', 0], [['\n', 0], ['\r\n', 0], [' \n', 0], ['c2\r\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', [',\u2029 Z', 1], [[',\u2029', 1], [' Z', 1]]), ('control layout', [' .X', 0], [[' .X', 1]])], [('regression: trailing empty paragraph', ['\nbcY\n', 1], [['\n', 1], ['bcY\n', 0]]), ('regression: trailing empty paragraph', ['2,\r\n', 0], [['2,\r\n', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['1XcXc\r11b', 0], [['1XcXc\r', 1], ['11b', 0]]), ('control layout', ['X.\r\n\r\n\rX,c Y c1', 0], [['X.\r\n', 1], ['\r\n', 0], ['\r', 0], ['X,c Y c1', 1]])], [('regression: trailing empty paragraph', [',,.,Y \u2029', 0], [[',,.,Y \u2029', 1]]), ('regression: trailing empty paragraph', ['b \r\n1\n,\ncbb\n\n!\n\n', 0], [['b \r\n', 0], ['1\n', 0], [',\n', 0], ['cbb\n', 0], ['\n', 0], ['!\n', 0], ['\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', ['ZcZ\u2029. !\n ', 0], [['ZcZ\u2029', 1], ['. !\n', 0], [' ', 0]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('control layout', ['2 c.ZZ\n\u2029Y.\n\r\nb2b ', 0], [['2 c.ZZ\n', 0], ['\u2029', 0], ['Y.\n', 1], ['\r\n', 0], ['b2b ', 0]]), ('control layout', [',c2aaYZZ\u2029\r\nX.X', 0], [[',c2aaYZZ\u2029', 0], ['\r\n', 0], ['X.X', 1]])], [('regression: trailing empty paragraph', ['Z\r\r\n\rcX!X12.!.c\u2029', 0], [['Z\r', 1], ['\r\n', 0], ['\r', 0], ['cX!X12.!.c\u2029', 0]]), ('regression: trailing empty paragraph', [' Y,1Y\n\r\n', 1], [[' Y,1Y\n', 1], ['\r\n', 1]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', ['\nYc!', 0], [['\n', 0], ['Yc!', 1]]), ('control layout', ['Z,!', 0], [['Z,!', 1]])]]
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 |
|---|---|---|---|
| digits then letter | [['12 X\n', 1]] | [['12 X\n', 1]] | Passed |
| regression: trailing empty paragraph | [['.b\r\n', 0], ['1\r', 0]] | [['.b\r\n', 0], ['1\r', 0]] | Passed |
| partial-repair probe | [['bXY.b\n', 0]] | [['bXY.b\n', 0], [' ', 1]] | Failed |
| partial-repair probe | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0]] | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]] | Failed |
| CRLF is one separator | [['ab\r\n', 0], ['XY', 1]] | [['ab\r\n', 0], ['XY', 1]] | Passed |
| separator only paragraph | [['a\n', 0], ['\n', 1], ['Z', 1]] | [['a\n', 0], ['\n', 1], ['Z', 1]] | Passed |
| control layout | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | Passed |
| control layout | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | Passed |
SHA-256 / 2e6865a14be495e596e6f61f58c393f47c6143c1e337058dd65dbc0be0f158e6
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
text, default = x
paras = []
cur = ''
i = 0
while i < len(text):
ch = text[i]
if ch == '\r' and text[i + 1:i + 2] == '\n':
cur += '\r\n'
paras.append(cur)
cur = ''
i += 2
continue
cur += ch
if ch in '\n\r\u2029':
paras.append(cur)
cur = ''
i += 1
if cur:
paras.append(cur)
out = []
for p in paras:
level = default
for ch in p:
if ch.isalpha():
level = 1 if ch.isupper() else 0
break
out.append([p, level])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('regression: trailing empty paragraph', ['.b\r\n1\r', 0], [['.b\r\n', 0], ['1\r', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('partial-repair probe', ['\n\raa\r\ncY \r\n ', 1], [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['.a1Y\r\r\nY2a,,,\r\n2', 0], [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]]), ('control layout', ['b \r\nc2,\u202911\na,', 1], [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]])], [('regression: trailing empty paragraph', ['XY\r \r\n', 0], [['XY\r', 1], [' \r\n', 0]]), ('regression: trailing empty paragraph', ['\n\r\n \nc2\r\n', 0], [['\n', 0], ['\r\n', 0], [' \n', 0], ['c2\r\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', [',\u2029 Z', 1], [[',\u2029', 1], [' Z', 1]]), ('control layout', [' .X', 0], [[' .X', 1]])], [('regression: trailing empty paragraph', ['\nbcY\n', 1], [['\n', 1], ['bcY\n', 0]]), ('regression: trailing empty paragraph', ['2,\r\n', 0], [['2,\r\n', 0]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('control layout', ['1XcXc\r11b', 0], [['1XcXc\r', 1], ['11b', 0]]), ('control layout', ['X.\r\n\r\n\rX,c Y c1', 0], [['X.\r\n', 1], ['\r\n', 0], ['\r', 0], ['X,c Y c1', 1]])], [('regression: trailing empty paragraph', [',,.,Y \u2029', 0], [[',,.,Y \u2029', 1]]), ('regression: trailing empty paragraph', ['b \r\n1\n,\ncbb\n\n!\n\n', 0], [['b \r\n', 0], ['1\n', 0], [',\n', 0], ['cbb\n', 0], ['\n', 0], ['!\n', 0], ['\n', 0]]), ('partial-repair probe', ['\n,Y\u2029 ', 0], [['\n', 0], [',Y\u2029', 1], [' ', 0]]), ('partial-repair probe', ['ZcZ\u2029. !\n ', 0], [['ZcZ\u2029', 1], ['. !\n', 0], [' ', 0]]), ('separator only paragraph', ['a\n\nZ', 1], [['a\n', 0], ['\n', 1], ['Z', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('control layout', ['2 c.ZZ\n\u2029Y.\n\r\nb2b ', 0], [['2 c.ZZ\n', 0], ['\u2029', 0], ['Y.\n', 1], ['\r\n', 0], ['b2b ', 0]]), ('control layout', [',c2aaYZZ\u2029\r\nX.X', 0], [[',c2aaYZZ\u2029', 0], ['\r\n', 0], ['X.X', 1]])], [('regression: trailing empty paragraph', ['Z\r\r\n\rcX!X12.!.c\u2029', 0], [['Z\r', 1], ['\r\n', 0], ['\r', 0], ['cX!X12.!.c\u2029', 0]]), ('regression: trailing empty paragraph', [' Y,1Y\n\r\n', 1], [[' Y,1Y\n', 1], ['\r\n', 1]]), ('partial-repair probe', [', \n \r\n ', 0], [[', \n', 0], [' \r\n', 0], [' ', 0]]), ('partial-repair probe', ['bXY.b\n ', 1], [['bXY.b\n', 0], [' ', 1]]), ('CRLF is one separator', ['ab\r\nXY', 0], [['ab\r\n', 0], ['XY', 1]]), ('digits then letter', ['12 X\n', 0], [['12 X\n', 1]]), ('control layout', ['\nYc!', 0], [['\n', 0], ['Yc!', 1]]), ('control layout', ['Z,!', 0], [['Z,!', 1]])]]
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 |
|---|---|---|---|
| digits then letter | [['12 X\n', 1]] | [['12 X\n', 1]] | Passed |
| regression: trailing empty paragraph | [['.b\r\n', 0], ['1\r', 0]] | [['.b\r\n', 0], ['1\r', 0]] | Passed |
| partial-repair probe | [['bXY.b\n', 0], [' ', 1]] | [['bXY.b\n', 0], [' ', 1]] | Passed |
| partial-repair probe | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]] | [['\n', 1], ['\r', 1], ['aa\r\n', 0], ['cY \r\n', 0], [' ', 1]] | Passed |
| CRLF is one separator | [['ab\r\n', 0], ['XY', 1]] | [['ab\r\n', 0], ['XY', 1]] | Passed |
| separator only paragraph | [['a\n', 0], ['\n', 1], ['Z', 1]] | [['a\n', 0], ['\n', 1], ['Z', 1]] | Passed |
| control layout | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | [['.a1Y\r', 0], ['\r\n', 0], ['Y2a,,,\r\n', 1], ['2', 0]] | Passed |
| control layout | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | [['b \r\n', 0], ['c2,\u2029', 0], ['11\n', 1], ['a,', 0]] | Passed |
SHA-256 / 8f1416a3ab8548a378d73a96db2baae508d953eb841a15ed3bf56a035ab88d6d
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:57.390811+00:00.
Case digest / 3f6184d27bc2b148609a6e7424173473d2e1c16c221d9eb7802812b6e82a6509