{"abstract":"Removing alignment gaps independently pairs different columns.","category":"Biological sequence representation","checks":6,"contract":"For equal-length aligned ACGT- strings, return [matches,compared] considering only columns where neither symbol is a gap.","evaluation_group":"model-6a193b3cb293c733","failed_approach":"Dropping only double gaps still counts single-gap columns as comparisons.","family":"z-bio_sequences-gap-column-pairing","id":"FA-12516","implementations":{"attempt":{"sha256":"9a9b33db883a7e6ac80510a2491614473d06753a43babeaf37af99aff4875682","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a,b):\n    p=[(x,y) for x,y in zip(a,b) if x!='-' or y!='-']\n    return [sum(x==y for x,y in p),len(p)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable displaced', solve('A-'*N,'-A'*N), [0,0])\ncheck('match', solve('AC','AC'), [2,2])\ncheck('mismatch', solve('AC','AG'), [1,2])\ncheck('all gaps', solve('--','--'), [0,0])\ncheck('empty', solve('',''), [0,0])\ncheck('mixed', solve('A-CG','AT-G'), [2,2])\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":"1343ea231ce734dc828fedbea8d1bcea006ca3696f4c78910e9d5874bbb615ac","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a,b):\n    a=a.replace('-',''); b=b.replace('-','')\n    p=list(zip(a,b))\n    return [sum(x==y for x,y in p),len(p)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable displaced', solve('A-'*N,'-A'*N), [0,0])\ncheck('match', solve('AC','AC'), [2,2])\ncheck('mismatch', solve('AC','AG'), [1,2])\ncheck('all gaps', solve('--','--'), [0,0])\ncheck('empty', solve('',''), [0,0])\ncheck('mixed', solve('A-CG','AT-G'), [2,2])\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":"1140810629fb0fb475295522d10334ba507cc49b9f18841d389458126d11bcd9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(a,b):\n    p=[(x,y) for x,y in zip(a,b) if x!='-' and y!='-']\n    return [sum(x==y for x,y in p),len(p)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable displaced', solve('A-'*N,'-A'*N), [0,0])\ncheck('match', solve('AC','AC'), [2,2])\ncheck('mismatch', solve('AC','AG'), [1,2])\ncheck('all gaps', solve('--','--'), [0,0])\ncheck('empty', solve('',''), [0,0])\ncheck('mixed', solve('A-CG','AT-G'), [2,2])\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":"Synthetic strings and explicit policies only; no biological interpretation or laboratory workflow. 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":"z-bio_sequences-gap-column-pairing","generated_at":"2026-09-29T14:38:57.502493+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline abstract sequence-data model; useful for testing representation invariants without biological inference.","repair":"Implement the stated sequence contract while preserving its positional and symbol semantics.","root_cause":"Independent gap stripping shifts aligned positions.","sha256":"6da6ba0c80a00f7192456870a84e351e365a991099faca09a4d2c303fad8a85a","title":"Removing alignment gaps independently pairs different columns · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.04,"exit_code":1,"observations":[{"actual":[0,2],"check":"variable displaced","expected":[0,0],"passed":false},{"actual":[2,2],"check":"match","expected":[2,2],"passed":true},{"actual":[1,2],"check":"mismatch","expected":[1,2],"passed":true},{"actual":[0,0],"check":"all gaps","expected":[0,0],"passed":true},{"actual":[0,0],"check":"empty","expected":[0,0],"passed":true},{"actual":[2,4],"check":"mixed","expected":[2,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable displaced\", \"actual\": [0, 2], \"expected\": [0, 0], \"passed\": false}, {\"check\": \"match\", \"actual\": [2, 2], \"expected\": [2, 2], \"passed\": true}, {\"check\": \"mismatch\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"all gaps\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"empty\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"mixed\", \"actual\": [2, 4], \"expected\": [2, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.553,"exit_code":1,"observations":[{"actual":[1,1],"check":"variable displaced","expected":[0,0],"passed":false},{"actual":[2,2],"check":"match","expected":[2,2],"passed":true},{"actual":[1,2],"check":"mismatch","expected":[1,2],"passed":true},{"actual":[0,0],"check":"all gaps","expected":[0,0],"passed":true},{"actual":[0,0],"check":"empty","expected":[0,0],"passed":true},{"actual":[2,3],"check":"mixed","expected":[2,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable displaced\", \"actual\": [1, 1], \"expected\": [0, 0], \"passed\": false}, {\"check\": \"match\", \"actual\": [2, 2], \"expected\": [2, 2], \"passed\": true}, {\"check\": \"mismatch\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"all gaps\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"empty\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"mixed\", \"actual\": [2, 3], \"expected\": [2, 2], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.105,"exit_code":0,"observations":[{"actual":[0,0],"check":"variable displaced","expected":[0,0],"passed":true},{"actual":[2,2],"check":"match","expected":[2,2],"passed":true},{"actual":[1,2],"check":"mismatch","expected":[1,2],"passed":true},{"actual":[0,0],"check":"all gaps","expected":[0,0],"passed":true},{"actual":[0,0],"check":"empty","expected":[0,0],"passed":true},{"actual":[2,2],"check":"mixed","expected":[2,2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable displaced\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"match\", \"actual\": [2, 2], \"expected\": [2, 2], \"passed\": true}, {\"check\": \"mismatch\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"all gaps\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"empty\", \"actual\": [0, 0], \"expected\": [0, 0], \"passed\": true}, {\"check\": \"mixed\", \"actual\": [2, 2], \"expected\": [2, 2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}