{"abstract":"A player who leaves 1, or reaches 0 without a double, is left on that score.","category":"Sports scoring and tiebreakers","checks":9,"contract":"Double-out darts leg from a remaining score. darts lists thrown darts: S/D/T followed by 1-20, SB (25), DB (50, a double) or M (miss). Turns are three darts. After each dart: reaching exactly 0 with a double (D* or DB) checks out and later darts are ignored; a remaining score below 2 otherwise is a bust, the score reverts to its value at the start of the turn and the turn ends immediately (the next dart in the list starts a new turn). Return [remaining, turns used, checked_out].","evaluation_group":"w2-sports-scoring-darts-double-out-bust","failed_approach":"Busting only below one still allows a player to be left on 1.","family":"w2-sports-scoring-darts-double-out-bust-bust-threshold","id":"FA-84211","implementations":{"attempt":{"sha256":"e8fa1e69916f981688614b985c8988f2df2a619270f703d05f45f0caef00eb6c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(start, darts):\n    def value(d):\n        if d == 'M':\n            return 0, False\n        if d == 'SB':\n            return 25, False\n        if d == 'DB':\n            return 50, True\n        mult = {'S': 1, 'D': 2, 'T': 3}[d[0]]\n        return mult * int(d[1:]), d[0] == 'D'\n    score = start\n    turns = 0\n    i = 0\n    while i < len(darts):\n        turns += 1\n        turn_start = score\n        for k in range(3):\n            if i >= len(darts):\n                break\n            v, dbl = value(darts[i])\n            i += 1\n            score -= v\n            if score == 0 and dbl:\n                return [0, turns, True]\n            if score < 1:\n                score = turn_start\n                break\n    return [score, turns, False]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['D16', 'D12', 'D19', 'T11', 'D1', 'T17', 'D13']),\n   [3, 7, False]),\n  ('variant scenario 1', (13, ['S10', 'M', 'T3', 'D11']), [13, 2, False]),\n  ('variant scenario 2', (101, ['D1', 'S18', 'T5', 'T6']), [48, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (12, ['S18', 'S16', 'T17', 'T4']), [12, 4, False]),\n  ('regression: bust threshold', (40, ['T1', 'D11', 'D2', 'D5', 'D8']), [11, 3, False]),\n  ('variant scenario 1', (3, ['T17', 'D3']), [3, 2, False]),\n  ('variant scenario 2',\n   (40, ['T12', 'D8', 'D1', 'D19', 'S1', 'D15', 'T6', 'T16', 'T1']),\n   [0, 2, True])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (3, ['T9', 'D10', 'D2', 'T16', 'T1', 'D20']), [3, 6, False]),\n  ('regression: bust threshold',\n   (50, ['D3', 'D4', 'T10', 'D17', 'D4', 'D14', 'SB', 'S11', 'S5']),\n   [6, 7, False]),\n  ('variant scenario 1', (28, ['D6', 'D3', 'D15', 'D20', 'D5']), [18, 3, False]),\n  ('variant scenario 2', (101, ['S7', 'D5', 'S20', 'D5']), [54, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (18, ['S4', 'SB', 'D1', 'T5', 'D20', 'D20', 'S4']),\n   [14, 5, False]),\n  ('variant scenario 1', (101, ['D5']), [91, 1, False]),\n  ('variant scenario 2', (50, ['T11']), [17, 1, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['S2', 'D7', 'D7', 'S5', 'D9', 'D13', 'T7', 'T6', 'T7']),\n   [3, 9, False]),\n  ('variant scenario 1', (101, ['S12', 'T5', 'T18', 'T10', 'T4']), [8, 3, False]),\n  ('variant scenario 2', (53, ['D17', 'S16', 'D6', 'D14', 'T12', 'D4', 'D4']), [37, 3, False])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"0c36f6bcdecc48ebe31de59bb02f6118383b72b36ffe75704ddd9c573368de35","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(start, darts):\n    def value(d):\n        if d == 'M':\n            return 0, False\n        if d == 'SB':\n            return 25, False\n        if d == 'DB':\n            return 50, True\n        mult = {'S': 1, 'D': 2, 'T': 3}[d[0]]\n        return mult * int(d[1:]), d[0] == 'D'\n    score = start\n    turns = 0\n    i = 0\n    while i < len(darts):\n        turns += 1\n        turn_start = score\n        for k in range(3):\n            if i >= len(darts):\n                break\n            v, dbl = value(darts[i])\n            i += 1\n            score -= v\n            if score == 0 and dbl:\n                return [0, turns, True]\n            if score < 0:\n                score = turn_start\n                break\n    return [score, turns, False]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['D16', 'D12', 'D19', 'T11', 'D1', 'T17', 'D13']),\n   [3, 7, False]),\n  ('variant scenario 1', (13, ['S10', 'M', 'T3', 'D11']), [13, 2, False]),\n  ('variant scenario 2', (101, ['D1', 'S18', 'T5', 'T6']), [48, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (12, ['S18', 'S16', 'T17', 'T4']), [12, 4, False]),\n  ('regression: bust threshold', (40, ['T1', 'D11', 'D2', 'D5', 'D8']), [11, 3, False]),\n  ('variant scenario 1', (3, ['T17', 'D3']), [3, 2, False]),\n  ('variant scenario 2',\n   (40, ['T12', 'D8', 'D1', 'D19', 'S1', 'D15', 'T6', 'T16', 'T1']),\n   [0, 2, True])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (3, ['T9', 'D10', 'D2', 'T16', 'T1', 'D20']), [3, 6, False]),\n  ('regression: bust threshold',\n   (50, ['D3', 'D4', 'T10', 'D17', 'D4', 'D14', 'SB', 'S11', 'S5']),\n   [6, 7, False]),\n  ('variant scenario 1', (28, ['D6', 'D3', 'D15', 'D20', 'D5']), [18, 3, False]),\n  ('variant scenario 2', (101, ['S7', 'D5', 'S20', 'D5']), [54, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (18, ['S4', 'SB', 'D1', 'T5', 'D20', 'D20', 'S4']),\n   [14, 5, False]),\n  ('variant scenario 1', (101, ['D5']), [91, 1, False]),\n  ('variant scenario 2', (50, ['T11']), [17, 1, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['S2', 'D7', 'D7', 'S5', 'D9', 'D13', 'T7', 'T6', 'T7']),\n   [3, 9, False]),\n  ('variant scenario 1', (101, ['S12', 'T5', 'T18', 'T10', 'T4']), [8, 3, False]),\n  ('variant scenario 2', (53, ['D17', 'S16', 'D6', 'D14', 'T12', 'D4', 'D4']), [37, 3, False])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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"},"fixed":{"sha256":"29d46aa0de51da6d6414f072f02cd988f7b3c62a7bcae96c7580966d77d40563","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(start, darts):\n    def value(d):\n        if d == 'M':\n            return 0, False\n        if d == 'SB':\n            return 25, False\n        if d == 'DB':\n            return 50, True\n        mult = {'S': 1, 'D': 2, 'T': 3}[d[0]]\n        return mult * int(d[1:]), d[0] == 'D'\n    score = start\n    turns = 0\n    i = 0\n    while i < len(darts):\n        turns += 1\n        turn_start = score\n        for k in range(3):\n            if i >= len(darts):\n                break\n            v, dbl = value(darts[i])\n            i += 1\n            score -= v\n            if score == 0 and dbl:\n                return [0, turns, True]\n            if score < 2:\n                score = turn_start\n                break\n    return [score, turns, False]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['D16', 'D12', 'D19', 'T11', 'D1', 'T17', 'D13']),\n   [3, 7, False]),\n  ('variant scenario 1', (13, ['S10', 'M', 'T3', 'D11']), [13, 2, False]),\n  ('variant scenario 2', (101, ['D1', 'S18', 'T5', 'T6']), [48, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (12, ['S18', 'S16', 'T17', 'T4']), [12, 4, False]),\n  ('regression: bust threshold', (40, ['T1', 'D11', 'D2', 'D5', 'D8']), [11, 3, False]),\n  ('variant scenario 1', (3, ['T17', 'D3']), [3, 2, False]),\n  ('variant scenario 2',\n   (40, ['T12', 'D8', 'D1', 'D19', 'S1', 'D15', 'T6', 'T16', 'T1']),\n   [0, 2, True])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold', (3, ['T9', 'D10', 'D2', 'T16', 'T1', 'D20']), [3, 6, False]),\n  ('regression: bust threshold',\n   (50, ['D3', 'D4', 'T10', 'D17', 'D4', 'D14', 'SB', 'S11', 'S5']),\n   [6, 7, False]),\n  ('variant scenario 1', (28, ['D6', 'D3', 'D15', 'D20', 'D5']), [18, 3, False]),\n  ('variant scenario 2', (101, ['S7', 'D5', 'S20', 'D5']), [54, 2, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (18, ['S4', 'SB', 'D1', 'T5', 'D20', 'D20', 'S4']),\n   [14, 5, False]),\n  ('variant scenario 1', (101, ['D5']), [91, 1, False]),\n  ('variant scenario 2', (50, ['T11']), [17, 1, False])],\n [('control checkout on double', (40, ['D20']), [0, 1, True]),\n  ('boundary finish on single busts', (20, ['S20', 'D10']), [0, 2, True]),\n  ('boundary leave one busts', (21, ['S20', 'S1']), [20, 2, False]),\n  ('control bull finish', (50, ['DB']), [0, 1, True]),\n  ('boundary bust mid-turn reverts', (32, ['S10', 'T20', 'D16']), [0, 2, True]),\n  ('control scoring turn', (101, ['T20', 'S1', 'S20']), [20, 1, False]),\n  ('regression: bust threshold',\n   (3, ['S2', 'D7', 'D7', 'S5', 'D9', 'D13', 'T7', 'T6', 'T7']),\n   [3, 9, False]),\n  ('variant scenario 1', (101, ['S12', 'T5', 'T18', 'T10', 'T4']), [8, 3, False]),\n  ('variant scenario 2', (53, ['D17', 'S16', 'D6', 'D14', 'T12', 'D4', 'D4']), [37, 3, False])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any governing body rulebook or operator house rules. 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-sports-scoring-darts-double-out-bust-bust-threshold","generated_at":"2026-09-29T14:50:28.671995+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Darts scoring apps must implement bust reversion and double-out exactly.","repair":"Bust whenever the remaining score is below 2 after the checkout test.","root_cause":"The bust test only fires below zero.","sha256":"75bca6d3e6e218e13a535a4a185bddf848d317654f2f48526c2095648fecde74","title":"Leaving one or finishing on a single is not a bust · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.771,"exit_code":1,"observations":[{"actual":[0,1,true],"check":"control checkout on double","expected":[0,1,true],"passed":true},{"actual":[0,2,true],"check":"boundary finish on single busts","expected":[0,2,true],"passed":true},{"actual":[21,1,false],"check":"boundary leave one busts","expected":[20,2,false],"passed":false},{"actual":[0,1,true],"check":"control bull finish","expected":[0,1,true],"passed":true},{"actual":[0,2,true],"check":"boundary bust mid-turn reverts","expected":[0,2,true],"passed":true},{"actual":[20,1,false],"check":"control scoring turn","expected":[20,1,false],"passed":true},{"actual":[3,6,false],"check":"regression: bust threshold","expected":[3,7,false],"passed":false},{"actual":[13,2,false],"check":"variant scenario 1","expected":[13,2,false],"passed":true},{"actual":[48,2,false],"check":"variant scenario 2","expected":[48,2,false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control checkout on double\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary finish on single busts\", \"actual\": [0, 2, true], \"expected\": [0, 2, true], \"passed\": true}, {\"check\": \"boundary leave one busts\", \"actual\": [21, 1, false], \"expected\": [20, 2, false], \"passed\": false}, {\"check\": \"control bull finish\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary bust mid-turn reverts\", \"actual\": [0, 2, true], \"expected\": [0, 2, true], \"passed\": true}, {\"check\": \"control scoring turn\", \"actual\": [20, 1, false], \"expected\": [20, 1, false], \"passed\": true}, {\"check\": \"regression: bust threshold\", \"actual\": [3, 6, false], \"expected\": [3, 7, false], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [13, 2, false], \"expected\": [13, 2, false], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [48, 2, false], \"expected\": [48, 2, false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.138,"exit_code":1,"observations":[{"actual":[0,1,true],"check":"control checkout on double","expected":[0,1,true],"passed":true},{"actual":[20,1,false],"check":"boundary finish on single busts","expected":[0,2,true],"passed":false},{"actual":[0,1,false],"check":"boundary leave one busts","expected":[20,2,false],"passed":false},{"actual":[0,1,true],"check":"control bull finish","expected":[0,1,true],"passed":true},{"actual":[0,2,true],"check":"boundary bust mid-turn reverts","expected":[0,2,true],"passed":true},{"actual":[20,1,false],"check":"control scoring turn","expected":[20,1,false],"passed":true},{"actual":[3,6,false],"check":"regression: bust threshold","expected":[3,7,false],"passed":false},{"actual":[13,2,false],"check":"variant scenario 1","expected":[13,2,false],"passed":true},{"actual":[48,2,false],"check":"variant scenario 2","expected":[48,2,false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control checkout on double\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary finish on single busts\", \"actual\": [20, 1, false], \"expected\": [0, 2, true], \"passed\": false}, {\"check\": \"boundary leave one busts\", \"actual\": [0, 1, false], \"expected\": [20, 2, false], \"passed\": false}, {\"check\": \"control bull finish\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary bust mid-turn reverts\", \"actual\": [0, 2, true], \"expected\": [0, 2, true], \"passed\": true}, {\"check\": \"control scoring turn\", \"actual\": [20, 1, false], \"expected\": [20, 1, false], \"passed\": true}, {\"check\": \"regression: bust threshold\", \"actual\": [3, 6, false], \"expected\": [3, 7, false], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [13, 2, false], \"expected\": [13, 2, false], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [48, 2, false], \"expected\": [48, 2, false], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.136,"exit_code":0,"observations":[{"actual":[0,1,true],"check":"control checkout on double","expected":[0,1,true],"passed":true},{"actual":[0,2,true],"check":"boundary finish on single busts","expected":[0,2,true],"passed":true},{"actual":[20,2,false],"check":"boundary leave one busts","expected":[20,2,false],"passed":true},{"actual":[0,1,true],"check":"control bull finish","expected":[0,1,true],"passed":true},{"actual":[0,2,true],"check":"boundary bust mid-turn reverts","expected":[0,2,true],"passed":true},{"actual":[20,1,false],"check":"control scoring turn","expected":[20,1,false],"passed":true},{"actual":[3,7,false],"check":"regression: bust threshold","expected":[3,7,false],"passed":true},{"actual":[13,2,false],"check":"variant scenario 1","expected":[13,2,false],"passed":true},{"actual":[48,2,false],"check":"variant scenario 2","expected":[48,2,false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control checkout on double\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary finish on single busts\", \"actual\": [0, 2, true], \"expected\": [0, 2, true], \"passed\": true}, {\"check\": \"boundary leave one busts\", \"actual\": [20, 2, false], \"expected\": [20, 2, false], \"passed\": true}, {\"check\": \"control bull finish\", \"actual\": [0, 1, true], \"expected\": [0, 1, true], \"passed\": true}, {\"check\": \"boundary bust mid-turn reverts\", \"actual\": [0, 2, true], \"expected\": [0, 2, true], \"passed\": true}, {\"check\": \"control scoring turn\", \"actual\": [20, 1, false], \"expected\": [20, 1, false], \"passed\": true}, {\"check\": \"regression: bust threshold\", \"actual\": [3, 7, false], \"expected\": [3, 7, false], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [13, 2, false], \"expected\": [13, 2, false], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [48, 2, false], \"expected\": [48, 2, false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}