{"abstract":"Corrected blocks contain one extra row of parity bits.","category":"Error-correcting codes","checks":8,"contract":"Two-dimensional parity product code. m is a (rows+1) x (cols+1) bit matrix: the last column holds row parities, the last row column parities, and the corner the overall parity, so every full row and column is even. A single failing row and single failing column locate one error (in data or parity) which is flipped. Return [status, data block without parity row/column] with status clean/corrected, or [\"uncorrectable\", None].","contract_signature":"m","evaluation_group":"w2-error_correcting_codes-parity-2d","failed_approach":"Dropping the first column instead of the last removes data and keeps parity.","family":"w2-error_correcting_codes-parity-2d-parity-stripping","id":"FA-72066","implementations":{"attempt":{"sha256":"a3f29dd6f84d82dc180f6daf3163a4a5f35cc75a68508d3a88ca12fd700f252f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(m):\n    Rw = [i for i, row in enumerate(m) if sum(row) % 2]\n    Cl = [j for j in range(len(m[0])) if sum(row[j] for row in m) % 2]\n    if not Rw and not Cl:\n        return ['clean', [row[:-1] for row in m[:-1]]]\n    if len(Rw) == 1 and len(Cl) == 1:\n        fx = [list(row) for row in m]\n        fx[Rw[0]][Cl[0]] ^= 1\n        return ['corrected', [row[1:] for row in fx[:-1]]]\n    return ['uncorrectable', None]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]], ['corrected', [[0, 0], [0, 1]]]], ['regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]], ['corrected', [[0, 0], [0, 1]]]], ['control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]], ['clean', [[0, 0], [0, 1]]]], ['control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]', [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]], ['clean', [[1, 0, 1], [1, 1, 1]]]], ['control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]', [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]]], [['regression [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 0]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 0]]], ['corrected', [[1, 0, 1], [1, 1, 1]]]], ['regression [[[1, 0, 1, 0], [1, 1, 1, 0], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 0], [0, 1, 0, 1]]], ['corrected', [[1, 0, 1], [1, 1, 1]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['clean', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['clean', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['clean', [[1, 0, 1, 0, 1], [1, 0, 0, 0, 0]]]]], [['regression [[[0, 1, 1, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 1, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['corrected', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['regression [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 0], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 0], [0, 0, 1, 1]]], ['corrected', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['clean', [[1, 0, 1, 0, 1], [1, 0, 0, 0, 0]]]], ['control [[[0, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[0, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 0, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 0, 1]]], ['clean', [[0, 1], [1, 0], [0, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 0, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 0, 0, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[0, 0, 0, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['clean', [[0, 0, 0, 1], [0, 0, 1, 1], [1, 1, 0, 1], [0, 1, 0, 1]]]], ['control [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['uncorrectable', None]]], [['regression [[[1, 0, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['corrected', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['regression [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 0, 0, 0]]], ['corrected', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]], ['clean', [[0, 0], [0, 1]]]], ['control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]', [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]], ['clean', [[1, 0, 1], [1, 1, 1]]]], ['control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]', [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]]], [['regression [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 0, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 0, 1]]], ['corrected', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['regression [[[0, 1, 0], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 0], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['corrected', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['clean', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['clean', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['uncorrectable', None]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"5b40af0ed5e2af615b7532a48cf8a7ca0579065c02c084a7b1285cf094f29edd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(m):\n    Rw = [i for i, row in enumerate(m) if sum(row) % 2]\n    Cl = [j for j in range(len(m[0])) if sum(row[j] for row in m) % 2]\n    if not Rw and not Cl:\n        return ['clean', [row[:-1] for row in m[:-1]]]\n    if len(Rw) == 1 and len(Cl) == 1:\n        fx = [list(row) for row in m]\n        fx[Rw[0]][Cl[0]] ^= 1\n        return ['corrected', [row[:-1] for row in fx]]\n    return ['uncorrectable', None]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]], ['corrected', [[0, 0], [0, 1]]]], ['regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]], ['corrected', [[0, 0], [0, 1]]]], ['control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]], ['clean', [[0, 0], [0, 1]]]], ['control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]', [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]], ['clean', [[1, 0, 1], [1, 1, 1]]]], ['control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]', [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]]], [['regression [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 0]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 0]]], ['corrected', [[1, 0, 1], [1, 1, 1]]]], ['regression [[[1, 0, 1, 0], [1, 1, 1, 0], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 0], [0, 1, 0, 1]]], ['corrected', [[1, 0, 1], [1, 1, 1]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['clean', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['clean', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['clean', [[1, 0, 1, 0, 1], [1, 0, 0, 0, 0]]]]], [['regression [[[0, 1, 1, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 1, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['corrected', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['regression [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 0], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 0], [0, 0, 1, 1]]], ['corrected', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['clean', [[1, 0, 1, 0, 1], [1, 0, 0, 0, 0]]]], ['control [[[0, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]]', [[[0, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 0, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 0, 1]]], ['clean', [[0, 1], [1, 0], [0, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 0, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 0, 0, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[0, 0, 0, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['clean', [[0, 0, 0, 1], [0, 0, 1, 1], [1, 1, 0, 1], [0, 1, 0, 1]]]], ['control [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['uncorrectable', None]]], [['regression [[[1, 0, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 1, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['corrected', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['regression [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 1], [1, 1, 0, 0, 0]]], ['corrected', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0...', [[[1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [1, 1, 0, 1, 1], [0, 1, 0, 1, 0], [1, 0, 1, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]', [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]], ['clean', [[0, 0], [0, 1]]]], ['control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]', [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]', [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]], ['clean', [[1, 0, 1], [1, 1, 1]]]], ['control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]', [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]], ['uncorrectable', None]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]]], [['regression [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 0, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 0, 1]]], ['corrected', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['regression [[[0, 1, 0], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 0], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['corrected', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['clean', [[0, 1, 0], [0, 0, 1], [0, 1, 0]]]], ['control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]', [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]], ['uncorrectable', None]], ['control [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[1, 0, 0, 0, 1], [0, 1, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['clean', [[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 1]]]], ['control [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]]', [[[0, 0, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 0], [1, 1, 0, 0, 0]]], ['uncorrectable', None]], ['control [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[0, 1, 1], [1, 0, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['clean', [[0, 1], [1, 0], [0, 1], [1, 1]]]], ['control [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]]', [[[1, 1, 1], [1, 1, 1], [0, 1, 1], [1, 1, 0], [0, 1, 1]]], ['uncorrectable', None]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"A deterministic, bounded teaching model of the named code under the stated contract; not a production codec. 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":"w2-error_correcting_codes-parity-2d-parity-stripping","generated_at":"2026-09-29T14:48:35.265661+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Simple line-card and tape formats use row/column parity to correct single-bit errors.","root_cause":"The corrected branch strips the parity column but not the parity row.","sha256":"f12bd4a064a70b734492a33be90699c3ccba622f23f1a6ef5baef2821a8f2d24","title":"Product code returns the parity row with the data · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.182,"exit_code":1,"observations":[{"actual":["corrected",[[0,0],[1,1]]],"check":"regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]","expected":["corrected",[[0,0],[0,1]]],"passed":false},{"actual":["corrected",[[0,0],[1,1]]],"check":"regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]","expected":["corrected",[[0,0],[0,1]]],"passed":false},{"actual":["clean",[[0,0],[0,1]]],"check":"control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]","expected":["clean",[[0,0],[0,1]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]","expected":["uncorrectable",null],"passed":true},{"actual":["clean",[[1,0,1],[1,1,1]]],"check":"control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]","expected":["clean",[[1,0,1],[1,1,1]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]","expected":["uncorrectable",null],"passed":true},{"actual":["clean",[[0,1,0],[0,0,1],[0,1,0]]],"check":"control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]","expected":["clean",[[0,1,0],[0,0,1],[0,1,0]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]","expected":["uncorrectable",null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]\", \"actual\": [\"corrected\", [[0, 0], [1, 1]]], \"expected\": [\"corrected\", [[0, 0], [0, 1]]], \"passed\": false}, {\"check\": \"regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]\", \"actual\": [\"corrected\", [[0, 0], [1, 1]]], \"expected\": [\"corrected\", [[0, 0], [0, 1]]], \"passed\": false}, {\"check\": \"control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]\", \"actual\": [\"clean\", [[0, 0], [0, 1]]], \"expected\": [\"clean\", [[0, 0], [0, 1]]], \"passed\": true}, {\"check\": \"control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}, {\"check\": \"control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]\", \"actual\": [\"clean\", [[1, 0, 1], [1, 1, 1]]], \"expected\": [\"clean\", [[1, 0, 1], [1, 1, 1]]], \"passed\": true}, {\"check\": \"control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}, {\"check\": \"control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]\", \"actual\": [\"clean\", [[0, 1, 0], [0, 0, 1], [0, 1, 0]]], \"expected\": [\"clean\", [[0, 1, 0], [0, 0, 1], [0, 1, 0]]], \"passed\": true}, {\"check\": \"control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.323,"exit_code":1,"observations":[{"actual":["corrected",[[0,0],[0,1],[0,1]]],"check":"regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]","expected":["corrected",[[0,0],[0,1]]],"passed":false},{"actual":["corrected",[[0,0],[0,1],[0,1]]],"check":"regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]","expected":["corrected",[[0,0],[0,1]]],"passed":false},{"actual":["clean",[[0,0],[0,1]]],"check":"control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]","expected":["clean",[[0,0],[0,1]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]","expected":["uncorrectable",null],"passed":true},{"actual":["clean",[[1,0,1],[1,1,1]]],"check":"control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]","expected":["clean",[[1,0,1],[1,1,1]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]","expected":["uncorrectable",null],"passed":true},{"actual":["clean",[[0,1,0],[0,0,1],[0,1,0]]],"check":"control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]","expected":["clean",[[0,1,0],[0,0,1],[0,1,0]]],"passed":true},{"actual":["uncorrectable",null],"check":"control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]","expected":["uncorrectable",null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[[0, 0, 0], [0, 1, 1], [0, 0, 1]]]\", \"actual\": [\"corrected\", [[0, 0], [0, 1], [0, 1]]], \"expected\": [\"corrected\", [[0, 0], [0, 1]]], \"passed\": false}, {\"check\": \"regression [[[0, 0, 1], [0, 1, 1], [0, 1, 1]]]\", \"actual\": [\"corrected\", [[0, 0], [0, 1], [0, 1]]], \"expected\": [\"corrected\", [[0, 0], [0, 1]]], \"passed\": false}, {\"check\": \"control [[[0, 0, 0], [0, 1, 1], [0, 1, 1]]]\", \"actual\": [\"clean\", [[0, 0], [0, 1]]], \"expected\": [\"clean\", [[0, 0], [0, 1]]], \"passed\": true}, {\"check\": \"control [[[1, 0, 0], [0, 0, 1], [0, 1, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}, {\"check\": \"control [[[1, 0, 1, 0], [1, 1, 1, 1], [0, 1, 0, 1]]]\", \"actual\": [\"clean\", [[1, 0, 1], [1, 1, 1]]], \"expected\": [\"clean\", [[1, 0, 1], [1, 1, 1]]], \"passed\": true}, {\"check\": \"control [[[0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}, {\"check\": \"control [[[0, 1, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]\", \"actual\": [\"clean\", [[0, 1, 0], [0, 0, 1], [0, 1, 0]]], \"expected\": [\"clean\", [[0, 1, 0], [0, 0, 1], [0, 1, 0]]], \"passed\": true}, {\"check\": \"control [[[1, 1, 0, 1], [0, 1, 1, 1], [0, 1, 0, 1], [0, 0, 1, 1]]]\", \"actual\": [\"uncorrectable\", null], \"expected\": [\"uncorrectable\", null], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}