{"abstract":"A range sum includes numeric-looking labels and logical cells.","category":"Spreadsheet calculation semantics","checks":7,"contract":"A range contains finite ints, floats, strings, booleans or None. Return SUM of numeric cells only; strings, booleans and blanks are ignored.","contract_signature":"cells","evaluation_group":"model-e7c0c9ae44a59840","failed_approach":"Using isinstance for numbers still admits booleans in Python.","family":"z-spreadsheets-range-sum-types","id":"FA-11346","implementations":{"attempt":{"sha256":"c1c4d3a63d5a461684204cefb57dbe9e35f06ebdbc43c3aa0b48fb1e8944fd6b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cells):\n    return sum(cell for cell in cells if isinstance(cell, (int, float)))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('numeric text ignored', solve([N, str(N)]), N)\ncheck('logical true ignored', solve([N, True]), N)\ncheck('blank range', solve([None, '']), 0)\ncheck('zero retained', solve([0, N]), N)\ncheck('negative cells', solve([-N, N/2]), -N/2)\ncheck('empty range', solve([]), 0)\ncheck('labels ignored', solve(['item', False, N]), N)\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":"05a13a1ab58bf46e99dcbe310fea1cc1cbe5d7106ac921681e92cfa996019276","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cells):\n    total = 0\n    for cell in cells:\n        try:\n            total += float(cell) if cell is not None else 0\n        except ValueError:\n            pass\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('numeric text ignored', solve([N, str(N)]), N)\ncheck('logical true ignored', solve([N, True]), N)\ncheck('blank range', solve([None, '']), 0)\ncheck('zero retained', solve([0, N]), N)\ncheck('negative cells', solve([-N, N/2]), -N/2)\ncheck('empty range', solve([]), 0)\ncheck('labels ignored', solve(['item', False, N]), N)\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":" 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-spreadsheets-range-sum-types","generated_at":"2026-09-29T14:38:47.154695+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This isolated spreadsheet model makes cell semantics explicit; it does not claim compatibility with every workbook engine.","root_cause":"Scalar coercion rules are reused for range members.","sha256":"4bc89a35299115a0c168f43cff24895eaa6d93cd7c1f206881b7d0a30e73bbe9","title":"Range SUM coerces text and logical cells into numbers · 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":37.666,"exit_code":1,"observations":[{"actual":1,"check":"numeric text ignored","expected":1,"passed":true},{"actual":2,"check":"logical true ignored","expected":1,"passed":false},{"actual":0,"check":"blank range","expected":0,"passed":true},{"actual":1,"check":"zero retained","expected":1,"passed":true},{"actual":-0.5,"check":"negative cells","expected":-0.5,"passed":true},{"actual":0,"check":"empty range","expected":0,"passed":true},{"actual":1,"check":"labels ignored","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"numeric text ignored\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"logical true ignored\", \"actual\": 2, \"expected\": 1, \"passed\": false}, {\"check\": \"blank range\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"zero retained\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"negative cells\", \"actual\": -0.5, \"expected\": -0.5, \"passed\": true}, {\"check\": \"empty range\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"labels ignored\", \"actual\": 1, \"expected\": 1, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.858,"exit_code":1,"observations":[{"actual":2.0,"check":"numeric text ignored","expected":1,"passed":false},{"actual":2.0,"check":"logical true ignored","expected":1,"passed":false},{"actual":0,"check":"blank range","expected":0,"passed":true},{"actual":1.0,"check":"zero retained","expected":1,"passed":true},{"actual":-0.5,"check":"negative cells","expected":-0.5,"passed":true},{"actual":0,"check":"empty range","expected":0,"passed":true},{"actual":1.0,"check":"labels ignored","expected":1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"numeric text ignored\", \"actual\": 2.0, \"expected\": 1, \"passed\": false}, {\"check\": \"logical true ignored\", \"actual\": 2.0, \"expected\": 1, \"passed\": false}, {\"check\": \"blank range\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"zero retained\", \"actual\": 1.0, \"expected\": 1, \"passed\": true}, {\"check\": \"negative cells\", \"actual\": -0.5, \"expected\": -0.5, \"passed\": true}, {\"check\": \"empty range\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"labels ignored\", \"actual\": 1.0, \"expected\": 1, \"passed\": true}], \"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."}}