FAILURE MAP
← Case archive

FA-84136 / Sports scoring and tiebreakers / Open access

Home team declared winner while only tied before the bottom half · case 01

A game tied after the top of the ninth is declared final.

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

ROOT CAUSE

The skip-the-bottom-half test uses H >= A.

VERIFIED REPAIR

Only end without the bottom half when the home team strictly leads.

Unsuccessful approach: Requiring extra innings for the skip ignores a regulation home lead after the top of the ninth.

Case contract

Game status from a line score. away and home list runs per inning; home has either the same number of entries as away or one fewer (bottom half not yet played), otherwise return "invalid". When home is one short: if at least scheduled innings have started and home leads, the game is final (home wins without batting); otherwise in progress. When equal length: if at least scheduled innings are complete and the score is not tied, the game is final; ties continue into extra innings. Return ["final", "home"/"away", innings] or ["in progress", None, None].

Why this case matters

Scoreboards and settlement engines decide when a baseball game is official and who won.

1 / The failure

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

N = 1
observations = []
def solve(away, home, scheduled):
    A = sum(away)
    H = sum(home)
    na, nh = len(away), len(home)
    if nh not in (na, na - 1):
        return 'invalid'
    if nh == na - 1:
        if na >= scheduled and H >= A:
            return ['final', 'home', na]
        return ['in progress', None, None]
    if na >= scheduled and A != H:
        return ['final', 'home' if H > A else 'away', na]
    return ['in progress', None, None]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([1, 2, 3, 3, 2, 0, 0, 0, 0], [0, 2, 1, 2, 1, 1, 3, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([1, 3, 0, 0, 2, 1, 1, 1], [0, 2, 0, 0, 0, 1, 3, 0], 9),
   ['in progress', None, None]),
  ('variant scenario 2', ([1, 0, 0, 0, 0, 2], [3, 0, 1, 2, 3, 0], 9), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 1, 0, 0, 0, 2, 2], [0, 1, 0, 2, 2, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([0, 0, 0, 1, 2, 1, 1, 2, 0, 3, 0], [3, 3, 0, 0, 1, 0, 0, 1, 0, 2], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([2, 0, 2, 1, 3, 0, 0, 3, 1, 0, 0, 0], [0, 0, 0, 0, 3, 0, 1, 1, 0, 2, 3, 3], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 0, 0, 0, 2, 2, 3, 2, 0, 1], [2, 0, 3, 1, 3, 0, 1, 1, 2, 2], 7),
   ['final', 'home', 10])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 0, 0, 3, 1, 0, 0, 1, 3], [0, 1, 3, 0, 1, 3, 3, 3], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([0, 1, 0, 1, 1, 2, 1, 1, 2], [3, 0, 1, 2, 0, 0, 2, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1', ([2, 2, 2, 1, 1, 3], [0, 0, 2, 1, 0], 9), ['in progress', None, None]),
  ('variant scenario 2', ([1, 3, 0, 1, 0, 0], [0, 0, 1, 0, 0], 7), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 0, 0, 1, 1, 0, 0, 3], [0, 2, 2, 1, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('regression: home lead skip',
   ([1, 2, 0, 0, 0, 1, 2, 1, 0], [3, 3, 1, 2, 2, 1, 1, 1], 9),
   ['final', 'home', 9]),
  ('variant scenario 1',
   ([1, 1, 0, 1, 1, 1, 0, 1, 0, 0], [0, 2, 3, 1, 2, 0, 3, 1, 1, 3, 1], 9),
   'invalid'),
  ('variant scenario 2',
   ([2, 0, 0, 0, 3, 2, 3, 2], [0, 0, 2, 0, 0, 1, 3, 1], 9),
   ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 3, 0, 0, 0, 3, 0, 0], [0, 0, 0, 0, 2, 2, 3, 0], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([1, 1, 1, 3, 3, 2, 1, 0, 1, 0, 2, 0], [0, 0, 0, 3, 3, 3, 0, 3, 0, 2, 1], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([0, 3, 0, 3, 0, 2, 0, 1, 3, 1, 0], [1, 0, 1, 2, 1, 0, 0, 0, 2, 1, 0], 9),
   ['final', 'away', 11]),
  ('variant scenario 2',
   ([1, 0, 2, 1, 1, 2, 0], [3, 1, 0, 0, 1, 0], 7),
   ['in progress', None, None])]]
for label, args, expected in cases[N - 1]:
    check(label, run(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
control home leads skip bottom ninth['final', 'home', 9]['final', 'home', 9]Passed
boundary tied after nine['in progress', None, None]['in progress', None, None]Passed
control away wins in ten['final', 'away', 10]['final', 'away', 10]Passed
boundary mid-game['in progress', None, None]['in progress', None, None]Passed
boundary home trails before bottom ninth['in progress', None, None]['in progress', None, None]Passed
control malformed lineinvalidinvalidPassed
regression: home lead skip['final', 'home', 7]['final', 'home', 7]Passed
regression: home lead skip['final', 'home', 9]['in progress', None, None]Failed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['in progress', None, None]['in progress', None, None]Passed

SHA-256 / 2ae983eac7ea772254bae71026b5d872c051de05a73f2fb2e4028cfa23a29d3a

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(away, home, scheduled):
    A = sum(away)
    H = sum(home)
    na, nh = len(away), len(home)
    if nh not in (na, na - 1):
        return 'invalid'
    if nh == na - 1:
        if na > scheduled and H > A:
            return ['final', 'home', na]
        return ['in progress', None, None]
    if na >= scheduled and A != H:
        return ['final', 'home' if H > A else 'away', na]
    return ['in progress', None, None]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([1, 2, 3, 3, 2, 0, 0, 0, 0], [0, 2, 1, 2, 1, 1, 3, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([1, 3, 0, 0, 2, 1, 1, 1], [0, 2, 0, 0, 0, 1, 3, 0], 9),
   ['in progress', None, None]),
  ('variant scenario 2', ([1, 0, 0, 0, 0, 2], [3, 0, 1, 2, 3, 0], 9), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 1, 0, 0, 0, 2, 2], [0, 1, 0, 2, 2, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([0, 0, 0, 1, 2, 1, 1, 2, 0, 3, 0], [3, 3, 0, 0, 1, 0, 0, 1, 0, 2], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([2, 0, 2, 1, 3, 0, 0, 3, 1, 0, 0, 0], [0, 0, 0, 0, 3, 0, 1, 1, 0, 2, 3, 3], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 0, 0, 0, 2, 2, 3, 2, 0, 1], [2, 0, 3, 1, 3, 0, 1, 1, 2, 2], 7),
   ['final', 'home', 10])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 0, 0, 3, 1, 0, 0, 1, 3], [0, 1, 3, 0, 1, 3, 3, 3], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([0, 1, 0, 1, 1, 2, 1, 1, 2], [3, 0, 1, 2, 0, 0, 2, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1', ([2, 2, 2, 1, 1, 3], [0, 0, 2, 1, 0], 9), ['in progress', None, None]),
  ('variant scenario 2', ([1, 3, 0, 1, 0, 0], [0, 0, 1, 0, 0], 7), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 0, 0, 1, 1, 0, 0, 3], [0, 2, 2, 1, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('regression: home lead skip',
   ([1, 2, 0, 0, 0, 1, 2, 1, 0], [3, 3, 1, 2, 2, 1, 1, 1], 9),
   ['final', 'home', 9]),
  ('variant scenario 1',
   ([1, 1, 0, 1, 1, 1, 0, 1, 0, 0], [0, 2, 3, 1, 2, 0, 3, 1, 1, 3, 1], 9),
   'invalid'),
  ('variant scenario 2',
   ([2, 0, 0, 0, 3, 2, 3, 2], [0, 0, 2, 0, 0, 1, 3, 1], 9),
   ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 3, 0, 0, 0, 3, 0, 0], [0, 0, 0, 0, 2, 2, 3, 0], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([1, 1, 1, 3, 3, 2, 1, 0, 1, 0, 2, 0], [0, 0, 0, 3, 3, 3, 0, 3, 0, 2, 1], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([0, 3, 0, 3, 0, 2, 0, 1, 3, 1, 0], [1, 0, 1, 2, 1, 0, 0, 0, 2, 1, 0], 9),
   ['final', 'away', 11]),
  ('variant scenario 2',
   ([1, 0, 2, 1, 1, 2, 0], [3, 1, 0, 0, 1, 0], 7),
   ['in progress', None, None])]]
for label, args, expected in cases[N - 1]:
    check(label, run(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
control home leads skip bottom ninth['in progress', None, None]['final', 'home', 9]Failed
boundary tied after nine['in progress', None, None]['in progress', None, None]Passed
control away wins in ten['final', 'away', 10]['final', 'away', 10]Passed
boundary mid-game['in progress', None, None]['in progress', None, None]Passed
boundary home trails before bottom ninth['in progress', None, None]['in progress', None, None]Passed
control malformed lineinvalidinvalidPassed
regression: home lead skip['in progress', None, None]['final', 'home', 7]Failed
regression: home lead skip['in progress', None, None]['in progress', None, None]Passed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['in progress', None, None]['in progress', None, None]Passed

SHA-256 / 76f742d0e8dbbb825f15f1f9702052d11c8831fd5188956245c28947b1313969

3 / The verified repair

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

N = 1
observations = []
def solve(away, home, scheduled):
    A = sum(away)
    H = sum(home)
    na, nh = len(away), len(home)
    if nh not in (na, na - 1):
        return 'invalid'
    if nh == na - 1:
        if na >= scheduled and H > A:
            return ['final', 'home', na]
        return ['in progress', None, None]
    if na >= scheduled and A != H:
        return ['final', 'home' if H > A else 'away', na]
    return ['in progress', None, None]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([1, 2, 3, 3, 2, 0, 0, 0, 0], [0, 2, 1, 2, 1, 1, 3, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([1, 3, 0, 0, 2, 1, 1, 1], [0, 2, 0, 0, 0, 1, 3, 0], 9),
   ['in progress', None, None]),
  ('variant scenario 2', ([1, 0, 0, 0, 0, 2], [3, 0, 1, 2, 3, 0], 9), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 1, 0, 0, 0, 2, 2], [0, 1, 0, 2, 2, 1], 7),
   ['final', 'home', 7]),
  ('regression: home lead skip',
   ([0, 0, 0, 1, 2, 1, 1, 2, 0, 3, 0], [3, 3, 0, 0, 1, 0, 0, 1, 0, 2], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([2, 0, 2, 1, 3, 0, 0, 3, 1, 0, 0, 0], [0, 0, 0, 0, 3, 0, 1, 1, 0, 2, 3, 3], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 0, 0, 0, 2, 2, 3, 2, 0, 1], [2, 0, 3, 1, 3, 0, 1, 1, 2, 2], 7),
   ['final', 'home', 10])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([1, 0, 0, 3, 1, 0, 0, 1, 3], [0, 1, 3, 0, 1, 3, 3, 3], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([0, 1, 0, 1, 1, 2, 1, 1, 2], [3, 0, 1, 2, 0, 0, 2, 1], 7),
   ['in progress', None, None]),
  ('variant scenario 1', ([2, 2, 2, 1, 1, 3], [0, 0, 2, 1, 0], 9), ['in progress', None, None]),
  ('variant scenario 2', ([1, 3, 0, 1, 0, 0], [0, 0, 1, 0, 0], 7), ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 0, 0, 1, 1, 0, 0, 3], [0, 2, 2, 1, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('regression: home lead skip',
   ([1, 2, 0, 0, 0, 1, 2, 1, 0], [3, 3, 1, 2, 2, 1, 1, 1], 9),
   ['final', 'home', 9]),
  ('variant scenario 1',
   ([1, 1, 0, 1, 1, 1, 0, 1, 0, 0], [0, 2, 3, 1, 2, 0, 3, 1, 1, 3, 1], 9),
   'invalid'),
  ('variant scenario 2',
   ([2, 0, 0, 0, 3, 2, 3, 2], [0, 0, 2, 0, 0, 1, 3, 1], 9),
   ['in progress', None, None])],
 [('control home leads skip bottom ninth',
   ([0, 0, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'home', 9]),
  ('boundary tied after nine',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control away wins in ten',
   ([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['final', 'away', 10]),
  ('boundary mid-game', ([1, 0, 0], [0, 0], 9), ['in progress', None, None]),
  ('boundary home trails before bottom ninth',
   ([1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], 9),
   ['in progress', None, None]),
  ('control malformed line', ([1, 0], [0, 0, 0], 9), 'invalid'),
  ('regression: home lead skip',
   ([0, 0, 3, 0, 0, 0, 3, 0, 0], [0, 0, 0, 0, 2, 2, 3, 0], 9),
   ['final', 'home', 9]),
  ('regression: home lead skip',
   ([1, 1, 1, 3, 3, 2, 1, 0, 1, 0, 2, 0], [0, 0, 0, 3, 3, 3, 0, 3, 0, 2, 1], 9),
   ['in progress', None, None]),
  ('variant scenario 1',
   ([0, 3, 0, 3, 0, 2, 0, 1, 3, 1, 0], [1, 0, 1, 2, 1, 0, 0, 0, 2, 1, 0], 9),
   ['final', 'away', 11]),
  ('variant scenario 2',
   ([1, 0, 2, 1, 1, 2, 0], [3, 1, 0, 0, 1, 0], 7),
   ['in progress', None, None])]]
for label, args, expected in cases[N - 1]:
    check(label, run(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
control home leads skip bottom ninth['final', 'home', 9]['final', 'home', 9]Passed
boundary tied after nine['in progress', None, None]['in progress', None, None]Passed
control away wins in ten['final', 'away', 10]['final', 'away', 10]Passed
boundary mid-game['in progress', None, None]['in progress', None, None]Passed
boundary home trails before bottom ninth['in progress', None, None]['in progress', None, None]Passed
control malformed lineinvalidinvalidPassed
regression: home lead skip['final', 'home', 7]['final', 'home', 7]Passed
regression: home lead skip['in progress', None, None]['in progress', None, None]Passed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['in progress', None, None]['in progress', None, None]Passed

SHA-256 / 88606f4caa26f41a8ef08eb3c4e32641dcd68dc7053de2f8b19fedbe2cd91ca9

Verification & scope

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.

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

Case digest / 9d66158081c9876584bec14d417f1c5390d0b03499aa9689f3cb602ba2fcba99