{"abstract":"A 310-yard passer earns 12.4 passing points where the league awards 12.","category":"Fantasy sports scoring","checks":7,"contract":"Score a skill-player stat line in integer hundredths. Passing yards earn 1 point per full 25 yards, rushing and receiving yards 1 point per full 10 yards, each category truncated toward zero separately. Pass TD 4, interception -2, rush/receiving TD 6, fumble lost -2 (fumbles recovered by the own team are free), two-point conversion 2, each first down 0.25. Receptions are worth 0/0.5/1 for std/half/ppr, and a TE earns an extra 0.5 per reception on top. 300+ passing, 100+ rushing and 100+ receiving yards each add a 3 point bonus. The display string rounds to tenths half away from zero and never shows -0.0.","evaluation_group":"w2-fantasy-sports-scoring-offense-stat-line","failed_approach":"Flooring the fractional total fixes positive yardage but floors negative passing yards away from zero.","family":"w2-fantasy-sports-scoring-offense-stat-line-passing-yard-granularity","id":"FA-84871","implementations":{"attempt":{"sha256":"4ab44752b22f23341a533b66a35756339d347018c76b44a36c5858c244ad404b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stats, fmt, pos):\n    def unit(y, per):\n        q = abs(y) // per\n        return q if y >= 0 else -q\n    rec_val = {'std': 0, 'half': 50, 'ppr': 100}[fmt]\n    if pos == 'TE':\n        rec_val += 50\n    pts = 0\n    pts += stats['pass_yds'] * 4 // 100 * 100\n    pts += stats['pass_td'] * 400\n    pts -= stats['int'] * 200\n    pts += unit(stats['rush_yds'], 10) * 100\n    pts += stats['rush_td'] * 600\n    pts += stats['rec'] * rec_val\n    pts += unit(stats['rec_yds'], 10) * 100\n    pts += stats['rec_td'] * 600\n    pts -= stats['fum_lost'] * 200\n    pts += stats['two_pt'] * 200\n    pts += stats['first_downs'] * 25\n    if stats['pass_yds'] >= 300:\n        pts += 300\n    if stats['rush_yds'] >= 100:\n        pts += 300\n    if stats['rec_yds'] >= 100:\n        pts += 300\n    t = (abs(pts) + 5) // 10\n    sign = '-' if pts < 0 and t else ''\n    return {'hundredths': pts, 'display': '%s%d.%d' % (sign, t // 10, t % 10)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 193,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 42,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '16.3', 'hundredths': 1625}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': -12,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 100,\n     'rush_td': 2,\n     'rush_yds': 9,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('second regression',\n   [{'first_downs': 7,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 278,\n     'rec': 10,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 46,\n     'two_pt': 1},\n    'std', 'QB'],\n   {'display': '34.8', 'hundredths': 3475}),\n  ('normal control 1',\n   [{'first_downs': 4,\n     'fum': 2,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': -2,\n     'rush_td': 2,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '39.0', 'hundredths': 3900}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 91,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '52.0', 'hundredths': 5200}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -14,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '27.5', 'hundredths': 2750}),\n  ('normal control 4',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 2,\n     'rec_td': 1,\n     'rec_yds': 147,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '55.3', 'hundredths': 5525})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 173,\n     'rec': 1,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 147,\n     'two_pt': 1},\n    'ppr', 'WR'],\n   {'display': '34.3', 'hundredths': 3425}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': -11,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '-1.8', 'hundredths': -175}),\n  ('second regression',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 3,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 247,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 108,\n     'rush_td': 0,\n     'rush_yds': 105,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '33.0', 'hundredths': 3300}),\n  ('normal control 1',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': 300,\n     'rec': 9,\n     'rec_td': 1,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': -1,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '49.3', 'hundredths': 4925}),\n  ('normal control 2',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 9,\n     'rec_td': 2,\n     'rec_yds': -4,\n     'rush_td': 0,\n     'rush_yds': 82,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '40.3', 'hundredths': 4025}),\n  ('normal control 3',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 4,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '50.8', 'hundredths': 5075}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 325,\n     'rec': 2,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '24.3', 'hundredths': 2425})],\n [('regression: passing yard granularity',\n   [{'first_downs': 2,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 16,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 11,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '-4.5', 'hundredths': -450}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 0,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '-3.0', 'hundredths': -300}),\n  ('second regression',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 376,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 69,\n     'rush_td': 1,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 1',\n   [{'first_downs': 3,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 7,\n     'rec_td': 1,\n     'rec_yds': 5,\n     'rush_td': 2,\n     'rush_yds': 118,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 2',\n   [{'first_downs': 7,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 95,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '40.8', 'hundredths': 4075}),\n  ('normal control 3',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 0,\n     'rec_yds': 124,\n     'rush_td': 2,\n     'rush_yds': 152,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '57.3', 'hundredths': 5725}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 0,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 5,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-5.8', 'hundredths': -575})],\n [('regression: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 1,\n     'pass_yds': 305,\n     'rec': 2,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 155,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '58.3', 'hundredths': 5825}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 75,\n     'rush_td': 0,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '32.3', 'hundredths': 3225}),\n  ('second regression',\n   [{'first_downs': 0,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 1,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 99,\n     'rush_td': 1,\n     'rush_yds': 90,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 1',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 8,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 124,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '67.3', 'hundredths': 6725}),\n  ('normal control 2',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 25,\n     'rec': 10,\n     'rec_td': 1,\n     'rec_yds': 43,\n     'rush_td': 0,\n     'rush_yds': 9,\n     'two_pt': 0},\n    'std', 'TE'],\n   {'display': '17.0', 'hundredths': 1700}),\n  ('normal control 3',\n   [{'first_downs': 5,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': 325,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 141,\n     'rush_td': 0,\n     'rush_yds': 88,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '64.3', 'hundredths': 6425}),\n  ('normal control 4',\n   [{'first_downs': 8,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 99,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '31.0', 'hundredths': 3100})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': -3,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 115,\n     'rush_td': 0,\n     'rush_yds': 85,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -6,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 7,\n     'two_pt': 0},\n    'std', 'WR'],\n   {'display': '-2.8', 'hundredths': -275}),\n  ('second regression',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 190,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 149,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '53.3', 'hundredths': 5325}),\n  ('normal control 1',\n   [{'first_downs': 2,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 70,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '38.0', 'hundredths': 3800}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 32,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '46.0', 'hundredths': 4600}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 7,\n     'rec_td': 0,\n     'rec_yds': 94,\n     'rush_td': 2,\n     'rush_yds': 55,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '48.5', 'hundredths': 4850}),\n  ('normal control 4',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 25,\n     'rec': 1,\n     'rec_td': 2,\n     'rec_yds': -3,\n     'rush_td': 1,\n     'rush_yds': 57,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '33.3', 'hundredths': 3325})]]\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":"29482ec36d4b0523e62cbb99b3e63dfedf49b820f581fb02a10a710b6b7aaf89","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stats, fmt, pos):\n    def unit(y, per):\n        q = abs(y) // per\n        return q if y >= 0 else -q\n    rec_val = {'std': 0, 'half': 50, 'ppr': 100}[fmt]\n    if pos == 'TE':\n        rec_val += 50\n    pts = 0\n    pts += stats['pass_yds'] * 4\n    pts += stats['pass_td'] * 400\n    pts -= stats['int'] * 200\n    pts += unit(stats['rush_yds'], 10) * 100\n    pts += stats['rush_td'] * 600\n    pts += stats['rec'] * rec_val\n    pts += unit(stats['rec_yds'], 10) * 100\n    pts += stats['rec_td'] * 600\n    pts -= stats['fum_lost'] * 200\n    pts += stats['two_pt'] * 200\n    pts += stats['first_downs'] * 25\n    if stats['pass_yds'] >= 300:\n        pts += 300\n    if stats['rush_yds'] >= 100:\n        pts += 300\n    if stats['rec_yds'] >= 100:\n        pts += 300\n    t = (abs(pts) + 5) // 10\n    sign = '-' if pts < 0 and t else ''\n    return {'hundredths': pts, 'display': '%s%d.%d' % (sign, t // 10, t % 10)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 193,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 42,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '16.3', 'hundredths': 1625}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': -12,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 100,\n     'rush_td': 2,\n     'rush_yds': 9,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('second regression',\n   [{'first_downs': 7,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 278,\n     'rec': 10,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 46,\n     'two_pt': 1},\n    'std', 'QB'],\n   {'display': '34.8', 'hundredths': 3475}),\n  ('normal control 1',\n   [{'first_downs': 4,\n     'fum': 2,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': -2,\n     'rush_td': 2,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '39.0', 'hundredths': 3900}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 91,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '52.0', 'hundredths': 5200}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -14,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '27.5', 'hundredths': 2750}),\n  ('normal control 4',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 2,\n     'rec_td': 1,\n     'rec_yds': 147,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '55.3', 'hundredths': 5525})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 173,\n     'rec': 1,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 147,\n     'two_pt': 1},\n    'ppr', 'WR'],\n   {'display': '34.3', 'hundredths': 3425}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': -11,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '-1.8', 'hundredths': -175}),\n  ('second regression',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 3,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 247,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 108,\n     'rush_td': 0,\n     'rush_yds': 105,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '33.0', 'hundredths': 3300}),\n  ('normal control 1',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': 300,\n     'rec': 9,\n     'rec_td': 1,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': -1,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '49.3', 'hundredths': 4925}),\n  ('normal control 2',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 9,\n     'rec_td': 2,\n     'rec_yds': -4,\n     'rush_td': 0,\n     'rush_yds': 82,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '40.3', 'hundredths': 4025}),\n  ('normal control 3',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 4,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '50.8', 'hundredths': 5075}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 325,\n     'rec': 2,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '24.3', 'hundredths': 2425})],\n [('regression: passing yard granularity',\n   [{'first_downs': 2,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 16,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 11,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '-4.5', 'hundredths': -450}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 0,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '-3.0', 'hundredths': -300}),\n  ('second regression',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 376,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 69,\n     'rush_td': 1,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 1',\n   [{'first_downs': 3,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 7,\n     'rec_td': 1,\n     'rec_yds': 5,\n     'rush_td': 2,\n     'rush_yds': 118,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 2',\n   [{'first_downs': 7,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 95,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '40.8', 'hundredths': 4075}),\n  ('normal control 3',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 0,\n     'rec_yds': 124,\n     'rush_td': 2,\n     'rush_yds': 152,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '57.3', 'hundredths': 5725}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 0,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 5,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-5.8', 'hundredths': -575})],\n [('regression: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 1,\n     'pass_yds': 305,\n     'rec': 2,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 155,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '58.3', 'hundredths': 5825}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 75,\n     'rush_td': 0,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '32.3', 'hundredths': 3225}),\n  ('second regression',\n   [{'first_downs': 0,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 1,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 99,\n     'rush_td': 1,\n     'rush_yds': 90,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 1',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 8,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 124,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '67.3', 'hundredths': 6725}),\n  ('normal control 2',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 25,\n     'rec': 10,\n     'rec_td': 1,\n     'rec_yds': 43,\n     'rush_td': 0,\n     'rush_yds': 9,\n     'two_pt': 0},\n    'std', 'TE'],\n   {'display': '17.0', 'hundredths': 1700}),\n  ('normal control 3',\n   [{'first_downs': 5,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': 325,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 141,\n     'rush_td': 0,\n     'rush_yds': 88,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '64.3', 'hundredths': 6425}),\n  ('normal control 4',\n   [{'first_downs': 8,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 99,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '31.0', 'hundredths': 3100})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': -3,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 115,\n     'rush_td': 0,\n     'rush_yds': 85,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -6,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 7,\n     'two_pt': 0},\n    'std', 'WR'],\n   {'display': '-2.8', 'hundredths': -275}),\n  ('second regression',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 190,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 149,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '53.3', 'hundredths': 5325}),\n  ('normal control 1',\n   [{'first_downs': 2,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 70,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '38.0', 'hundredths': 3800}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 32,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '46.0', 'hundredths': 4600}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 7,\n     'rec_td': 0,\n     'rec_yds': 94,\n     'rush_td': 2,\n     'rush_yds': 55,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '48.5', 'hundredths': 4850}),\n  ('normal control 4',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 25,\n     'rec': 1,\n     'rec_td': 2,\n     'rec_yds': -3,\n     'rush_td': 1,\n     'rush_yds': 57,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '33.3', 'hundredths': 3325})]]\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"},"fixed":{"sha256":"4b43afc6742d5b930135e1c6f8a818e1d108aeb3f2bf21f4b374a6d5b2496b36","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stats, fmt, pos):\n    def unit(y, per):\n        q = abs(y) // per\n        return q if y >= 0 else -q\n    rec_val = {'std': 0, 'half': 50, 'ppr': 100}[fmt]\n    if pos == 'TE':\n        rec_val += 50\n    pts = 0\n    pts += unit(stats['pass_yds'], 25) * 100\n    pts += stats['pass_td'] * 400\n    pts -= stats['int'] * 200\n    pts += unit(stats['rush_yds'], 10) * 100\n    pts += stats['rush_td'] * 600\n    pts += stats['rec'] * rec_val\n    pts += unit(stats['rec_yds'], 10) * 100\n    pts += stats['rec_td'] * 600\n    pts -= stats['fum_lost'] * 200\n    pts += stats['two_pt'] * 200\n    pts += stats['first_downs'] * 25\n    if stats['pass_yds'] >= 300:\n        pts += 300\n    if stats['rush_yds'] >= 100:\n        pts += 300\n    if stats['rec_yds'] >= 100:\n        pts += 300\n    t = (abs(pts) + 5) // 10\n    sign = '-' if pts < 0 and t else ''\n    return {'hundredths': pts, 'display': '%s%d.%d' % (sign, t // 10, t % 10)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 193,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 42,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '16.3', 'hundredths': 1625}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': -12,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 100,\n     'rush_td': 2,\n     'rush_yds': 9,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('second regression',\n   [{'first_downs': 7,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 2,\n     'pass_yds': 278,\n     'rec': 10,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 46,\n     'two_pt': 1},\n    'std', 'QB'],\n   {'display': '34.8', 'hundredths': 3475}),\n  ('normal control 1',\n   [{'first_downs': 4,\n     'fum': 2,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': -2,\n     'rush_td': 2,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '39.0', 'hundredths': 3900}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 91,\n     'rush_td': 2,\n     'rush_yds': 99,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '52.0', 'hundredths': 5200}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -14,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '27.5', 'hundredths': 2750}),\n  ('normal control 4',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 2,\n     'rec_td': 1,\n     'rec_yds': 147,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '55.3', 'hundredths': 5525})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 173,\n     'rec': 1,\n     'rec_td': 0,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 147,\n     'two_pt': 1},\n    'ppr', 'WR'],\n   {'display': '34.3', 'hundredths': 3425}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': -11,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '-1.8', 'hundredths': -175}),\n  ('second regression',\n   [{'first_downs': 8,\n     'fum': 3,\n     'fum_lost': 3,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 247,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 108,\n     'rush_td': 0,\n     'rush_yds': 105,\n     'two_pt': 0},\n    'std', 'QB'],\n   {'display': '33.0', 'hundredths': 3300}),\n  ('normal control 1',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 4,\n     'pass_yds': 300,\n     'rec': 9,\n     'rec_td': 1,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': -1,\n     'two_pt': 0},\n    'std', 'RB'],\n   {'display': '49.3', 'hundredths': 4925}),\n  ('normal control 2',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 9,\n     'rec_td': 2,\n     'rec_yds': -4,\n     'rush_td': 0,\n     'rush_yds': 82,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '40.3', 'hundredths': 4025}),\n  ('normal control 3',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 4,\n     'pass_yds': 25,\n     'rec': 6,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 4,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '50.8', 'hundredths': 5075}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': 325,\n     'rec': 2,\n     'rec_td': 0,\n     'rec_yds': 19,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '24.3', 'hundredths': 2425})],\n [('regression: passing yard granularity',\n   [{'first_downs': 2,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 16,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 11,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '-4.5', 'hundredths': -450}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 0,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -12,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 10,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '-3.0', 'hundredths': -300}),\n  ('second regression',\n   [{'first_downs': 3,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 0,\n     'pass_yds': 376,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 69,\n     'rush_td': 1,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 1',\n   [{'first_downs': 3,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 7,\n     'rec_td': 1,\n     'rec_yds': 5,\n     'rush_td': 2,\n     'rush_yds': 118,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '41.8', 'hundredths': 4175}),\n  ('normal control 2',\n   [{'first_downs': 7,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 11,\n     'rec_td': 0,\n     'rec_yds': 95,\n     'rush_td': 0,\n     'rush_yds': -7,\n     'two_pt': 0},\n    'ppr', 'RB'],\n   {'display': '40.8', 'hundredths': 4075}),\n  ('normal control 3',\n   [{'first_downs': 1,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 0,\n     'rec_yds': 124,\n     'rush_td': 2,\n     'rush_yds': 152,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '57.3', 'hundredths': 5725}),\n  ('normal control 4',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 0,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 5,\n     'two_pt': 0},\n    'ppr', 'QB'],\n   {'display': '-5.8', 'hundredths': -575})],\n [('regression: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 3,\n     'pass_td': 1,\n     'pass_yds': 305,\n     'rec': 2,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 155,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '58.3', 'hundredths': 5825}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 9,\n     'fum': 2,\n     'fum_lost': 1,\n     'int': 2,\n     'pass_td': 2,\n     'pass_yds': -3,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 75,\n     'rush_td': 0,\n     'rush_yds': 100,\n     'two_pt': 0},\n    'half', 'WR'],\n   {'display': '32.3', 'hundredths': 3225}),\n  ('second regression',\n   [{'first_downs': 0,\n     'fum': 3,\n     'fum_lost': 1,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 1,\n     'rec': 6,\n     'rec_td': 2,\n     'rec_yds': 99,\n     'rush_td': 1,\n     'rush_yds': 90,\n     'two_pt': 0},\n    'ppr', 'TE'],\n   {'display': '49.0', 'hundredths': 4900}),\n  ('normal control 1',\n   [{'first_downs': 9,\n     'fum': 1,\n     'fum_lost': 1,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 325,\n     'rec': 8,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 2,\n     'rush_yds': 124,\n     'two_pt': 1},\n    'std', 'WR'],\n   {'display': '67.3', 'hundredths': 6725}),\n  ('normal control 2',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 25,\n     'rec': 10,\n     'rec_td': 1,\n     'rec_yds': 43,\n     'rush_td': 0,\n     'rush_yds': 9,\n     'two_pt': 0},\n    'std', 'TE'],\n   {'display': '17.0', 'hundredths': 1700}),\n  ('normal control 3',\n   [{'first_downs': 5,\n     'fum': 1,\n     'fum_lost': 0,\n     'int': 1,\n     'pass_td': 3,\n     'pass_yds': 325,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 141,\n     'rush_td': 0,\n     'rush_yds': 88,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '64.3', 'hundredths': 6425}),\n  ('normal control 4',\n   [{'first_downs': 8,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 2,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 5,\n     'rec_td': 1,\n     'rec_yds': 99,\n     'rush_td': 0,\n     'rush_yds': -3,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '31.0', 'hundredths': 3100})],\n [('regression: passing yard granularity',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 3,\n     'pass_yds': -3,\n     'rec': 1,\n     'rec_td': 1,\n     'rec_yds': 115,\n     'rush_td': 0,\n     'rush_yds': 85,\n     'two_pt': 1},\n    'half', 'TE'],\n   {'display': '43.3', 'hundredths': 4325}),\n  ('partial repair probe: passing yard granularity',\n   [{'first_downs': 5,\n     'fum': 2,\n     'fum_lost': 2,\n     'int': 0,\n     'pass_td': 0,\n     'pass_yds': -6,\n     'rec': 0,\n     'rec_td': 0,\n     'rec_yds': 0,\n     'rush_td': 0,\n     'rush_yds': 7,\n     'two_pt': 0},\n    'std', 'WR'],\n   {'display': '-2.8', 'hundredths': -275}),\n  ('second regression',\n   [{'first_downs': 1,\n     'fum': 3,\n     'fum_lost': 2,\n     'int': 1,\n     'pass_td': 2,\n     'pass_yds': 190,\n     'rec': 6,\n     'rec_td': 0,\n     'rec_yds': 149,\n     'rush_td': 1,\n     'rush_yds': 100,\n     'two_pt': 1},\n    'ppr', 'RB'],\n   {'display': '53.3', 'hundredths': 5325}),\n  ('normal control 1',\n   [{'first_downs': 2,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 3,\n     'pass_yds': 25,\n     'rec': 5,\n     'rec_td': 2,\n     'rec_yds': 20,\n     'rush_td': 0,\n     'rush_yds': 70,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '38.0', 'hundredths': 3800}),\n  ('normal control 2',\n   [{'first_downs': 0,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 2,\n     'pass_td': 1,\n     'pass_yds': 300,\n     'rec': 4,\n     'rec_td': 1,\n     'rec_yds': 63,\n     'rush_td': 2,\n     'rush_yds': 32,\n     'two_pt': 1},\n    'std', 'TE'],\n   {'display': '46.0', 'hundredths': 4600}),\n  ('normal control 3',\n   [{'first_downs': 4,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 3,\n     'pass_td': 0,\n     'pass_yds': 300,\n     'rec': 7,\n     'rec_td': 0,\n     'rec_yds': 94,\n     'rush_td': 2,\n     'rush_yds': 55,\n     'two_pt': 1},\n    'ppr', 'TE'],\n   {'display': '48.5', 'hundredths': 4850}),\n  ('normal control 4',\n   [{'first_downs': 3,\n     'fum': 0,\n     'fum_lost': 0,\n     'int': 0,\n     'pass_td': 2,\n     'pass_yds': 25,\n     'rec': 1,\n     'rec_td': 2,\n     'rec_yds': -3,\n     'rush_td': 1,\n     'rush_yds': 57,\n     'two_pt': 0},\n    'half', 'RB'],\n   {'display': '33.3', 'hundredths': 3325})]]\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-offense-stat-line-passing-yard-granularity","generated_at":"2026-09-29T14:50:35.201381+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Fantasy football points drive weekly matchups and payouts; small unit or boundary mistakes flip results that users dispute.","repair":"Count full 25-yard units truncated toward zero.","root_cause":"Passing yards accrue 0.04 per yard instead of whole points per completed 25-yard unit.","sha256":"9f89d49d755cb9697a5ae85b9d6b179b78d0d970693e62b079f8ff0271056263","title":"Passing yards scored fractionally instead of per full 25 yards · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.284,"exit_code":1,"observations":[{"actual":{"display":"16.3","hundredths":1625},"check":"regression: passing yard granularity","expected":{"display":"16.3","hundredths":1625},"passed":true},{"actual":{"display":"42.3","hundredths":4225},"check":"partial repair probe: passing yard granularity","expected":{"display":"43.3","hundredths":4325},"passed":false},{"actual":{"display":"34.8","hundredths":3475},"check":"second regression","expected":{"display":"34.8","hundredths":3475},"passed":true},{"actual":{"display":"39.0","hundredths":3900},"check":"normal control 1","expected":{"display":"39.0","hundredths":3900},"passed":true},{"actual":{"display":"52.0","hundredths":5200},"check":"normal control 2","expected":{"display":"52.0","hundredths":5200},"passed":true},{"actual":{"display":"27.5","hundredths":2750},"check":"normal control 3","expected":{"display":"27.5","hundredths":2750},"passed":true},{"actual":{"display":"55.3","hundredths":5525},"check":"normal control 4","expected":{"display":"55.3","hundredths":5525},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: passing yard granularity\", \"actual\": {\"hundredths\": 1625, \"display\": \"16.3\"}, \"expected\": {\"display\": \"16.3\", \"hundredths\": 1625}, \"passed\": true}, {\"check\": \"partial repair probe: passing yard granularity\", \"actual\": {\"hundredths\": 4225, \"display\": \"42.3\"}, \"expected\": {\"display\": \"43.3\", \"hundredths\": 4325}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"hundredths\": 3475, \"display\": \"34.8\"}, \"expected\": {\"display\": \"34.8\", \"hundredths\": 3475}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"hundredths\": 3900, \"display\": \"39.0\"}, \"expected\": {\"display\": \"39.0\", \"hundredths\": 3900}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"hundredths\": 5200, \"display\": \"52.0\"}, \"expected\": {\"display\": \"52.0\", \"hundredths\": 5200}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"hundredths\": 2750, \"display\": \"27.5\"}, \"expected\": {\"display\": \"27.5\", \"hundredths\": 2750}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"hundredths\": 5525, \"display\": \"55.3\"}, \"expected\": {\"display\": \"55.3\", \"hundredths\": 5525}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.387,"exit_code":1,"observations":[{"actual":{"display":"17.0","hundredths":1697},"check":"regression: passing yard granularity","expected":{"display":"16.3","hundredths":1625},"passed":false},{"actual":{"display":"42.8","hundredths":4277},"check":"partial repair probe: passing yard granularity","expected":{"display":"43.3","hundredths":4325},"passed":false},{"actual":{"display":"34.9","hundredths":3487},"check":"second regression","expected":{"display":"34.8","hundredths":3475},"passed":false},{"actual":{"display":"39.0","hundredths":3900},"check":"normal control 1","expected":{"display":"39.0","hundredths":3900},"passed":true},{"actual":{"display":"52.0","hundredths":5200},"check":"normal control 2","expected":{"display":"52.0","hundredths":5200},"passed":true},{"actual":{"display":"27.5","hundredths":2750},"check":"normal control 3","expected":{"display":"27.5","hundredths":2750},"passed":true},{"actual":{"display":"55.3","hundredths":5525},"check":"normal control 4","expected":{"display":"55.3","hundredths":5525},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: passing yard granularity\", \"actual\": {\"hundredths\": 1697, \"display\": \"17.0\"}, \"expected\": {\"display\": \"16.3\", \"hundredths\": 1625}, \"passed\": false}, {\"check\": \"partial repair probe: passing yard granularity\", \"actual\": {\"hundredths\": 4277, \"display\": \"42.8\"}, \"expected\": {\"display\": \"43.3\", \"hundredths\": 4325}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"hundredths\": 3487, \"display\": \"34.9\"}, \"expected\": {\"display\": \"34.8\", \"hundredths\": 3475}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"hundredths\": 3900, \"display\": \"39.0\"}, \"expected\": {\"display\": \"39.0\", \"hundredths\": 3900}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"hundredths\": 5200, \"display\": \"52.0\"}, \"expected\": {\"display\": \"52.0\", \"hundredths\": 5200}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"hundredths\": 2750, \"display\": \"27.5\"}, \"expected\": {\"display\": \"27.5\", \"hundredths\": 2750}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"hundredths\": 5525, \"display\": \"55.3\"}, \"expected\": {\"display\": \"55.3\", \"hundredths\": 5525}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.312,"exit_code":0,"observations":[{"actual":{"display":"16.3","hundredths":1625},"check":"regression: passing yard granularity","expected":{"display":"16.3","hundredths":1625},"passed":true},{"actual":{"display":"43.3","hundredths":4325},"check":"partial repair probe: passing yard granularity","expected":{"display":"43.3","hundredths":4325},"passed":true},{"actual":{"display":"34.8","hundredths":3475},"check":"second regression","expected":{"display":"34.8","hundredths":3475},"passed":true},{"actual":{"display":"39.0","hundredths":3900},"check":"normal control 1","expected":{"display":"39.0","hundredths":3900},"passed":true},{"actual":{"display":"52.0","hundredths":5200},"check":"normal control 2","expected":{"display":"52.0","hundredths":5200},"passed":true},{"actual":{"display":"27.5","hundredths":2750},"check":"normal control 3","expected":{"display":"27.5","hundredths":2750},"passed":true},{"actual":{"display":"55.3","hundredths":5525},"check":"normal control 4","expected":{"display":"55.3","hundredths":5525},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: passing yard granularity\", \"actual\": {\"hundredths\": 1625, \"display\": \"16.3\"}, \"expected\": {\"display\": \"16.3\", \"hundredths\": 1625}, \"passed\": true}, {\"check\": \"partial repair probe: passing yard granularity\", \"actual\": {\"hundredths\": 4325, \"display\": \"43.3\"}, \"expected\": {\"display\": \"43.3\", \"hundredths\": 4325}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"hundredths\": 3475, \"display\": \"34.8\"}, \"expected\": {\"display\": \"34.8\", \"hundredths\": 3475}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"hundredths\": 3900, \"display\": \"39.0\"}, \"expected\": {\"display\": \"39.0\", \"hundredths\": 3900}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"hundredths\": 5200, \"display\": \"52.0\"}, \"expected\": {\"display\": \"52.0\", \"hundredths\": 5200}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"hundredths\": 2750, \"display\": \"27.5\"}, \"expected\": {\"display\": \"27.5\", \"hundredths\": 2750}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"hundredths\": 5525, \"display\": \"55.3\"}, \"expected\": {\"display\": \"55.3\", \"hundredths\": 5525}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}