{"abstract":"Short right lists recycle their first element instead of null padding.","category":"Data systems","checks":7,"contract":"Zip two optional lists within each parent row using longest-list semantics and zero-based ordinals. Missing positions become None; two empty or null lists yield one outer placeholder with ordinal None.","evaluation_group":"s3-data-systems-zip-list-unnest","failed_approach":"Missing right elements must remain null.","family":"s3-data-systems-zip-list-unnest-right-padding","id":"FA-44596","implementations":{"attempt":{"sha256":"17a2443405b34ce58f36101fd4c1eaa9d9427b71914309b2deef6b7a7b2f37ae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out=[]\n        for ident,left,right in d:\n            left=[] if left is None else left\n            right=[] if right is None else right\n            size=max(len(left),len(right))\n            if size==0: out.append([ident,None,None,None])\n            for i in range(size):\n                a=left[i] if i<len(left) else None\n                b=right[i] if i<len(right) else 0\n                out.append([ident,i,a,b])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('longer left', solve([[1, [2, 3], [4]]]), [[1, 0, 2, 4], [1, 1, 3, None]])\n    check('longer right', solve([[1, [2], [3, 4]]]), [[1, 0, 2, 3], [1, 1, None, 4]])\n    check('empty both', solve([[1, [], None]]), [[1, None, None, None]])\n    check('null left', solve([[1, None, [2]]]), [[1, 0, None, 2]])\n    check('parent ordinal reset', solve([[1, [1], []], [2, [None], [3]]]), [[1, 0, 1, None], [2, 0, None, 3]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[1, [2], None]]), [[1, 0, 2, None]])\nelif N == 2:\n    check('longer left', solve([[2, [3, 4], [5]]]), [[2, 0, 3, 5], [2, 1, 4, None]])\n    check('longer right', solve([[2, [3], [4, 5]]]), [[2, 0, 3, 4], [2, 1, None, 5]])\n    check('empty both', solve([[2, [], None]]), [[2, None, None, None]])\n    check('null left', solve([[2, None, [3]]]), [[2, 0, None, 3]])\n    check('parent ordinal reset', solve([[2, [2], []], [3, [None], [4]]]), [[2, 0, 2, None], [3, 0, None, 4]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[2, [3], None]]), [[2, 0, 3, None]])\nelif N == 3:\n    check('longer left', solve([[3, [4, 5], [6]]]), [[3, 0, 4, 6], [3, 1, 5, None]])\n    check('longer right', solve([[3, [4], [5, 6]]]), [[3, 0, 4, 5], [3, 1, None, 6]])\n    check('empty both', solve([[3, [], None]]), [[3, None, None, None]])\n    check('null left', solve([[3, None, [4]]]), [[3, 0, None, 4]])\n    check('parent ordinal reset', solve([[3, [3], []], [4, [None], [5]]]), [[3, 0, 3, None], [4, 0, None, 5]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[3, [4], None]]), [[3, 0, 4, None]])\nelif N == 4:\n    check('longer left', solve([[4, [5, 6], [7]]]), [[4, 0, 5, 7], [4, 1, 6, None]])\n    check('longer right', solve([[4, [5], [6, 7]]]), [[4, 0, 5, 6], [4, 1, None, 7]])\n    check('empty both', solve([[4, [], None]]), [[4, None, None, None]])\n    check('null left', solve([[4, None, [5]]]), [[4, 0, None, 5]])\n    check('parent ordinal reset', solve([[4, [4], []], [5, [None], [6]]]), [[4, 0, 4, None], [5, 0, None, 6]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[4, [5], None]]), [[4, 0, 5, None]])\nelif N == 5:\n    check('longer left', solve([[5, [6, 7], [8]]]), [[5, 0, 6, 8], [5, 1, 7, None]])\n    check('longer right', solve([[5, [6], [7, 8]]]), [[5, 0, 6, 7], [5, 1, None, 8]])\n    check('empty both', solve([[5, [], None]]), [[5, None, None, None]])\n    check('null left', solve([[5, None, [6]]]), [[5, 0, None, 6]])\n    check('parent ordinal reset', solve([[5, [5], []], [6, [None], [7]]]), [[5, 0, 5, None], [6, 0, None, 7]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[5, [6], None]]), [[5, 0, 6, None]])\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":"ab3cc545af2286b495fa2c2a8663133b036773f517ba6fe8c35f92521a47d8c2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out=[]\n        for ident,left,right in d:\n            left=[] if left is None else left\n            right=[] if right is None else right\n            size=max(len(left),len(right))\n            if size==0: out.append([ident,None,None,None])\n            for i in range(size):\n                a=left[i] if i<len(left) else None\n                b=right[i] if i<len(right) else (right[0] if right else None)\n                out.append([ident,i,a,b])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('longer left', solve([[1, [2, 3], [4]]]), [[1, 0, 2, 4], [1, 1, 3, None]])\n    check('longer right', solve([[1, [2], [3, 4]]]), [[1, 0, 2, 3], [1, 1, None, 4]])\n    check('empty both', solve([[1, [], None]]), [[1, None, None, None]])\n    check('null left', solve([[1, None, [2]]]), [[1, 0, None, 2]])\n    check('parent ordinal reset', solve([[1, [1], []], [2, [None], [3]]]), [[1, 0, 1, None], [2, 0, None, 3]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[1, [2], None]]), [[1, 0, 2, None]])\nelif N == 2:\n    check('longer left', solve([[2, [3, 4], [5]]]), [[2, 0, 3, 5], [2, 1, 4, None]])\n    check('longer right', solve([[2, [3], [4, 5]]]), [[2, 0, 3, 4], [2, 1, None, 5]])\n    check('empty both', solve([[2, [], None]]), [[2, None, None, None]])\n    check('null left', solve([[2, None, [3]]]), [[2, 0, None, 3]])\n    check('parent ordinal reset', solve([[2, [2], []], [3, [None], [4]]]), [[2, 0, 2, None], [3, 0, None, 4]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[2, [3], None]]), [[2, 0, 3, None]])\nelif N == 3:\n    check('longer left', solve([[3, [4, 5], [6]]]), [[3, 0, 4, 6], [3, 1, 5, None]])\n    check('longer right', solve([[3, [4], [5, 6]]]), [[3, 0, 4, 5], [3, 1, None, 6]])\n    check('empty both', solve([[3, [], None]]), [[3, None, None, None]])\n    check('null left', solve([[3, None, [4]]]), [[3, 0, None, 4]])\n    check('parent ordinal reset', solve([[3, [3], []], [4, [None], [5]]]), [[3, 0, 3, None], [4, 0, None, 5]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[3, [4], None]]), [[3, 0, 4, None]])\nelif N == 4:\n    check('longer left', solve([[4, [5, 6], [7]]]), [[4, 0, 5, 7], [4, 1, 6, None]])\n    check('longer right', solve([[4, [5], [6, 7]]]), [[4, 0, 5, 6], [4, 1, None, 7]])\n    check('empty both', solve([[4, [], None]]), [[4, None, None, None]])\n    check('null left', solve([[4, None, [5]]]), [[4, 0, None, 5]])\n    check('parent ordinal reset', solve([[4, [4], []], [5, [None], [6]]]), [[4, 0, 4, None], [5, 0, None, 6]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[4, [5], None]]), [[4, 0, 5, None]])\nelif N == 5:\n    check('longer left', solve([[5, [6, 7], [8]]]), [[5, 0, 6, 8], [5, 1, 7, None]])\n    check('longer right', solve([[5, [6], [7, 8]]]), [[5, 0, 6, 7], [5, 1, None, 8]])\n    check('empty both', solve([[5, [], None]]), [[5, None, None, None]])\n    check('null left', solve([[5, None, [6]]]), [[5, 0, None, 6]])\n    check('parent ordinal reset', solve([[5, [5], []], [6, [None], [7]]]), [[5, 0, 5, None], [6, 0, None, 7]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[5, [6], None]]), [[5, 0, 6, None]])\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":"43c929ff7c3aefc2331910ce902bf7a10a94f21faa6ff8b70f441de35e7ea91d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out=[]\n        for ident,left,right in d:\n            left=[] if left is None else left\n            right=[] if right is None else right\n            size=max(len(left),len(right))\n            if size==0: out.append([ident,None,None,None])\n            for i in range(size):\n                a=left[i] if i<len(left) else None\n                b=right[i] if i<len(right) else None\n                out.append([ident,i,a,b])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('longer left', solve([[1, [2, 3], [4]]]), [[1, 0, 2, 4], [1, 1, 3, None]])\n    check('longer right', solve([[1, [2], [3, 4]]]), [[1, 0, 2, 3], [1, 1, None, 4]])\n    check('empty both', solve([[1, [], None]]), [[1, None, None, None]])\n    check('null left', solve([[1, None, [2]]]), [[1, 0, None, 2]])\n    check('parent ordinal reset', solve([[1, [1], []], [2, [None], [3]]]), [[1, 0, 1, None], [2, 0, None, 3]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[1, [2], None]]), [[1, 0, 2, None]])\nelif N == 2:\n    check('longer left', solve([[2, [3, 4], [5]]]), [[2, 0, 3, 5], [2, 1, 4, None]])\n    check('longer right', solve([[2, [3], [4, 5]]]), [[2, 0, 3, 4], [2, 1, None, 5]])\n    check('empty both', solve([[2, [], None]]), [[2, None, None, None]])\n    check('null left', solve([[2, None, [3]]]), [[2, 0, None, 3]])\n    check('parent ordinal reset', solve([[2, [2], []], [3, [None], [4]]]), [[2, 0, 2, None], [3, 0, None, 4]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[2, [3], None]]), [[2, 0, 3, None]])\nelif N == 3:\n    check('longer left', solve([[3, [4, 5], [6]]]), [[3, 0, 4, 6], [3, 1, 5, None]])\n    check('longer right', solve([[3, [4], [5, 6]]]), [[3, 0, 4, 5], [3, 1, None, 6]])\n    check('empty both', solve([[3, [], None]]), [[3, None, None, None]])\n    check('null left', solve([[3, None, [4]]]), [[3, 0, None, 4]])\n    check('parent ordinal reset', solve([[3, [3], []], [4, [None], [5]]]), [[3, 0, 3, None], [4, 0, None, 5]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[3, [4], None]]), [[3, 0, 4, None]])\nelif N == 4:\n    check('longer left', solve([[4, [5, 6], [7]]]), [[4, 0, 5, 7], [4, 1, 6, None]])\n    check('longer right', solve([[4, [5], [6, 7]]]), [[4, 0, 5, 6], [4, 1, None, 7]])\n    check('empty both', solve([[4, [], None]]), [[4, None, None, None]])\n    check('null left', solve([[4, None, [5]]]), [[4, 0, None, 5]])\n    check('parent ordinal reset', solve([[4, [4], []], [5, [None], [6]]]), [[4, 0, 4, None], [5, 0, None, 6]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[4, [5], None]]), [[4, 0, 5, None]])\nelif N == 5:\n    check('longer left', solve([[5, [6, 7], [8]]]), [[5, 0, 6, 8], [5, 1, 7, None]])\n    check('longer right', solve([[5, [6], [7, 8]]]), [[5, 0, 6, 7], [5, 1, None, 8]])\n    check('empty both', solve([[5, [], None]]), [[5, None, None, None]])\n    check('null left', solve([[5, None, [6]]]), [[5, 0, None, 6]])\n    check('parent ordinal reset', solve([[5, [5], []], [6, [None], [7]]]), [[5, 0, 5, None], [6, 0, None, 7]])\n    check('empty relation', solve([]), [])\n    check('null right', solve([[5, [6], None]]), [[5, 0, 6, None]])\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":"Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. 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-data-systems-zip-list-unnest-right-padding","generated_at":"2026-09-29T14:44:13.788645+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","repair":"Preserve the stated physical representation and operation order: Zip two optional lists within each parent row using longest-list semantics and zero-based ordinals. Missing positions become None; two empty or null lists yield one outer placeholder with ordinal None.","root_cause":"zip-list-unnest: Short right lists recycle their first element instead of null padding.","sha256":"c9aa8b4989e15aeab2adca7c83fb54f9e564e654379eb2d317d91cda1028d572","title":"Short right lists recycle their first element instead of null padding · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.318,"exit_code":1,"observations":[{"actual":[[1,0,2,4],[1,1,3,0]],"check":"longer left","expected":[[1,0,2,4],[1,1,3,null]],"passed":false},{"actual":[[1,0,2,3],[1,1,null,4]],"check":"longer right","expected":[[1,0,2,3],[1,1,null,4]],"passed":true},{"actual":[[1,null,null,null]],"check":"empty both","expected":[[1,null,null,null]],"passed":true},{"actual":[[1,0,null,2]],"check":"null left","expected":[[1,0,null,2]],"passed":true},{"actual":[[1,0,1,0],[2,0,null,3]],"check":"parent ordinal reset","expected":[[1,0,1,null],[2,0,null,3]],"passed":false},{"actual":[],"check":"empty relation","expected":[],"passed":true},{"actual":[[1,0,2,0]],"check":"null right","expected":[[1,0,2,null]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"longer left\", \"actual\": [[1, 0, 2, 4], [1, 1, 3, 0]], \"expected\": [[1, 0, 2, 4], [1, 1, 3, null]], \"passed\": false}, {\"check\": \"longer right\", \"actual\": [[1, 0, 2, 3], [1, 1, null, 4]], \"expected\": [[1, 0, 2, 3], [1, 1, null, 4]], \"passed\": true}, {\"check\": \"empty both\", \"actual\": [[1, null, null, null]], \"expected\": [[1, null, null, null]], \"passed\": true}, {\"check\": \"null left\", \"actual\": [[1, 0, null, 2]], \"expected\": [[1, 0, null, 2]], \"passed\": true}, {\"check\": \"parent ordinal reset\", \"actual\": [[1, 0, 1, 0], [2, 0, null, 3]], \"expected\": [[1, 0, 1, null], [2, 0, null, 3]], \"passed\": false}, {\"check\": \"empty relation\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"null right\", \"actual\": [[1, 0, 2, 0]], \"expected\": [[1, 0, 2, null]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.637,"exit_code":1,"observations":[{"actual":[[1,0,2,4],[1,1,3,4]],"check":"longer left","expected":[[1,0,2,4],[1,1,3,null]],"passed":false},{"actual":[[1,0,2,3],[1,1,null,4]],"check":"longer right","expected":[[1,0,2,3],[1,1,null,4]],"passed":true},{"actual":[[1,null,null,null]],"check":"empty both","expected":[[1,null,null,null]],"passed":true},{"actual":[[1,0,null,2]],"check":"null left","expected":[[1,0,null,2]],"passed":true},{"actual":[[1,0,1,null],[2,0,null,3]],"check":"parent ordinal reset","expected":[[1,0,1,null],[2,0,null,3]],"passed":true},{"actual":[],"check":"empty relation","expected":[],"passed":true},{"actual":[[1,0,2,null]],"check":"null right","expected":[[1,0,2,null]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"longer left\", \"actual\": [[1, 0, 2, 4], [1, 1, 3, 4]], \"expected\": [[1, 0, 2, 4], [1, 1, 3, null]], \"passed\": false}, {\"check\": \"longer right\", \"actual\": [[1, 0, 2, 3], [1, 1, null, 4]], \"expected\": [[1, 0, 2, 3], [1, 1, null, 4]], \"passed\": true}, {\"check\": \"empty both\", \"actual\": [[1, null, null, null]], \"expected\": [[1, null, null, null]], \"passed\": true}, {\"check\": \"null left\", \"actual\": [[1, 0, null, 2]], \"expected\": [[1, 0, null, 2]], \"passed\": true}, {\"check\": \"parent ordinal reset\", \"actual\": [[1, 0, 1, null], [2, 0, null, 3]], \"expected\": [[1, 0, 1, null], [2, 0, null, 3]], \"passed\": true}, {\"check\": \"empty relation\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"null right\", \"actual\": [[1, 0, 2, null]], \"expected\": [[1, 0, 2, null]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.419,"exit_code":0,"observations":[{"actual":[[1,0,2,4],[1,1,3,null]],"check":"longer left","expected":[[1,0,2,4],[1,1,3,null]],"passed":true},{"actual":[[1,0,2,3],[1,1,null,4]],"check":"longer right","expected":[[1,0,2,3],[1,1,null,4]],"passed":true},{"actual":[[1,null,null,null]],"check":"empty both","expected":[[1,null,null,null]],"passed":true},{"actual":[[1,0,null,2]],"check":"null left","expected":[[1,0,null,2]],"passed":true},{"actual":[[1,0,1,null],[2,0,null,3]],"check":"parent ordinal reset","expected":[[1,0,1,null],[2,0,null,3]],"passed":true},{"actual":[],"check":"empty relation","expected":[],"passed":true},{"actual":[[1,0,2,null]],"check":"null right","expected":[[1,0,2,null]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"longer left\", \"actual\": [[1, 0, 2, 4], [1, 1, 3, null]], \"expected\": [[1, 0, 2, 4], [1, 1, 3, null]], \"passed\": true}, {\"check\": \"longer right\", \"actual\": [[1, 0, 2, 3], [1, 1, null, 4]], \"expected\": [[1, 0, 2, 3], [1, 1, null, 4]], \"passed\": true}, {\"check\": \"empty both\", \"actual\": [[1, null, null, null]], \"expected\": [[1, null, null, null]], \"passed\": true}, {\"check\": \"null left\", \"actual\": [[1, 0, null, 2]], \"expected\": [[1, 0, null, 2]], \"passed\": true}, {\"check\": \"parent ordinal reset\", \"actual\": [[1, 0, 1, null], [2, 0, null, 3]], \"expected\": [[1, 0, 1, null], [2, 0, null, 3]], \"passed\": true}, {\"check\": \"empty relation\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"null right\", \"actual\": [[1, 0, 2, null]], \"expected\": [[1, 0, 2, null]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}