{"abstract":"The table header boundary result violates the stipulated table pane cell hit testing contract.","category":"Table interactions","checks":14,"contract":"Hit testing subtracts header height, adds body scroll, applies half-open row/column extents, partitions left/right/center panes with left precedence, transforms right pinned and center-scrolled coordinates independently, and rejects coordinates outside the table viewport.","evaluation_group":"s3-table-interactions-hit-test","failed_approach":"The attempted repair 'if y<0:' still loses a required part of the table contract.","family":"s3-table-interactions-hit-test-header-boundary","id":"FA-38041","implementations":{"attempt":{"sha256":"10578c718c4a238a20ad0d4d919fde37601798d00da004d1fafef042ae65d133","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, columns, x, y, header, scroll_y, scroll_x, width, left_ids, right_ids):\n    if y<0: return {'region':'header','row':None,'column':None}\n    body_y=y-header+scroll_y\n    r=None; cursor=0\n    for row in rows:\n        if cursor<=body_y<cursor+row['height']: r=row['id']; break\n        cursor+=row['height']\n    left=[c for c in columns if c['id'] in left_ids]\n    right=[c for c in columns if c['id'] in right_ids and c['id'] not in left_ids]\n    center=[c for c in columns if c['id'] not in left_ids and c['id'] not in right_ids]\n    lw=sum(c['width'] for c in left); rw=sum(c['width'] for c in right)\n    if not 0<=x<width: return {'region':'outside','row':r,'column':None}\n    if x<lw: pane=left; local=x; region='left'\n    elif x>=width-rw: pane=right; local=x-(width-rw); region='right'\n    else: pane=center; local=x-lw+scroll_x; region='center'\n    col=None; cursor=0\n    for c in pane:\n        if cursor<=local<cursor+c['width']: col=c['id']; break\n        cursor+=c['width']\n    return {'region':region,'row':r,'column':col}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':1+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 2:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':2+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 3:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':3+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 4:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':4+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 5:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':5+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\ncheck('variant measured row boundary', solve([{'id':'r0','height':N+2},{'id':'r1','height':10}], [{'id':'x','width':4}], 1, 7, 2, 0, 0, 4, [], []), {'region':'center','row':'r1' if N<=3 else 'r0','column':'x'})\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":"7c0e1a8a344cbf4aab8737f04077e8fd3c90529ee4d7376888aaa7dccf2efc1f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, columns, x, y, header, scroll_y, scroll_x, width, left_ids, right_ids):\n    if y<=header: return {'region':'header','row':None,'column':None}\n    body_y=y-header+scroll_y\n    r=None; cursor=0\n    for row in rows:\n        if cursor<=body_y<cursor+row['height']: r=row['id']; break\n        cursor+=row['height']\n    left=[c for c in columns if c['id'] in left_ids]\n    right=[c for c in columns if c['id'] in right_ids and c['id'] not in left_ids]\n    center=[c for c in columns if c['id'] not in left_ids and c['id'] not in right_ids]\n    lw=sum(c['width'] for c in left); rw=sum(c['width'] for c in right)\n    if not 0<=x<width: return {'region':'outside','row':r,'column':None}\n    if x<lw: pane=left; local=x; region='left'\n    elif x>=width-rw: pane=right; local=x-(width-rw); region='right'\n    else: pane=center; local=x-lw+scroll_x; region='center'\n    col=None; cursor=0\n    for c in pane:\n        if cursor<=local<cursor+c['width']: col=c['id']; break\n        cursor+=c['width']\n    return {'region':region,'row':r,'column':col}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':1+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 2:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':2+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 3:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':3+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 4:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':4+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 5:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':5+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\ncheck('variant measured row boundary', solve([{'id':'r0','height':N+2},{'id':'r1','height':10}], [{'id':'x','width':4}], 1, 7, 2, 0, 0, 4, [], []), {'region':'center','row':'r1' if N<=3 else 'r0','column':'x'})\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":"1ead7eea1f50c7224543b3e988874cb57ec646d20e2d8830bbf1719937ff7769","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, columns, x, y, header, scroll_y, scroll_x, width, left_ids, right_ids):\n    if y<header: return {'region':'header','row':None,'column':None}\n    body_y=y-header+scroll_y\n    r=None; cursor=0\n    for row in rows:\n        if cursor<=body_y<cursor+row['height']: r=row['id']; break\n        cursor+=row['height']\n    left=[c for c in columns if c['id'] in left_ids]\n    right=[c for c in columns if c['id'] in right_ids and c['id'] not in left_ids]\n    center=[c for c in columns if c['id'] not in left_ids and c['id'] not in right_ids]\n    lw=sum(c['width'] for c in left); rw=sum(c['width'] for c in right)\n    if not 0<=x<width: return {'region':'outside','row':r,'column':None}\n    if x<lw: pane=left; local=x; region='left'\n    elif x>=width-rw: pane=right; local=x-(width-rw); region='right'\n    else: pane=center; local=x-lw+scroll_x; region='center'\n    col=None; cursor=0\n    for c in pane:\n        if cursor<=local<cursor+c['width']: col=c['id']; break\n        cursor+=c['width']\n    return {'region':region,'row':r,'column':col}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':1+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 2:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':2+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 3:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':3+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 4:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':4+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\nif N == 5:\n    check('center scroll', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 5, 3, 2, 4, 4, 18, ['a'], ['d']), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('exact row column edges', solve([{'id':'r0','height':5},{'id':'r1','height':7}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 8, 7, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r1', 'column': 'c'})\n    check('right pinned cell', solve([{'id':'r0','height':5+5}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':4},{'id':'d','width':3}], 13, 2, 2, 0, 2, 15, ['a'], ['c','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('left boundary', solve([{'id':'r0','height':5}], [{'id':'a','width':3},{'id':'b','width':5}], 3, 2, 2, 0, 0, 8, ['a'], []), {'region': 'center', 'row': 'r0', 'column': 'b'})\n    check('overlapping pin assignment', solve([{'id':'r0','height':5}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 10, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'right', 'row': 'r0', 'column': 'd'})\n    check('outside right edge', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], 3, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('negative x', solve([{'id':'r0','height':5}], [{'id':'a','width':3}], -1, 3, 2, 0, 0, 3, [], []), {'region': 'outside', 'row': 'r0', 'column': None})\n    check('header offset crossing', solve([{'id':'r0','height':5},{'id':'r1','height':5}], [{'id':'a','width':3}], 1, 5, 2, 0, 0, 3, ['a'], []), {'region': 'left', 'row': 'r0', 'column': 'a'})\n    check('overlap pin edge', solve([{'id':'r','height':8}], [{'id':'a','width':2},{'id':'b','width':3},{'id':'c','width':4},{'id':'d','width':5}], 6, 3, 2, 0, 0, 14, ['a','b'], ['b','d']), {'region': 'center', 'row': 'r', 'column': 'c'})\n    check('center blank area', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6},{'id':'d','width':4}], 15, 3, 2, 0, 0, 30, ['a'], ['d']), {'region': 'center', 'row': 'r', 'column': None})\n    check('left pane interior', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5}], 1, 3, 2, 0, 0, 8, ['a'], []), {'region': 'left', 'row': 'r', 'column': 'a'})\n    check('center local origin', solve([{'id':'r','height':8}], [{'id':'a','width':3},{'id':'b','width':5},{'id':'c','width':6}], 6, 3, 2, 0, 0, 14, ['a'], []), {'region': 'center', 'row': 'r', 'column': 'b'})\n    check('header region', solve([], [], 1, 1, 2, 0, 0, 3, [], []), {'region': 'header', 'row': None, 'column': None})\n\ncheck('variant measured row boundary', solve([{'id':'r0','height':N+2},{'id':'r1','height':10}], [{'id':'x','width':4}], 1, 7, 2, 0, 0, 4, [], []), {'region':'center','row':'r1' if N<=3 else 'r0','column':'x'})\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":"Rows and columns have unique IDs and positive sizes; coordinates are finite and pane reservations fit the viewport. 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-hit-test-header-boundary","generated_at":"2026-09-29T14:43:07.217052+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline table UI model isolates table pane cell hit testing, including adversarial row/column relationships.","repair":"Apply the complete header boundary rule: if y<header:.","root_cause":"The header boundary decision uses 'if y<=header:' instead of 'if y<header:'.","sha256":"513e5917e65cacd6081818eff52c944e59e142a8489b6d0066415d77e9de6dd8","title":"Table pane cell hit testing: header boundary · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":48.098,"exit_code":1,"observations":[{"actual":{"column":"c","region":"center","row":"r1"},"check":"center scroll","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":"c","region":"center","row":"r1"},"check":"exact row column edges","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":"d","region":"right","row":"r0"},"check":"right pinned cell","expected":{"column":"d","region":"right","row":"r0"},"passed":true},{"actual":{"column":"b","region":"center","row":"r0"},"check":"left boundary","expected":{"column":"b","region":"center","row":"r0"},"passed":true},{"actual":{"column":"d","region":"right","row":"r0"},"check":"overlapping pin assignment","expected":{"column":"d","region":"right","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"outside right edge","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"negative x","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":"a","region":"left","row":"r0"},"check":"header offset crossing","expected":{"column":"a","region":"left","row":"r0"},"passed":true},{"actual":{"column":"c","region":"center","row":"r"},"check":"overlap pin edge","expected":{"column":"c","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"center","row":"r"},"check":"center blank area","expected":{"column":null,"region":"center","row":"r"},"passed":true},{"actual":{"column":"a","region":"left","row":"r"},"check":"left pane interior","expected":{"column":"a","region":"left","row":"r"},"passed":true},{"actual":{"column":"b","region":"center","row":"r"},"check":"center local origin","expected":{"column":"b","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"center","row":null},"check":"header region","expected":{"column":null,"region":"header","row":null},"passed":false},{"actual":{"column":"x","region":"center","row":"r1"},"check":"variant measured row boundary","expected":{"column":"x","region":"center","row":"r1"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"center scroll\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"exact row column edges\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"right pinned cell\", \"actual\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": true}, {\"check\": \"left boundary\", \"actual\": {\"region\": \"center\", \"row\": \"r0\", \"column\": \"b\"}, \"expected\": {\"region\": \"center\", \"row\": \"r0\", \"column\": \"b\"}, \"passed\": true}, {\"check\": \"overlapping pin assignment\", \"actual\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": true}, {\"check\": \"outside right edge\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"negative x\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"header offset crossing\", \"actual\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"overlap pin edge\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"center blank area\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"passed\": true}, {\"check\": \"left pane interior\", \"actual\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"center local origin\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"passed\": true}, {\"check\": \"header region\", \"actual\": {\"region\": \"center\", \"row\": null, \"column\": null}, \"expected\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"passed\": false}, {\"check\": \"variant measured row boundary\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.052,"exit_code":1,"observations":[{"actual":{"column":"c","region":"center","row":"r1"},"check":"center scroll","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":"c","region":"center","row":"r1"},"check":"exact row column edges","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":null,"region":"header","row":null},"check":"right pinned cell","expected":{"column":"d","region":"right","row":"r0"},"passed":false},{"actual":{"column":null,"region":"header","row":null},"check":"left boundary","expected":{"column":"b","region":"center","row":"r0"},"passed":false},{"actual":{"column":"d","region":"right","row":"r0"},"check":"overlapping pin assignment","expected":{"column":"d","region":"right","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"outside right edge","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"negative x","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":"a","region":"left","row":"r0"},"check":"header offset crossing","expected":{"column":"a","region":"left","row":"r0"},"passed":true},{"actual":{"column":"c","region":"center","row":"r"},"check":"overlap pin edge","expected":{"column":"c","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"center","row":"r"},"check":"center blank area","expected":{"column":null,"region":"center","row":"r"},"passed":true},{"actual":{"column":"a","region":"left","row":"r"},"check":"left pane interior","expected":{"column":"a","region":"left","row":"r"},"passed":true},{"actual":{"column":"b","region":"center","row":"r"},"check":"center local origin","expected":{"column":"b","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"header","row":null},"check":"header region","expected":{"column":null,"region":"header","row":null},"passed":true},{"actual":{"column":"x","region":"center","row":"r1"},"check":"variant measured row boundary","expected":{"column":"x","region":"center","row":"r1"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"center scroll\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"exact row column edges\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"right pinned cell\", \"actual\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": false}, {\"check\": \"left boundary\", \"actual\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"expected\": {\"region\": \"center\", \"row\": \"r0\", \"column\": \"b\"}, \"passed\": false}, {\"check\": \"overlapping pin assignment\", \"actual\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": true}, {\"check\": \"outside right edge\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"negative x\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"header offset crossing\", \"actual\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"overlap pin edge\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"center blank area\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"passed\": true}, {\"check\": \"left pane interior\", \"actual\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"center local origin\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"passed\": true}, {\"check\": \"header region\", \"actual\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"expected\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"passed\": true}, {\"check\": \"variant measured row boundary\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.319,"exit_code":0,"observations":[{"actual":{"column":"c","region":"center","row":"r1"},"check":"center scroll","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":"c","region":"center","row":"r1"},"check":"exact row column edges","expected":{"column":"c","region":"center","row":"r1"},"passed":true},{"actual":{"column":"d","region":"right","row":"r0"},"check":"right pinned cell","expected":{"column":"d","region":"right","row":"r0"},"passed":true},{"actual":{"column":"b","region":"center","row":"r0"},"check":"left boundary","expected":{"column":"b","region":"center","row":"r0"},"passed":true},{"actual":{"column":"d","region":"right","row":"r0"},"check":"overlapping pin assignment","expected":{"column":"d","region":"right","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"outside right edge","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":null,"region":"outside","row":"r0"},"check":"negative x","expected":{"column":null,"region":"outside","row":"r0"},"passed":true},{"actual":{"column":"a","region":"left","row":"r0"},"check":"header offset crossing","expected":{"column":"a","region":"left","row":"r0"},"passed":true},{"actual":{"column":"c","region":"center","row":"r"},"check":"overlap pin edge","expected":{"column":"c","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"center","row":"r"},"check":"center blank area","expected":{"column":null,"region":"center","row":"r"},"passed":true},{"actual":{"column":"a","region":"left","row":"r"},"check":"left pane interior","expected":{"column":"a","region":"left","row":"r"},"passed":true},{"actual":{"column":"b","region":"center","row":"r"},"check":"center local origin","expected":{"column":"b","region":"center","row":"r"},"passed":true},{"actual":{"column":null,"region":"header","row":null},"check":"header region","expected":{"column":null,"region":"header","row":null},"passed":true},{"actual":{"column":"x","region":"center","row":"r1"},"check":"variant measured row boundary","expected":{"column":"x","region":"center","row":"r1"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"center scroll\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"exact row column edges\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"right pinned cell\", \"actual\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": true}, {\"check\": \"left boundary\", \"actual\": {\"region\": \"center\", \"row\": \"r0\", \"column\": \"b\"}, \"expected\": {\"region\": \"center\", \"row\": \"r0\", \"column\": \"b\"}, \"passed\": true}, {\"check\": \"overlapping pin assignment\", \"actual\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"expected\": {\"region\": \"right\", \"row\": \"r0\", \"column\": \"d\"}, \"passed\": true}, {\"check\": \"outside right edge\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"negative x\", \"actual\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"expected\": {\"region\": \"outside\", \"row\": \"r0\", \"column\": null}, \"passed\": true}, {\"check\": \"header offset crossing\", \"actual\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r0\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"overlap pin edge\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"c\"}, \"passed\": true}, {\"check\": \"center blank area\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": null}, \"passed\": true}, {\"check\": \"left pane interior\", \"actual\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"expected\": {\"region\": \"left\", \"row\": \"r\", \"column\": \"a\"}, \"passed\": true}, {\"check\": \"center local origin\", \"actual\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"expected\": {\"region\": \"center\", \"row\": \"r\", \"column\": \"b\"}, \"passed\": true}, {\"check\": \"header region\", \"actual\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"expected\": {\"region\": \"header\", \"row\": null, \"column\": null}, \"passed\": true}, {\"check\": \"variant measured row boundary\", \"actual\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"expected\": {\"region\": \"center\", \"row\": \"r1\", \"column\": \"x\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}