{"abstract":"An unspecified query charge becomes a neutral-only constraint.","category":"Molecular graph representation","checks":6,"contract":"Query has element string or * wildcard and charge integer or None wildcard. Match target element and charge conjunctively, with only None disabling charge constraint.","evaluation_group":"model-0907d680b6097c65","failed_approach":"Using truthiness makes an explicit neutral charge behave as a wildcard.","family":"z-chemical_graphs-query-charge-wildcard","id":"FA-12486","implementations":{"attempt":{"sha256":"4185754e7393e97cd754ee9e6aebe83a2267852137692993091394d6a8a20498","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(element, charge, query_element, query_charge):\n    return (query_element == \"*\" or element == query_element) and (not query_charge or charge == query_charge)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wildcard charge', solve('N',N,'N',None), True)\ncheck('explicit neutral rejects ion', solve('N',N,'N',0), False)\ncheck('neutral matches', solve('N',0,'N',0), True)\ncheck('element mismatch', solve('O',0,'N',None), False)\ncheck('wildcard element exact charge', solve('O',-N,'*',-N), True)\ncheck('wrong signed charge', solve('O',N,'*',-N), False)\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":"46cf09f619399c50f4000139744c70184291bd59b32c143e5217bf594412656f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(element, charge, query_element, query_charge):\n    return (query_element == \"*\" or element == query_element) and charge == (query_charge or 0)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wildcard charge', solve('N',N,'N',None), True)\ncheck('explicit neutral rejects ion', solve('N',N,'N',0), False)\ncheck('neutral matches', solve('N',0,'N',0), True)\ncheck('element mismatch', solve('O',0,'N',None), False)\ncheck('wildcard element exact charge', solve('O',-N,'*',-N), True)\ncheck('wrong signed charge', solve('O',N,'*',-N), False)\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":"f044a9535b0b536fb5ee5a9773aeb1cb97f3264c3c941328f117498030857cbe","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(element, charge, query_element, query_charge):\n    return (query_element == \"*\" or element == query_element) and (query_charge is None or charge == query_charge)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('wildcard charge', solve('N',N,'N',None), True)\ncheck('explicit neutral rejects ion', solve('N',N,'N',0), False)\ncheck('neutral matches', solve('N',0,'N',0), True)\ncheck('element mismatch', solve('O',0,'N',None), False)\ncheck('wildcard element exact charge', solve('O',-N,'*',-N), True)\ncheck('wrong signed charge', solve('O',N,'*',-N), False)\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":"Toy representation only; no valence inference, chemical sanitization, synthesis, or real molecular identity determination. 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-chemical_graphs-query-charge-wildcard","generated_at":"2026-09-29T14:38:57.434750+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled molecular graph interchange model; tests isolate atom or bond representation errors without claiming chemical validity or production toolkit equivalence.","repair":"Implement the explicit toy representation contract: Query has element string or * wildcard and charge integer or None wildcard. Match target element and charge conjunctively, with only None disabling charge constraint.","root_cause":"Missing query charge is defaulted to zero.","sha256":"79131f4a619fe65e492e049fd47f49d5d8529247bbaf2210616a26bd90ae42bb","title":"An unspecified query charge becomes a neutral-only constraint · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.985,"exit_code":1,"observations":[{"actual":true,"check":"wildcard charge","expected":true,"passed":true},{"actual":true,"check":"explicit neutral rejects ion","expected":false,"passed":false},{"actual":true,"check":"neutral matches","expected":true,"passed":true},{"actual":false,"check":"element mismatch","expected":false,"passed":true},{"actual":true,"check":"wildcard element exact charge","expected":true,"passed":true},{"actual":false,"check":"wrong signed charge","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wildcard charge\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"explicit neutral rejects ion\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"neutral matches\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"element mismatch\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"wildcard element exact charge\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"wrong signed charge\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.67,"exit_code":1,"observations":[{"actual":false,"check":"wildcard charge","expected":true,"passed":false},{"actual":false,"check":"explicit neutral rejects ion","expected":false,"passed":true},{"actual":true,"check":"neutral matches","expected":true,"passed":true},{"actual":false,"check":"element mismatch","expected":false,"passed":true},{"actual":true,"check":"wildcard element exact charge","expected":true,"passed":true},{"actual":false,"check":"wrong signed charge","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wildcard charge\", \"actual\": false, \"expected\": true, \"passed\": false}, {\"check\": \"explicit neutral rejects ion\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"neutral matches\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"element mismatch\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"wildcard element exact charge\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"wrong signed charge\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.499,"exit_code":0,"observations":[{"actual":true,"check":"wildcard charge","expected":true,"passed":true},{"actual":false,"check":"explicit neutral rejects ion","expected":false,"passed":true},{"actual":true,"check":"neutral matches","expected":true,"passed":true},{"actual":false,"check":"element mismatch","expected":false,"passed":true},{"actual":true,"check":"wildcard element exact charge","expected":true,"passed":true},{"actual":false,"check":"wrong signed charge","expected":false,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"wildcard charge\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"explicit neutral rejects ion\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"neutral matches\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"element mismatch\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"wildcard element exact charge\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"wrong signed charge\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}