{"abstract":"An unsupported unit silently converts to 0.","category":"Medication dosing calculations","checks":8,"contract":"Input {kind, value, mw?, valence?}. kind \"pct\": w/v percent to mg/mL (x10). kind \"ratio\": \"a:b\" ratio strength (a g in b mL) to mg/mL = a*1000/b, whitespace around parts allowed. kind \"meq_to_mg\": mg = mEq*mw/|valence|. kind \"mmol_to_meq\": mEq = mmol*|valence|. Any other kind returns {error: UNKNOWN_KIND}. Otherwise {result} rounded to 4 decimals.","contract_signature":"x","evaluation_group":"w2-meddose-strength-conversion","failed_approach":"Adding a zero result next to the error still exposes a usable-looking number.","family":"w2-meddose-strength-conversion-unknown-kind-handling","id":"FA-64221","implementations":{"attempt":{"sha256":"ebe8de5bb06bbc21aac424f8967defd34278443d9f16ba6ecae06710185efe36","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    k, v = x['kind'], x['value']\n    if k == 'pct':\n        r = Fraction(str(v)) * 10\n    elif k == 'ratio':\n        a, b = [Fraction(p.strip()) for p in v.split(':')]\n        r = a * 1000 / b\n    elif k == 'meq_to_mg':\n        r = Fraction(str(v)) * Fraction(str(x['mw'])) / abs(x['valence'])\n    elif k == 'mmol_to_meq':\n        r = Fraction(str(v)) * abs(x['valence'])\n    else:\n        return {'error': 'UNKNOWN_KIND', 'result': 0.0}\n    return {'result': round(float(r), 4)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('percent solution', {'kind': 'pct', 'value': '0.9'}, {'result': 9.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:10000'}, {'result': 0.1}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '2 : 1000'}, {'result': 2.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 10, 'mw': '40.08', 'valence': 2},\n   {'result': 200.4}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -1}, {'result': 709.0}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 5, 'valence': -2}, {'result': 10.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 8, 'valence': 1}, {'result': 8.0}),\n  ('unknown conversion kind', {'kind': 'mcg', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '5'}, {'result': 50.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:20000'}, {'result': 0.05}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '3 : 1000'}, {'result': 3.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 20, 'mw': '40.08', 'valence': 2},\n   {'result': 400.8}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -2}, {'result': 354.5}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 10, 'valence': -2}, {'result': 20.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 9, 'valence': 1}, {'result': 9.0}),\n  ('unknown conversion kind', {'kind': 'iu', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '2'}, {'result': 20.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:30000'}, {'result': 0.0333}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '4 : 1000'}, {'result': 4.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 30, 'mw': '40.08', 'valence': 2},\n   {'result': 601.2}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -3}, {'result': 236.3333}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 15, 'valence': -2}, {'result': 30.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 10, 'valence': 1}, {'result': 10.0}),\n  ('unknown conversion kind', {'kind': 'pct ', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '0.45'}, {'result': 4.5}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:40000'}, {'result': 0.025}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '5 : 1000'}, {'result': 5.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 40, 'mw': '40.08', 'valence': 2},\n   {'result': 801.6}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -4}, {'result': 177.25}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 20, 'valence': -2}, {'result': 40.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 11, 'valence': 1}, {'result': 11.0}),\n  ('unknown conversion kind', {'kind': 'Ratio', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '10'}, {'result': 100.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:50000'}, {'result': 0.02}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '6 : 1000'}, {'result': 6.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 50, 'mw': '40.08', 'valence': 2},\n   {'result': 1002.0}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -5}, {'result': 141.8}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 25, 'valence': -2}, {'result': 50.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 12, 'valence': 1}, {'result': 12.0}),\n  ('unknown conversion kind', {'kind': '', 'value': 1}, {'error': 'UNKNOWN_KIND'})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"e3e6eb1aa0dbdc980642f1f215c3656729d967761da0e47e46d65a5030a2e62f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    k, v = x['kind'], x['value']\n    if k == 'pct':\n        r = Fraction(str(v)) * 10\n    elif k == 'ratio':\n        a, b = [Fraction(p.strip()) for p in v.split(':')]\n        r = a * 1000 / b\n    elif k == 'meq_to_mg':\n        r = Fraction(str(v)) * Fraction(str(x['mw'])) / abs(x['valence'])\n    elif k == 'mmol_to_meq':\n        r = Fraction(str(v)) * abs(x['valence'])\n    else:\n        return {'result': 0.0}\n    return {'result': round(float(r), 4)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('percent solution', {'kind': 'pct', 'value': '0.9'}, {'result': 9.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:10000'}, {'result': 0.1}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '2 : 1000'}, {'result': 2.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 10, 'mw': '40.08', 'valence': 2},\n   {'result': 200.4}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -1}, {'result': 709.0}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 5, 'valence': -2}, {'result': 10.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 8, 'valence': 1}, {'result': 8.0}),\n  ('unknown conversion kind', {'kind': 'mcg', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '5'}, {'result': 50.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:20000'}, {'result': 0.05}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '3 : 1000'}, {'result': 3.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 20, 'mw': '40.08', 'valence': 2},\n   {'result': 400.8}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -2}, {'result': 354.5}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 10, 'valence': -2}, {'result': 20.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 9, 'valence': 1}, {'result': 9.0}),\n  ('unknown conversion kind', {'kind': 'iu', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '2'}, {'result': 20.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:30000'}, {'result': 0.0333}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '4 : 1000'}, {'result': 4.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 30, 'mw': '40.08', 'valence': 2},\n   {'result': 601.2}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -3}, {'result': 236.3333}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 15, 'valence': -2}, {'result': 30.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 10, 'valence': 1}, {'result': 10.0}),\n  ('unknown conversion kind', {'kind': 'pct ', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '0.45'}, {'result': 4.5}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:40000'}, {'result': 0.025}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '5 : 1000'}, {'result': 5.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 40, 'mw': '40.08', 'valence': 2},\n   {'result': 801.6}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -4}, {'result': 177.25}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 20, 'valence': -2}, {'result': 40.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 11, 'valence': 1}, {'result': 11.0}),\n  ('unknown conversion kind', {'kind': 'Ratio', 'value': 1}, {'error': 'UNKNOWN_KIND'})],\n [('percent solution', {'kind': 'pct', 'value': '10'}, {'result': 100.0}),\n  ('one in ten thousand', {'kind': 'ratio', 'value': '1:50000'}, {'result': 0.02}),\n  ('ratio with numerator above one', {'kind': 'ratio', 'value': '6 : 1000'}, {'result': 6.0}),\n  ('divalent cation mEq to mg',\n   {'kind': 'meq_to_mg', 'value': 50, 'mw': '40.08', 'valence': 2},\n   {'result': 1002.0}),\n  ('anion mEq to mg', {'kind': 'meq_to_mg', 'value': 20, 'mw': '35.45', 'valence': -5}, {'result': 141.8}),\n  ('mmol of anion to mEq', {'kind': 'mmol_to_meq', 'value': 25, 'valence': -2}, {'result': 50.0}),\n  ('mmol of monovalent cation', {'kind': 'mmol_to_meq', 'value': 12, 'valence': 1}, {'result': 12.0}),\n  ('unknown conversion kind', {'kind': '', 'value': 1}, {'error': 'UNKNOWN_KIND'})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"A deterministic toy software model with explicitly stipulated thresholds and formulas; it is not clinical guidance, not a validated medical calculator, and makes no claim of conformance to any published protocol. Numbered variants vary patient and order inputs. 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":"w2-meddose-strength-conversion-unknown-kind-handling","generated_at":"2026-09-29T14:47:22.417221+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Strength labels mix percent, ratio and equivalent units; each conversion has its own orientation and sign rule.","root_cause":"Unrecognised kinds fall through to a numeric zero instead of an explicit error.","sha256":"5cf0681d040b140ca26ad9ad34d3690e5f9823a83a01816d1bd0a12675581f76","title":"Concentration and electrolyte unit conversions: unknown kind handling · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":47.816,"exit_code":1,"observations":[{"actual":{"result":9.0},"check":"percent solution","expected":{"result":9.0},"passed":true},{"actual":{"result":0.1},"check":"one in ten thousand","expected":{"result":0.1},"passed":true},{"actual":{"result":2.0},"check":"ratio with numerator above one","expected":{"result":2.0},"passed":true},{"actual":{"result":200.4},"check":"divalent cation mEq to mg","expected":{"result":200.4},"passed":true},{"actual":{"result":709.0},"check":"anion mEq to mg","expected":{"result":709.0},"passed":true},{"actual":{"result":10.0},"check":"mmol of anion to mEq","expected":{"result":10.0},"passed":true},{"actual":{"result":8.0},"check":"mmol of monovalent cation","expected":{"result":8.0},"passed":true},{"actual":{"error":"UNKNOWN_KIND","result":0.0},"check":"unknown conversion kind","expected":{"error":"UNKNOWN_KIND"},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"percent solution\", \"actual\": {\"result\": 9.0}, \"expected\": {\"result\": 9.0}, \"passed\": true}, {\"check\": \"one in ten thousand\", \"actual\": {\"result\": 0.1}, \"expected\": {\"result\": 0.1}, \"passed\": true}, {\"check\": \"ratio with numerator above one\", \"actual\": {\"result\": 2.0}, \"expected\": {\"result\": 2.0}, \"passed\": true}, {\"check\": \"divalent cation mEq to mg\", \"actual\": {\"result\": 200.4}, \"expected\": {\"result\": 200.4}, \"passed\": true}, {\"check\": \"anion mEq to mg\", \"actual\": {\"result\": 709.0}, \"expected\": {\"result\": 709.0}, \"passed\": true}, {\"check\": \"mmol of anion to mEq\", \"actual\": {\"result\": 10.0}, \"expected\": {\"result\": 10.0}, \"passed\": true}, {\"check\": \"mmol of monovalent cation\", \"actual\": {\"result\": 8.0}, \"expected\": {\"result\": 8.0}, \"passed\": true}, {\"check\": \"unknown conversion kind\", \"actual\": {\"error\": \"UNKNOWN_KIND\", \"result\": 0.0}, \"expected\": {\"error\": \"UNKNOWN_KIND\"}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.846,"exit_code":1,"observations":[{"actual":{"result":9.0},"check":"percent solution","expected":{"result":9.0},"passed":true},{"actual":{"result":0.1},"check":"one in ten thousand","expected":{"result":0.1},"passed":true},{"actual":{"result":2.0},"check":"ratio with numerator above one","expected":{"result":2.0},"passed":true},{"actual":{"result":200.4},"check":"divalent cation mEq to mg","expected":{"result":200.4},"passed":true},{"actual":{"result":709.0},"check":"anion mEq to mg","expected":{"result":709.0},"passed":true},{"actual":{"result":10.0},"check":"mmol of anion to mEq","expected":{"result":10.0},"passed":true},{"actual":{"result":8.0},"check":"mmol of monovalent cation","expected":{"result":8.0},"passed":true},{"actual":{"result":0.0},"check":"unknown conversion kind","expected":{"error":"UNKNOWN_KIND"},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"percent solution\", \"actual\": {\"result\": 9.0}, \"expected\": {\"result\": 9.0}, \"passed\": true}, {\"check\": \"one in ten thousand\", \"actual\": {\"result\": 0.1}, \"expected\": {\"result\": 0.1}, \"passed\": true}, {\"check\": \"ratio with numerator above one\", \"actual\": {\"result\": 2.0}, \"expected\": {\"result\": 2.0}, \"passed\": true}, {\"check\": \"divalent cation mEq to mg\", \"actual\": {\"result\": 200.4}, \"expected\": {\"result\": 200.4}, \"passed\": true}, {\"check\": \"anion mEq to mg\", \"actual\": {\"result\": 709.0}, \"expected\": {\"result\": 709.0}, \"passed\": true}, {\"check\": \"mmol of anion to mEq\", \"actual\": {\"result\": 10.0}, \"expected\": {\"result\": 10.0}, \"passed\": true}, {\"check\": \"mmol of monovalent cation\", \"actual\": {\"result\": 8.0}, \"expected\": {\"result\": 8.0}, \"passed\": true}, {\"check\": \"unknown conversion kind\", \"actual\": {\"result\": 0.0}, \"expected\": {\"error\": \"UNKNOWN_KIND\"}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}