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.
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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