FA-36906 / Table interactions / Open access
Pinned table panes: center exclusion · case 01
The table center exclusion result violates the stipulated pinned table panes contract.
ROOT CAUSE
The center exclusion decision uses 'c not in left' instead of 'c not in left and c not in right'.
VERIFIED REPAIR
Apply the complete center exclusion rule: c not in left and c not in right.
Unsuccessful approach: The attempted repair 'c not in right' still loses a required part of the table contract.
Case contract
Partition visible schema columns into left, center, and right panes; left wins conflicting pin assignments. Pin order follows schema, left offsets are prefixes, right offsets suffixes, only center moves on scroll, reservations exclude hidden tracks.
Why this case matters
An offline table UI model isolates pinned table panes, including adversarial row/column relationships.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ids, left, right, hidden, widths, scroll):
visible = [c for c in ids if c not in hidden]
l = [c for c in visible if c in left]
r = [c for c in visible if c in right and c not in left]
m = [c for c in visible if c not in left]
lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}
ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}
mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}
return [l,m,r,lo,ro,mo,sum(widths[x] for x in l),sum(widths[x] for x in r),l[-1:] if m or r else [],r[:1] if l or m else []]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*1,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 2:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*2,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 4}, {'d': 6, 'e': 0}, {'c': -3}, 7, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 3:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*3,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 6}, {'d': 6, 'e': 0}, {'c': -3}, 9, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 4:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*4,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 8}, {'d': 6, 'e': 0}, {'c': -3}, 11, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 5:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*5,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 10}, {'d': 6, 'e': 0}, {'c': -3}, 13, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
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 |
|---|---|---|---|
| mixed panes | [['a', 'b'], ['c', 'd', 'e'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3, 'd': 4, 'e': 8}, 5, 10, ['b'], ['d']] | [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']] | Failed |
| overlap priority | [['a', 'b'], ['c'], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {'c': -1}, 6, 8, ['b'], ['c']] | [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']] | Failed |
| hidden pins | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | Passed |
| only left | [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []] | [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []] | Passed |
| only right | [[], ['a', 'b'], ['a', 'b'], {}, {'a': 4, 'b': 0}, {'a': 0, 'b': 2}, 0, 6, [], ['a']] | [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []] | Failed |
| empty | [[], [], [], {}, {}, {}, 0, 0, [], []] | [[], [], [], {}, {}, {}, 0, 0, [], []] | Passed |
SHA-256 / 1eeb74dbfa5566a773923c909d27b360708cc5f4f2d44d70eb84f26cb3fa11c0
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ids, left, right, hidden, widths, scroll):
visible = [c for c in ids if c not in hidden]
l = [c for c in visible if c in left]
r = [c for c in visible if c in right and c not in left]
m = [c for c in visible if c not in right]
lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}
ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}
mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}
return [l,m,r,lo,ro,mo,sum(widths[x] for x in l),sum(widths[x] for x in r),l[-1:] if m or r else [],r[:1] if l or m else []]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*1,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 2:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*2,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 4}, {'d': 6, 'e': 0}, {'c': -3}, 7, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 3:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*3,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 6}, {'d': 6, 'e': 0}, {'c': -3}, 9, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 4:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*4,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 8}, {'d': 6, 'e': 0}, {'c': -3}, 11, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 5:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*5,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 10}, {'d': 6, 'e': 0}, {'c': -3}, 13, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
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 |
|---|---|---|---|
| mixed panes | [['a', 'b'], ['a', 'b', 'c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'a': -3, 'b': -1, 'c': 2}, 5, 10, ['b'], ['d']] | [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']] | Failed |
| overlap priority | [['a', 'b'], ['a'], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {'a': -1}, 6, 8, ['b'], ['c']] | [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']] | Failed |
| hidden pins | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | Passed |
| only left | [['a', 'b'], ['a', 'b'], [], {'a': 0, 'b': 2}, {}, {'a': 0, 'b': 2}, 6, 0, ['b'], []] | [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []] | Failed |
| only right | [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []] | [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []] | Passed |
| empty | [[], [], [], {}, {}, {}, 0, 0, [], []] | [[], [], [], {}, {}, {}, 0, 0, [], []] | Passed |
SHA-256 / 70e79372b3433198d728a679929d79f3436fc275433c455ea05d2c3b62868eb1
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ids, left, right, hidden, widths, scroll):
visible = [c for c in ids if c not in hidden]
l = [c for c in visible if c in left]
r = [c for c in visible if c in right and c not in left]
m = [c for c in visible if c not in left and c not in right]
lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}
ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}
mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}
return [l,m,r,lo,ro,mo,sum(widths[x] for x in l),sum(widths[x] for x in r),l[-1:] if m or r else [],r[:1] if l or m else []]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*1,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 2:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*2,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 4}, {'d': 6, 'e': 0}, {'c': -3}, 7, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 3:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*3,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 6}, {'d': 6, 'e': 0}, {'c': -3}, 9, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 4:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*4,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 8}, {'d': 6, 'e': 0}, {'c': -3}, 11, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
if N == 5:
check('mixed panes', solve(['a','b','c','d','e'], ['b','a'], ['d','e'], [], {'a':2*5,'b':3,'c':7,'d':4,'e':6}, 3), [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 10}, {'d': 6, 'e': 0}, {'c': -3}, 13, 10, ['b'], ['d']])
check('overlap priority', solve(['a','b','c'], ['a','b'], ['b','c'], [], {'a':2,'b':4,'c':8}, 1), [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']])
check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])
check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])
check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])
check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])
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 |
|---|---|---|---|
| mixed panes | [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']] | [['a', 'b'], ['c'], ['d', 'e'], {'a': 0, 'b': 2}, {'d': 6, 'e': 0}, {'c': -3}, 5, 10, ['b'], ['d']] | Passed |
| overlap priority | [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']] | [['a', 'b'], [], ['c'], {'a': 0, 'b': 2}, {'c': 0}, {}, 6, 8, ['b'], ['c']] | Passed |
| hidden pins | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []] | Passed |
| only left | [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []] | [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []] | Passed |
| only right | [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []] | [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []] | Passed |
| empty | [[], [], [], {}, {}, {}, 0, 0, [], []] | [[], [], [], {}, {}, {}, 0, 0, [], []] | Passed |
SHA-256 / 8b16da6eb8b26adf36e1442f1eaab7e6cc11f6ccbeae17d19fa3592f1604f5c4
Verification & scope
Schema IDs are unique and every schema column has a nonnegative width. Deterministic offline table UI model; no browser, DOM, framework, or standards conformance is claimed. 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:42:55.993975+00:00.
Case digest / 63cb622504271401a835fcae8ebb9ae508d0c20c3699bcb5544e6b083fc03fc7