FAILURE MAP
← Case archive

FA-84151 / Sports scoring and tiebreakers / Open access

Malformed line scores accepted · case 01

A line score with two missing home innings or an extra home inning is scored.

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

ROOT CAUSE

Validation only rejects a home line longer than the away line.

VERIFIED REPAIR

Accept only equal length or home exactly one inning short.

Unsuccessful approach: Rejecting only a difference larger than one still accepts a home line one inning longer.

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 > na:
        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: line length validation',
   ([2, 0, 0, 0, 1, 1, 3, 3, 2, 1, 1], [1, 3, 0, 1, 0, 1, 1, 3, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 1, 1, 0, 0, 1, 1, 2, 1, 0], [2, 2, 2, 0, 2, 1, 3, 2, 0, 0, 1], 7),
   'invalid'),
  ('variant scenario 1', ([0, 2, 1, 3, 3, 1], [3, 0, 1, 0, 0, 2], 9), ['in progress', None, None]),
  ('variant scenario 2',
   ([0, 2, 2, 0, 3, 0, 1, 3, 0, 3, 1], [0, 2, 3, 1, 0, 1, 0, 0, 1, 0, 0], 9),
   ['final', 'away', 11])],
 [('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: line length validation',
   ([0, 0, 1, 0, 1, 0, 0, 3], [1, 0, 1, 2, 1, 3], 9),
   'invalid'),
  ('regression: line length validation',
   ([1, 0, 1, 3, 0, 0, 0, 0, 1, 1, 2, 0], [1, 1, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([2, 1, 2, 3, 0, 1, 1, 0, 0, 0, 0, 1], [2, 1, 0, 2, 2, 0, 2, 1, 0, 1, 1, 2], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 2, 1, 3, 0, 3, 3], [0, 3, 3, 0, 0, 3, 3], 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: line length validation',
   ([0, 1, 2, 0, 1, 3, 1, 0, 0, 2], [0, 0, 3, 2, 1, 1, 0, 1, 3, 0, 1], 9),
   'invalid'),
  ('regression: line length validation', ([0, 1, 1, 0, 1, 1], [0, 0, 2, 0], 7), 'invalid'),
  ('variant scenario 1',
   ([3, 0, 3, 1, 0, 0, 0, 0, 1], [1, 0, 3, 0, 3, 2, 0, 0], 7),
   ['final', 'home', 9]),
  ('variant scenario 2', ([0, 0, 1, 0, 3, 0, 0], [0, 3, 2, 3, 3, 0, 0], 7), ['final', 'home', 7])],
 [('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: line length validation',
   ([0, 0, 0, 0, 3, 0, 0, 0, 1, 0], [0, 3, 0, 0, 3, 1, 1, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 0, 1, 1, 0, 0, 1, 1, 2], [2, 2, 0, 3, 0, 1, 3, 0, 1, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([1, 2, 0, 1, 1, 0, 0, 1, 0], [1, 0, 1, 1, 1, 1, 3, 0, 0], 9),
   ['final', 'home', 9]),
  ('variant scenario 2',
   ([3, 3, 1, 0, 2, 0, 0, 0], [0, 1, 2, 3, 3, 2, 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: line length validation',
   ([1, 0, 1, 1, 1, 0, 0, 1, 3, 2, 0, 0], [1, 1, 3, 0, 0, 3, 1, 0, 0, 0], 9),
   'invalid'),
  ('regression: line length validation', ([0, 0, 0, 0, 3, 1], [2, 3, 2, 2, 1, 3, 1], 9), 'invalid'),
  ('variant scenario 1', ([2, 1, 1, 0], [0, 0, 1], 7), ['in progress', None, None]),
  ('variant scenario 2', ([0, 2, 0, 2, 0, 0], [0, 2, 1, 0, 0], 9), ['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: line length validation['final', 'away', 11]invalidFailed
regression: line length validationinvalidinvalidPassed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['final', 'away', 11]['final', 'away', 11]Passed

SHA-256 / 75dbcda803fe801a005d68e91793b945302c63208faeeabf23993a99762c9767

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 abs(na - nh) > 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: line length validation',
   ([2, 0, 0, 0, 1, 1, 3, 3, 2, 1, 1], [1, 3, 0, 1, 0, 1, 1, 3, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 1, 1, 0, 0, 1, 1, 2, 1, 0], [2, 2, 2, 0, 2, 1, 3, 2, 0, 0, 1], 7),
   'invalid'),
  ('variant scenario 1', ([0, 2, 1, 3, 3, 1], [3, 0, 1, 0, 0, 2], 9), ['in progress', None, None]),
  ('variant scenario 2',
   ([0, 2, 2, 0, 3, 0, 1, 3, 0, 3, 1], [0, 2, 3, 1, 0, 1, 0, 0, 1, 0, 0], 9),
   ['final', 'away', 11])],
 [('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: line length validation',
   ([0, 0, 1, 0, 1, 0, 0, 3], [1, 0, 1, 2, 1, 3], 9),
   'invalid'),
  ('regression: line length validation',
   ([1, 0, 1, 3, 0, 0, 0, 0, 1, 1, 2, 0], [1, 1, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([2, 1, 2, 3, 0, 1, 1, 0, 0, 0, 0, 1], [2, 1, 0, 2, 2, 0, 2, 1, 0, 1, 1, 2], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 2, 1, 3, 0, 3, 3], [0, 3, 3, 0, 0, 3, 3], 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: line length validation',
   ([0, 1, 2, 0, 1, 3, 1, 0, 0, 2], [0, 0, 3, 2, 1, 1, 0, 1, 3, 0, 1], 9),
   'invalid'),
  ('regression: line length validation', ([0, 1, 1, 0, 1, 1], [0, 0, 2, 0], 7), 'invalid'),
  ('variant scenario 1',
   ([3, 0, 3, 1, 0, 0, 0, 0, 1], [1, 0, 3, 0, 3, 2, 0, 0], 7),
   ['final', 'home', 9]),
  ('variant scenario 2', ([0, 0, 1, 0, 3, 0, 0], [0, 3, 2, 3, 3, 0, 0], 7), ['final', 'home', 7])],
 [('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: line length validation',
   ([0, 0, 0, 0, 3, 0, 0, 0, 1, 0], [0, 3, 0, 0, 3, 1, 1, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 0, 1, 1, 0, 0, 1, 1, 2], [2, 2, 0, 3, 0, 1, 3, 0, 1, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([1, 2, 0, 1, 1, 0, 0, 1, 0], [1, 0, 1, 1, 1, 1, 3, 0, 0], 9),
   ['final', 'home', 9]),
  ('variant scenario 2',
   ([3, 3, 1, 0, 2, 0, 0, 0], [0, 1, 2, 3, 3, 2, 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: line length validation',
   ([1, 0, 1, 1, 1, 0, 0, 1, 3, 2, 0, 0], [1, 1, 3, 0, 0, 3, 1, 0, 0, 0], 9),
   'invalid'),
  ('regression: line length validation', ([0, 0, 0, 0, 3, 1], [2, 3, 2, 2, 1, 3, 1], 9), 'invalid'),
  ('variant scenario 1', ([2, 1, 1, 0], [0, 0, 1], 7), ['in progress', None, None]),
  ('variant scenario 2', ([0, 2, 0, 2, 0, 0], [0, 2, 1, 0, 0], 9), ['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 line['in progress', None, None]invalidFailed
regression: line length validationinvalidinvalidPassed
regression: line length validation['final', 'home', 10]invalidFailed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['final', 'away', 11]['final', 'away', 11]Passed

SHA-256 / 97fdaa221d986877e6f07cbdb09dd5da42c613200c955b6abbef7a26e1bc1107

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: line length validation',
   ([2, 0, 0, 0, 1, 1, 3, 3, 2, 1, 1], [1, 3, 0, 1, 0, 1, 1, 3, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 1, 1, 0, 0, 1, 1, 2, 1, 0], [2, 2, 2, 0, 2, 1, 3, 2, 0, 0, 1], 7),
   'invalid'),
  ('variant scenario 1', ([0, 2, 1, 3, 3, 1], [3, 0, 1, 0, 0, 2], 9), ['in progress', None, None]),
  ('variant scenario 2',
   ([0, 2, 2, 0, 3, 0, 1, 3, 0, 3, 1], [0, 2, 3, 1, 0, 1, 0, 0, 1, 0, 0], 9),
   ['final', 'away', 11])],
 [('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: line length validation',
   ([0, 0, 1, 0, 1, 0, 0, 3], [1, 0, 1, 2, 1, 3], 9),
   'invalid'),
  ('regression: line length validation',
   ([1, 0, 1, 3, 0, 0, 0, 0, 1, 1, 2, 0], [1, 1, 0, 1, 0, 3, 1, 0, 0, 2, 1, 0, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([2, 1, 2, 3, 0, 1, 1, 0, 0, 0, 0, 1], [2, 1, 0, 2, 2, 0, 2, 1, 0, 1, 1, 2], 9),
   ['final', 'home', 12]),
  ('variant scenario 2',
   ([0, 2, 1, 3, 0, 3, 3], [0, 3, 3, 0, 0, 3, 3], 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: line length validation',
   ([0, 1, 2, 0, 1, 3, 1, 0, 0, 2], [0, 0, 3, 2, 1, 1, 0, 1, 3, 0, 1], 9),
   'invalid'),
  ('regression: line length validation', ([0, 1, 1, 0, 1, 1], [0, 0, 2, 0], 7), 'invalid'),
  ('variant scenario 1',
   ([3, 0, 3, 1, 0, 0, 0, 0, 1], [1, 0, 3, 0, 3, 2, 0, 0], 7),
   ['final', 'home', 9]),
  ('variant scenario 2', ([0, 0, 1, 0, 3, 0, 0], [0, 3, 2, 3, 3, 0, 0], 7), ['final', 'home', 7])],
 [('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: line length validation',
   ([0, 0, 0, 0, 3, 0, 0, 0, 1, 0], [0, 3, 0, 0, 3, 1, 1, 1], 9),
   'invalid'),
  ('regression: line length validation',
   ([0, 0, 1, 1, 0, 0, 1, 1, 2], [2, 2, 0, 3, 0, 1, 3, 0, 1, 1], 9),
   'invalid'),
  ('variant scenario 1',
   ([1, 2, 0, 1, 1, 0, 0, 1, 0], [1, 0, 1, 1, 1, 1, 3, 0, 0], 9),
   ['final', 'home', 9]),
  ('variant scenario 2',
   ([3, 3, 1, 0, 2, 0, 0, 0], [0, 1, 2, 3, 3, 2, 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: line length validation',
   ([1, 0, 1, 1, 1, 0, 0, 1, 3, 2, 0, 0], [1, 1, 3, 0, 0, 3, 1, 0, 0, 0], 9),
   'invalid'),
  ('regression: line length validation', ([0, 0, 0, 0, 3, 1], [2, 3, 2, 2, 1, 3, 1], 9), 'invalid'),
  ('variant scenario 1', ([2, 1, 1, 0], [0, 0, 1], 7), ['in progress', None, None]),
  ('variant scenario 2', ([0, 2, 0, 2, 0, 0], [0, 2, 1, 0, 0], 9), ['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: line length validationinvalidinvalidPassed
regression: line length validationinvalidinvalidPassed
variant scenario 1['in progress', None, None]['in progress', None, None]Passed
variant scenario 2['final', 'away', 11]['final', 'away', 11]Passed

SHA-256 / 478facf856647e5e8c482dbe528e7aff62e45cd06de972c81a7f3eb7bf46bebb

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:28.283294+00:00.

Case digest / 6e73bbf8ed655e109532e848575433c040e53207ba7e57b4b7526a462e3ee3e2