{"abstract":"Open-ended draws report zero outs because the draw is already counted as a straight.","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":"Accepting four of five window ranks is still a draw, not a straight.","family":"w2-poker_hand_evaluation-straight-draw-outs-window-completeness","id":"FA-82276","implementations":{"attempt":{"sha256":"b70b7c4eb75e0f190da599170dde7319155a729393c1188d7b706e470b9a8324","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(sum(t-i in rs for i in range(5))>=4 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  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], '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  ('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 [('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  ('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  ('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  ('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  ('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  ('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)]]\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":"7e143ace53b339bbeb7b0bc3a5dc4e08192fa2b900b640f59c0e73b00b16223d","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(4)) 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  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], '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  ('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 [('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  ('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  ('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  ('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  ('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  ('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)]]\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":"a7e0edc497747e66c097a5468b2f0888cc346ddc76a67ea2bdc2a76800e3f66c","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  ('no draw', {'cards': ['2h', '7d', 'Tc', 'Ks', '4h'], 'dead': []}, 0),\n  ('double gutshot', {'cards': ['7h', '9d', 'Tc', 'Js', 'Kh', '2c'], '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  ('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 [('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  ('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  ('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  ('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  ('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  ('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)]]\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-window-completeness","generated_at":"2026-09-29T14:50:10.735938+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":"Require all five ranks of the window.","root_cause":"The straight window checks four consecutive ranks.","sha256":"35bf25eef2f3617f24ee420d803c3f5007a92c65a1c2816639560a5eff57d766","title":"Four-card run treated as a made straight · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.782,"exit_code":1,"observations":[{"actual":0,"check":"open ended","expected":8,"passed":false},{"actual":0,"check":"gutshot","expected":4,"passed":false},{"actual":0,"check":"ace-low draw","expected":4,"passed":false},{"actual":0,"check":"ace-high draw","expected":4,"passed":false},{"actual":0,"check":"open ended with dead","expected":5,"passed":false},{"actual":0,"check":"paired board seen out","expected":0,"passed":true},{"actual":0,"check":"no draw","expected":0,"passed":true},{"actual":0,"check":"double gutshot","expected":8,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"open ended\", \"actual\": 0, \"expected\": 8, \"passed\": false}, {\"check\": \"gutshot\", \"actual\": 0, \"expected\": 4, \"passed\": false}, {\"check\": \"ace-low draw\", \"actual\": 0, \"expected\": 4, \"passed\": false}, {\"check\": \"ace-high draw\", \"actual\": 0, \"expected\": 4, \"passed\": false}, {\"check\": \"open ended with dead\", \"actual\": 0, \"expected\": 5, \"passed\": false}, {\"check\": \"paired board seen out\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"no draw\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"double gutshot\", \"actual\": 0, \"expected\": 8, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.665,"exit_code":1,"observations":[{"actual":0,"check":"open ended","expected":8,"passed":false},{"actual":4,"check":"gutshot","expected":4,"passed":true},{"actual":4,"check":"ace-low draw","expected":4,"passed":true},{"actual":0,"check":"ace-high draw","expected":4,"passed":false},{"actual":0,"check":"open ended with dead","expected":5,"passed":false},{"actual":0,"check":"paired board seen out","expected":0,"passed":true},{"actual":0,"check":"no draw","expected":0,"passed":true},{"actual":8,"check":"double gutshot","expected":8,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"open ended\", \"actual\": 0, \"expected\": 8, \"passed\": false}, {\"check\": \"gutshot\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-low draw\", \"actual\": 4, \"expected\": 4, \"passed\": true}, {\"check\": \"ace-high draw\", \"actual\": 0, \"expected\": 4, \"passed\": false}, {\"check\": \"open ended with dead\", \"actual\": 0, \"expected\": 5, \"passed\": false}, {\"check\": \"paired board seen out\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"no draw\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"double gutshot\", \"actual\": 8, \"expected\": 8, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.539,"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":0,"check":"no draw","expected":0,"passed":true},{"actual":8,"check":"double gutshot","expected":8,"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\": \"no draw\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"double gutshot\", \"actual\": 8, \"expected\": 8, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}