{"abstract":"The table left precedence result violates the stipulated pinned table panes contract.","category":"Table interactions","checks":6,"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.","evaluation_group":"s3-table-interactions-pinned-panes","failed_approach":"The attempted repair 'c in right and c not in left[:1]' still loses a required part of the table contract.","family":"s3-table-interactions-pinned-panes-left-precedence","id":"FA-36901","implementations":{"attempt":{"sha256":"cc299c25c8db7535ef6eb7ede30409ccecc3cf2360f1b35839e539066d89c728","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ids, left, right, hidden, widths, scroll):\n    visible = [c for c in ids if c not in hidden]\n    l = [c for c in visible if c in left]\n    r = [c for c in visible if c in right and c not in left[:1]]\n    m = [c for c in visible if c not in left and c not in right]\n    lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}\n    ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}\n    mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}\n    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 []]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 2:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 3:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 4:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 5:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\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":"8fb399c943715e3c30d3caaff15e3483de65707019612d9da36a730c7adccb28","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ids, left, right, hidden, widths, scroll):\n    visible = [c for c in ids if c not in hidden]\n    l = [c for c in visible if c in left]\n    r = [c for c in visible if c in right]\n    m = [c for c in visible if c not in left and c not in right]\n    lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}\n    ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}\n    mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}\n    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 []]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 2:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 3:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 4:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 5:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\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"},"fixed":{"sha256":"8b16da6eb8b26adf36e1442f1eaab7e6cc11f6ccbeae17d19fa3592f1604f5c4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ids, left, right, hidden, widths, scroll):\n    visible = [c for c in ids if c not in hidden]\n    l = [c for c in visible if c in left]\n    r = [c for c in visible if c in right and c not in left]\n    m = [c for c in visible if c not in left and c not in right]\n    lo = {c: sum(widths[x] for x in l[:i]) for i,c in enumerate(l)}\n    ro = {c: sum(widths[x] for x in r[i+1:]) for i,c in enumerate(r)}\n    mo = {c: sum(widths[x] for x in m[:i]) - scroll for i,c in enumerate(m)}\n    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 []]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 2:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 3:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 4:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\nif N == 5:\n    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']])\n    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']])\n    check('hidden pins', solve(['a','b','c'], ['a'], ['b'], ['a','b'], {'a':2,'b':4,'c':8}, 2), [[], ['c'], [], {}, {}, {'c': -2}, 0, 0, [], []])\n    check('only left', solve(['a','b'], ['a','b'], [], [], {'a':2,'b':4}, 0), [['a', 'b'], [], [], {'a': 0, 'b': 2}, {}, {}, 6, 0, [], []])\n    check('only right', solve(['a','b'], [], ['a','b'], [], {'a':2,'b':4}, 0), [[], [], ['a', 'b'], {}, {'a': 4, 'b': 0}, {}, 0, 6, [], []])\n    check('empty', solve([], [], [], [], {}, 0), [[], [], [], {}, {}, {}, 0, 0, [], []])\n\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":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-table-interactions-pinned-panes-left-precedence","generated_at":"2026-09-29T14:42:55.938671+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline table UI model isolates pinned table panes, including adversarial row/column relationships.","repair":"Apply the complete left precedence rule: c in right and c not in left.","root_cause":"The left precedence decision uses 'c in right' instead of 'c in right and c not in left'.","sha256":"b9349c4893f9926b0ea5e9b26f460e50702238bb3375929e86489460538f6396","title":"Pinned table panes: left precedence · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.449,"exit_code":1,"observations":[{"actual":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"check":"mixed panes","expected":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"passed":true},{"actual":[["a","b"],[],["b","c"],{"a":0,"b":2},{"b":8,"c":0},{},6,12,["b"],["b"]],"check":"overlap priority","expected":[["a","b"],[],["c"],{"a":0,"b":2},{"c":0},{},6,8,["b"],["c"]],"passed":false},{"actual":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"check":"hidden pins","expected":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"passed":true},{"actual":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"check":"only left","expected":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"passed":true},{"actual":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"check":"only right","expected":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"passed":true},{"actual":[[],[],[],{},{},{},0,0,[],[]],"check":"empty","expected":[[],[],[],{},{},{},0,0,[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed panes\", \"actual\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"expected\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"passed\": true}, {\"check\": \"overlap priority\", \"actual\": [[\"a\", \"b\"], [], [\"b\", \"c\"], {\"a\": 0, \"b\": 2}, {\"b\": 8, \"c\": 0}, {}, 6, 12, [\"b\"], [\"b\"]], \"expected\": [[\"a\", \"b\"], [], [\"c\"], {\"a\": 0, \"b\": 2}, {\"c\": 0}, {}, 6, 8, [\"b\"], [\"c\"]], \"passed\": false}, {\"check\": \"hidden pins\", \"actual\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"expected\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"passed\": true}, {\"check\": \"only left\", \"actual\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"expected\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"passed\": true}, {\"check\": \"only right\", \"actual\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"expected\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"passed\": true}, {\"check\": \"empty\", \"actual\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"expected\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.934,"exit_code":1,"observations":[{"actual":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"check":"mixed panes","expected":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"passed":true},{"actual":[["a","b"],[],["b","c"],{"a":0,"b":2},{"b":8,"c":0},{},6,12,["b"],["b"]],"check":"overlap priority","expected":[["a","b"],[],["c"],{"a":0,"b":2},{"c":0},{},6,8,["b"],["c"]],"passed":false},{"actual":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"check":"hidden pins","expected":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"passed":true},{"actual":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"check":"only left","expected":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"passed":true},{"actual":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"check":"only right","expected":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"passed":true},{"actual":[[],[],[],{},{},{},0,0,[],[]],"check":"empty","expected":[[],[],[],{},{},{},0,0,[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed panes\", \"actual\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"expected\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"passed\": true}, {\"check\": \"overlap priority\", \"actual\": [[\"a\", \"b\"], [], [\"b\", \"c\"], {\"a\": 0, \"b\": 2}, {\"b\": 8, \"c\": 0}, {}, 6, 12, [\"b\"], [\"b\"]], \"expected\": [[\"a\", \"b\"], [], [\"c\"], {\"a\": 0, \"b\": 2}, {\"c\": 0}, {}, 6, 8, [\"b\"], [\"c\"]], \"passed\": false}, {\"check\": \"hidden pins\", \"actual\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"expected\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"passed\": true}, {\"check\": \"only left\", \"actual\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"expected\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"passed\": true}, {\"check\": \"only right\", \"actual\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"expected\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"passed\": true}, {\"check\": \"empty\", \"actual\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"expected\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.285,"exit_code":0,"observations":[{"actual":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"check":"mixed panes","expected":[["a","b"],["c"],["d","e"],{"a":0,"b":2},{"d":6,"e":0},{"c":-3},5,10,["b"],["d"]],"passed":true},{"actual":[["a","b"],[],["c"],{"a":0,"b":2},{"c":0},{},6,8,["b"],["c"]],"check":"overlap priority","expected":[["a","b"],[],["c"],{"a":0,"b":2},{"c":0},{},6,8,["b"],["c"]],"passed":true},{"actual":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"check":"hidden pins","expected":[[],["c"],[],{},{},{"c":-2},0,0,[],[]],"passed":true},{"actual":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"check":"only left","expected":[["a","b"],[],[],{"a":0,"b":2},{},{},6,0,[],[]],"passed":true},{"actual":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"check":"only right","expected":[[],[],["a","b"],{},{"a":4,"b":0},{},0,6,[],[]],"passed":true},{"actual":[[],[],[],{},{},{},0,0,[],[]],"check":"empty","expected":[[],[],[],{},{},{},0,0,[],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"mixed panes\", \"actual\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"expected\": [[\"a\", \"b\"], [\"c\"], [\"d\", \"e\"], {\"a\": 0, \"b\": 2}, {\"d\": 6, \"e\": 0}, {\"c\": -3}, 5, 10, [\"b\"], [\"d\"]], \"passed\": true}, {\"check\": \"overlap priority\", \"actual\": [[\"a\", \"b\"], [], [\"c\"], {\"a\": 0, \"b\": 2}, {\"c\": 0}, {}, 6, 8, [\"b\"], [\"c\"]], \"expected\": [[\"a\", \"b\"], [], [\"c\"], {\"a\": 0, \"b\": 2}, {\"c\": 0}, {}, 6, 8, [\"b\"], [\"c\"]], \"passed\": true}, {\"check\": \"hidden pins\", \"actual\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"expected\": [[], [\"c\"], [], {}, {}, {\"c\": -2}, 0, 0, [], []], \"passed\": true}, {\"check\": \"only left\", \"actual\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"expected\": [[\"a\", \"b\"], [], [], {\"a\": 0, \"b\": 2}, {}, {}, 6, 0, [], []], \"passed\": true}, {\"check\": \"only right\", \"actual\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"expected\": [[], [], [\"a\", \"b\"], {}, {\"a\": 4, \"b\": 0}, {}, 0, 6, [], []], \"passed\": true}, {\"check\": \"empty\", \"actual\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"expected\": [[], [], [], {}, {}, {}, 0, 0, [], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}