{"abstract":"DNA and RNA normalization silently changes molecule type.","category":"Biological sequence representation","checks":6,"contract":"Return uppercase input if every symbol belongs to ACGTN for type DNA or ACGUN for type RNA; otherwise None. Type is DNA or RNA. No cross-type conversion.","evaluation_group":"model-67aa8b6ea8b64735","failed_approach":"Uppercasing without validating allows mixed alphabets.","family":"z-bio_sequences-typed-alphabet","id":"FA-12531","implementations":{"attempt":{"sha256":"4938b782963449f83160f2267f200179b646a5e7dff8770f47311974739fc98c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s,kind):\n    return s.upper()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable mixed DNA', solve('a'*N+'u','DNA'), None)\ncheck('RNA U', solve('acu','RNA'), 'ACU')\ncheck('RNA T rejected', solve('ACT','RNA'), None)\ncheck('DNA valid', solve('actn','DNA'), 'ACTN')\ncheck('empty', solve('','DNA'), '')\ncheck('invalid', solve('AX','RNA'), 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":"11644dc5fc20d675bf193ddb3c3c537293e60ec1cb293f1526e2afb6f66a7efc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s,kind):\n    return s.upper().replace('U','T')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable mixed DNA', solve('a'*N+'u','DNA'), None)\ncheck('RNA U', solve('acu','RNA'), 'ACU')\ncheck('RNA T rejected', solve('ACT','RNA'), None)\ncheck('DNA valid', solve('actn','DNA'), 'ACTN')\ncheck('empty', solve('','DNA'), '')\ncheck('invalid', solve('AX','RNA'), 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":"3c4ab799dfd09f6476734d403bbacfd4ed4d8186024dca744655fa877be7d0e2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s,kind):\n    s=s.upper()\n    allowed='ACGTN' if kind=='DNA' else 'ACGUN'\n    return s if all(c in allowed for c in s) else None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('variable mixed DNA', solve('a'*N+'u','DNA'), None)\ncheck('RNA U', solve('acu','RNA'), 'ACU')\ncheck('RNA T rejected', solve('ACT','RNA'), None)\ncheck('DNA valid', solve('actn','DNA'), 'ACTN')\ncheck('empty', solve('','DNA'), '')\ncheck('invalid', solve('AX','RNA'), 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":"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-typed-alphabet","generated_at":"2026-09-29T14:38:57.752152+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":"Unconditional U-to-T substitution accepts RNA symbols in DNA input.","sha256":"dc2c74846ff719ca9613cd95a658e0cf8cab3848798cc239e8bf2548f2052f95","title":"DNA and RNA normalization silently changes molecule type · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.33,"exit_code":1,"observations":[{"actual":"AU","check":"variable mixed DNA","expected":null,"passed":false},{"actual":"ACU","check":"RNA U","expected":"ACU","passed":true},{"actual":"ACT","check":"RNA T rejected","expected":null,"passed":false},{"actual":"ACTN","check":"DNA valid","expected":"ACTN","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":"AX","check":"invalid","expected":null,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable mixed DNA\", \"actual\": \"AU\", \"expected\": null, \"passed\": false}, {\"check\": \"RNA U\", \"actual\": \"ACU\", \"expected\": \"ACU\", \"passed\": true}, {\"check\": \"RNA T rejected\", \"actual\": \"ACT\", \"expected\": null, \"passed\": false}, {\"check\": \"DNA valid\", \"actual\": \"ACTN\", \"expected\": \"ACTN\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"invalid\", \"actual\": \"AX\", \"expected\": null, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.545,"exit_code":1,"observations":[{"actual":"AT","check":"variable mixed DNA","expected":null,"passed":false},{"actual":"ACT","check":"RNA U","expected":"ACU","passed":false},{"actual":"ACT","check":"RNA T rejected","expected":null,"passed":false},{"actual":"ACTN","check":"DNA valid","expected":"ACTN","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":"AX","check":"invalid","expected":null,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable mixed DNA\", \"actual\": \"AT\", \"expected\": null, \"passed\": false}, {\"check\": \"RNA U\", \"actual\": \"ACT\", \"expected\": \"ACU\", \"passed\": false}, {\"check\": \"RNA T rejected\", \"actual\": \"ACT\", \"expected\": null, \"passed\": false}, {\"check\": \"DNA valid\", \"actual\": \"ACTN\", \"expected\": \"ACTN\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"invalid\", \"actual\": \"AX\", \"expected\": null, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.852,"exit_code":0,"observations":[{"actual":null,"check":"variable mixed DNA","expected":null,"passed":true},{"actual":"ACU","check":"RNA U","expected":"ACU","passed":true},{"actual":null,"check":"RNA T rejected","expected":null,"passed":true},{"actual":"ACTN","check":"DNA valid","expected":"ACTN","passed":true},{"actual":"","check":"empty","expected":"","passed":true},{"actual":null,"check":"invalid","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variable mixed DNA\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"RNA U\", \"actual\": \"ACU\", \"expected\": \"ACU\", \"passed\": true}, {\"check\": \"RNA T rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"DNA valid\", \"actual\": \"ACTN\", \"expected\": \"ACTN\", \"passed\": true}, {\"check\": \"empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"invalid\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}