{"abstract":"Darts after a bust in the same turn are scored against the reverted total.","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":"Skipping the remaining dart slots of the turn discards darts that belong to the next turn.","family":"w2-sports-scoring-darts-double-out-bust-bust-ends-turn","id":"FA-84206","implementations":{"attempt":{"sha256":"b36802cac354219be62e54a927de0b7cac2808e9c059887568e75c572276104b","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                i += 2 - k\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 ends turn', (3, ['S14', 'D16', 'D3']), [3, 3, False]),\n  ('variant scenario 1', (15, ['T4', 'D13', 'DB', 'D5', 'S19', 'D12', 'D4']), [7, 5, False]),\n  ('variant scenario 2', (59, ['D10', 'S18', 'S11', 'D1', 'SB']), [10, 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 ends turn',\n   (23, ['D8', 'D8', 'S16', 'D2', 'D8', 'S1', 'M', 'DB', 'T19']),\n   [23, 4, False]),\n  ('variant scenario 1', (101, ['D15', 'D20', 'SB', 'D3', 'S4', 'D13', 'T5', 'S16']), [0, 2, True]),\n  ('variant scenario 2', (32, ['D9', 'S4', 'S6', 'D16', 'D18', 'S13']), [4, 4, 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 ends turn', (7, ['D1', 'S3', 'D17', 'S19', 'D1', 'D20', 'S7']), [7, 4, False]),\n  ('variant scenario 1', (101, ['D10', 'T4']), [69, 1, False]),\n  ('variant scenario 2',\n   (10, ['D20', 'D6', 'D5', 'M', 'D18', 'SB', 'D16', 'S18', 'T12']),\n   [0, 3, 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 ends turn', (50, ['D13', 'D5', 'S14', 'T19', 'D5', 'SB']), [15, 3, False]),\n  ('variant scenario 1', (40, ['T15']), [40, 1, False]),\n  ('variant scenario 2', (40, ['D5', 'D1', 'T18']), [40, 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 ends turn', (3, ['D13', 'S6', 'D18', 'D14']), [3, 4, False]),\n  ('variant scenario 1', (101, ['M', 'D13', 'T6']), [57, 1, False]),\n  ('variant scenario 2', (50, ['S1']), [49, 1, 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":"5028e6937784046131eb522aa940f01ad02c938c8d42d409d093feb4a727eb62","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    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 ends turn', (3, ['S14', 'D16', 'D3']), [3, 3, False]),\n  ('variant scenario 1', (15, ['T4', 'D13', 'DB', 'D5', 'S19', 'D12', 'D4']), [7, 5, False]),\n  ('variant scenario 2', (59, ['D10', 'S18', 'S11', 'D1', 'SB']), [10, 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 ends turn',\n   (23, ['D8', 'D8', 'S16', 'D2', 'D8', 'S1', 'M', 'DB', 'T19']),\n   [23, 4, False]),\n  ('variant scenario 1', (101, ['D15', 'D20', 'SB', 'D3', 'S4', 'D13', 'T5', 'S16']), [0, 2, True]),\n  ('variant scenario 2', (32, ['D9', 'S4', 'S6', 'D16', 'D18', 'S13']), [4, 4, 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 ends turn', (7, ['D1', 'S3', 'D17', 'S19', 'D1', 'D20', 'S7']), [7, 4, False]),\n  ('variant scenario 1', (101, ['D10', 'T4']), [69, 1, False]),\n  ('variant scenario 2',\n   (10, ['D20', 'D6', 'D5', 'M', 'D18', 'SB', 'D16', 'S18', 'T12']),\n   [0, 3, 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 ends turn', (50, ['D13', 'D5', 'S14', 'T19', 'D5', 'SB']), [15, 3, False]),\n  ('variant scenario 1', (40, ['T15']), [40, 1, False]),\n  ('variant scenario 2', (40, ['D5', 'D1', 'T18']), [40, 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 ends turn', (3, ['D13', 'S6', 'D18', 'D14']), [3, 4, False]),\n  ('variant scenario 1', (101, ['M', 'D13', 'T6']), [57, 1, False]),\n  ('variant scenario 2', (50, ['S1']), [49, 1, 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":"0e01fd3992210f34fad29fc360df1a967e531364f83e71af360faec82a237a19","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 ends turn', (3, ['S14', 'D16', 'D3']), [3, 3, False]),\n  ('variant scenario 1', (15, ['T4', 'D13', 'DB', 'D5', 'S19', 'D12', 'D4']), [7, 5, False]),\n  ('variant scenario 2', (59, ['D10', 'S18', 'S11', 'D1', 'SB']), [10, 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 ends turn',\n   (23, ['D8', 'D8', 'S16', 'D2', 'D8', 'S1', 'M', 'DB', 'T19']),\n   [23, 4, False]),\n  ('variant scenario 1', (101, ['D15', 'D20', 'SB', 'D3', 'S4', 'D13', 'T5', 'S16']), [0, 2, True]),\n  ('variant scenario 2', (32, ['D9', 'S4', 'S6', 'D16', 'D18', 'S13']), [4, 4, 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 ends turn', (7, ['D1', 'S3', 'D17', 'S19', 'D1', 'D20', 'S7']), [7, 4, False]),\n  ('variant scenario 1', (101, ['D10', 'T4']), [69, 1, False]),\n  ('variant scenario 2',\n   (10, ['D20', 'D6', 'D5', 'M', 'D18', 'SB', 'D16', 'S18', 'T12']),\n   [0, 3, 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 ends turn', (50, ['D13', 'D5', 'S14', 'T19', 'D5', 'SB']), [15, 3, False]),\n  ('variant scenario 1', (40, ['T15']), [40, 1, False]),\n  ('variant scenario 2', (40, ['D5', 'D1', 'T18']), [40, 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 ends turn', (3, ['D13', 'S6', 'D18', 'D14']), [3, 4, False]),\n  ('variant scenario 1', (101, ['M', 'D13', 'T6']), [57, 1, False]),\n  ('variant scenario 2', (50, ['S1']), [49, 1, 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-ends-turn","generated_at":"2026-09-29T14:50:28.591590+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":"End the turn immediately after a bust.","root_cause":"The bust branch does not end the turn.","sha256":"c353843f21cb38225d030f6e484ac8f63be130ab3ed8d3153d8f8e7b0f574d99","title":"Thrower keeps throwing after a bust · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.626,"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":[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":[32,1,false],"check":"boundary bust mid-turn reverts","expected":[0,2,true],"passed":false},{"actual":[20,1,false],"check":"control scoring turn","expected":[20,1,false],"passed":true},{"actual":[3,1,false],"check":"regression: bust ends turn","expected":[3,3,false],"passed":false},{"actual":[7,3,false],"check":"variant scenario 1","expected":[7,5,false],"passed":false},{"actual":[10,2,false],"check":"variant scenario 2","expected":[10,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\": [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\": [32, 1, false], \"expected\": [0, 2, true], \"passed\": false}, {\"check\": \"control scoring turn\", \"actual\": [20, 1, false], \"expected\": [20, 1, false], \"passed\": true}, {\"check\": \"regression: bust ends turn\", \"actual\": [3, 1, false], \"expected\": [3, 3, false], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [7, 3, false], \"expected\": [7, 5, false], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [10, 2, false], \"expected\": [10, 2, false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.38,"exit_code":1,"observations":[{"actual":[0,1,true],"check":"control checkout on double","expected":[0,1,true],"passed":true},{"actual":[0,1,true],"check":"boundary finish on single busts","expected":[0,2,true],"passed":false},{"actual":[20,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,1,true],"check":"boundary bust mid-turn reverts","expected":[0,2,true],"passed":false},{"actual":[20,1,false],"check":"control scoring turn","expected":[20,1,false],"passed":true},{"actual":[3,1,false],"check":"regression: bust ends turn","expected":[3,3,false],"passed":false},{"actual":[7,3,false],"check":"variant scenario 1","expected":[7,5,false],"passed":false},{"actual":[10,2,false],"check":"variant scenario 2","expected":[10,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, 1, true], \"expected\": [0, 2, true], \"passed\": false}, {\"check\": \"boundary leave one busts\", \"actual\": [20, 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, 1, true], \"expected\": [0, 2, true], \"passed\": false}, {\"check\": \"control scoring turn\", \"actual\": [20, 1, false], \"expected\": [20, 1, false], \"passed\": true}, {\"check\": \"regression: bust ends turn\", \"actual\": [3, 1, false], \"expected\": [3, 3, false], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [7, 3, false], \"expected\": [7, 5, false], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [10, 2, false], \"expected\": [10, 2, false], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.936,"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,3,false],"check":"regression: bust ends turn","expected":[3,3,false],"passed":true},{"actual":[7,5,false],"check":"variant scenario 1","expected":[7,5,false],"passed":true},{"actual":[10,2,false],"check":"variant scenario 2","expected":[10,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 ends turn\", \"actual\": [3, 3, false], \"expected\": [3, 3, false], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [7, 5, false], \"expected\": [7, 5, false], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [10, 2, false], \"expected\": [10, 2, false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}