{"abstract":"The table resize end draft result violates the stipulated table column resize transaction contract.","category":"Table interactions","checks":8,"contract":"A table resize snapshots its starting width and pointer, applies cumulative drag displacement from that snapshot with RTL inversion and bounds, supports live/deferred drawing, rolls back cancel, commits the final pointer displacement, and persists only changed widths.","evaluation_group":"s3-table-interactions-resize-transaction","failed_approach":"The attempted repair \"if event=='end':\\n    current[c]=state['base']\" still loses a required part of the table contract.","family":"s3-table-interactions-resize-transaction-resize-end-draft","id":"FA-38031","implementations":{"attempt":{"sha256":"c27624167f7bdf81b6435f8a8087a8fe93556468ee882bc0b6a587883227776e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(state, event, pointer, delta, widths, constraints, rtl, live):\n    out=dict(state); current=dict(widths)\n    if event=='start':\n        out={'pointer':pointer,'column':state['column'],'base':widths[state['column']],'draft':widths[state['column']]}\n        return {'state':out,'widths':current,'persist':None}\n    if state.get('pointer')!=pointer: return {'state':out,'widths':current,'persist':None}\n    c=state['column']; low,high=constraints[c]\n    proposed=max(low,min(high,state['base']+(-delta if rtl else delta)))\n    if event=='move':\n        out['draft']=proposed\n        if live: current[c]=proposed\n        return {'state':out,'widths':current,'persist':None}\n    if event=='cancel':\n        current[c]=state['base']; return {'state':{},'widths':current,'persist':None}\n    if event=='end':\n        current[c]=state['base']\n        return {'state':{},'widths':current,'persist':(c,proposed) if proposed!=state['base'] else None}\n    return {'state':out,'widths':current,'persist':None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*1,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 2:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*2,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 20, 'draft': 20}, 'widths': {'a': 20, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 3:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*3,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 30, 'draft': 30}, 'widths': {'a': 30, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 4:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*4,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 40, 'draft': 40}, 'widths': {'a': 40, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 5:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*5,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 50, 'draft': 50}, 'widths': {'a': 50, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\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":"685b5b4be45ee32f1f96b0774ca0b6be69e6d153ecc95f630fb7adef3097bd64","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(state, event, pointer, delta, widths, constraints, rtl, live):\n    out=dict(state); current=dict(widths)\n    if event=='start':\n        out={'pointer':pointer,'column':state['column'],'base':widths[state['column']],'draft':widths[state['column']]}\n        return {'state':out,'widths':current,'persist':None}\n    if state.get('pointer')!=pointer: return {'state':out,'widths':current,'persist':None}\n    c=state['column']; low,high=constraints[c]\n    proposed=max(low,min(high,state['base']+(-delta if rtl else delta)))\n    if event=='move':\n        out['draft']=proposed\n        if live: current[c]=proposed\n        return {'state':out,'widths':current,'persist':None}\n    if event=='cancel':\n        current[c]=state['base']; return {'state':{},'widths':current,'persist':None}\n    if event=='end':\n        current[c]=state.get('draft',state['base'])\n        return {'state':{},'widths':current,'persist':(c,proposed) if proposed!=state['base'] else None}\n    return {'state':out,'widths':current,'persist':None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*1,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 2:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*2,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 20, 'draft': 20}, 'widths': {'a': 20, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 3:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*3,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 30, 'draft': 30}, 'widths': {'a': 30, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 4:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*4,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 40, 'draft': 40}, 'widths': {'a': 40, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 5:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*5,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 50, 'draft': 50}, 'widths': {'a': 50, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\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":"e50cc1f1603bf899ec1d5b8377bf2e2a387554d4135d32ba38472daaed1abc09","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(state, event, pointer, delta, widths, constraints, rtl, live):\n    out=dict(state); current=dict(widths)\n    if event=='start':\n        out={'pointer':pointer,'column':state['column'],'base':widths[state['column']],'draft':widths[state['column']]}\n        return {'state':out,'widths':current,'persist':None}\n    if state.get('pointer')!=pointer: return {'state':out,'widths':current,'persist':None}\n    c=state['column']; low,high=constraints[c]\n    proposed=max(low,min(high,state['base']+(-delta if rtl else delta)))\n    if event=='move':\n        out['draft']=proposed\n        if live: current[c]=proposed\n        return {'state':out,'widths':current,'persist':None}\n    if event=='cancel':\n        current[c]=state['base']; return {'state':{},'widths':current,'persist':None}\n    if event=='end':\n        current[c]=proposed\n        return {'state':{},'widths':current,'persist':(c,proposed) if proposed!=state['base'] else None}\n    return {'state':out,'widths':current,'persist':None}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*1,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 2:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*2,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 20, 'draft': 20}, 'widths': {'a': 20, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 3:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*3,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 30, 'draft': 30}, 'widths': {'a': 30, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 4:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*4,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 40, 'draft': 40}, 'widths': {'a': 40, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n\nif N == 5:\n    check('fresh drag snapshot', solve({'column':'a','base':1,'draft':2}, 'start', 7, 0, {'a':10*5,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 50, 'draft': 50}, 'widths': {'a': 50, 'b': 9}, 'persist': None})\n    check('live move absolute delta', solve({'pointer':7,'column':'a','base':10,'draft':13}, 'move', 7, 5, {'a':13,'b':9}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 15}, 'widths': {'a': 15, 'b': 9}, 'persist': None})\n    check('deferred rtl move', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'move', 7, 20, {'a':10}, {'a':(5,50)}, True, False), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 5}, 'widths': {'a': 10}, 'persist': None})\n    check('other pointer', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 8, 20, {'a':10}, {'a':(5,50)}, False, True), {'state': {'pointer': 7, 'column': 'a', 'base': 10, 'draft': 10}, 'widths': {'a': 10}, 'persist': None})\n    check('cancel live', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'cancel', 7, 5, {'a':15}, {'a':(5,50)}, False, True), {'state': {}, 'widths': {'a': 10}, 'persist': None})\n    check('end latest delta', solve({'pointer':7,'column':'a','base':10,'draft':15}, 'end', 7, 70, {'a':15}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 50}, 'persist': ('a', 50)})\n    check('end shrink', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, -2, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 8}, 'persist': ('a', 8)})\n    check('noop end', solve({'pointer':7,'column':'a','base':10,'draft':10}, 'end', 7, 0, {'a':10}, {'a':(5,50)}, False, False), {'state': {}, 'widths': {'a': 10}, 'persist': None})\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":"Resize bounds are ordered and the column exists; nonstart events carry a well-formed captured drag snapshot. 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-resize-transaction-resize-end-draft","generated_at":"2026-09-29T14:43:07.120905+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline table UI model isolates table column resize transaction, including adversarial row/column relationships.","repair":"Apply the complete resize end draft rule: if event=='end':\n    current[c]=proposed.","root_cause":"The resize end draft decision uses \"if event=='end':\\n    current[c]=state.get('draft',state['base'])\" instead of \"if event=='end':\\n    current[c]=proposed\".","sha256":"8e87b70c0d2afbc0db40a8838f333bde89d88c35fe263fb52a9a7d098f5b3817","title":"Table column resize transaction: resize end draft · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.244,"exit_code":1,"observations":[{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"check":"fresh drag snapshot","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"check":"live move absolute delta","expected":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"check":"deferred rtl move","expected":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"check":"other pointer","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"cancel live","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true},{"actual":{"persist":["a",50],"state":{},"widths":{"a":10}},"check":"end latest delta","expected":{"persist":["a",50],"state":{},"widths":{"a":50}},"passed":false},{"actual":{"persist":["a",8],"state":{},"widths":{"a":10}},"check":"end shrink","expected":{"persist":["a",8],"state":{},"widths":{"a":8}},"passed":false},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"noop end","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fresh drag snapshot\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"live move absolute delta\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"deferred rtl move\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"other pointer\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"cancel live\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"end latest delta\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": [\"a\", 50]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 50}, \"persist\": [\"a\", 50]}, \"passed\": false}, {\"check\": \"end shrink\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": [\"a\", 8]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 8}, \"persist\": [\"a\", 8]}, \"passed\": false}, {\"check\": \"noop end\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.207,"exit_code":1,"observations":[{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"check":"fresh drag snapshot","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"check":"live move absolute delta","expected":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"check":"deferred rtl move","expected":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"check":"other pointer","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"cancel live","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true},{"actual":{"persist":["a",50],"state":{},"widths":{"a":15}},"check":"end latest delta","expected":{"persist":["a",50],"state":{},"widths":{"a":50}},"passed":false},{"actual":{"persist":["a",8],"state":{},"widths":{"a":10}},"check":"end shrink","expected":{"persist":["a",8],"state":{},"widths":{"a":8}},"passed":false},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"noop end","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fresh drag snapshot\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"live move absolute delta\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"deferred rtl move\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"other pointer\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"cancel live\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"end latest delta\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 15}, \"persist\": [\"a\", 50]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 50}, \"persist\": [\"a\", 50]}, \"passed\": false}, {\"check\": \"end shrink\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": [\"a\", 8]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 8}, \"persist\": [\"a\", 8]}, \"passed\": false}, {\"check\": \"noop end\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.494,"exit_code":0,"observations":[{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"check":"fresh drag snapshot","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"check":"live move absolute delta","expected":{"persist":null,"state":{"base":10,"column":"a","draft":15,"pointer":7},"widths":{"a":15,"b":9}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"check":"deferred rtl move","expected":{"persist":null,"state":{"base":10,"column":"a","draft":5,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"check":"other pointer","expected":{"persist":null,"state":{"base":10,"column":"a","draft":10,"pointer":7},"widths":{"a":10}},"passed":true},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"cancel live","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true},{"actual":{"persist":["a",50],"state":{},"widths":{"a":50}},"check":"end latest delta","expected":{"persist":["a",50],"state":{},"widths":{"a":50}},"passed":true},{"actual":{"persist":["a",8],"state":{},"widths":{"a":8}},"check":"end shrink","expected":{"persist":["a",8],"state":{},"widths":{"a":8}},"passed":true},{"actual":{"persist":null,"state":{},"widths":{"a":10}},"check":"noop end","expected":{"persist":null,"state":{},"widths":{"a":10}},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fresh drag snapshot\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"live move absolute delta\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 15}, \"widths\": {\"a\": 15, \"b\": 9}, \"persist\": null}, \"passed\": true}, {\"check\": \"deferred rtl move\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 5}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"other pointer\", \"actual\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {\"pointer\": 7, \"column\": \"a\", \"base\": 10, \"draft\": 10}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"cancel live\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}, {\"check\": \"end latest delta\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 50}, \"persist\": [\"a\", 50]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 50}, \"persist\": [\"a\", 50]}, \"passed\": true}, {\"check\": \"end shrink\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 8}, \"persist\": [\"a\", 8]}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 8}, \"persist\": [\"a\", 8]}, \"passed\": true}, {\"check\": \"noop end\", \"actual\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"expected\": {\"state\": {}, \"widths\": {\"a\": 10}, \"persist\": null}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}