{"abstract":"The table start row identity result violates the stipulated table clipboard paste mapping contract.","category":"Table interactions","checks":9,"contract":"Paste maps source offsets to visible table coordinates starting at a stable cell; source raggedness is retained, table edges clip, readonly holes consume coordinates but not patch capacity, raw values remain unchanged, and truncation means an additional writable patch was omitted.","evaluation_group":"s3-table-interactions-paste-grid","failed_approach":"The attempted repair 'ri=max(0,rows.index(start[0])-1)' still loses a required part of the table contract.","family":"s3-table-interactions-paste-grid-start-row-identity","id":"FA-37296","implementations":{"attempt":{"sha256":"d13ce500921b9975ae40950bff4de39dd446b1db5a0acf6c3060f48db6214c32","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, cols, matrix, start, readonly, hidden, limit):\n    targets=[c for c in cols if c not in hidden]\n    ri=max(0,rows.index(start[0])-1); ci=targets.index(start[1])\n    patches=[]; rejected=[]\n    for y,source in enumerate(matrix):\n        if ri+y>=len(rows): break\n        for x,value in enumerate(source):\n            if ci+x>=len(targets): break\n            cell=(rows[ri+y],targets[ci+x])\n            if cell in readonly: rejected.append(cell); continue\n            if len(patches)>=limit: return {'patches':patches,'rejected':rejected,'truncated':True}\n            patches.append((cell[0],cell[1],value))\n    return {'patches':patches,'rejected':rejected,'truncated':False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 2:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[2,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 2), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 3:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[3,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 3), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 4:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[4,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 4), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 5:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[5,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 5), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': 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":"89000cc3fa062747d48e3aeb783d4f75fd45b4b4522270df1005f0e9568ff962","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, cols, matrix, start, readonly, hidden, limit):\n    targets=[c for c in cols if c not in hidden]\n    ri=0; ci=targets.index(start[1])\n    patches=[]; rejected=[]\n    for y,source in enumerate(matrix):\n        if ri+y>=len(rows): break\n        for x,value in enumerate(source):\n            if ci+x>=len(targets): break\n            cell=(rows[ri+y],targets[ci+x])\n            if cell in readonly: rejected.append(cell); continue\n            if len(patches)>=limit: return {'patches':patches,'rejected':rejected,'truncated':True}\n            patches.append((cell[0],cell[1],value))\n    return {'patches':patches,'rejected':rejected,'truncated':False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 2:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[2,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 2), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 3:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[3,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 3), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 4:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[4,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 4), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 5:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[5,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 5), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': 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":"099cf6cb3aa8ccf917f5678bf8902f8cd24a3b4c2db019db19ee3a78a838ad99","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rows, cols, matrix, start, readonly, hidden, limit):\n    targets=[c for c in cols if c not in hidden]\n    ri=rows.index(start[0]); ci=targets.index(start[1])\n    patches=[]; rejected=[]\n    for y,source in enumerate(matrix):\n        if ri+y>=len(rows): break\n        for x,value in enumerate(source):\n            if ci+x>=len(targets): break\n            cell=(rows[ri+y],targets[ci+x])\n            if cell in readonly: rejected.append(cell); continue\n            if len(patches)>=limit: return {'patches':patches,'rejected':rejected,'truncated':True}\n            patches.append((cell[0],cell[1],value))\n    return {'patches':patches,'rejected':rejected,'truncated':False}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 2:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[2,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 2), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 3:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[3,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 3), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 4:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[4,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 4), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': False})\n\nif N == 5:\n    check('offset rectangular paste', solve(['r0','r1','r2','r3'], ['a','b','c','d'], [[5,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 5), ('r1', 'c', 2), ('r2', 'b', 3), ('r2', 'c', 4)], 'rejected': [], 'truncated': False})\n    check('hidden targets', solve(['r0','r1'], ['a','b','c','d'], [[1,2,3]], ('r0','c'), [], ['a','b'], 9), {'patches': [('r0', 'c', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('readonly holes', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 9), {'patches': [('r0', 'b', 2), ('r1', 'a', 3), ('r1', 'b', 4)], 'rejected': [('r0', 'a')], 'truncated': False})\n    check('bounded patches', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r0','a'), [('r0','a')], [], 2), {'patches': [('r0', 'b', 2), ('r1', 'a', 3)], 'rejected': [('r0', 'a')], 'truncated': True})\n    check('ragged and whitespace', solve(['r0','r1'], ['a','b','c'], [[0,' x '],['']], ('r0','a'), [], [], 9), {'patches': [('r0', 'a', 0), ('r0', 'b', ' x '), ('r1', 'a', '')], 'rejected': [], 'truncated': False})\n    check('clipped edges', solve(['r0','r1'], ['a','b'], [[1,2],[3,4]], ('r1','b'), [], [], 9), {'patches': [('r1', 'b', 1)], 'rejected': [], 'truncated': False})\n    check('hidden internal', solve(['r0'], ['a','b','c','d'], [[1,2,3]], ('r0','a'), [], ['b','c'], 9), {'patches': [('r0', 'a', 1), ('r0', 'd', 2)], 'rejected': [], 'truncated': False})\n    check('budget no locks', solve(['r0'], ['a','b'], [[1,2]], ('r0','a'), [], [], 1), {'patches': [('r0', 'a', 1)], 'rejected': [], 'truncated': True})\n    check('empty input', solve(['r0'], ['a'], [], ('r0','a'), [], [], 0), {'patches': [], 'rejected': [], 'truncated': 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":"The start row and visible start column exist; patch capacity is a nonnegative integer. 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-paste-grid-start-row-identity","generated_at":"2026-09-29T14:42:59.771416+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline table UI model isolates table clipboard paste mapping, including adversarial row/column relationships.","repair":"Apply the complete start row identity rule: ri=rows.index(start[0]).","root_cause":"The start row identity decision uses 'ri=0' instead of 'ri=rows.index(start[0])'.","sha256":"1b2d8584f10e197d530c5fe6ad04613026807cfbc3f7f560a43b2a3d958fb42b","title":"Table clipboard paste mapping: start row identity · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.509,"exit_code":1,"observations":[{"actual":{"patches":[["r0","b",1],["r0","c",2],["r1","b",3],["r1","c",4]],"rejected":[],"truncated":false},"check":"offset rectangular paste","expected":{"patches":[["r1","b",1],["r1","c",2],["r2","b",3],["r2","c",4]],"rejected":[],"truncated":false},"passed":false},{"actual":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden targets","expected":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"check":"readonly holes","expected":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"check":"bounded patches","expected":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"passed":true},{"actual":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"check":"ragged and whitespace","expected":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",1],["r1","b",3]],"rejected":[],"truncated":false},"check":"clipped edges","expected":{"patches":[["r1","b",1]],"rejected":[],"truncated":false},"passed":false},{"actual":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden internal","expected":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"check":"budget no locks","expected":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"passed":true},{"actual":{"patches":[],"rejected":[],"truncated":false},"check":"empty input","expected":{"patches":[],"rejected":[],"truncated":false},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"offset rectangular paste\", \"actual\": {\"patches\": [[\"r0\", \"b\", 1], [\"r0\", \"c\", 2], [\"r1\", \"b\", 3], [\"r1\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1], [\"r1\", \"c\", 2], [\"r2\", \"b\", 3], [\"r2\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"passed\": false}, {\"check\": \"hidden targets\", \"actual\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"readonly holes\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"passed\": true}, {\"check\": \"bounded patches\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"passed\": true}, {\"check\": \"ragged and whitespace\", \"actual\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"clipped edges\", \"actual\": {\"patches\": [[\"r0\", \"b\", 1], [\"r1\", \"b\", 3]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1]], \"rejected\": [], \"truncated\": false}, \"passed\": false}, {\"check\": \"hidden internal\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"budget no locks\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"passed\": true}, {\"check\": \"empty input\", \"actual\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.462,"exit_code":1,"observations":[{"actual":{"patches":[["r0","b",1],["r0","c",2],["r1","b",3],["r1","c",4]],"rejected":[],"truncated":false},"check":"offset rectangular paste","expected":{"patches":[["r1","b",1],["r1","c",2],["r2","b",3],["r2","c",4]],"rejected":[],"truncated":false},"passed":false},{"actual":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden targets","expected":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"check":"readonly holes","expected":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"check":"bounded patches","expected":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"passed":true},{"actual":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"check":"ragged and whitespace","expected":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",1],["r1","b",3]],"rejected":[],"truncated":false},"check":"clipped edges","expected":{"patches":[["r1","b",1]],"rejected":[],"truncated":false},"passed":false},{"actual":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden internal","expected":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"check":"budget no locks","expected":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"passed":true},{"actual":{"patches":[],"rejected":[],"truncated":false},"check":"empty input","expected":{"patches":[],"rejected":[],"truncated":false},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"offset rectangular paste\", \"actual\": {\"patches\": [[\"r0\", \"b\", 1], [\"r0\", \"c\", 2], [\"r1\", \"b\", 3], [\"r1\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1], [\"r1\", \"c\", 2], [\"r2\", \"b\", 3], [\"r2\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"passed\": false}, {\"check\": \"hidden targets\", \"actual\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"readonly holes\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"passed\": true}, {\"check\": \"bounded patches\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"passed\": true}, {\"check\": \"ragged and whitespace\", \"actual\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"clipped edges\", \"actual\": {\"patches\": [[\"r0\", \"b\", 1], [\"r1\", \"b\", 3]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1]], \"rejected\": [], \"truncated\": false}, \"passed\": false}, {\"check\": \"hidden internal\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"budget no locks\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"passed\": true}, {\"check\": \"empty input\", \"actual\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.306,"exit_code":0,"observations":[{"actual":{"patches":[["r1","b",1],["r1","c",2],["r2","b",3],["r2","c",4]],"rejected":[],"truncated":false},"check":"offset rectangular paste","expected":{"patches":[["r1","b",1],["r1","c",2],["r2","b",3],["r2","c",4]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden targets","expected":{"patches":[["r0","c",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"check":"readonly holes","expected":{"patches":[["r0","b",2],["r1","a",3],["r1","b",4]],"rejected":[["r0","a"]],"truncated":false},"passed":true},{"actual":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"check":"bounded patches","expected":{"patches":[["r0","b",2],["r1","a",3]],"rejected":[["r0","a"]],"truncated":true},"passed":true},{"actual":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"check":"ragged and whitespace","expected":{"patches":[["r0","a",0],["r0","b"," x "],["r1","a",""]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r1","b",1]],"rejected":[],"truncated":false},"check":"clipped edges","expected":{"patches":[["r1","b",1]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"check":"hidden internal","expected":{"patches":[["r0","a",1],["r0","d",2]],"rejected":[],"truncated":false},"passed":true},{"actual":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"check":"budget no locks","expected":{"patches":[["r0","a",1]],"rejected":[],"truncated":true},"passed":true},{"actual":{"patches":[],"rejected":[],"truncated":false},"check":"empty input","expected":{"patches":[],"rejected":[],"truncated":false},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"offset rectangular paste\", \"actual\": {\"patches\": [[\"r1\", \"b\", 1], [\"r1\", \"c\", 2], [\"r2\", \"b\", 3], [\"r2\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1], [\"r1\", \"c\", 2], [\"r2\", \"b\", 3], [\"r2\", \"c\", 4]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"hidden targets\", \"actual\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"c\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"readonly holes\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3], [\"r1\", \"b\", 4]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": false}, \"passed\": true}, {\"check\": \"bounded patches\", \"actual\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"b\", 2], [\"r1\", \"a\", 3]], \"rejected\": [[\"r0\", \"a\"]], \"truncated\": true}, \"passed\": true}, {\"check\": \"ragged and whitespace\", \"actual\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 0], [\"r0\", \"b\", \" x \"], [\"r1\", \"a\", \"\"]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"clipped edges\", \"actual\": {\"patches\": [[\"r1\", \"b\", 1]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r1\", \"b\", 1]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"hidden internal\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1], [\"r0\", \"d\", 2]], \"rejected\": [], \"truncated\": false}, \"passed\": true}, {\"check\": \"budget no locks\", \"actual\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"expected\": {\"patches\": [[\"r0\", \"a\", 1]], \"rejected\": [], \"truncated\": true}, \"passed\": true}, {\"check\": \"empty input\", \"actual\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"expected\": {\"patches\": [], \"rejected\": [], \"truncated\": false}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}