{"abstract":"Outs exposed in other players' hands are counted as live.","category":"Poker hand evaluation","checks":8,"contract":"Input: {\"cards\": known hole and board cards (4 to 6, no straight yet), \"dead\": other seen cards}. Return how many unseen cards would give the player a five-card straight (ace plays high or low): for every rank that completes a straight, count its four cards minus those already seen in cards or dead.","evaluation_group":"w2-poker_hand_evaluation-straight-draw-outs","failed_approach":"Subtracting a single card when the rank has been seen at all undercounts when two or more copies are dead.","family":"w2-poker_hand_evaluation-straight-draw-outs-seen-card-subtraction","id":"FA-82281","implementations":{"attempt":{"sha256":"1856ca18bf55cfd8f8e74348ce84c40f21770d35591f2eca36d966c9c346190d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    R='23456789TJQKA'\n    known=x['cards']+x.get('dead',[])\n    ranks={R.index(c[0])+2 for c in x['cards']}\n    def has(rs):\n        rs=set(rs)\n        if 14 in rs: rs.add(1)\n        return any(all(t-i in rs for i in range(5)) for t in range(5,15))\n    if has(ranks): return 0\n    outs=0\n    for r in range(2,15):\n        if has(ranks|{r}):\n            outs+=4-(1 if any(R.index(c[0])+2==r for c in known) else 0)\n    return outs\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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":"e66734082d7bcf38352d86c84d3e8c03ae0f69b7b5214c43bb8971fe25786897","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    R='23456789TJQKA'\n    known=x['cards']+x.get('dead',[])\n    ranks={R.index(c[0])+2 for c in x['cards']}\n    def has(rs):\n        rs=set(rs)\n        if 14 in rs: rs.add(1)\n        return any(all(t-i in rs for i in range(5)) for t in range(5,15))\n    if has(ranks): return 0\n    outs=0\n    for r in range(2,15):\n        if has(ranks|{r}):\n            outs+=4-sum(1 for c in x['cards'] if R.index(c[0])+2==r)\n    return outs\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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"},"fixed":{"sha256":"b5cf8a10f8154533dd76e0333b536ed58aed0451e3ce32ddf7bc6e110003c009","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    R='23456789TJQKA'\n    known=x['cards']+x.get('dead',[])\n    ranks={R.index(c[0])+2 for c in x['cards']}\n    def has(rs):\n        rs=set(rs)\n        if 14 in rs: rs.add(1)\n        return any(all(t-i in rs for i in range(5)) for t in range(5,15))\n    if has(ranks): return 0\n    outs=0\n    for r in range(2,15):\n        if has(ranks|{r}):\n            outs+=4-sum(1 for c in known if R.index(c[0])+2==r)\n    return outs\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], 'dead': []}, 8),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('three to straight only', {'cards': ['8h', '9d', 'Tc', '2s', '3h'], 'dead': []}, 0),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5),\n  ('open ender with seen nine', {'cards': ['5h', '6d', '7c', '8s', '8h'], 'dead': ['9c', '4d']},\n   6)],\n [('open ended', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': []}, 8),\n  ('gutshot', {'cards': ['8h', '9d', 'Jc', 'Qs', '2h'], 'dead': []}, 4),\n  ('ace-low draw', {'cards': ['Ah', '2d', '3c', '4s', 'Kh'], 'dead': []}, 4),\n  ('ace-high draw', {'cards': ['Ah', 'Kd', 'Qc', 'Js', '2h'], 'dead': []}, 4),\n  ('open ended with dead', {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', 'Qd', 'Qs']},\n   5),\n  ('paired board seen out', {'cards': ['8h', '9d', 'Tc', 'Js', 'Qh'], 'dead': []}, 0),\n  ('wheel gutshot with dead', {'cards': ['Ah', '2d', '4c', '5s', 'Jh'], 'dead': ['3h']}, 3),\n  ('two dead copies of an out',\n   {'cards': ['8h', '9d', 'Tc', 'Js', '2h'], 'dead': ['7c', '7d', 'Qd']}, 5)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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 model with an explicitly stated contract; card strings are rank+suit (for example \"As\", \"Td\"); no claim of conformance to any casino or tournament rulebook. 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-poker_hand_evaluation-straight-draw-outs-seen-card-subtraction","generated_at":"2026-09-29T14:50:10.740232+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Out counts feed pot-odds displays and all-in equity shortcuts.","repair":"Subtract every seen card: the player's cards and the dead cards.","root_cause":"Only the player's own cards are subtracted from each completing rank.","sha256":"1b606ecb08fe5eeb64568a45317544d2e5642eba34e67f190786529412b0f9c1","title":"Dead cards still counted as live outs · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.362,"exit_code":1,"observations":[{"actual":8,"check":"open ended","expected":8,"passed":true},{"actual":4,"check":"gutshot","expected":4,"passed":true},{"actual":4,"check":"ace-low draw","expected":4,"passed":true},{"actual":4,"check":"ace-high draw","expected":4,"passed":true},{"actual":6,"check":"open ended with dead","expected":5,"passed":false},{"actual":0,"check":"paired board seen out","expected":0,"passed":true},{"actual":3,"check":"wheel gutshot with dead","expected":3,"passed":true},{"actual":6,"check":"two dead copies of an out","expected":5,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"open ended\", \"actual\": 8, \"expected\": 8, \"passed\": true}, {\"check\": \"gutshot\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-low draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-high draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"open ended with dead\", \"actual\": 6, \"expected\": 5, \"passed\": false}, {\"check\": \"paired board seen out\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"wheel gutshot with dead\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"two dead copies of an out\", \"actual\": 6, \"expected\": 5, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.811,"exit_code":1,"observations":[{"actual":8,"check":"open ended","expected":8,"passed":true},{"actual":4,"check":"gutshot","expected":4,"passed":true},{"actual":4,"check":"ace-low draw","expected":4,"passed":true},{"actual":4,"check":"ace-high draw","expected":4,"passed":true},{"actual":8,"check":"open ended with dead","expected":5,"passed":false},{"actual":0,"check":"paired board seen out","expected":0,"passed":true},{"actual":4,"check":"wheel gutshot with dead","expected":3,"passed":false},{"actual":8,"check":"two dead copies of an out","expected":5,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"open ended\", \"actual\": 8, \"expected\": 8, \"passed\": true}, {\"check\": \"gutshot\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-low draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-high draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"open ended with dead\", \"actual\": 8, \"expected\": 5, \"passed\": false}, {\"check\": \"paired board seen out\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"wheel gutshot with dead\", \"actual\": 4, \"expected\": 3, \"passed\": false}, {\"check\": \"two dead copies of an out\", \"actual\": 8, \"expected\": 5, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.945,"exit_code":0,"observations":[{"actual":8,"check":"open ended","expected":8,"passed":true},{"actual":4,"check":"gutshot","expected":4,"passed":true},{"actual":4,"check":"ace-low draw","expected":4,"passed":true},{"actual":4,"check":"ace-high draw","expected":4,"passed":true},{"actual":5,"check":"open ended with dead","expected":5,"passed":true},{"actual":0,"check":"paired board seen out","expected":0,"passed":true},{"actual":3,"check":"wheel gutshot with dead","expected":3,"passed":true},{"actual":5,"check":"two dead copies of an out","expected":5,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"open ended\", \"actual\": 8, \"expected\": 8, \"passed\": true}, {\"check\": \"gutshot\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-low draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-high draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"open ended with dead\", \"actual\": 5, \"expected\": 5, \"passed\": true}, {\"check\": \"paired board seen out\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"wheel gutshot with dead\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"two dead copies of an out\", \"actual\": 5, \"expected\": 5, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}