{"abstract":"A reliever credited with both a hold flag and a save earns 8 points.","category":"Fantasy sports scoring","checks":7,"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.","contract_signature":"line","evaluation_group":"w2-fantasy-sports-scoring-pitcher-points","failed_approach":"Suppressing holds on wins instead of saves still stacks save and hold.","family":"w2-fantasy-sports-scoring-pitcher-points-save-and-hold-exclusivity","id":"FA-85086","implementations":{"attempt":{"sha256":"cc5eea6cfaf2a6b76a175bddc9fcbddaaefff7c5e22666b96ad0ea9725e6b464","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(line):\n    whole, _, part = line['ip'].partition('.')\n    outs = int(whole) * 3 + int(part or 0)\n    pts = outs * 100\n    pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200\n    if line['w']:\n        pts += 500\n    if line['l']:\n        pts -= 300\n    if line['sv']:\n        pts += 500\n    if line['hld'] and not line['w']:\n        pts += 300\n    if line['bs']:\n        pts -= 300\n    if outs >= 18 and line['er'] <= 3:\n        pts += 300\n    return {'outs': outs, 'points': pts}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: save and hold exclusivity',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': True,\n     'ip': '8.1',\n     'k': 1,\n     'l': True,\n     'sv': True,\n     'w': False}],\n   {'outs': 25, 'points': 1600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 3,\n     'bs': True,\n     'er': 5,\n     'h': 6,\n     'hld': True,\n     'ip': '1.0',\n     'k': 10,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': -100}),\n  ('second regression',\n   [{'bb': 3,\n     'bs': False,\n     'er': 4,\n     'h': 4,\n     'hld': True,\n     'ip': '7.2',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 23, 'points': 1600}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 3,\n     'h': 2,\n     'hld': True,\n     'ip': '6.1',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 19, 'points': 1700}),\n  ('normal control 2',\n   [{'bb': 0,\n     'bs': False,\n     'er': 0,\n     'h': 4,\n     'hld': False,\n     'ip': '6.1',\n     'k': 9,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 19, 'points': 3200}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 7,\n     'hld': False,\n     'ip': '5.1',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 16, 'points': 300}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': False,\n     'ip': '2.2',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 8, 'points': -300})],\n [('regression: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 4,\n     'h': 8,\n     'hld': True,\n     'ip': '6.0',\n     'k': 11,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 18, 'points': 1600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 4,\n     'h': 8,\n     'hld': True,\n     'ip': '0.1',\n     'k': 1,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 1, 'points': -1100}),\n  ('second regression',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': True,\n     'ip': '1.0',\n     'k': 4,\n     'l': False,\n     'sv': True,\n     'w': True}],\n   {'outs': 3, 'points': 0}),\n  ('normal control 1',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.0',\n     'k': 4,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 500}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 4,\n     'h': 9,\n     'hld': False,\n     'ip': '7',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': True}],\n   {'outs': 21, 'points': 1200}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': False,\n     'er': 0,\n     'h': 6,\n     'hld': False,\n     'ip': '8.1',\n     'k': 1,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 25, 'points': 2500}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 3,\n     'hld': False,\n     'ip': '8.1',\n     'k': 8,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 25, 'points': 1700})],\n [('regression: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 9,\n     'hld': True,\n     'ip': '5.2',\n     'k': 2,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 17, 'points': 300}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 4,\n     'bs': False,\n     'er': 5,\n     'h': 3,\n     'hld': True,\n     'ip': '5.2',\n     'k': 5,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 17, 'points': 1300}),\n  ('second regression',\n   [{'bb': 3,\n     'bs': False,\n     'er': 4,\n     'h': 3,\n     'hld': True,\n     'ip': '1.0',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': 400}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 3,\n     'h': 6,\n     'hld': False,\n     'ip': '6.1',\n     'k': 10,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 19, 'points': 2500}),\n  ('normal control 2',\n   [{'bb': 0,\n     'bs': False,\n     'er': 4,\n     'h': 5,\n     'hld': False,\n     'ip': '2.2',\n     'k': 6,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 8, 'points': 100}),\n  ('normal control 3',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.1',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 19, 'points': 800}),\n  ('normal control 4',\n   [{'bb': 4,\n     'bs': False,\n     'er': 3,\n     'h': 3,\n     'hld': False,\n     'ip': '0.1',\n     'k': 4,\n     'l': False,\n     'sv': True,\n     'w': True}],\n   {'outs': 1, 'points': 200})],\n [('regression: save and hold exclusivity',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': True,\n     'ip': '7',\n     'k': 10,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 21, 'points': 2100}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 3,\n     'h': 4,\n     'hld': True,\n     'ip': '2.2',\n     'k': 1,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 8, 'points': 500}),\n  ('second regression',\n   [{'bb': 4,\n     'bs': False,\n     'er': 0,\n     'h': 1,\n     'hld': True,\n     'ip': '8.1',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 25, 'points': 3100}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.0',\n     'k': 2,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 500}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 2,\n     'h': 0,\n     'hld': False,\n     'ip': '6.2',\n     'k': 3,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 20, 'points': 2100}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': True,\n     'er': 3,\n     'h': 1,\n     'hld': False,\n     'ip': '6.2',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 20, 'points': 2200}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 7,\n     'hld': False,\n     'ip': '6.0',\n     'k': 8,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 300})],\n [('regression: save and hold exclusivity',\n   [{'bb': 4,\n     'bs': False,\n     'er': 5,\n     'h': 4,\n     'hld': True,\n     'ip': '5.2',\n     'k': 2,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 17, 'points': 600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 3,\n     'h': 6,\n     'hld': True,\n     'ip': '5.2',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 17, 'points': 1100}),\n  ('second regression',\n   [{'bb': 2,\n     'bs': False,\n     'er': 2,\n     'h': 4,\n     'hld': True,\n     'ip': '2.2',\n     'k': 2,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 8, 'points': 800}),\n  ('normal control 1',\n   [{'bb': 2,\n     'bs': False,\n     'er': 2,\n     'h': 4,\n     'hld': False,\n     'ip': '3.2',\n     'k': 8,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 11, 'points': 1400}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 0,\n     'h': 1,\n     'hld': False,\n     'ip': '7',\n     'k': 4,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 21, 'points': 2600}),\n  ('normal control 3',\n   [{'bb': 1,\n     'bs': True,\n     'er': 0,\n     'h': 4,\n     'hld': False,\n     'ip': '1.0',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': 0}),\n  ('normal control 4',\n   [{'bb': 1,\n     'bs': False,\n     'er': 4,\n     'h': 3,\n     'hld': False,\n     'ip': '9.0',\n     'k': 4,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 27, 'points': 1600})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bc2725b5c540b6dbc1573d69e9bff589b226304d0af96431554e979d23dc5910","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(line):\n    whole, _, part = line['ip'].partition('.')\n    outs = int(whole) * 3 + int(part or 0)\n    pts = outs * 100\n    pts += line['k'] * 100 - line['h'] * 100 - line['bb'] * 100 - line['er'] * 200\n    if line['w']:\n        pts += 500\n    if line['l']:\n        pts -= 300\n    if line['sv']:\n        pts += 500\n    if line['hld']:\n        pts += 300\n    if line['bs']:\n        pts -= 300\n    if outs >= 18 and line['er'] <= 3:\n        pts += 300\n    return {'outs': outs, 'points': pts}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: save and hold exclusivity',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': True,\n     'ip': '8.1',\n     'k': 1,\n     'l': True,\n     'sv': True,\n     'w': False}],\n   {'outs': 25, 'points': 1600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 3,\n     'bs': True,\n     'er': 5,\n     'h': 6,\n     'hld': True,\n     'ip': '1.0',\n     'k': 10,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': -100}),\n  ('second regression',\n   [{'bb': 3,\n     'bs': False,\n     'er': 4,\n     'h': 4,\n     'hld': True,\n     'ip': '7.2',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 23, 'points': 1600}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 3,\n     'h': 2,\n     'hld': True,\n     'ip': '6.1',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 19, 'points': 1700}),\n  ('normal control 2',\n   [{'bb': 0,\n     'bs': False,\n     'er': 0,\n     'h': 4,\n     'hld': False,\n     'ip': '6.1',\n     'k': 9,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 19, 'points': 3200}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 7,\n     'hld': False,\n     'ip': '5.1',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 16, 'points': 300}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': False,\n     'ip': '2.2',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 8, 'points': -300})],\n [('regression: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 4,\n     'h': 8,\n     'hld': True,\n     'ip': '6.0',\n     'k': 11,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 18, 'points': 1600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 4,\n     'h': 8,\n     'hld': True,\n     'ip': '0.1',\n     'k': 1,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 1, 'points': -1100}),\n  ('second regression',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': True,\n     'ip': '1.0',\n     'k': 4,\n     'l': False,\n     'sv': True,\n     'w': True}],\n   {'outs': 3, 'points': 0}),\n  ('normal control 1',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.0',\n     'k': 4,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 500}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 4,\n     'h': 9,\n     'hld': False,\n     'ip': '7',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': True}],\n   {'outs': 21, 'points': 1200}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': False,\n     'er': 0,\n     'h': 6,\n     'hld': False,\n     'ip': '8.1',\n     'k': 1,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 25, 'points': 2500}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 3,\n     'hld': False,\n     'ip': '8.1',\n     'k': 8,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 25, 'points': 1700})],\n [('regression: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 5,\n     'h': 9,\n     'hld': True,\n     'ip': '5.2',\n     'k': 2,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 17, 'points': 300}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 4,\n     'bs': False,\n     'er': 5,\n     'h': 3,\n     'hld': True,\n     'ip': '5.2',\n     'k': 5,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 17, 'points': 1300}),\n  ('second regression',\n   [{'bb': 3,\n     'bs': False,\n     'er': 4,\n     'h': 3,\n     'hld': True,\n     'ip': '1.0',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': 400}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 3,\n     'h': 6,\n     'hld': False,\n     'ip': '6.1',\n     'k': 10,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 19, 'points': 2500}),\n  ('normal control 2',\n   [{'bb': 0,\n     'bs': False,\n     'er': 4,\n     'h': 5,\n     'hld': False,\n     'ip': '2.2',\n     'k': 6,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 8, 'points': 100}),\n  ('normal control 3',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.1',\n     'k': 7,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 19, 'points': 800}),\n  ('normal control 4',\n   [{'bb': 4,\n     'bs': False,\n     'er': 3,\n     'h': 3,\n     'hld': False,\n     'ip': '0.1',\n     'k': 4,\n     'l': False,\n     'sv': True,\n     'w': True}],\n   {'outs': 1, 'points': 200})],\n [('regression: save and hold exclusivity',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 2,\n     'hld': True,\n     'ip': '7',\n     'k': 10,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 21, 'points': 2100}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 3,\n     'h': 4,\n     'hld': True,\n     'ip': '2.2',\n     'k': 1,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 8, 'points': 500}),\n  ('second regression',\n   [{'bb': 4,\n     'bs': False,\n     'er': 0,\n     'h': 1,\n     'hld': True,\n     'ip': '8.1',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 25, 'points': 3100}),\n  ('normal control 1',\n   [{'bb': 0,\n     'bs': False,\n     'er': 5,\n     'h': 5,\n     'hld': False,\n     'ip': '6.0',\n     'k': 2,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 500}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 2,\n     'h': 0,\n     'hld': False,\n     'ip': '6.2',\n     'k': 3,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 20, 'points': 2100}),\n  ('normal control 3',\n   [{'bb': 3,\n     'bs': True,\n     'er': 3,\n     'h': 1,\n     'hld': False,\n     'ip': '6.2',\n     'k': 7,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 20, 'points': 2200}),\n  ('normal control 4',\n   [{'bb': 3,\n     'bs': False,\n     'er': 5,\n     'h': 7,\n     'hld': False,\n     'ip': '6.0',\n     'k': 8,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 18, 'points': 300})],\n [('regression: save and hold exclusivity',\n   [{'bb': 4,\n     'bs': False,\n     'er': 5,\n     'h': 4,\n     'hld': True,\n     'ip': '5.2',\n     'k': 2,\n     'l': False,\n     'sv': True,\n     'w': False}],\n   {'outs': 17, 'points': 600}),\n  ('partial repair probe: save and hold exclusivity',\n   [{'bb': 2,\n     'bs': False,\n     'er': 3,\n     'h': 6,\n     'hld': True,\n     'ip': '5.2',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 17, 'points': 1100}),\n  ('second regression',\n   [{'bb': 2,\n     'bs': False,\n     'er': 2,\n     'h': 4,\n     'hld': True,\n     'ip': '2.2',\n     'k': 2,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 8, 'points': 800}),\n  ('normal control 1',\n   [{'bb': 2,\n     'bs': False,\n     'er': 2,\n     'h': 4,\n     'hld': False,\n     'ip': '3.2',\n     'k': 8,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 11, 'points': 1400}),\n  ('normal control 2',\n   [{'bb': 1,\n     'bs': False,\n     'er': 0,\n     'h': 1,\n     'hld': False,\n     'ip': '7',\n     'k': 4,\n     'l': False,\n     'sv': False,\n     'w': False}],\n   {'outs': 21, 'points': 2600}),\n  ('normal control 3',\n   [{'bb': 1,\n     'bs': True,\n     'er': 0,\n     'h': 4,\n     'hld': False,\n     'ip': '1.0',\n     'k': 0,\n     'l': False,\n     'sv': False,\n     'w': True}],\n   {'outs': 3, 'points': 0}),\n  ('normal control 4',\n   [{'bb': 1,\n     'bs': False,\n     'er': 4,\n     'h': 3,\n     'hld': False,\n     'ip': '9.0',\n     'k': 4,\n     'l': True,\n     'sv': False,\n     'w': False}],\n   {'outs': 27, 'points': 1600})]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-fantasy-sports-scoring-pitcher-points-save-and-hold-exclusivity","generated_at":"2026-09-29T14:50:37.182625+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Innings-pitched notation and quality-start edges are recurring baseball fantasy scoring bugs.","root_cause":"The hold is scored independently of the save.","sha256":"baee4fc2ebce81c2b7a54246e0f96c1d626ff83234487a9dbffba05092057fdd","title":"Hold stacked on a save · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.47,"exit_code":1,"observations":[{"actual":{"outs":25,"points":1900},"check":"regression: save and hold exclusivity","expected":{"outs":25,"points":1600},"passed":false},{"actual":{"outs":3,"points":-400},"check":"partial repair probe: save and hold exclusivity","expected":{"outs":3,"points":-100},"passed":false},{"actual":{"outs":23,"points":1300},"check":"second regression","expected":{"outs":23,"points":1600},"passed":false},{"actual":{"outs":19,"points":1700},"check":"normal control 1","expected":{"outs":19,"points":1700},"passed":true},{"actual":{"outs":19,"points":3200},"check":"normal control 2","expected":{"outs":19,"points":3200},"passed":true},{"actual":{"outs":16,"points":300},"check":"normal control 3","expected":{"outs":16,"points":300},"passed":true},{"actual":{"outs":8,"points":-300},"check":"normal control 4","expected":{"outs":8,"points":-300},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: save and hold exclusivity\", \"actual\": {\"outs\": 25, \"points\": 1900}, \"expected\": {\"outs\": 25, \"points\": 1600}, \"passed\": false}, {\"check\": \"partial repair probe: save and hold exclusivity\", \"actual\": {\"outs\": 3, \"points\": -400}, \"expected\": {\"outs\": 3, \"points\": -100}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"outs\": 23, \"points\": 1300}, \"expected\": {\"outs\": 23, \"points\": 1600}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"outs\": 19, \"points\": 1700}, \"expected\": {\"outs\": 19, \"points\": 1700}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"outs\": 19, \"points\": 3200}, \"expected\": {\"outs\": 19, \"points\": 3200}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"outs\": 16, \"points\": 300}, \"expected\": {\"outs\": 16, \"points\": 300}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"outs\": 8, \"points\": -300}, \"expected\": {\"outs\": 8, \"points\": -300}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.442,"exit_code":1,"observations":[{"actual":{"outs":25,"points":1900},"check":"regression: save and hold exclusivity","expected":{"outs":25,"points":1600},"passed":false},{"actual":{"outs":3,"points":-100},"check":"partial repair probe: save and hold exclusivity","expected":{"outs":3,"points":-100},"passed":true},{"actual":{"outs":23,"points":1600},"check":"second regression","expected":{"outs":23,"points":1600},"passed":true},{"actual":{"outs":19,"points":1700},"check":"normal control 1","expected":{"outs":19,"points":1700},"passed":true},{"actual":{"outs":19,"points":3200},"check":"normal control 2","expected":{"outs":19,"points":3200},"passed":true},{"actual":{"outs":16,"points":300},"check":"normal control 3","expected":{"outs":16,"points":300},"passed":true},{"actual":{"outs":8,"points":-300},"check":"normal control 4","expected":{"outs":8,"points":-300},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: save and hold exclusivity\", \"actual\": {\"outs\": 25, \"points\": 1900}, \"expected\": {\"outs\": 25, \"points\": 1600}, \"passed\": false}, {\"check\": \"partial repair probe: save and hold exclusivity\", \"actual\": {\"outs\": 3, \"points\": -100}, \"expected\": {\"outs\": 3, \"points\": -100}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"outs\": 23, \"points\": 1600}, \"expected\": {\"outs\": 23, \"points\": 1600}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"outs\": 19, \"points\": 1700}, \"expected\": {\"outs\": 19, \"points\": 1700}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"outs\": 19, \"points\": 3200}, \"expected\": {\"outs\": 19, \"points\": 3200}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"outs\": 16, \"points\": 300}, \"expected\": {\"outs\": 16, \"points\": 300}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"outs\": 8, \"points\": -300}, \"expected\": {\"outs\": 8, \"points\": -300}, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}