{"abstract":"The table column sample ownership result violates the stipulated table column auto-fit measurement contract.","category":"Table interactions","checks":7,"contract":"Auto-fit measures only this column’s visible measured cells, includes indentation and cell icons, optionally measures header text plus both controls, takes the widest content, adds two-sided padding and reserved icons, clamps bounds, and reports changes in either direction.","evaluation_group":"s3-table-interactions-auto-fit","failed_approach":"The attempted repair \"c['column']==column[:1] and \" still loses a required part of the table contract.","family":"s3-table-interactions-auto-fit-column-sample-ownership","id":"FA-37941","implementations":{"attempt":{"sha256":"11c8186c1ea02ac5e99d17b709f2044a513391c437dd246e3c9060c04ccb2c40","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(column, cells, header, padding, minimum, maximum, include_header, icons, current):\n    eligible=[c for c in cells if c['column']==column[:1] and not c.get('hidden') and c.get('measured',True)]\n    widths=[c['text_width']+c.get('indent',0)+c.get('icon_width',0) for c in eligible]\n    if include_header: widths.append(header['text_width']+header.get('sort_width',0)+header.get('menu_width',0))\n    content=max(widths,default=0)\n    result=max(minimum,min(maximum,content+2*padding+icons))\n    return {'width':result,'changed':result!=current,'samples':len(eligible),'header_used':include_header,'clipped':content+2*padding+icons>maximum}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':1+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 21, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 2:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':2+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 22, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 3:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':3+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 23, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 4:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':4+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 24, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 5:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':5+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 25, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\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":"134227f1b50e8fe13276cd05c51be748796cfea4ae7a13f2c9c26d35f8c6297f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(column, cells, header, padding, minimum, maximum, include_header, icons, current):\n    eligible=[c for c in cells if not c.get('hidden') and c.get('measured',True)]\n    widths=[c['text_width']+c.get('indent',0)+c.get('icon_width',0) for c in eligible]\n    if include_header: widths.append(header['text_width']+header.get('sort_width',0)+header.get('menu_width',0))\n    content=max(widths,default=0)\n    result=max(minimum,min(maximum,content+2*padding+icons))\n    return {'width':result,'changed':result!=current,'samples':len(eligible),'header_used':include_header,'clipped':content+2*padding+icons>maximum}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':1+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 21, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 2:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':2+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 22, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 3:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':3+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 23, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 4:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':4+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 24, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 5:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':5+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 25, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\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":"db6fff2ef3683eba1c65be3774ffa033e6ff18a7152bc71b7806940d95ba4b6c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(column, cells, header, padding, minimum, maximum, include_header, icons, current):\n    eligible=[c for c in cells if c['column']==column and not c.get('hidden') and c.get('measured',True)]\n    widths=[c['text_width']+c.get('indent',0)+c.get('icon_width',0) for c in eligible]\n    if include_header: widths.append(header['text_width']+header.get('sort_width',0)+header.get('menu_width',0))\n    content=max(widths,default=0)\n    result=max(minimum,min(maximum,content+2*padding+icons))\n    return {'width':result,'changed':result!=current,'samples':len(eligible),'header_used':include_header,'clipped':content+2*padding+icons>maximum}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':1+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 21, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 2:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':2+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 22, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 3:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':3+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 23, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 4:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':4+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 24, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\n\nif N == 5:\n    check('varied cell decorations', solve('amount', [{'column':'amount','text_width':5+8,'indent':3,'icon_width':4},{'column':'amount','text_width':7},{'column':'other','text_width':90}], {'text_width':5,'sort_width':3,'menu_width':2}, 2, 1, 100, True, 1, 30), {'width': 25, 'changed': True, 'samples': 2, 'header_used': True, 'clipped': False})\n    check('hidden and unmeasured', solve('a', [{'column':'a','text_width':90,'hidden':True},{'column':'a','text_width':80,'measured':False},{'column':'a','text_width':4,'offscreen':True}], {'text_width':2}, 1, 1, 100, False, 0, 6), {'width': 6, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('header wider', solve('a', [{'column':'a','text_width':2}], {'text_width':8,'sort_width':3,'menu_width':2}, 1, 1, 100, True, 0, 1), {'width': 15, 'changed': True, 'samples': 1, 'header_used': True, 'clipped': False})\n    check('header excluded', solve('a', [{'column':'a','text_width':2}], {'text_width':30}, 1, 1, 100, False, 0, 4), {'width': 4, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': False})\n    check('empty with header', solve('a', [], {'text_width':10}, 2, 1, 100, True, 0, 1), {'width': 14, 'changed': True, 'samples': 0, 'header_used': True, 'clipped': False})\n    check('clipped sample', solve('a', [{'column':'a','text_width':50}], {'text_width':2}, 2, 5, 20, False, 1, 20), {'width': 20, 'changed': False, 'samples': 1, 'header_used': False, 'clipped': True})\n    check('empty without header', solve('a', [], {'text_width':10}, 0, 5, 20, False, 0, 5), {'width': 5, 'changed': False, 'samples': 0, 'header_used': False, 'clipped': False})\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":"Measurements, padding, and reserved decorations are nonnegative finite widths; minimum does not exceed maximum. 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-auto-fit-column-sample-ownership","generated_at":"2026-09-29T14:43:06.193441+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline table UI model isolates table column auto-fit measurement, including adversarial row/column relationships.","repair":"Apply the complete column sample ownership rule: c['column']==column and .","root_cause":"The column sample ownership decision uses '' instead of \"c['column']==column and \".","sha256":"8c0730e29cc26ccc86e1603a1f783d282aee2c42212df5cf347f5147c16eb7db","title":"Table column auto-fit measurement: column sample ownership · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.654,"exit_code":1,"observations":[{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":15},"check":"varied cell decorations","expected":{"changed":true,"clipped":false,"header_used":true,"samples":2,"width":21},"passed":false},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"check":"hidden and unmeasured","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"check":"header wider","expected":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"check":"header excluded","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"check":"empty with header","expected":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"passed":true},{"actual":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"check":"clipped sample","expected":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"check":"empty without header","expected":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"varied cell decorations\", \"actual\": {\"width\": 15, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 21, \"changed\": true, \"samples\": 2, \"header_used\": true, \"clipped\": false}, \"passed\": false}, {\"check\": \"hidden and unmeasured\", \"actual\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"header wider\", \"actual\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"header excluded\", \"actual\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"empty with header\", \"actual\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"clipped sample\", \"actual\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"expected\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"passed\": true}, {\"check\": \"empty without header\", \"actual\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":49.397,"exit_code":1,"observations":[{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":3,"width":95},"check":"varied cell decorations","expected":{"changed":true,"clipped":false,"header_used":true,"samples":2,"width":21},"passed":false},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"check":"hidden and unmeasured","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"check":"header wider","expected":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"check":"header excluded","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"check":"empty with header","expected":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"passed":true},{"actual":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"check":"clipped sample","expected":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"check":"empty without header","expected":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"varied cell decorations\", \"actual\": {\"width\": 95, \"changed\": true, \"samples\": 3, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 21, \"changed\": true, \"samples\": 2, \"header_used\": true, \"clipped\": false}, \"passed\": false}, {\"check\": \"hidden and unmeasured\", \"actual\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"header wider\", \"actual\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"header excluded\", \"actual\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"empty with header\", \"actual\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"clipped sample\", \"actual\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"expected\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"passed\": true}, {\"check\": \"empty without header\", \"actual\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.912,"exit_code":0,"observations":[{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":2,"width":21},"check":"varied cell decorations","expected":{"changed":true,"clipped":false,"header_used":true,"samples":2,"width":21},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"check":"hidden and unmeasured","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"check":"header wider","expected":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"check":"header excluded","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"passed":true},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"check":"empty with header","expected":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":14},"passed":true},{"actual":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"check":"clipped sample","expected":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"passed":true},{"actual":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"check":"empty without header","expected":{"changed":false,"clipped":false,"header_used":false,"samples":0,"width":5},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"varied cell decorations\", \"actual\": {\"width\": 21, \"changed\": true, \"samples\": 2, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 21, \"changed\": true, \"samples\": 2, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"hidden and unmeasured\", \"actual\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"header wider\", \"actual\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"header excluded\", \"actual\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": true}, {\"check\": \"empty with header\", \"actual\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 14, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"passed\": true}, {\"check\": \"clipped sample\", \"actual\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"expected\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"passed\": true}, {\"check\": \"empty without header\", \"actual\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 5, \"changed\": false, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}