FAILURE MAP
← Case archive

FA-85296 / Fantasy sports scoring / Open access

Bogey-free bonus paid on incomplete rounds · case 01

A golfer who withdrew after nine clean holes earns the bogey-free bonus.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The bogey-free bonus lacks the complete-round requirement.

VERIFIED REPAIR

Require all 18 holes for the bogey-free bonus.

Unsuccessful approach: Requiring nine holes still pays incomplete rounds.

Case contract

Score a golf round given [par, strokes] per hole, in tenths: albatross or better 13, eagle 8, birdie 3, par 0.5, bogey -0.5, double bogey or worse -1; any hole-in-one earns +5 on top. Each maximal run of three or more consecutive birdie-or-better holes earns one 3 point streak bonus. A complete 18-hole round with no bogey or worse earns +3; a complete 18-hole round under 70 strokes earns +5.

Why this case matters

Golf fantasy streak and round bonuses depend on precise run detection and completion conditions.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(holes):
    pts = 0
    run = 0
    streaks = 0
    for par, strokes in holes:
        d = strokes - par
        if d <= -3:
            pts += 130
        elif d == -2:
            pts += 80
        elif d == -1:
            pts += 30
        elif d == 0:
            pts += 5
        elif d == 1:
            pts -= 5
        else:
            pts -= 10
        if strokes == 1:
            pts += 50
        if d < 0:
            run += 1
            if run == 3:
                streaks += 1
        else:
            run = 0
    pts += 30 * streaks
    if all(s - p <= 0 for p, s in holes):
        pts += 30
    if len(holes) == 18 and sum(s for _, s in holes) < 70:
        pts += 50
    return pts
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: bogey-free completion',
   [[[5, 5], [5, 4], [3, 3], [5, 5], [5, 5], [4, 4], [3, 3], [4, 3], [5, 5]]], 95),
  ('partial repair probe: bogey-free completion',
   [[[3, 3], [4, 3], [3, 2], [4, 3], [4, 4], [3, 2], [4, 3], [3, 3], [5, 5]]], 200),
  ('second regression', [[[4, 3], [5, 4], [4, 3], [5, 5], [3, 3], [4, 3], [4, 3], [3, 2], [4, 3]]], 280),
  ('normal control 1',
   [[[3, 3], [4, 6], [4, 4], [3, 3], [4, 4], [5, 6], [3, 3], [4, 4], [4, 6], [4, 5], [4, 4], [5, 5], [4, 4],
     [4, 2], [4, 3], [4, 4], [4, 4], [3, 5]]],
   125),
  ('normal control 2',
   [[[3, 3], [3, 4], [5, 5], [4, 4], [3, 3], [5, 4], [3, 3], [4, 4], [4, 4], [4, 4], [3, 2], [4, 6], [4, 4],
     [5, 5], [5, 5], [4, 6], [4, 3], [4, 3]]],
   150),
  ('normal control 3',
   [[[4, 4], [3, 3], [4, 3], [5, 5], [3, 3], [4, 2], [4, 4], [5, 6], [4, 4], [3, 2], [4, 4], [5, 7], [5, 4],
     [4, 3]]],
   220),
  ('normal control 4',
   [[[4, 4], [4, 3], [5, 4], [4, 4], [4, 4], [4, 4], [5, 4], [4, 3], [4, 3], [4, 5], [3, 5], [5, 7], [4, 4],
     [3, 2]]],
   210)],
 [('regression: bogey-free completion',
   [[[4, 4], [3, 2], [3, 1], [4, 3], [5, 1], [4, 4], [5, 4], [4, 3], [4, 4]]], 475),
  ('partial repair probe: bogey-free completion',
   [[[3, 1], [3, 3], [4, 4], [3, 2], [4, 1], [3, 3], [3, 3], [4, 4], [5, 5], [4, 2], [4, 4], [3, 3], [4, 4],
     [5, 5]]],
   470),
  ('second regression',
   [[[3, 2], [4, 4], [3, 3], [5, 4], [3, 3], [3, 2], [4, 3], [4, 3], [3, 3], [4, 4], [3, 3], [4, 3], [4, 4],
     [4, 3]]],
   275),
  ('normal control 1',
   [[[4, 4], [4, 3], [3, 3], [5, 5], [5, 5], [4, 2], [5, 5], [5, 5], [5, 4], [4, 3], [4, 4], [5, 5], [4, 4],
     [3, 3], [3, 2], [3, 2], [3, 2], [3, 1]]],
   550),
  ('normal control 2',
   [[[4, 4], [4, 4], [3, 2], [4, 2], [5, 5], [5, 5], [4, 4], [4, 3], [4, 4], [4, 3], [4, 3], [4, 2], [4, 3],
     [5, 4], [5, 5], [4, 4], [5, 5], [4, 3]]],
   525),
  ('normal control 3',
   [[[4, 5], [4, 2], [4, 4], [3, 2], [4, 4], [3, 1], [5, 5], [5, 5], [5, 5], [5, 5], [4, 4], [5, 7], [4, 2],
     [4, 4], [4, 4], [3, 2], [5, 4], [3, 2]]],
   520),
  ('normal control 4',
   [[[5, 5], [3, 3], [4, 3], [4, 3], [4, 4], [5, 5], [5, 4], [5, 5], [5, 5], [4, 4], [5, 4], [4, 3], [4, 4],
     [4, 4], [4, 3], [4, 3], [4, 4], [5, 5]]],
   295)],
 [('regression: bogey-free completion',
   [[[3, 1], [5, 5], [4, 4], [4, 3], [5, 5], [4, 4], [3, 2], [4, 1], [3, 2], [4, 1], [4, 4], [3, 1], [4, 3],
     [5, 5]]],
   800),
  ('partial repair probe: bogey-free completion',
   [[[5, 5], [4, 4], [4, 3], [3, 2], [4, 4], [5, 5], [5, 5], [5, 5], [4, 3], [5, 5], [4, 4], [4, 3], [3, 3],
     [5, 5]]],
   170),
  ('second regression',
   [[[4, 4], [4, 3], [5, 4], [4, 2], [5, 4], [5, 4], [4, 3], [3, 3], [4, 4], [4, 4], [4, 1], [5, 5], [4, 4],
     [3, 3]]],
   475),
  ('normal control 1',
   [[[5, 5], [4, 2], [4, 2], [4, 3], [3, 5], [5, 6], [4, 4], [4, 3], [4, 3], [5, 5], [5, 5], [3, 2], [4, 3],
     [4, 3], [4, 5], [4, 5], [3, 2], [4, 3]]],
   505),
  ('normal control 2',
   [[[5, 5], [3, 1], [3, 3], [4, 4], [5, 4], [4, 1], [3, 1], [3, 3], [5, 4], [3, 3], [5, 4], [4, 3], [4, 4],
     [3, 1], [3, 1], [3, 3], [3, 2], [4, 3]]],
   1025),
  ('normal control 3',
   [[[4, 3], [3, 2], [4, 4], [4, 4], [5, 4], [4, 3], [5, 5], [3, 3], [5, 3], [5, 4], [5, 5], [3, 3], [4, 3],
     [4, 4], [5, 5], [5, 5], [4, 4], [3, 3]]],
   395),
  ('normal control 4',
   [[[4, 3], [4, 4], [3, 5], [4, 6], [4, 4], [4, 4], [4, 6], [4, 4], [3, 2], [5, 6], [4, 5], [3, 3], [4, 6],
     [4, 4], [3, 2], [3, 2], [3, 3], [4, 6]]],
   95)],
 [('regression: bogey-free completion',
   [[[4, 4], [4, 4], [5, 4], [4, 1], [4, 3], [5, 4], [5, 5], [5, 5], [4, 4]]], 325),
  ('partial repair probe: bogey-free completion',
   [[[5, 4], [5, 4], [3, 3], [3, 2], [4, 2], [3, 2], [3, 3], [3, 1], [4, 4]]], 375),
  ('second regression',
   [[[4, 4], [4, 4], [3, 2], [3, 3], [5, 5], [3, 2], [4, 2], [3, 2], [3, 3], [4, 4], [3, 3], [5, 5], [3, 3],
     [4, 2]]],
   325),
  ('normal control 1',
   [[[5, 5], [3, 5], [4, 4], [4, 3], [5, 3], [4, 6], [5, 6], [4, 3], [5, 5], [5, 7], [5, 4], [4, 3], [4, 2],
     [5, 4], [4, 4], [4, 3], [4, 4], [4, 3]]],
   390),
  ('normal control 2',
   [[[4, 4], [5, 5], [4, 4], [5, 5], [5, 5], [4, 4], [3, 3], [4, 4], [3, 1], [3, 2], [3, 3], [4, 4], [4, 3],
     [4, 3], [3, 3], [5, 5], [3, 3], [4, 3]]],
   395),
  ('normal control 3',
   [[[5, 7], [4, 1], [4, 4], [4, 4], [3, 2], [5, 3], [4, 3], [4, 4], [5, 5], [3, 3], [5, 5], [4, 4], [4, 3],
     [4, 4], [4, 4], [4, 3], [4, 1], [4, 5]]],
   670),
  ('normal control 4', [[[3, 3], [4, 4], [4, 3], [4, 4], [5, 7], [4, 4], [5, 7], [4, 4], [4, 3]]], 65)],
 [('regression: bogey-free completion',
   [[[5, 4], [3, 3], [4, 2], [4, 4], [4, 2], [4, 3], [5, 5], [4, 4], [4, 4]]], 245),
  ('partial repair probe: bogey-free completion',
   [[[4, 3], [5, 5], [4, 3], [4, 3], [5, 4], [5, 4], [3, 2], [3, 2], [4, 4]]], 250),
  ('second regression', [[[3, 2], [4, 4], [5, 4], [4, 4], [4, 4], [3, 3], [5, 5], [4, 2], [5, 5]]], 170),
  ('normal control 1',
   [[[4, 3], [4, 3], [4, 6], [4, 6], [5, 7], [5, 5], [3, 2], [4, 5], [4, 3], [4, 3], [5, 5], [3, 3], [3, 1],
     [3, 5]]],
   250),
  ('normal control 2',
   [[[3, 5], [5, 5], [4, 6], [4, 4], [3, 2], [5, 5], [5, 4], [5, 4], [3, 2], [4, 4], [5, 7], [4, 2], [3, 4],
     [3, 1], [4, 3], [4, 4], [4, 2], [4, 3]]],
   540),
  ('normal control 3',
   [[[3, 1], [3, 3], [5, 5], [4, 3], [4, 4], [3, 4], [4, 4], [5, 6], [3, 1], [4, 3], [4, 2], [3, 3], [4, 4],
     [4, 5], [5, 4], [4, 4], [3, 3], [5, 7]]],
   525),
  ('normal control 4',
   [[[4, 4], [3, 2], [4, 4], [4, 1], [3, 3], [4, 3], [5, 4], [4, 4], [4, 2], [3, 3], [4, 3], [4, 4], [4, 4],
     [5, 5], [4, 2], [4, 3], [5, 4], [4, 3]]],
   700)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: bogey-free completion12595Failed
partial repair probe: bogey-free completion230200Failed
second regression310280Failed
normal control 1125125Passed
normal control 2150150Passed
normal control 3220220Passed
normal control 4210210Passed

SHA-256 / 9f16f84e7ecc9cb4dcdecefa8449ae42d17ed99e76df08935c206d39c7109edc

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(holes):
    pts = 0
    run = 0
    streaks = 0
    for par, strokes in holes:
        d = strokes - par
        if d <= -3:
            pts += 130
        elif d == -2:
            pts += 80
        elif d == -1:
            pts += 30
        elif d == 0:
            pts += 5
        elif d == 1:
            pts -= 5
        else:
            pts -= 10
        if strokes == 1:
            pts += 50
        if d < 0:
            run += 1
            if run == 3:
                streaks += 1
        else:
            run = 0
    pts += 30 * streaks
    if len(holes) >= 9 and all(s - p <= 0 for p, s in holes):
        pts += 30
    if len(holes) == 18 and sum(s for _, s in holes) < 70:
        pts += 50
    return pts
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: bogey-free completion',
   [[[5, 5], [5, 4], [3, 3], [5, 5], [5, 5], [4, 4], [3, 3], [4, 3], [5, 5]]], 95),
  ('partial repair probe: bogey-free completion',
   [[[3, 3], [4, 3], [3, 2], [4, 3], [4, 4], [3, 2], [4, 3], [3, 3], [5, 5]]], 200),
  ('second regression', [[[4, 3], [5, 4], [4, 3], [5, 5], [3, 3], [4, 3], [4, 3], [3, 2], [4, 3]]], 280),
  ('normal control 1',
   [[[3, 3], [4, 6], [4, 4], [3, 3], [4, 4], [5, 6], [3, 3], [4, 4], [4, 6], [4, 5], [4, 4], [5, 5], [4, 4],
     [4, 2], [4, 3], [4, 4], [4, 4], [3, 5]]],
   125),
  ('normal control 2',
   [[[3, 3], [3, 4], [5, 5], [4, 4], [3, 3], [5, 4], [3, 3], [4, 4], [4, 4], [4, 4], [3, 2], [4, 6], [4, 4],
     [5, 5], [5, 5], [4, 6], [4, 3], [4, 3]]],
   150),
  ('normal control 3',
   [[[4, 4], [3, 3], [4, 3], [5, 5], [3, 3], [4, 2], [4, 4], [5, 6], [4, 4], [3, 2], [4, 4], [5, 7], [5, 4],
     [4, 3]]],
   220),
  ('normal control 4',
   [[[4, 4], [4, 3], [5, 4], [4, 4], [4, 4], [4, 4], [5, 4], [4, 3], [4, 3], [4, 5], [3, 5], [5, 7], [4, 4],
     [3, 2]]],
   210)],
 [('regression: bogey-free completion',
   [[[4, 4], [3, 2], [3, 1], [4, 3], [5, 1], [4, 4], [5, 4], [4, 3], [4, 4]]], 475),
  ('partial repair probe: bogey-free completion',
   [[[3, 1], [3, 3], [4, 4], [3, 2], [4, 1], [3, 3], [3, 3], [4, 4], [5, 5], [4, 2], [4, 4], [3, 3], [4, 4],
     [5, 5]]],
   470),
  ('second regression',
   [[[3, 2], [4, 4], [3, 3], [5, 4], [3, 3], [3, 2], [4, 3], [4, 3], [3, 3], [4, 4], [3, 3], [4, 3], [4, 4],
     [4, 3]]],
   275),
  ('normal control 1',
   [[[4, 4], [4, 3], [3, 3], [5, 5], [5, 5], [4, 2], [5, 5], [5, 5], [5, 4], [4, 3], [4, 4], [5, 5], [4, 4],
     [3, 3], [3, 2], [3, 2], [3, 2], [3, 1]]],
   550),
  ('normal control 2',
   [[[4, 4], [4, 4], [3, 2], [4, 2], [5, 5], [5, 5], [4, 4], [4, 3], [4, 4], [4, 3], [4, 3], [4, 2], [4, 3],
     [5, 4], [5, 5], [4, 4], [5, 5], [4, 3]]],
   525),
  ('normal control 3',
   [[[4, 5], [4, 2], [4, 4], [3, 2], [4, 4], [3, 1], [5, 5], [5, 5], [5, 5], [5, 5], [4, 4], [5, 7], [4, 2],
     [4, 4], [4, 4], [3, 2], [5, 4], [3, 2]]],
   520),
  ('normal control 4',
   [[[5, 5], [3, 3], [4, 3], [4, 3], [4, 4], [5, 5], [5, 4], [5, 5], [5, 5], [4, 4], [5, 4], [4, 3], [4, 4],
     [4, 4], [4, 3], [4, 3], [4, 4], [5, 5]]],
   295)],
 [('regression: bogey-free completion',
   [[[3, 1], [5, 5], [4, 4], [4, 3], [5, 5], [4, 4], [3, 2], [4, 1], [3, 2], [4, 1], [4, 4], [3, 1], [4, 3],
     [5, 5]]],
   800),
  ('partial repair probe: bogey-free completion',
   [[[5, 5], [4, 4], [4, 3], [3, 2], [4, 4], [5, 5], [5, 5], [5, 5], [4, 3], [5, 5], [4, 4], [4, 3], [3, 3],
     [5, 5]]],
   170),
  ('second regression',
   [[[4, 4], [4, 3], [5, 4], [4, 2], [5, 4], [5, 4], [4, 3], [3, 3], [4, 4], [4, 4], [4, 1], [5, 5], [4, 4],
     [3, 3]]],
   475),
  ('normal control 1',
   [[[5, 5], [4, 2], [4, 2], [4, 3], [3, 5], [5, 6], [4, 4], [4, 3], [4, 3], [5, 5], [5, 5], [3, 2], [4, 3],
     [4, 3], [4, 5], [4, 5], [3, 2], [4, 3]]],
   505),
  ('normal control 2',
   [[[5, 5], [3, 1], [3, 3], [4, 4], [5, 4], [4, 1], [3, 1], [3, 3], [5, 4], [3, 3], [5, 4], [4, 3], [4, 4],
     [3, 1], [3, 1], [3, 3], [3, 2], [4, 3]]],
   1025),
  ('normal control 3',
   [[[4, 3], [3, 2], [4, 4], [4, 4], [5, 4], [4, 3], [5, 5], [3, 3], [5, 3], [5, 4], [5, 5], [3, 3], [4, 3],
     [4, 4], [5, 5], [5, 5], [4, 4], [3, 3]]],
   395),
  ('normal control 4',
   [[[4, 3], [4, 4], [3, 5], [4, 6], [4, 4], [4, 4], [4, 6], [4, 4], [3, 2], [5, 6], [4, 5], [3, 3], [4, 6],
     [4, 4], [3, 2], [3, 2], [3, 3], [4, 6]]],
   95)],
 [('regression: bogey-free completion',
   [[[4, 4], [4, 4], [5, 4], [4, 1], [4, 3], [5, 4], [5, 5], [5, 5], [4, 4]]], 325),
  ('partial repair probe: bogey-free completion',
   [[[5, 4], [5, 4], [3, 3], [3, 2], [4, 2], [3, 2], [3, 3], [3, 1], [4, 4]]], 375),
  ('second regression',
   [[[4, 4], [4, 4], [3, 2], [3, 3], [5, 5], [3, 2], [4, 2], [3, 2], [3, 3], [4, 4], [3, 3], [5, 5], [3, 3],
     [4, 2]]],
   325),
  ('normal control 1',
   [[[5, 5], [3, 5], [4, 4], [4, 3], [5, 3], [4, 6], [5, 6], [4, 3], [5, 5], [5, 7], [5, 4], [4, 3], [4, 2],
     [5, 4], [4, 4], [4, 3], [4, 4], [4, 3]]],
   390),
  ('normal control 2',
   [[[4, 4], [5, 5], [4, 4], [5, 5], [5, 5], [4, 4], [3, 3], [4, 4], [3, 1], [3, 2], [3, 3], [4, 4], [4, 3],
     [4, 3], [3, 3], [5, 5], [3, 3], [4, 3]]],
   395),
  ('normal control 3',
   [[[5, 7], [4, 1], [4, 4], [4, 4], [3, 2], [5, 3], [4, 3], [4, 4], [5, 5], [3, 3], [5, 5], [4, 4], [4, 3],
     [4, 4], [4, 4], [4, 3], [4, 1], [4, 5]]],
   670),
  ('normal control 4', [[[3, 3], [4, 4], [4, 3], [4, 4], [5, 7], [4, 4], [5, 7], [4, 4], [4, 3]]], 65)],
 [('regression: bogey-free completion',
   [[[5, 4], [3, 3], [4, 2], [4, 4], [4, 2], [4, 3], [5, 5], [4, 4], [4, 4]]], 245),
  ('partial repair probe: bogey-free completion',
   [[[4, 3], [5, 5], [4, 3], [4, 3], [5, 4], [5, 4], [3, 2], [3, 2], [4, 4]]], 250),
  ('second regression', [[[3, 2], [4, 4], [5, 4], [4, 4], [4, 4], [3, 3], [5, 5], [4, 2], [5, 5]]], 170),
  ('normal control 1',
   [[[4, 3], [4, 3], [4, 6], [4, 6], [5, 7], [5, 5], [3, 2], [4, 5], [4, 3], [4, 3], [5, 5], [3, 3], [3, 1],
     [3, 5]]],
   250),
  ('normal control 2',
   [[[3, 5], [5, 5], [4, 6], [4, 4], [3, 2], [5, 5], [5, 4], [5, 4], [3, 2], [4, 4], [5, 7], [4, 2], [3, 4],
     [3, 1], [4, 3], [4, 4], [4, 2], [4, 3]]],
   540),
  ('normal control 3',
   [[[3, 1], [3, 3], [5, 5], [4, 3], [4, 4], [3, 4], [4, 4], [5, 6], [3, 1], [4, 3], [4, 2], [3, 3], [4, 4],
     [4, 5], [5, 4], [4, 4], [3, 3], [5, 7]]],
   525),
  ('normal control 4',
   [[[4, 4], [3, 2], [4, 4], [4, 1], [3, 3], [4, 3], [5, 4], [4, 4], [4, 2], [3, 3], [4, 3], [4, 4], [4, 4],
     [5, 5], [4, 2], [4, 3], [5, 4], [4, 3]]],
   700)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: bogey-free completion12595Failed
partial repair probe: bogey-free completion230200Failed
second regression310280Failed
normal control 1125125Passed
normal control 2150150Passed
normal control 3220220Passed
normal control 4210210Passed

SHA-256 / 5c1fc3e914db082025de055221a05126f8bdf02a5549ccd2133c319ac21f746a

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(holes):
    pts = 0
    run = 0
    streaks = 0
    for par, strokes in holes:
        d = strokes - par
        if d <= -3:
            pts += 130
        elif d == -2:
            pts += 80
        elif d == -1:
            pts += 30
        elif d == 0:
            pts += 5
        elif d == 1:
            pts -= 5
        else:
            pts -= 10
        if strokes == 1:
            pts += 50
        if d < 0:
            run += 1
            if run == 3:
                streaks += 1
        else:
            run = 0
    pts += 30 * streaks
    if len(holes) == 18 and all(s - p <= 0 for p, s in holes):
        pts += 30
    if len(holes) == 18 and sum(s for _, s in holes) < 70:
        pts += 50
    return pts
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: bogey-free completion',
   [[[5, 5], [5, 4], [3, 3], [5, 5], [5, 5], [4, 4], [3, 3], [4, 3], [5, 5]]], 95),
  ('partial repair probe: bogey-free completion',
   [[[3, 3], [4, 3], [3, 2], [4, 3], [4, 4], [3, 2], [4, 3], [3, 3], [5, 5]]], 200),
  ('second regression', [[[4, 3], [5, 4], [4, 3], [5, 5], [3, 3], [4, 3], [4, 3], [3, 2], [4, 3]]], 280),
  ('normal control 1',
   [[[3, 3], [4, 6], [4, 4], [3, 3], [4, 4], [5, 6], [3, 3], [4, 4], [4, 6], [4, 5], [4, 4], [5, 5], [4, 4],
     [4, 2], [4, 3], [4, 4], [4, 4], [3, 5]]],
   125),
  ('normal control 2',
   [[[3, 3], [3, 4], [5, 5], [4, 4], [3, 3], [5, 4], [3, 3], [4, 4], [4, 4], [4, 4], [3, 2], [4, 6], [4, 4],
     [5, 5], [5, 5], [4, 6], [4, 3], [4, 3]]],
   150),
  ('normal control 3',
   [[[4, 4], [3, 3], [4, 3], [5, 5], [3, 3], [4, 2], [4, 4], [5, 6], [4, 4], [3, 2], [4, 4], [5, 7], [5, 4],
     [4, 3]]],
   220),
  ('normal control 4',
   [[[4, 4], [4, 3], [5, 4], [4, 4], [4, 4], [4, 4], [5, 4], [4, 3], [4, 3], [4, 5], [3, 5], [5, 7], [4, 4],
     [3, 2]]],
   210)],
 [('regression: bogey-free completion',
   [[[4, 4], [3, 2], [3, 1], [4, 3], [5, 1], [4, 4], [5, 4], [4, 3], [4, 4]]], 475),
  ('partial repair probe: bogey-free completion',
   [[[3, 1], [3, 3], [4, 4], [3, 2], [4, 1], [3, 3], [3, 3], [4, 4], [5, 5], [4, 2], [4, 4], [3, 3], [4, 4],
     [5, 5]]],
   470),
  ('second regression',
   [[[3, 2], [4, 4], [3, 3], [5, 4], [3, 3], [3, 2], [4, 3], [4, 3], [3, 3], [4, 4], [3, 3], [4, 3], [4, 4],
     [4, 3]]],
   275),
  ('normal control 1',
   [[[4, 4], [4, 3], [3, 3], [5, 5], [5, 5], [4, 2], [5, 5], [5, 5], [5, 4], [4, 3], [4, 4], [5, 5], [4, 4],
     [3, 3], [3, 2], [3, 2], [3, 2], [3, 1]]],
   550),
  ('normal control 2',
   [[[4, 4], [4, 4], [3, 2], [4, 2], [5, 5], [5, 5], [4, 4], [4, 3], [4, 4], [4, 3], [4, 3], [4, 2], [4, 3],
     [5, 4], [5, 5], [4, 4], [5, 5], [4, 3]]],
   525),
  ('normal control 3',
   [[[4, 5], [4, 2], [4, 4], [3, 2], [4, 4], [3, 1], [5, 5], [5, 5], [5, 5], [5, 5], [4, 4], [5, 7], [4, 2],
     [4, 4], [4, 4], [3, 2], [5, 4], [3, 2]]],
   520),
  ('normal control 4',
   [[[5, 5], [3, 3], [4, 3], [4, 3], [4, 4], [5, 5], [5, 4], [5, 5], [5, 5], [4, 4], [5, 4], [4, 3], [4, 4],
     [4, 4], [4, 3], [4, 3], [4, 4], [5, 5]]],
   295)],
 [('regression: bogey-free completion',
   [[[3, 1], [5, 5], [4, 4], [4, 3], [5, 5], [4, 4], [3, 2], [4, 1], [3, 2], [4, 1], [4, 4], [3, 1], [4, 3],
     [5, 5]]],
   800),
  ('partial repair probe: bogey-free completion',
   [[[5, 5], [4, 4], [4, 3], [3, 2], [4, 4], [5, 5], [5, 5], [5, 5], [4, 3], [5, 5], [4, 4], [4, 3], [3, 3],
     [5, 5]]],
   170),
  ('second regression',
   [[[4, 4], [4, 3], [5, 4], [4, 2], [5, 4], [5, 4], [4, 3], [3, 3], [4, 4], [4, 4], [4, 1], [5, 5], [4, 4],
     [3, 3]]],
   475),
  ('normal control 1',
   [[[5, 5], [4, 2], [4, 2], [4, 3], [3, 5], [5, 6], [4, 4], [4, 3], [4, 3], [5, 5], [5, 5], [3, 2], [4, 3],
     [4, 3], [4, 5], [4, 5], [3, 2], [4, 3]]],
   505),
  ('normal control 2',
   [[[5, 5], [3, 1], [3, 3], [4, 4], [5, 4], [4, 1], [3, 1], [3, 3], [5, 4], [3, 3], [5, 4], [4, 3], [4, 4],
     [3, 1], [3, 1], [3, 3], [3, 2], [4, 3]]],
   1025),
  ('normal control 3',
   [[[4, 3], [3, 2], [4, 4], [4, 4], [5, 4], [4, 3], [5, 5], [3, 3], [5, 3], [5, 4], [5, 5], [3, 3], [4, 3],
     [4, 4], [5, 5], [5, 5], [4, 4], [3, 3]]],
   395),
  ('normal control 4',
   [[[4, 3], [4, 4], [3, 5], [4, 6], [4, 4], [4, 4], [4, 6], [4, 4], [3, 2], [5, 6], [4, 5], [3, 3], [4, 6],
     [4, 4], [3, 2], [3, 2], [3, 3], [4, 6]]],
   95)],
 [('regression: bogey-free completion',
   [[[4, 4], [4, 4], [5, 4], [4, 1], [4, 3], [5, 4], [5, 5], [5, 5], [4, 4]]], 325),
  ('partial repair probe: bogey-free completion',
   [[[5, 4], [5, 4], [3, 3], [3, 2], [4, 2], [3, 2], [3, 3], [3, 1], [4, 4]]], 375),
  ('second regression',
   [[[4, 4], [4, 4], [3, 2], [3, 3], [5, 5], [3, 2], [4, 2], [3, 2], [3, 3], [4, 4], [3, 3], [5, 5], [3, 3],
     [4, 2]]],
   325),
  ('normal control 1',
   [[[5, 5], [3, 5], [4, 4], [4, 3], [5, 3], [4, 6], [5, 6], [4, 3], [5, 5], [5, 7], [5, 4], [4, 3], [4, 2],
     [5, 4], [4, 4], [4, 3], [4, 4], [4, 3]]],
   390),
  ('normal control 2',
   [[[4, 4], [5, 5], [4, 4], [5, 5], [5, 5], [4, 4], [3, 3], [4, 4], [3, 1], [3, 2], [3, 3], [4, 4], [4, 3],
     [4, 3], [3, 3], [5, 5], [3, 3], [4, 3]]],
   395),
  ('normal control 3',
   [[[5, 7], [4, 1], [4, 4], [4, 4], [3, 2], [5, 3], [4, 3], [4, 4], [5, 5], [3, 3], [5, 5], [4, 4], [4, 3],
     [4, 4], [4, 4], [4, 3], [4, 1], [4, 5]]],
   670),
  ('normal control 4', [[[3, 3], [4, 4], [4, 3], [4, 4], [5, 7], [4, 4], [5, 7], [4, 4], [4, 3]]], 65)],
 [('regression: bogey-free completion',
   [[[5, 4], [3, 3], [4, 2], [4, 4], [4, 2], [4, 3], [5, 5], [4, 4], [4, 4]]], 245),
  ('partial repair probe: bogey-free completion',
   [[[4, 3], [5, 5], [4, 3], [4, 3], [5, 4], [5, 4], [3, 2], [3, 2], [4, 4]]], 250),
  ('second regression', [[[3, 2], [4, 4], [5, 4], [4, 4], [4, 4], [3, 3], [5, 5], [4, 2], [5, 5]]], 170),
  ('normal control 1',
   [[[4, 3], [4, 3], [4, 6], [4, 6], [5, 7], [5, 5], [3, 2], [4, 5], [4, 3], [4, 3], [5, 5], [3, 3], [3, 1],
     [3, 5]]],
   250),
  ('normal control 2',
   [[[3, 5], [5, 5], [4, 6], [4, 4], [3, 2], [5, 5], [5, 4], [5, 4], [3, 2], [4, 4], [5, 7], [4, 2], [3, 4],
     [3, 1], [4, 3], [4, 4], [4, 2], [4, 3]]],
   540),
  ('normal control 3',
   [[[3, 1], [3, 3], [5, 5], [4, 3], [4, 4], [3, 4], [4, 4], [5, 6], [3, 1], [4, 3], [4, 2], [3, 3], [4, 4],
     [4, 5], [5, 4], [4, 4], [3, 3], [5, 7]]],
   525),
  ('normal control 4',
   [[[4, 4], [3, 2], [4, 4], [4, 1], [3, 3], [4, 3], [5, 4], [4, 4], [4, 2], [3, 3], [4, 3], [4, 4], [4, 4],
     [5, 5], [4, 2], [4, 3], [5, 4], [4, 3]]],
   700)]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: bogey-free completion9595Passed
partial repair probe: bogey-free completion200200Passed
second regression280280Passed
normal control 1125125Passed
normal control 2150150Passed
normal control 3220220Passed
normal control 4210210Passed

SHA-256 / 68e669f392f2aa6b5b417973f19970ce173a9ab584d80dda524db947a4e4a794

Verification & scope

A deterministic toy scoring contract stipulated for this example; it is not the rulebook of any real fantasy platform. 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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:50:39.081507+00:00.

Case digest / 3ef10abb9a1c104180532ac27fc3add160c4adceb5082577984491b178c9d77a