{"abstract":"Strand canonicalization compares a word with its reversal.","category":"Biological sequence representation","checks":6,"contract":"Return lexicographic minimum of an ACGT string and its reverse-complement using A:T,C:G. Empty maps to empty.","evaluation_group":"model-529013ccba684002","failed_approach":"Complementing without reversal compares the wrong orientation.","family":"z-bio_sequences-strand-canonical","id":"FA-12511","implementations":{"attempt":{"sha256":"65c42e6b0355cee130c972d20d06a9338f05814a346f4d7435c8892f8c9f748f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return min(s,s.translate(str.maketrans('ACGT','TGCA')))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable', solve('T'*N+'G'), 'C'+'A'*N)\ncheck('single', solve('T'), 'A')\ncheck('palindrome', solve('AT'), 'AT')\ncheck('empty', solve(''), '')\ncheck('complement reverse', solve('GT'), 'AC')\ncheck('already canonical', solve('AAC'), 'AAC')\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":"e6475a9a80e3b41f4012f211cc4aab9548921b7b932377c41efa9412d25fca1e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return min(s,s[::-1])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable', solve('T'*N+'G'), 'C'+'A'*N)\ncheck('single', solve('T'), 'A')\ncheck('palindrome', solve('AT'), 'AT')\ncheck('empty', solve(''), '')\ncheck('complement reverse', solve('GT'), 'AC')\ncheck('already canonical', solve('AAC'), 'AAC')\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":"a44ffa75c94d7db91686db85bf4a484beaa18247da625a4910244ab12010b392","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    return min(s,s[::-1].translate(str.maketrans('ACGT','TGCA')))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable', solve('T'*N+'G'), 'C'+'A'*N)\ncheck('single', solve('T'), 'A')\ncheck('palindrome', solve('AT'), 'AT')\ncheck('empty', solve(''), '')\ncheck('complement reverse', solve('GT'), 'AC')\ncheck('already canonical', solve('AAC'), 'AAC')\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-strand-canonical","generated_at":"2026-09-29T14:38:57.490957+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":"Reversal does not represent the specified complementary strand.","sha256":"438ff65f4e6d76352ac9747627804130aa2636a7632e35c2354c364c3c6f19d4","title":"Strand canonicalization compares a word with its reversal · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.955,"exit_code":1,"observations":[{"actual":"AC","check":"variable","expected":"CA","passed":false},{"actual":"A","check":"single","expected":"A","passed":true},{"actual":"AT","check":"palindrome","expected":"AT","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":"CA","check":"complement reverse","expected":"AC","passed":false},{"actual":"AAC","check":"already canonical","expected":"AAC","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable\", \"actual\": \"AC\", \"expected\": \"CA\", \"passed\": false}, {\"check\": \"single\", \"actual\": \"A\", \"expected\": \"A\", \"passed\": true}, {\"check\": \"palindrome\", \"actual\": \"AT\", \"expected\": \"AT\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"complement reverse\", \"actual\": \"CA\", \"expected\": \"AC\", \"passed\": false}, {\"check\": \"already canonical\", \"actual\": \"AAC\", \"expected\": \"AAC\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.654,"exit_code":1,"observations":[{"actual":"GT","check":"variable","expected":"CA","passed":false},{"actual":"T","check":"single","expected":"A","passed":false},{"actual":"AT","check":"palindrome","expected":"AT","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":"GT","check":"complement reverse","expected":"AC","passed":false},{"actual":"AAC","check":"already canonical","expected":"AAC","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable\", \"actual\": \"GT\", \"expected\": \"CA\", \"passed\": false}, {\"check\": \"single\", \"actual\": \"T\", \"expected\": \"A\", \"passed\": false}, {\"check\": \"palindrome\", \"actual\": \"AT\", \"expected\": \"AT\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"complement reverse\", \"actual\": \"GT\", \"expected\": \"AC\", \"passed\": false}, {\"check\": \"already canonical\", \"actual\": \"AAC\", \"expected\": \"AAC\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.224,"exit_code":0,"observations":[{"actual":"CA","check":"variable","expected":"CA","passed":true},{"actual":"A","check":"single","expected":"A","passed":true},{"actual":"AT","check":"palindrome","expected":"AT","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":"AC","check":"complement reverse","expected":"AC","passed":true},{"actual":"AAC","check":"already canonical","expected":"AAC","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable\", \"actual\": \"CA\", \"expected\": \"CA\", \"passed\": true}, {\"check\": \"single\", \"actual\": \"A\", \"expected\": \"A\", \"passed\": true}, {\"check\": \"palindrome\", \"actual\": \"AT\", \"expected\": \"AT\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"complement reverse\", \"actual\": \"AC\", \"expected\": \"AC\", \"passed\": true}, {\"check\": \"already canonical\", \"actual\": \"AAC\", \"expected\": \"AAC\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}