{"abstract":"Logical chunks come back rotated for stripes whose parity is not on the last disk.","category":"Error-correcting codes","checks":8,"contract":"RAID-5 left-symmetric layout on n >= 3 disks: in stripe s the parity lives on disk n-1-(s mod n) and data chunk j lives on disk (parity + 1 + j) mod n. blocks lists the stripe per disk (ints; at most one None for a failed disk). A missing block is rebuilt by XOR; with no missing block the XOR of all blocks must be 0 or the result is \"parity-mismatch\". Return [data chunks in logical order, parity block].","evaluation_group":"w2-error_correcting_codes-raid5-left-symmetric","failed_approach":"Walking backwards from the parity disk reverses the chunk order.","family":"w2-error_correcting_codes-raid5-left-symmetric-data-order","id":"FA-72036","implementations":{"attempt":{"sha256":"c7402900531c875d222dcfc5220fe2a6ec9c6cf75c37516ce9cf7863379d91df","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(blocks, stripe, n):\n    if n < 3 or len(blocks) != n or blocks.count(None) > 1:\n        return None\n    pd = n - 1 - stripe % n\n    if None in blocks:\n        m = blocks.index(None)\n        x = 0\n        for k, v in enumerate(blocks):\n            if k != m:\n                x ^= v\n        blocks = blocks[:m] + [x] + blocks[m + 1:]\n    else:\n        x = 0\n        for v in blocks:\n            x ^= v\n        if x != 0:\n            return 'parity-mismatch'\n    order = [(pd - 1 - j) % n for j in range(n - 1)]\n    return [[blocks[d] for d in order], blocks[pd]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[80, 29, 77], 1, 3]', [[80, 29, 77], 1, 3], [[77, 80], 29]], ['regression [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[132, 23, 147], 0, 3]', [[132, 23, 147], 0, 3], [[132, 23], 147]], ['partial-repair [[132, null, 147], 0, 3]', [[132, None, 147], 0, 3], [[132, 23], 147]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['regression [[202, 146, 183, 239], 2, 4]', [[202, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[166, 226, 235, 175], 0, 4]', [[166, 226, 235, 175], 0, 4], [[166, 226, 235], 175]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']], [['regression [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['regression [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[197, 130, 1, 70], 1, 4]', [[197, 130, 1, 70], 1, 4], [[70, 197, 130], 1]], ['partial-repair [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['control [[18, 127, 108], 2, 3]', [[18, 127, 108], 2, 3], 'parity-mismatch'], ['control [[134, 159, 201, 163, 114], 0, 5]', [[134, 159, 201, 163, 114], 0, 5], 'parity-mismatch'], ['control [[1, null, null], 0, 3]', [[1, None, None], 0, 3], None], ['control [[1, 2], 0, 2]', [[1, 2], 0, 2], None]], [['regression [[95, 206, 36, null, 230], 6, 5]', [[95, 206, 36, None, 230], 6, 5], [[230, 95, 206, 36], 83]], ['regression [[48, 163, 83, 128, 142, 206], 4, 6]', [[48, 163, 83, 128, 142, 206], 4, 6], [[83, 128, 142, 206, 48], 163]], ['partial-repair [[null, 146, 183, 239], 2, 4]', [[None, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[96, 103, 54, 49], 3, 4]', [[96, 103, 54, 49], 3, 4], [[103, 54, 49], 96]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[158, 132, 216, 194], 5, 4]', [[158, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['regression [[null, 132, 216, 194], 5, 4]', [[None, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['partial-repair [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']]]\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":"c3740ce73b6919f506b5ed0ee8bdf1787a3a78841b688a376bcbaed1043a504c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(blocks, stripe, n):\n    if n < 3 or len(blocks) != n or blocks.count(None) > 1:\n        return None\n    pd = n - 1 - stripe % n\n    if None in blocks:\n        m = blocks.index(None)\n        x = 0\n        for k, v in enumerate(blocks):\n            if k != m:\n                x ^= v\n        blocks = blocks[:m] + [x] + blocks[m + 1:]\n    else:\n        x = 0\n        for v in blocks:\n            x ^= v\n        if x != 0:\n            return 'parity-mismatch'\n    order = [j if j < pd else j + 1 for j in range(n - 1)]\n    return [[blocks[d] for d in order], blocks[pd]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[80, 29, 77], 1, 3]', [[80, 29, 77], 1, 3], [[77, 80], 29]], ['regression [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[132, 23, 147], 0, 3]', [[132, 23, 147], 0, 3], [[132, 23], 147]], ['partial-repair [[132, null, 147], 0, 3]', [[132, None, 147], 0, 3], [[132, 23], 147]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['regression [[202, 146, 183, 239], 2, 4]', [[202, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[166, 226, 235, 175], 0, 4]', [[166, 226, 235, 175], 0, 4], [[166, 226, 235], 175]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']], [['regression [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['regression [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[197, 130, 1, 70], 1, 4]', [[197, 130, 1, 70], 1, 4], [[70, 197, 130], 1]], ['partial-repair [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['control [[18, 127, 108], 2, 3]', [[18, 127, 108], 2, 3], 'parity-mismatch'], ['control [[134, 159, 201, 163, 114], 0, 5]', [[134, 159, 201, 163, 114], 0, 5], 'parity-mismatch'], ['control [[1, null, null], 0, 3]', [[1, None, None], 0, 3], None], ['control [[1, 2], 0, 2]', [[1, 2], 0, 2], None]], [['regression [[95, 206, 36, null, 230], 6, 5]', [[95, 206, 36, None, 230], 6, 5], [[230, 95, 206, 36], 83]], ['regression [[48, 163, 83, 128, 142, 206], 4, 6]', [[48, 163, 83, 128, 142, 206], 4, 6], [[83, 128, 142, 206, 48], 163]], ['partial-repair [[null, 146, 183, 239], 2, 4]', [[None, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[96, 103, 54, 49], 3, 4]', [[96, 103, 54, 49], 3, 4], [[103, 54, 49], 96]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[158, 132, 216, 194], 5, 4]', [[158, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['regression [[null, 132, 216, 194], 5, 4]', [[None, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['partial-repair [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']]]\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"},"fixed":{"sha256":"1324e069c65d9e69a7637d833f9cabe41a84e8307e9ab0966f6a532aecbc6e19","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(blocks, stripe, n):\n    if n < 3 or len(blocks) != n or blocks.count(None) > 1:\n        return None\n    pd = n - 1 - stripe % n\n    if None in blocks:\n        m = blocks.index(None)\n        x = 0\n        for k, v in enumerate(blocks):\n            if k != m:\n                x ^= v\n        blocks = blocks[:m] + [x] + blocks[m + 1:]\n    else:\n        x = 0\n        for v in blocks:\n            x ^= v\n        if x != 0:\n            return 'parity-mismatch'\n    order = [(pd + 1 + j) % n for j in range(n - 1)]\n    return [[blocks[d] for d in order], blocks[pd]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [[80, 29, 77], 1, 3]', [[80, 29, 77], 1, 3], [[77, 80], 29]], ['regression [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[132, 23, 147], 0, 3]', [[132, 23, 147], 0, 3], [[132, 23], 147]], ['partial-repair [[132, null, 147], 0, 3]', [[132, None, 147], 0, 3], [[132, 23], 147]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['regression [[202, 146, 183, 239], 2, 4]', [[202, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[80, null, 77], 1, 3]', [[80, None, 77], 1, 3], [[77, 80], 29]], ['partial-repair [[166, 226, 235, 175], 0, 4]', [[166, 226, 235, 175], 0, 4], [[166, 226, 235], 175]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']], [['regression [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['regression [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[197, 130, 1, 70], 1, 4]', [[197, 130, 1, 70], 1, 4], [[70, 197, 130], 1]], ['partial-repair [[197, null, 1, 70], 1, 4]', [[197, None, 1, 70], 1, 4], [[70, 197, 130], 1]], ['control [[18, 127, 108], 2, 3]', [[18, 127, 108], 2, 3], 'parity-mismatch'], ['control [[134, 159, 201, 163, 114], 0, 5]', [[134, 159, 201, 163, 114], 0, 5], 'parity-mismatch'], ['control [[1, null, null], 0, 3]', [[1, None, None], 0, 3], None], ['control [[1, 2], 0, 2]', [[1, 2], 0, 2], None]], [['regression [[95, 206, 36, null, 230], 6, 5]', [[95, 206, 36, None, 230], 6, 5], [[230, 95, 206, 36], 83]], ['regression [[48, 163, 83, 128, 142, 206], 4, 6]', [[48, 163, 83, 128, 142, 206], 4, 6], [[83, 128, 142, 206, 48], 163]], ['partial-repair [[null, 146, 183, 239], 2, 4]', [[None, 146, 183, 239], 2, 4], [[183, 239, 202], 146]], ['partial-repair [[96, 103, 54, 49], 3, 4]', [[96, 103, 54, 49], 3, 4], [[103, 54, 49], 96]], ['control [[133, 23, 147], 0, 3]', [[133, 23, 147], 0, 3], 'parity-mismatch'], ['control [[81, 29, 77], 1, 3]', [[81, 29, 77], 1, 3], 'parity-mismatch'], ['control [[167, 226, 235, 175], 0, 4]', [[167, 226, 235, 175], 0, 4], 'parity-mismatch'], ['control [[196, 130, 1, 70], 1, 4]', [[196, 130, 1, 70], 1, 4], 'parity-mismatch']], [['regression [[158, 132, 216, 194], 5, 4]', [[158, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['regression [[null, 132, 216, 194], 5, 4]', [[None, 132, 216, 194], 5, 4], [[194, 158, 132], 216]], ['partial-repair [[45, 55, 172, 192, 118], 2, 5]', [[45, 55, 172, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['partial-repair [[45, 55, null, 192, 118], 2, 5]', [[45, 55, None, 192, 118], 2, 5], [[192, 118, 45, 55], 172]], ['control [[97, 103, 54, 49], 3, 4]', [[97, 103, 54, 49], 3, 4], 'parity-mismatch'], ['control [[44, 55, 172, 192, 118], 2, 5]', [[44, 55, 172, 192, 118], 2, 5], 'parity-mismatch'], ['control [[94, 206, 36, 83, 230], 6, 5]', [[94, 206, 36, 83, 230], 6, 5], 'parity-mismatch'], ['control [[49, 163, 83, 128, 142, 206], 4, 6]', [[49, 163, 83, 128, 142, 206], 4, 6], 'parity-mismatch']]]\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-raid5-left-symmetric-data-order","generated_at":"2026-09-29T14:48:34.885546+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Array controllers rebuild degraded stripes and must map disks to logical chunks correctly.","repair":"Read chunk j from disk (parity + 1 + j) mod n.","root_cause":"Chunks are read left-asymmetrically (disk order skipping parity) instead of starting after the parity disk.","sha256":"aa29453dcaf4f2d873f11aaf3b839d50b03a7aad18f21118a3dbdb7a7dcb7d32","title":"RAID-5 reads data chunks in disk order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.123,"exit_code":1,"observations":[{"actual":[[80,77],29],"check":"regression [[80, 29, 77], 1, 3]","expected":[[77,80],29],"passed":false},{"actual":[[80,77],29],"check":"regression [[80, null, 77], 1, 3]","expected":[[77,80],29],"passed":false},{"actual":[[23,132],147],"check":"partial-repair [[132, 23, 147], 0, 3]","expected":[[132,23],147],"passed":false},{"actual":[[23,132],147],"check":"partial-repair [[132, null, 147], 0, 3]","expected":[[132,23],147],"passed":false},{"actual":"parity-mismatch","check":"control [[133, 23, 147], 0, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[81, 29, 77], 1, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[167, 226, 235, 175], 0, 4]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[196, 130, 1, 70], 1, 4]","expected":"parity-mismatch","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[80, 29, 77], 1, 3]\", \"actual\": [[80, 77], 29], \"expected\": [[77, 80], 29], \"passed\": false}, {\"check\": \"regression [[80, null, 77], 1, 3]\", \"actual\": [[80, 77], 29], \"expected\": [[77, 80], 29], \"passed\": false}, {\"check\": \"partial-repair [[132, 23, 147], 0, 3]\", \"actual\": [[23, 132], 147], \"expected\": [[132, 23], 147], \"passed\": false}, {\"check\": \"partial-repair [[132, null, 147], 0, 3]\", \"actual\": [[23, 132], 147], \"expected\": [[132, 23], 147], \"passed\": false}, {\"check\": \"control [[133, 23, 147], 0, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[81, 29, 77], 1, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[167, 226, 235, 175], 0, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[196, 130, 1, 70], 1, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.53,"exit_code":1,"observations":[{"actual":[[80,77],29],"check":"regression [[80, 29, 77], 1, 3]","expected":[[77,80],29],"passed":false},{"actual":[[80,77],29],"check":"regression [[80, null, 77], 1, 3]","expected":[[77,80],29],"passed":false},{"actual":[[132,23],147],"check":"partial-repair [[132, 23, 147], 0, 3]","expected":[[132,23],147],"passed":true},{"actual":[[132,23],147],"check":"partial-repair [[132, null, 147], 0, 3]","expected":[[132,23],147],"passed":true},{"actual":"parity-mismatch","check":"control [[133, 23, 147], 0, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[81, 29, 77], 1, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[167, 226, 235, 175], 0, 4]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[196, 130, 1, 70], 1, 4]","expected":"parity-mismatch","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[80, 29, 77], 1, 3]\", \"actual\": [[80, 77], 29], \"expected\": [[77, 80], 29], \"passed\": false}, {\"check\": \"regression [[80, null, 77], 1, 3]\", \"actual\": [[80, 77], 29], \"expected\": [[77, 80], 29], \"passed\": false}, {\"check\": \"partial-repair [[132, 23, 147], 0, 3]\", \"actual\": [[132, 23], 147], \"expected\": [[132, 23], 147], \"passed\": true}, {\"check\": \"partial-repair [[132, null, 147], 0, 3]\", \"actual\": [[132, 23], 147], \"expected\": [[132, 23], 147], \"passed\": true}, {\"check\": \"control [[133, 23, 147], 0, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[81, 29, 77], 1, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[167, 226, 235, 175], 0, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[196, 130, 1, 70], 1, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":36.854,"exit_code":0,"observations":[{"actual":[[77,80],29],"check":"regression [[80, 29, 77], 1, 3]","expected":[[77,80],29],"passed":true},{"actual":[[77,80],29],"check":"regression [[80, null, 77], 1, 3]","expected":[[77,80],29],"passed":true},{"actual":[[132,23],147],"check":"partial-repair [[132, 23, 147], 0, 3]","expected":[[132,23],147],"passed":true},{"actual":[[132,23],147],"check":"partial-repair [[132, null, 147], 0, 3]","expected":[[132,23],147],"passed":true},{"actual":"parity-mismatch","check":"control [[133, 23, 147], 0, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[81, 29, 77], 1, 3]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[167, 226, 235, 175], 0, 4]","expected":"parity-mismatch","passed":true},{"actual":"parity-mismatch","check":"control [[196, 130, 1, 70], 1, 4]","expected":"parity-mismatch","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [[80, 29, 77], 1, 3]\", \"actual\": [[77, 80], 29], \"expected\": [[77, 80], 29], \"passed\": true}, {\"check\": \"regression [[80, null, 77], 1, 3]\", \"actual\": [[77, 80], 29], \"expected\": [[77, 80], 29], \"passed\": true}, {\"check\": \"partial-repair [[132, 23, 147], 0, 3]\", \"actual\": [[132, 23], 147], \"expected\": [[132, 23], 147], \"passed\": true}, {\"check\": \"partial-repair [[132, null, 147], 0, 3]\", \"actual\": [[132, 23], 147], \"expected\": [[132, 23], 147], \"passed\": true}, {\"check\": \"control [[133, 23, 147], 0, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[81, 29, 77], 1, 3]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[167, 226, 235, 175], 0, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}, {\"check\": \"control [[196, 130, 1, 70], 1, 4]\", \"actual\": \"parity-mismatch\", \"expected\": \"parity-mismatch\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}