{"abstract":"The table unmeasured sample exclusion 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.get('measured',False)\" still loses a required part of the table contract.","family":"s3-table-interactions-auto-fit-unmeasured-sample-exclusion","id":"FA-37951","implementations":{"attempt":{"sha256":"ac3229d2093fc70649c091fa0d27dd4ea44e12018e76ed527980e4b4ec83e791","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',False)]\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":"e25ae1d74209efdd3e47e7eff01f82d0970e4e0a82cd741beb9bbaa47e902705","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 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-unmeasured-sample-exclusion","generated_at":"2026-09-29T14:43:06.312178+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 unmeasured sample exclusion rule: c.get('measured',True).","root_cause":"The unmeasured sample exclusion decision uses 'True' instead of \"c.get('measured',True)\".","sha256":"6e93f60b3b8e4d5ae889f0cf5563b5e1e6c8af4eb08e1529afd330411d876def","title":"Table column auto-fit measurement: unmeasured sample exclusion · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":49.484,"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":true,"clipped":false,"header_used":false,"samples":0,"width":2},"check":"hidden and unmeasured","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"passed":false},{"actual":{"changed":true,"clipped":false,"header_used":true,"samples":0,"width":15},"check":"header wider","expected":{"changed":true,"clipped":false,"header_used":true,"samples":1,"width":15},"passed":false},{"actual":{"changed":true,"clipped":false,"header_used":false,"samples":0,"width":2},"check":"header excluded","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":4},"passed":false},{"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":true,"clipped":false,"header_used":false,"samples":0,"width":5},"check":"clipped sample","expected":{"changed":false,"clipped":true,"header_used":false,"samples":1,"width":20},"passed":false},{"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\": 2, \"changed\": true, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": false}, {\"check\": \"header wider\", \"actual\": {\"width\": 15, \"changed\": true, \"samples\": 0, \"header_used\": true, \"clipped\": false}, \"expected\": {\"width\": 15, \"changed\": true, \"samples\": 1, \"header_used\": true, \"clipped\": false}, \"passed\": false}, {\"check\": \"header excluded\", \"actual\": {\"width\": 2, \"changed\": true, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 4, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": false}, {\"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\": 5, \"changed\": true, \"samples\": 0, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 20, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": true}, \"passed\": false}, {\"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":41.348,"exit_code":1,"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":true,"clipped":false,"header_used":false,"samples":2,"width":82},"check":"hidden and unmeasured","expected":{"changed":false,"clipped":false,"header_used":false,"samples":1,"width":6},"passed":false},{"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\": 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\": 82, \"changed\": true, \"samples\": 2, \"header_used\": false, \"clipped\": false}, \"expected\": {\"width\": 6, \"changed\": false, \"samples\": 1, \"header_used\": false, \"clipped\": false}, \"passed\": false}, {\"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":44.352,"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"}