FAILURE MAP
← Case archive

FA-85076 / Fantasy sports scoring / Open access

Innings pitched parsed as a decimal number · case 01

A 6.2 inning start is credited with 19 outs instead of 20.

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

ROOT CAUSE

The .1/.2 out notation is read as tenths of an inning.

VERIFIED REPAIR

Split the notation into whole innings and extra outs.

Unsuccessful approach: Truncating the decimal product still reads .1 and .2 as tenths.

Case contract

Score a pitching line in hundredths. Innings pitched use baseball notation: "6.2" means six innings and two outs; each out is worth 1 point. Strikeout +1, hit -1, walk -1, earned run -2, win +5, loss -3, save +5, hold +3 (ignored when the line also has a save), blown save -3, quality start (at least 18 outs and at most 3 earned runs) +3. Return outs and points.

Why this case matters

Innings-pitched notation and quality-start edges are recurring baseball fantasy scoring bugs.

1 / The failure

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

N = 1
observations = []
def solve(line):
    whole, _, part = line['ip'].partition('.')
    outs = round(float(line['ip']) * 3)
    pts = outs * 100
    pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200
    if line['w']:
        pts += 500
    if line['l']:
        pts -= 300
    if line['sv']:
        pts += 500
    elif line['hld']:
        pts += 300
    if line['bs']:
        pts -= 300
    if outs >= 18 and line['er'] <= 3:
        pts += 300
    return {'outs': outs, 'points': pts}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 5,
     'h': 4,
     'hld': False,
     'ip': '5.2',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 7,
     'hld': False,
     'ip': '0.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': -1200}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '6.2',
     'k': 6,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 20, 'points': 700}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': False,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2800}),
  ('normal control 2',
   [{'bb': 1,
     'bs': True,
     'er': 4,
     'h': 8,
     'hld': False,
     'ip': '1.0',
     'k': 9,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': -600}),
  ('normal control 3',
   [{'bb': 4,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '1.0',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900}),
  ('normal control 4',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '7',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2200})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 0,
     'hld': False,
     'ip': '0.1',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': 0}),
  ('partial repair probe: innings notation',
   [{'bb': 1,
     'bs': False,
     'er': 3,
     'h': 4,
     'hld': True,
     'ip': '5.2',
     'k': 4,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1500}),
  ('second regression',
   [{'bb': 0,
     'bs': True,
     'er': 2,
     'h': 9,
     'hld': False,
     'ip': '2.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 8, 'points': -200}),
  ('normal control 1',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 1,
     'hld': False,
     'ip': '7',
     'k': 0,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1400}),
  ('normal control 2',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 18, 'points': 800}),
  ('normal control 3',
   [{'bb': 0,
     'bs': True,
     'er': 0,
     'h': 2,
     'hld': True,
     'ip': '7',
     'k': 11,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 3800}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 0,
     'h': 6,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 2300})],
 [('regression: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '2.2',
     'k': 9,
     'l': True,
     'sv': False,
     'w': True}],
   {'outs': 8, 'points': 600}),
  ('partial repair probe: innings notation',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 5,
     'hld': False,
     'ip': '5.2',
     'k': 10,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 19, 'points': 1500}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 4,
     'h': 2,
     'hld': False,
     'ip': '1.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 3, 'points': -300}),
  ('normal control 2',
   [{'bb': 4,
     'bs': True,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 18, 'points': 500}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 7,
     'hld': False,
     'ip': '6.0',
     'k': 5,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': True,
     'ip': '6.2',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 20, 'points': 2300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 0,
     'hld': True,
     'ip': '5.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 1,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 25, 'points': 1600}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 5,
     'h': 9,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -200}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '5.0',
     'k': 10,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 15, 'points': 1100}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 0,
     'h': 3,
     'hld': False,
     'ip': '7',
     'k': 7,
     'l': False,
     'sv': True,
     'w': True}],
   {'outs': 21, 'points': 3600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 8,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 1000})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 8,
     'hld': False,
     'ip': '0.1',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 1, 'points': -800}),
  ('partial repair probe: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': True,
     'sv': True,
     'w': True}],
   {'outs': 25, 'points': 1900}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 6,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 19, 'points': 900}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 100}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 400}),
  ('normal control 3',
   [{'bb': 0,
     'bs': False,
     'er': 3,
     'h': 6,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': 200}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1700})]]
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: innings notation{'outs': 16, 'points': 200}{'outs': 17, 'points': 300}Failed
partial repair probe: innings notation{'outs': 0, 'points': -1300}{'outs': 1, 'points': -1200}Failed
second regression{'outs': 19, 'points': 600}{'outs': 20, 'points': 700}Failed
normal control 1{'outs': 21, 'points': 2800}{'outs': 21, 'points': 2800}Passed
normal control 2{'outs': 3, 'points': -600}{'outs': 3, 'points': -600}Passed
normal control 3{'outs': 3, 'points': -900}{'outs': 3, 'points': -900}Passed
normal control 4{'outs': 21, 'points': 2200}{'outs': 21, 'points': 2200}Passed

SHA-256 / d5f53e1b4643bccb446f586a5a2af43b4e0873d02c6ce70d6e5fa905eb3fa90f

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(line):
    whole, _, part = line['ip'].partition('.')
    outs = int(float(line['ip']) * 3)
    pts = outs * 100
    pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200
    if line['w']:
        pts += 500
    if line['l']:
        pts -= 300
    if line['sv']:
        pts += 500
    elif line['hld']:
        pts += 300
    if line['bs']:
        pts -= 300
    if outs >= 18 and line['er'] <= 3:
        pts += 300
    return {'outs': outs, 'points': pts}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 5,
     'h': 4,
     'hld': False,
     'ip': '5.2',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 7,
     'hld': False,
     'ip': '0.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': -1200}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '6.2',
     'k': 6,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 20, 'points': 700}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': False,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2800}),
  ('normal control 2',
   [{'bb': 1,
     'bs': True,
     'er': 4,
     'h': 8,
     'hld': False,
     'ip': '1.0',
     'k': 9,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': -600}),
  ('normal control 3',
   [{'bb': 4,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '1.0',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900}),
  ('normal control 4',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '7',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2200})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 0,
     'hld': False,
     'ip': '0.1',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': 0}),
  ('partial repair probe: innings notation',
   [{'bb': 1,
     'bs': False,
     'er': 3,
     'h': 4,
     'hld': True,
     'ip': '5.2',
     'k': 4,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1500}),
  ('second regression',
   [{'bb': 0,
     'bs': True,
     'er': 2,
     'h': 9,
     'hld': False,
     'ip': '2.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 8, 'points': -200}),
  ('normal control 1',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 1,
     'hld': False,
     'ip': '7',
     'k': 0,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1400}),
  ('normal control 2',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 18, 'points': 800}),
  ('normal control 3',
   [{'bb': 0,
     'bs': True,
     'er': 0,
     'h': 2,
     'hld': True,
     'ip': '7',
     'k': 11,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 3800}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 0,
     'h': 6,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 2300})],
 [('regression: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '2.2',
     'k': 9,
     'l': True,
     'sv': False,
     'w': True}],
   {'outs': 8, 'points': 600}),
  ('partial repair probe: innings notation',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 5,
     'hld': False,
     'ip': '5.2',
     'k': 10,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 19, 'points': 1500}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 4,
     'h': 2,
     'hld': False,
     'ip': '1.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 3, 'points': -300}),
  ('normal control 2',
   [{'bb': 4,
     'bs': True,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 18, 'points': 500}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 7,
     'hld': False,
     'ip': '6.0',
     'k': 5,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': True,
     'ip': '6.2',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 20, 'points': 2300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 0,
     'hld': True,
     'ip': '5.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 1,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 25, 'points': 1600}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 5,
     'h': 9,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -200}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '5.0',
     'k': 10,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 15, 'points': 1100}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 0,
     'h': 3,
     'hld': False,
     'ip': '7',
     'k': 7,
     'l': False,
     'sv': True,
     'w': True}],
   {'outs': 21, 'points': 3600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 8,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 1000})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 8,
     'hld': False,
     'ip': '0.1',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 1, 'points': -800}),
  ('partial repair probe: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': True,
     'sv': True,
     'w': True}],
   {'outs': 25, 'points': 1900}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 6,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 19, 'points': 900}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 100}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 400}),
  ('normal control 3',
   [{'bb': 0,
     'bs': False,
     'er': 3,
     'h': 6,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': 200}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1700})]]
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: innings notation{'outs': 15, 'points': 100}{'outs': 17, 'points': 300}Failed
partial repair probe: innings notation{'outs': 0, 'points': -1300}{'outs': 1, 'points': -1200}Failed
second regression{'outs': 18, 'points': 500}{'outs': 20, 'points': 700}Failed
normal control 1{'outs': 21, 'points': 2800}{'outs': 21, 'points': 2800}Passed
normal control 2{'outs': 3, 'points': -600}{'outs': 3, 'points': -600}Passed
normal control 3{'outs': 3, 'points': -900}{'outs': 3, 'points': -900}Passed
normal control 4{'outs': 21, 'points': 2200}{'outs': 21, 'points': 2200}Passed

SHA-256 / 8e352cb2d1dd0fc2ee104d22650c9a0bacc46484fb3d44ef356b435fc9a0f8d5

3 / The verified repair

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

N = 1
observations = []
def solve(line):
    whole, _, part = line['ip'].partition('.')
    outs = int(whole) * 3 + int(part or 0)
    pts = outs * 100
    pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200
    if line['w']:
        pts += 500
    if line['l']:
        pts -= 300
    if line['sv']:
        pts += 500
    elif line['hld']:
        pts += 300
    if line['bs']:
        pts -= 300
    if outs >= 18 and line['er'] <= 3:
        pts += 300
    return {'outs': outs, 'points': pts}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 5,
     'h': 4,
     'hld': False,
     'ip': '5.2',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 7,
     'hld': False,
     'ip': '0.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': -1200}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '6.2',
     'k': 6,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 20, 'points': 700}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': False,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2800}),
  ('normal control 2',
   [{'bb': 1,
     'bs': True,
     'er': 4,
     'h': 8,
     'hld': False,
     'ip': '1.0',
     'k': 9,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': -600}),
  ('normal control 3',
   [{'bb': 4,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '1.0',
     'k': 2,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900}),
  ('normal control 4',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '7',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 2200})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 0,
     'hld': False,
     'ip': '0.1',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 1, 'points': 0}),
  ('partial repair probe: innings notation',
   [{'bb': 1,
     'bs': False,
     'er': 3,
     'h': 4,
     'hld': True,
     'ip': '5.2',
     'k': 4,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1500}),
  ('second regression',
   [{'bb': 0,
     'bs': True,
     'er': 2,
     'h': 9,
     'hld': False,
     'ip': '2.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 8, 'points': -200}),
  ('normal control 1',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 1,
     'hld': False,
     'ip': '7',
     'k': 0,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1400}),
  ('normal control 2',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 18, 'points': 800}),
  ('normal control 3',
   [{'bb': 0,
     'bs': True,
     'er': 0,
     'h': 2,
     'hld': True,
     'ip': '7',
     'k': 11,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 21, 'points': 3800}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 0,
     'h': 6,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 2300})],
 [('regression: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '2.2',
     'k': 9,
     'l': True,
     'sv': False,
     'w': True}],
   {'outs': 8, 'points': 600}),
  ('partial repair probe: innings notation',
   [{'bb': 3,
     'bs': False,
     'er': 3,
     'h': 5,
     'hld': False,
     'ip': '5.2',
     'k': 10,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 19, 'points': 1500}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 4,
     'h': 2,
     'hld': False,
     'ip': '1.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 3, 'points': -300}),
  ('normal control 2',
   [{'bb': 4,
     'bs': True,
     'er': 5,
     'h': 1,
     'hld': False,
     'ip': '6.0',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 18, 'points': 500}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 4,
     'h': 7,
     'hld': False,
     'ip': '6.0',
     'k': 5,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -900})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 6,
     'hld': True,
     'ip': '6.2',
     'k': 4,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 20, 'points': 2300}),
  ('partial repair probe: innings notation',
   [{'bb': 4,
     'bs': False,
     'er': 2,
     'h': 0,
     'hld': True,
     'ip': '5.2',
     'k': 6,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 17, 'points': 1800}),
  ('second regression',
   [{'bb': 1,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 25, 'points': 1600}),
  ('normal control 1',
   [{'bb': 0,
     'bs': False,
     'er': 5,
     'h': 9,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': -200}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 3,
     'hld': False,
     'ip': '5.0',
     'k': 10,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 15, 'points': 1100}),
  ('normal control 3',
   [{'bb': 2,
     'bs': False,
     'er': 0,
     'h': 3,
     'hld': False,
     'ip': '7',
     'k': 7,
     'l': False,
     'sv': True,
     'w': True}],
   {'outs': 21, 'points': 3600}),
  ('normal control 4',
   [{'bb': 1,
     'bs': False,
     'er': 5,
     'h': 8,
     'hld': True,
     'ip': '6.0',
     'k': 8,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 18, 'points': 1000})],
 [('regression: innings notation',
   [{'bb': 2,
     'bs': False,
     'er': 2,
     'h': 8,
     'hld': False,
     'ip': '0.1',
     'k': 0,
     'l': False,
     'sv': False,
     'w': True}],
   {'outs': 1, 'points': -800}),
  ('partial repair probe: innings notation',
   [{'bb': 0,
     'bs': True,
     'er': 3,
     'h': 9,
     'hld': False,
     'ip': '8.1',
     'k': 2,
     'l': True,
     'sv': True,
     'w': True}],
   {'outs': 25, 'points': 1900}),
  ('second regression',
   [{'bb': 4,
     'bs': False,
     'er': 5,
     'h': 6,
     'hld': True,
     'ip': '6.1',
     'k': 8,
     'l': True,
     'sv': True,
     'w': False}],
   {'outs': 19, 'points': 900}),
  ('normal control 1',
   [{'bb': 1,
     'bs': False,
     'er': 2,
     'h': 5,
     'hld': False,
     'ip': '1.0',
     'k': 3,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 100}),
  ('normal control 2',
   [{'bb': 2,
     'bs': False,
     'er': 3,
     'h': 7,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': False,
     'sv': True,
     'w': False}],
   {'outs': 3, 'points': 400}),
  ('normal control 3',
   [{'bb': 0,
     'bs': False,
     'er': 3,
     'h': 6,
     'hld': True,
     'ip': '1.0',
     'k': 11,
     'l': True,
     'sv': False,
     'w': False}],
   {'outs': 3, 'points': 200}),
  ('normal control 4',
   [{'bb': 3,
     'bs': False,
     'er': 4,
     'h': 5,
     'hld': True,
     'ip': '7',
     'k': 9,
     'l': False,
     'sv': False,
     'w': False}],
   {'outs': 21, 'points': 1700})]]
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: innings notation{'outs': 17, 'points': 300}{'outs': 17, 'points': 300}Passed
partial repair probe: innings notation{'outs': 1, 'points': -1200}{'outs': 1, 'points': -1200}Passed
second regression{'outs': 20, 'points': 700}{'outs': 20, 'points': 700}Passed
normal control 1{'outs': 21, 'points': 2800}{'outs': 21, 'points': 2800}Passed
normal control 2{'outs': 3, 'points': -600}{'outs': 3, 'points': -600}Passed
normal control 3{'outs': 3, 'points': -900}{'outs': 3, 'points': -900}Passed
normal control 4{'outs': 21, 'points': 2200}{'outs': 21, 'points': 2200}Passed

SHA-256 / ea6359d31590849c48eac901e390ccaa200649de065a2b3bd1804263f9bf7b55

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

Case digest / f8962e4b8ef1b264e02850a7f8b5ec6f4d938b06f602b09756827a332b5b92ad