{"abstract":"Teams with ERAs of 3.10 and 3.90 are ranked as tied.","category":"Fantasy sports scoring","checks":7,"contract":"Rotisserie categories HR and SB rank high-to-low; ERA (earned runs x 27 / outs) and WHIP ((walks + hits) x 3 / outs) rank low-to-high using exact ratios. A team with zero outs has no ERA/WHIP and ranks last. With n teams the best rank earns n points and the worst 1; tied teams share the average of the positions they occupy. Return team -> doubled roto points (integers).","evaluation_group":"w2-fantasy-sports-scoring-rotisserie-standings","failed_approach":"Rounding ERA to one decimal still creates ties between distinct ERAs.","family":"w2-fantasy-sports-scoring-rotisserie-standings-ratio-precision","id":"FA-85091","implementations":{"attempt":{"sha256":"5acfdf6917d4767f584f29e784096fa61529fdd20c96a81263040435ab9947fe","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(teams):\n    names = sorted(teams)\n    n = len(names)\n    def value(t, cat):\n        d = teams[t]\n        if cat in ('hr', 'sb'):\n            return Fraction(d[cat])\n        if d['outs'] == 0:\n            return None\n        if cat == 'era':\n            return Fraction(round(d['er'] * 27 / d['outs'], 1))\n        return Fraction((d['bb'] + d['h']) * 3, d['outs'])\n    total = {t: 0 for t in names}\n    for cat in ('hr', 'sb', 'era', 'whip'):\n        low = cat in ('era', 'whip')\n        def key(t):\n            v = value(t, cat)\n            if v is None:\n                return (1, 0)\n            return (0, v if low else -v)\n        ranked = sorted(names, key=key)\n        i = 0\n        while i < n:\n            j = i\n            while j < n and key(ranked[j]) == key(ranked[i]):\n                j += 1\n            pts2 = sum(2 * (n - r) for r in range(i, j)) // (j - i)\n            for t in ranked[i:j]:\n                total[t] += pts2\n            i = j\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 11, 'h': 21, 'hr': 15, 'outs': 60, 'sb': 5},\n     'R1': {'bb': 5, 'er': 3, 'h': 1, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 2, 'h': 1, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 3, 'er': 13, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 15, 'R1': 17, 'R2': 31, 'R3': 17}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 8, 'h': 16, 'hr': 12, 'outs': 63, 'sb': 3},\n     'R1': {'bb': 8, 'er': 3, 'h': 3, 'hr': 15, 'outs': 73, 'sb': 3},\n     'R2': {'bb': 3, 'er': 2, 'h': 12, 'hr': 10, 'outs': 48, 'sb': 5},\n     'R3': {'bb': 6, 'er': 8, 'h': 16, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 10, 'er': 7, 'h': 18, 'hr': 10, 'outs': 30, 'sb': 8}}],\n   {'R0': 25, 'R1': 33, 'R2': 25, 'R3': 15, 'R4': 22}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 11, 'h': 3, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R1': {'bb': 6, 'er': 10, 'h': 10, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 14, 'h': 23, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 54, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 19, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R5': {'bb': 2, 'er': 12, 'h': 15, 'hr': 10, 'outs': 49, 'sb': 3}}],\n   {'R0': 32, 'R1': 35, 'R2': 35, 'R3': 38, 'R4': 12, 'R5': 16}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 9, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 4, 'er': 0, 'h': 21, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 5, 'er': 5, 'h': 6, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 4, 'er': 4, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5}}],\n   {'R0': 26, 'R1': 21, 'R2': 20, 'R3': 13}),\n  ('normal control 2',\n   [{'R0': {'bb': 9, 'er': 12, 'h': 18, 'hr': 15, 'outs': 48, 'sb': 8},\n     'R1': {'bb': 0, 'er': 9, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 11, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 8, 'er': 1, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 24, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R5': {'bb': 6, 'er': 5, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8}}],\n   {'R0': 38, 'R1': 37, 'R2': 15, 'R3': 31, 'R4': 25, 'R5': 22}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 7, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 8, 'er': 2, 'h': 6, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 3, 'er': 12, 'h': 24, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 6, 'er': 0, 'h': 15, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 7, 'er': 12, 'h': 2, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 16, 'R1': 27, 'R2': 31, 'R3': 20, 'R4': 26}),\n  ('normal control 4',\n   [{'R0': {'bb': 0, 'er': 2, 'h': 12, 'hr': 10, 'outs': 54, 'sb': 5},\n     'R1': {'bb': 5, 'er': 12, 'h': 23, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 3, 'er': 10, 'h': 25, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 24, 'R1': 22, 'R2': 15, 'R3': 19})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 6, 'h': 7, 'hr': 12, 'outs': 90, 'sb': 5},\n     'R1': {'bb': 6, 'er': 2, 'h': 14, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 9, 'er': 7, 'h': 13, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 5, 'er': 1, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 19, 'R2': 14, 'R3': 26}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 6, 'er': 8, 'h': 14, 'hr': 15, 'outs': 71, 'sb': 5},\n     'R1': {'bb': 3, 'er': 5, 'h': 24, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 8, 'er': 6, 'h': 9, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 10, 'er': 10, 'h': 16, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 1, 'er': 13, 'h': 24, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 34, 'R1': 17, 'R2': 29, 'R3': 22, 'R4': 18}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 5, 'h': 23, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R1': {'bb': 1, 'er': 6, 'h': 16, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 10, 'er': 7, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 8},\n     'R3': {'bb': 10, 'er': 1, 'h': 12, 'hr': 15, 'outs': 83, 'sb': 8},\n     'R4': {'bb': 8, 'er': 10, 'h': 5, 'hr': 10, 'outs': 30, 'sb': 5}}],\n   {'R0': 23, 'R1': 24, 'R2': 21, 'R3': 37, 'R4': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 10, 'er': 7, 'h': 4, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 3, 'h': 20, 'hr': 10, 'outs': 18, 'sb': 5},\n     'R3': {'bb': 9, 'er': 0, 'h': 20, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 3, 'er': 14, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 7, 'er': 0, 'h': 4, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 22, 'R1': 32, 'R2': 22, 'R3': 27, 'R4': 26, 'R5': 39}),\n  ('normal control 2',\n   [{'R0': {'bb': 5, 'er': 8, 'h': 7, 'hr': 10, 'outs': 36, 'sb': 5},\n     'R1': {'bb': 1, 'er': 1, 'h': 20, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R2': {'bb': 5, 'er': 9, 'h': 11, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R3': {'bb': 9, 'er': 14, 'h': 22, 'hr': 15, 'outs': 21, 'sb': 8}}],\n   {'R0': 21, 'R1': 25, 'R2': 11, 'R3': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 8, 'er': 1, 'h': 8, 'hr': 10, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 9, 'er': 10, 'h': 12, 'hr': 12, 'outs': 12, 'sb': 5},\n     'R2': {'bb': 10, 'er': 4, 'h': 3, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 5, 'er': 4, 'h': 14, 'hr': 10, 'outs': 16, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 22, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R5': {'bb': 1, 'er': 12, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 34, 'R1': 18, 'R2': 30, 'R3': 17, 'R4': 35, 'R5': 34}),\n  ('normal control 4',\n   [{'R0': {'bb': 1, 'er': 6, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 3, 'er': 0, 'h': 4, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 2, 'er': 4, 'h': 22, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 10, 'er': 9, 'h': 0, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 19, 'R1': 21, 'R2': 16, 'R3': 24})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 7, 'h': 22, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R1': {'bb': 8, 'er': 6, 'h': 24, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 3, 'er': 11, 'h': 17, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 9, 'h': 8, 'hr': 12, 'outs': 35, 'sb': 8}}],\n   {'R0': 18, 'R1': 20, 'R2': 20, 'R3': 22}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 9, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 6, 'h': 1, 'hr': 15, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 9, 'h': 4, 'hr': 12, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 1, 'er': 6, 'h': 10, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R4': {'bb': 8, 'er': 11, 'h': 6, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R5': {'bb': 1, 'er': 14, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 8}}],\n   {'R0': 38, 'R1': 20, 'R2': 33, 'R3': 18, 'R4': 24, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 2, 'er': 11, 'h': 11, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 0, 'er': 7, 'h': 2, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 6, 'er': 5, 'h': 9, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 17, 'R1': 20, 'R2': 11}),\n  ('normal control 1',\n   [{'R0': {'bb': 1, 'er': 12, 'h': 5, 'hr': 12, 'outs': 4, 'sb': 8},\n     'R1': {'bb': 10, 'er': 5, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R2': {'bb': 7, 'er': 5, 'h': 12, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 9, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 8, 'er': 4, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R5': {'bb': 6, 'er': 8, 'h': 13, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 34, 'R1': 29, 'R2': 17, 'R3': 38, 'R4': 22, 'R5': 28}),\n  ('normal control 2',\n   [{'R0': {'bb': 0, 'er': 8, 'h': 20, 'hr': 12, 'outs': 8, 'sb': 5},\n     'R1': {'bb': 2, 'er': 11, 'h': 15, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 4, 'er': 4, 'h': 3, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 4, 'er': 6, 'h': 3, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 9, 'er': 14, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 24, 'R1': 32, 'R2': 33, 'R3': 33, 'R4': 23, 'R5': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 14, 'h': 19, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 3, 'er': 3, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R2': {'bb': 0, 'er': 7, 'h': 20, 'hr': 10, 'outs': 33, 'sb': 5},\n     'R3': {'bb': 5, 'er': 7, 'h': 17, 'hr': 10, 'outs': 27, 'sb': 8},\n     'R4': {'bb': 7, 'er': 11, 'h': 17, 'hr': 12, 'outs': 20, 'sb': 3}}],\n   {'R0': 23, 'R1': 37, 'R2': 24, 'R3': 22, 'R4': 14}),\n  ('normal control 4',\n   [{'R0': {'bb': 9, 'er': 4, 'h': 14, 'hr': 10, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 6, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 4, 'er': 11, 'h': 19, 'hr': 12, 'outs': 81, 'sb': 3}}],\n   {'R0': 15, 'R1': 21, 'R2': 22, 'R3': 22})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 4, 'er': 2, 'h': 19, 'hr': 15, 'outs': 65, 'sb': 5},\n     'R1': {'bb': 0, 'er': 12, 'h': 21, 'hr': 10, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 4, 'er': 2, 'h': 7, 'hr': 15, 'outs': 27, 'sb': 3},\n     'R3': {'bb': 5, 'er': 5, 'h': 23, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 2, 'er': 9, 'h': 3, 'hr': 12, 'outs': 9, 'sb': 3}}],\n   {'R0': 37, 'R1': 18, 'R2': 26, 'R3': 27, 'R4': 12}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 4, 'er': 8, 'h': 15, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R2': {'bb': 6, 'er': 1, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R3': {'bb': 1, 'er': 8, 'h': 7, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 6, 'er': 7, 'h': 4, 'hr': 12, 'outs': 40, 'sb': 3},\n     'R5': {'bb': 6, 'er': 14, 'h': 1, 'hr': 12, 'outs': 81, 'sb': 8}}],\n   {'R0': 32, 'R1': 19, 'R2': 31, 'R3': 31, 'R4': 20, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 0, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 5, 'h': 25, 'hr': 15, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 1, 'er': 12, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 8}}],\n   {'R0': 17, 'R1': 16, 'R2': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 9, 'er': 14, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R1': {'bb': 10, 'er': 7, 'h': 19, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 14, 'h': 1, 'hr': 12, 'outs': 54, 'sb': 5}}],\n   {'R0': 14, 'R1': 13, 'R2': 21}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 3, 'h': 21, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 3, 'er': 11, 'h': 25, 'hr': 10, 'outs': 50, 'sb': 5},\n     'R2': {'bb': 7, 'er': 0, 'h': 12, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R3': {'bb': 2, 'er': 4, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R4': {'bb': 4, 'er': 14, 'h': 16, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 29, 'R1': 21, 'R2': 33, 'R3': 14, 'R4': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 13, 'hr': 15, 'outs': 55, 'sb': 5},\n     'R1': {'bb': 10, 'er': 1, 'h': 16, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R2': {'bb': 3, 'er': 5, 'h': 5, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R3': {'bb': 2, 'er': 7, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 27, 'R1': 13, 'R2': 23, 'R3': 17}),\n  ('normal control 4',\n   [{'R0': {'bb': 8, 'er': 11, 'h': 20, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 5, 'er': 3, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 7, 'er': 13, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 20, 'R1': 18, 'R2': 10})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 5, 'h': 21, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 6, 'er': 7, 'h': 15, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 6, 'h': 25, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 4, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 17, 'hr': 15, 'outs': 30, 'sb': 8}}],\n   {'R0': 31, 'R1': 16, 'R2': 25, 'R3': 24, 'R4': 24}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 14, 'h': 3, 'hr': 15, 'outs': 86, 'sb': 5},\n     'R1': {'bb': 1, 'er': 6, 'h': 5, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 8, 'er': 9, 'h': 8, 'hr': 15, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 7, 'er': 1, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 7, 'er': 14, 'h': 20, 'hr': 12, 'outs': 18, 'sb': 5}}],\n   {'R0': 29, 'R1': 24, 'R2': 29, 'R3': 24, 'R4': 14}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 12, 'h': 12, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 5, 'er': 14, 'h': 15, 'hr': 12, 'outs': 32, 'sb': 5},\n     'R2': {'bb': 10, 'er': 0, 'h': 7, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R3': {'bb': 9, 'er': 1, 'h': 21, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 8, 'er': 7, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R5': {'bb': 1, 'er': 1, 'h': 9, 'hr': 10, 'outs': 81, 'sb': 3}}],\n   {'R0': 29, 'R1': 23, 'R2': 29, 'R3': 27, 'R4': 33, 'R5': 27}),\n  ('normal control 1',\n   [{'R0': {'bb': 10, 'er': 6, 'h': 21, 'hr': 10, 'outs': 0, 'sb': 3},\n     'R1': {'bb': 5, 'er': 10, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 24, 'hr': 15, 'outs': 27, 'sb': 3}}],\n   {'R0': 9, 'R1': 23, 'R2': 16}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 14, 'h': 6, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 8, 'h': 20, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 1, 'er': 10, 'h': 1, 'hr': 12, 'outs': 78, 'sb': 3}}],\n   {'R0': 17, 'R1': 15, 'R2': 16}),\n  ('normal control 3',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 12, 'hr': 12, 'outs': 16, 'sb': 3},\n     'R2': {'bb': 2, 'er': 3, 'h': 8, 'hr': 12, 'outs': 0, 'sb': 5}}],\n   {'R0': 22, 'R1': 15, 'R2': 11}),\n  ('normal control 4',\n   [{'R0': {'bb': 7, 'er': 2, 'h': 22, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 9, 'er': 11, 'h': 25, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 2, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 3, 'h': 13, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R4': {'bb': 2, 'er': 14, 'h': 5, 'hr': 15, 'outs': 10, 'sb': 3},\n     'R5': {'bb': 4, 'er': 8, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 22, 'R2': 31, 'R3': 30, 'R4': 26, 'R5': 38})]]\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":"ede4aa265034881841da432d05719697955bf212b9ac6ca0c38217c08952a2f4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(teams):\n    names = sorted(teams)\n    n = len(names)\n    def value(t, cat):\n        d = teams[t]\n        if cat in ('hr', 'sb'):\n            return Fraction(d[cat])\n        if d['outs'] == 0:\n            return None\n        if cat == 'era':\n            return Fraction(d['er'] * 27 // d['outs'])\n        return Fraction((d['bb'] + d['h']) * 3, d['outs'])\n    total = {t: 0 for t in names}\n    for cat in ('hr', 'sb', 'era', 'whip'):\n        low = cat in ('era', 'whip')\n        def key(t):\n            v = value(t, cat)\n            if v is None:\n                return (1, 0)\n            return (0, v if low else -v)\n        ranked = sorted(names, key=key)\n        i = 0\n        while i < n:\n            j = i\n            while j < n and key(ranked[j]) == key(ranked[i]):\n                j += 1\n            pts2 = sum(2 * (n - r) for r in range(i, j)) // (j - i)\n            for t in ranked[i:j]:\n                total[t] += pts2\n            i = j\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 11, 'h': 21, 'hr': 15, 'outs': 60, 'sb': 5},\n     'R1': {'bb': 5, 'er': 3, 'h': 1, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 2, 'h': 1, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 3, 'er': 13, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 15, 'R1': 17, 'R2': 31, 'R3': 17}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 8, 'h': 16, 'hr': 12, 'outs': 63, 'sb': 3},\n     'R1': {'bb': 8, 'er': 3, 'h': 3, 'hr': 15, 'outs': 73, 'sb': 3},\n     'R2': {'bb': 3, 'er': 2, 'h': 12, 'hr': 10, 'outs': 48, 'sb': 5},\n     'R3': {'bb': 6, 'er': 8, 'h': 16, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 10, 'er': 7, 'h': 18, 'hr': 10, 'outs': 30, 'sb': 8}}],\n   {'R0': 25, 'R1': 33, 'R2': 25, 'R3': 15, 'R4': 22}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 11, 'h': 3, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R1': {'bb': 6, 'er': 10, 'h': 10, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 14, 'h': 23, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 54, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 19, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R5': {'bb': 2, 'er': 12, 'h': 15, 'hr': 10, 'outs': 49, 'sb': 3}}],\n   {'R0': 32, 'R1': 35, 'R2': 35, 'R3': 38, 'R4': 12, 'R5': 16}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 9, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 4, 'er': 0, 'h': 21, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 5, 'er': 5, 'h': 6, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 4, 'er': 4, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5}}],\n   {'R0': 26, 'R1': 21, 'R2': 20, 'R3': 13}),\n  ('normal control 2',\n   [{'R0': {'bb': 9, 'er': 12, 'h': 18, 'hr': 15, 'outs': 48, 'sb': 8},\n     'R1': {'bb': 0, 'er': 9, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 11, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 8, 'er': 1, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 24, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R5': {'bb': 6, 'er': 5, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8}}],\n   {'R0': 38, 'R1': 37, 'R2': 15, 'R3': 31, 'R4': 25, 'R5': 22}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 7, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 8, 'er': 2, 'h': 6, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 3, 'er': 12, 'h': 24, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 6, 'er': 0, 'h': 15, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 7, 'er': 12, 'h': 2, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 16, 'R1': 27, 'R2': 31, 'R3': 20, 'R4': 26}),\n  ('normal control 4',\n   [{'R0': {'bb': 0, 'er': 2, 'h': 12, 'hr': 10, 'outs': 54, 'sb': 5},\n     'R1': {'bb': 5, 'er': 12, 'h': 23, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 3, 'er': 10, 'h': 25, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 24, 'R1': 22, 'R2': 15, 'R3': 19})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 6, 'h': 7, 'hr': 12, 'outs': 90, 'sb': 5},\n     'R1': {'bb': 6, 'er': 2, 'h': 14, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 9, 'er': 7, 'h': 13, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 5, 'er': 1, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 19, 'R2': 14, 'R3': 26}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 6, 'er': 8, 'h': 14, 'hr': 15, 'outs': 71, 'sb': 5},\n     'R1': {'bb': 3, 'er': 5, 'h': 24, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 8, 'er': 6, 'h': 9, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 10, 'er': 10, 'h': 16, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 1, 'er': 13, 'h': 24, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 34, 'R1': 17, 'R2': 29, 'R3': 22, 'R4': 18}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 5, 'h': 23, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R1': {'bb': 1, 'er': 6, 'h': 16, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 10, 'er': 7, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 8},\n     'R3': {'bb': 10, 'er': 1, 'h': 12, 'hr': 15, 'outs': 83, 'sb': 8},\n     'R4': {'bb': 8, 'er': 10, 'h': 5, 'hr': 10, 'outs': 30, 'sb': 5}}],\n   {'R0': 23, 'R1': 24, 'R2': 21, 'R3': 37, 'R4': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 10, 'er': 7, 'h': 4, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 3, 'h': 20, 'hr': 10, 'outs': 18, 'sb': 5},\n     'R3': {'bb': 9, 'er': 0, 'h': 20, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 3, 'er': 14, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 7, 'er': 0, 'h': 4, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 22, 'R1': 32, 'R2': 22, 'R3': 27, 'R4': 26, 'R5': 39}),\n  ('normal control 2',\n   [{'R0': {'bb': 5, 'er': 8, 'h': 7, 'hr': 10, 'outs': 36, 'sb': 5},\n     'R1': {'bb': 1, 'er': 1, 'h': 20, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R2': {'bb': 5, 'er': 9, 'h': 11, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R3': {'bb': 9, 'er': 14, 'h': 22, 'hr': 15, 'outs': 21, 'sb': 8}}],\n   {'R0': 21, 'R1': 25, 'R2': 11, 'R3': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 8, 'er': 1, 'h': 8, 'hr': 10, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 9, 'er': 10, 'h': 12, 'hr': 12, 'outs': 12, 'sb': 5},\n     'R2': {'bb': 10, 'er': 4, 'h': 3, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 5, 'er': 4, 'h': 14, 'hr': 10, 'outs': 16, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 22, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R5': {'bb': 1, 'er': 12, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 34, 'R1': 18, 'R2': 30, 'R3': 17, 'R4': 35, 'R5': 34}),\n  ('normal control 4',\n   [{'R0': {'bb': 1, 'er': 6, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 3, 'er': 0, 'h': 4, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 2, 'er': 4, 'h': 22, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 10, 'er': 9, 'h': 0, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 19, 'R1': 21, 'R2': 16, 'R3': 24})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 7, 'h': 22, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R1': {'bb': 8, 'er': 6, 'h': 24, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 3, 'er': 11, 'h': 17, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 9, 'h': 8, 'hr': 12, 'outs': 35, 'sb': 8}}],\n   {'R0': 18, 'R1': 20, 'R2': 20, 'R3': 22}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 9, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 6, 'h': 1, 'hr': 15, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 9, 'h': 4, 'hr': 12, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 1, 'er': 6, 'h': 10, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R4': {'bb': 8, 'er': 11, 'h': 6, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R5': {'bb': 1, 'er': 14, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 8}}],\n   {'R0': 38, 'R1': 20, 'R2': 33, 'R3': 18, 'R4': 24, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 2, 'er': 11, 'h': 11, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 0, 'er': 7, 'h': 2, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 6, 'er': 5, 'h': 9, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 17, 'R1': 20, 'R2': 11}),\n  ('normal control 1',\n   [{'R0': {'bb': 1, 'er': 12, 'h': 5, 'hr': 12, 'outs': 4, 'sb': 8},\n     'R1': {'bb': 10, 'er': 5, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R2': {'bb': 7, 'er': 5, 'h': 12, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 9, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 8, 'er': 4, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R5': {'bb': 6, 'er': 8, 'h': 13, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 34, 'R1': 29, 'R2': 17, 'R3': 38, 'R4': 22, 'R5': 28}),\n  ('normal control 2',\n   [{'R0': {'bb': 0, 'er': 8, 'h': 20, 'hr': 12, 'outs': 8, 'sb': 5},\n     'R1': {'bb': 2, 'er': 11, 'h': 15, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 4, 'er': 4, 'h': 3, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 4, 'er': 6, 'h': 3, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 9, 'er': 14, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 24, 'R1': 32, 'R2': 33, 'R3': 33, 'R4': 23, 'R5': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 14, 'h': 19, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 3, 'er': 3, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R2': {'bb': 0, 'er': 7, 'h': 20, 'hr': 10, 'outs': 33, 'sb': 5},\n     'R3': {'bb': 5, 'er': 7, 'h': 17, 'hr': 10, 'outs': 27, 'sb': 8},\n     'R4': {'bb': 7, 'er': 11, 'h': 17, 'hr': 12, 'outs': 20, 'sb': 3}}],\n   {'R0': 23, 'R1': 37, 'R2': 24, 'R3': 22, 'R4': 14}),\n  ('normal control 4',\n   [{'R0': {'bb': 9, 'er': 4, 'h': 14, 'hr': 10, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 6, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 4, 'er': 11, 'h': 19, 'hr': 12, 'outs': 81, 'sb': 3}}],\n   {'R0': 15, 'R1': 21, 'R2': 22, 'R3': 22})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 4, 'er': 2, 'h': 19, 'hr': 15, 'outs': 65, 'sb': 5},\n     'R1': {'bb': 0, 'er': 12, 'h': 21, 'hr': 10, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 4, 'er': 2, 'h': 7, 'hr': 15, 'outs': 27, 'sb': 3},\n     'R3': {'bb': 5, 'er': 5, 'h': 23, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 2, 'er': 9, 'h': 3, 'hr': 12, 'outs': 9, 'sb': 3}}],\n   {'R0': 37, 'R1': 18, 'R2': 26, 'R3': 27, 'R4': 12}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 4, 'er': 8, 'h': 15, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R2': {'bb': 6, 'er': 1, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R3': {'bb': 1, 'er': 8, 'h': 7, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 6, 'er': 7, 'h': 4, 'hr': 12, 'outs': 40, 'sb': 3},\n     'R5': {'bb': 6, 'er': 14, 'h': 1, 'hr': 12, 'outs': 81, 'sb': 8}}],\n   {'R0': 32, 'R1': 19, 'R2': 31, 'R3': 31, 'R4': 20, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 0, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 5, 'h': 25, 'hr': 15, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 1, 'er': 12, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 8}}],\n   {'R0': 17, 'R1': 16, 'R2': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 9, 'er': 14, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R1': {'bb': 10, 'er': 7, 'h': 19, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 14, 'h': 1, 'hr': 12, 'outs': 54, 'sb': 5}}],\n   {'R0': 14, 'R1': 13, 'R2': 21}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 3, 'h': 21, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 3, 'er': 11, 'h': 25, 'hr': 10, 'outs': 50, 'sb': 5},\n     'R2': {'bb': 7, 'er': 0, 'h': 12, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R3': {'bb': 2, 'er': 4, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R4': {'bb': 4, 'er': 14, 'h': 16, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 29, 'R1': 21, 'R2': 33, 'R3': 14, 'R4': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 13, 'hr': 15, 'outs': 55, 'sb': 5},\n     'R1': {'bb': 10, 'er': 1, 'h': 16, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R2': {'bb': 3, 'er': 5, 'h': 5, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R3': {'bb': 2, 'er': 7, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 27, 'R1': 13, 'R2': 23, 'R3': 17}),\n  ('normal control 4',\n   [{'R0': {'bb': 8, 'er': 11, 'h': 20, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 5, 'er': 3, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 7, 'er': 13, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 20, 'R1': 18, 'R2': 10})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 5, 'h': 21, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 6, 'er': 7, 'h': 15, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 6, 'h': 25, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 4, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 17, 'hr': 15, 'outs': 30, 'sb': 8}}],\n   {'R0': 31, 'R1': 16, 'R2': 25, 'R3': 24, 'R4': 24}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 14, 'h': 3, 'hr': 15, 'outs': 86, 'sb': 5},\n     'R1': {'bb': 1, 'er': 6, 'h': 5, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 8, 'er': 9, 'h': 8, 'hr': 15, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 7, 'er': 1, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 7, 'er': 14, 'h': 20, 'hr': 12, 'outs': 18, 'sb': 5}}],\n   {'R0': 29, 'R1': 24, 'R2': 29, 'R3': 24, 'R4': 14}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 12, 'h': 12, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 5, 'er': 14, 'h': 15, 'hr': 12, 'outs': 32, 'sb': 5},\n     'R2': {'bb': 10, 'er': 0, 'h': 7, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R3': {'bb': 9, 'er': 1, 'h': 21, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 8, 'er': 7, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R5': {'bb': 1, 'er': 1, 'h': 9, 'hr': 10, 'outs': 81, 'sb': 3}}],\n   {'R0': 29, 'R1': 23, 'R2': 29, 'R3': 27, 'R4': 33, 'R5': 27}),\n  ('normal control 1',\n   [{'R0': {'bb': 10, 'er': 6, 'h': 21, 'hr': 10, 'outs': 0, 'sb': 3},\n     'R1': {'bb': 5, 'er': 10, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 24, 'hr': 15, 'outs': 27, 'sb': 3}}],\n   {'R0': 9, 'R1': 23, 'R2': 16}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 14, 'h': 6, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 8, 'h': 20, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 1, 'er': 10, 'h': 1, 'hr': 12, 'outs': 78, 'sb': 3}}],\n   {'R0': 17, 'R1': 15, 'R2': 16}),\n  ('normal control 3',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 12, 'hr': 12, 'outs': 16, 'sb': 3},\n     'R2': {'bb': 2, 'er': 3, 'h': 8, 'hr': 12, 'outs': 0, 'sb': 5}}],\n   {'R0': 22, 'R1': 15, 'R2': 11}),\n  ('normal control 4',\n   [{'R0': {'bb': 7, 'er': 2, 'h': 22, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 9, 'er': 11, 'h': 25, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 2, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 3, 'h': 13, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R4': {'bb': 2, 'er': 14, 'h': 5, 'hr': 15, 'outs': 10, 'sb': 3},\n     'R5': {'bb': 4, 'er': 8, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 22, 'R2': 31, 'R3': 30, 'R4': 26, 'R5': 38})]]\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":"ce94205a474fa3b6edef6b496334814983d5904b833aa0b4714af243ba9bd25e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(teams):\n    names = sorted(teams)\n    n = len(names)\n    def value(t, cat):\n        d = teams[t]\n        if cat in ('hr', 'sb'):\n            return Fraction(d[cat])\n        if d['outs'] == 0:\n            return None\n        if cat == 'era':\n            return Fraction(d['er'] * 27, d['outs'])\n        return Fraction((d['bb'] + d['h']) * 3, d['outs'])\n    total = {t: 0 for t in names}\n    for cat in ('hr', 'sb', 'era', 'whip'):\n        low = cat in ('era', 'whip')\n        def key(t):\n            v = value(t, cat)\n            if v is None:\n                return (1, 0)\n            return (0, v if low else -v)\n        ranked = sorted(names, key=key)\n        i = 0\n        while i < n:\n            j = i\n            while j < n and key(ranked[j]) == key(ranked[i]):\n                j += 1\n            pts2 = sum(2 * (n - r) for r in range(i, j)) // (j - i)\n            for t in ranked[i:j]:\n                total[t] += pts2\n            i = j\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 11, 'h': 21, 'hr': 15, 'outs': 60, 'sb': 5},\n     'R1': {'bb': 5, 'er': 3, 'h': 1, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 2, 'h': 1, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 3, 'er': 13, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 15, 'R1': 17, 'R2': 31, 'R3': 17}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 8, 'h': 16, 'hr': 12, 'outs': 63, 'sb': 3},\n     'R1': {'bb': 8, 'er': 3, 'h': 3, 'hr': 15, 'outs': 73, 'sb': 3},\n     'R2': {'bb': 3, 'er': 2, 'h': 12, 'hr': 10, 'outs': 48, 'sb': 5},\n     'R3': {'bb': 6, 'er': 8, 'h': 16, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 10, 'er': 7, 'h': 18, 'hr': 10, 'outs': 30, 'sb': 8}}],\n   {'R0': 25, 'R1': 33, 'R2': 25, 'R3': 15, 'R4': 22}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 11, 'h': 3, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R1': {'bb': 6, 'er': 10, 'h': 10, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 14, 'h': 23, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 54, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 19, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R5': {'bb': 2, 'er': 12, 'h': 15, 'hr': 10, 'outs': 49, 'sb': 3}}],\n   {'R0': 32, 'R1': 35, 'R2': 35, 'R3': 38, 'R4': 12, 'R5': 16}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 9, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 4, 'er': 0, 'h': 21, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 5, 'er': 5, 'h': 6, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 4, 'er': 4, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5}}],\n   {'R0': 26, 'R1': 21, 'R2': 20, 'R3': 13}),\n  ('normal control 2',\n   [{'R0': {'bb': 9, 'er': 12, 'h': 18, 'hr': 15, 'outs': 48, 'sb': 8},\n     'R1': {'bb': 0, 'er': 9, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 11, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 8, 'er': 1, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 10, 'er': 8, 'h': 24, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R5': {'bb': 6, 'er': 5, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8}}],\n   {'R0': 38, 'R1': 37, 'R2': 15, 'R3': 31, 'R4': 25, 'R5': 22}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 7, 'h': 3, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 8, 'er': 2, 'h': 6, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 3, 'er': 12, 'h': 24, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R3': {'bb': 6, 'er': 0, 'h': 15, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R4': {'bb': 7, 'er': 12, 'h': 2, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 16, 'R1': 27, 'R2': 31, 'R3': 20, 'R4': 26}),\n  ('normal control 4',\n   [{'R0': {'bb': 0, 'er': 2, 'h': 12, 'hr': 10, 'outs': 54, 'sb': 5},\n     'R1': {'bb': 5, 'er': 12, 'h': 23, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 3, 'er': 10, 'h': 25, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 24, 'R1': 22, 'R2': 15, 'R3': 19})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 6, 'h': 7, 'hr': 12, 'outs': 90, 'sb': 5},\n     'R1': {'bb': 6, 'er': 2, 'h': 14, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 9, 'er': 7, 'h': 13, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R3': {'bb': 5, 'er': 1, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 19, 'R2': 14, 'R3': 26}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 6, 'er': 8, 'h': 14, 'hr': 15, 'outs': 71, 'sb': 5},\n     'R1': {'bb': 3, 'er': 5, 'h': 24, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 8, 'er': 6, 'h': 9, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 10, 'er': 10, 'h': 16, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 1, 'er': 13, 'h': 24, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 34, 'R1': 17, 'R2': 29, 'R3': 22, 'R4': 18}),\n  ('second regression',\n   [{'R0': {'bb': 6, 'er': 5, 'h': 23, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R1': {'bb': 1, 'er': 6, 'h': 16, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 10, 'er': 7, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 8},\n     'R3': {'bb': 10, 'er': 1, 'h': 12, 'hr': 15, 'outs': 83, 'sb': 8},\n     'R4': {'bb': 8, 'er': 10, 'h': 5, 'hr': 10, 'outs': 30, 'sb': 5}}],\n   {'R0': 23, 'R1': 24, 'R2': 21, 'R3': 37, 'R4': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 11, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 10, 'er': 7, 'h': 4, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R2': {'bb': 8, 'er': 3, 'h': 20, 'hr': 10, 'outs': 18, 'sb': 5},\n     'R3': {'bb': 9, 'er': 0, 'h': 20, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 3, 'er': 14, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 7, 'er': 0, 'h': 4, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 22, 'R1': 32, 'R2': 22, 'R3': 27, 'R4': 26, 'R5': 39}),\n  ('normal control 2',\n   [{'R0': {'bb': 5, 'er': 8, 'h': 7, 'hr': 10, 'outs': 36, 'sb': 5},\n     'R1': {'bb': 1, 'er': 1, 'h': 20, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R2': {'bb': 5, 'er': 9, 'h': 11, 'hr': 10, 'outs': 0, 'sb': 5},\n     'R3': {'bb': 9, 'er': 14, 'h': 22, 'hr': 15, 'outs': 21, 'sb': 8}}],\n   {'R0': 21, 'R1': 25, 'R2': 11, 'R3': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 8, 'er': 1, 'h': 8, 'hr': 10, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 9, 'er': 10, 'h': 12, 'hr': 12, 'outs': 12, 'sb': 5},\n     'R2': {'bb': 10, 'er': 4, 'h': 3, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 5, 'er': 4, 'h': 14, 'hr': 10, 'outs': 16, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 22, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R5': {'bb': 1, 'er': 12, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 34, 'R1': 18, 'R2': 30, 'R3': 17, 'R4': 35, 'R5': 34}),\n  ('normal control 4',\n   [{'R0': {'bb': 1, 'er': 6, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 3, 'er': 0, 'h': 4, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 2, 'er': 4, 'h': 22, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 10, 'er': 9, 'h': 0, 'hr': 12, 'outs': 81, 'sb': 5}}],\n   {'R0': 19, 'R1': 21, 'R2': 16, 'R3': 24})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 8, 'er': 7, 'h': 22, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R1': {'bb': 8, 'er': 6, 'h': 24, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 3, 'er': 11, 'h': 17, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 9, 'h': 8, 'hr': 12, 'outs': 35, 'sb': 8}}],\n   {'R0': 18, 'R1': 20, 'R2': 20, 'R3': 22}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 9, 'h': 2, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 6, 'h': 1, 'hr': 15, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 9, 'h': 4, 'hr': 12, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 1, 'er': 6, 'h': 10, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R4': {'bb': 8, 'er': 11, 'h': 6, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R5': {'bb': 1, 'er': 14, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 8}}],\n   {'R0': 38, 'R1': 20, 'R2': 33, 'R3': 18, 'R4': 24, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 2, 'er': 11, 'h': 11, 'hr': 12, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 0, 'er': 7, 'h': 2, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 6, 'er': 5, 'h': 9, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 17, 'R1': 20, 'R2': 11}),\n  ('normal control 1',\n   [{'R0': {'bb': 1, 'er': 12, 'h': 5, 'hr': 12, 'outs': 4, 'sb': 8},\n     'R1': {'bb': 10, 'er': 5, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R2': {'bb': 7, 'er': 5, 'h': 12, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R3': {'bb': 9, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 8, 'er': 4, 'h': 5, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R5': {'bb': 6, 'er': 8, 'h': 13, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 34, 'R1': 29, 'R2': 17, 'R3': 38, 'R4': 22, 'R5': 28}),\n  ('normal control 2',\n   [{'R0': {'bb': 0, 'er': 8, 'h': 20, 'hr': 12, 'outs': 8, 'sb': 5},\n     'R1': {'bb': 2, 'er': 11, 'h': 15, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 4, 'er': 4, 'h': 3, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 1, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 3},\n     'R4': {'bb': 4, 'er': 6, 'h': 3, 'hr': 12, 'outs': 0, 'sb': 8},\n     'R5': {'bb': 9, 'er': 14, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 3}}],\n   {'R0': 24, 'R1': 32, 'R2': 33, 'R3': 33, 'R4': 23, 'R5': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 4, 'er': 14, 'h': 19, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 3, 'er': 3, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 8},\n     'R2': {'bb': 0, 'er': 7, 'h': 20, 'hr': 10, 'outs': 33, 'sb': 5},\n     'R3': {'bb': 5, 'er': 7, 'h': 17, 'hr': 10, 'outs': 27, 'sb': 8},\n     'R4': {'bb': 7, 'er': 11, 'h': 17, 'hr': 12, 'outs': 20, 'sb': 3}}],\n   {'R0': 23, 'R1': 37, 'R2': 24, 'R3': 22, 'R4': 14}),\n  ('normal control 4',\n   [{'R0': {'bb': 9, 'er': 4, 'h': 14, 'hr': 10, 'outs': 0, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 6, 'hr': 10, 'outs': 27, 'sb': 5},\n     'R2': {'bb': 6, 'er': 5, 'h': 2, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R3': {'bb': 4, 'er': 11, 'h': 19, 'hr': 12, 'outs': 81, 'sb': 3}}],\n   {'R0': 15, 'R1': 21, 'R2': 22, 'R3': 22})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 4, 'er': 2, 'h': 19, 'hr': 15, 'outs': 65, 'sb': 5},\n     'R1': {'bb': 0, 'er': 12, 'h': 21, 'hr': 10, 'outs': 54, 'sb': 3},\n     'R2': {'bb': 4, 'er': 2, 'h': 7, 'hr': 15, 'outs': 27, 'sb': 3},\n     'R3': {'bb': 5, 'er': 5, 'h': 23, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 2, 'er': 9, 'h': 3, 'hr': 12, 'outs': 9, 'sb': 3}}],\n   {'R0': 37, 'R1': 18, 'R2': 26, 'R3': 27, 'R4': 12}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 1, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 4, 'er': 8, 'h': 15, 'hr': 15, 'outs': 0, 'sb': 3},\n     'R2': {'bb': 6, 'er': 1, 'h': 13, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R3': {'bb': 1, 'er': 8, 'h': 7, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R4': {'bb': 6, 'er': 7, 'h': 4, 'hr': 12, 'outs': 40, 'sb': 3},\n     'R5': {'bb': 6, 'er': 14, 'h': 1, 'hr': 12, 'outs': 81, 'sb': 8}}],\n   {'R0': 32, 'R1': 19, 'R2': 31, 'R3': 31, 'R4': 20, 'R5': 35}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 0, 'hr': 12, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 5, 'h': 25, 'hr': 15, 'outs': 81, 'sb': 5},\n     'R2': {'bb': 1, 'er': 12, 'h': 23, 'hr': 15, 'outs': 0, 'sb': 8}}],\n   {'R0': 17, 'R1': 16, 'R2': 15}),\n  ('normal control 1',\n   [{'R0': {'bb': 9, 'er': 14, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R1': {'bb': 10, 'er': 7, 'h': 19, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R2': {'bb': 9, 'er': 14, 'h': 1, 'hr': 12, 'outs': 54, 'sb': 5}}],\n   {'R0': 14, 'R1': 13, 'R2': 21}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 3, 'h': 21, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R1': {'bb': 3, 'er': 11, 'h': 25, 'hr': 10, 'outs': 50, 'sb': 5},\n     'R2': {'bb': 7, 'er': 0, 'h': 12, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R3': {'bb': 2, 'er': 4, 'h': 24, 'hr': 12, 'outs': 0, 'sb': 3},\n     'R4': {'bb': 4, 'er': 14, 'h': 16, 'hr': 15, 'outs': 0, 'sb': 5}}],\n   {'R0': 29, 'R1': 21, 'R2': 33, 'R3': 14, 'R4': 23}),\n  ('normal control 3',\n   [{'R0': {'bb': 0, 'er': 1, 'h': 13, 'hr': 15, 'outs': 55, 'sb': 5},\n     'R1': {'bb': 10, 'er': 1, 'h': 16, 'hr': 10, 'outs': 27, 'sb': 3},\n     'R2': {'bb': 3, 'er': 5, 'h': 5, 'hr': 10, 'outs': 54, 'sb': 8},\n     'R3': {'bb': 2, 'er': 7, 'h': 18, 'hr': 12, 'outs': 27, 'sb': 5}}],\n   {'R0': 27, 'R1': 13, 'R2': 23, 'R3': 17}),\n  ('normal control 4',\n   [{'R0': {'bb': 8, 'er': 11, 'h': 20, 'hr': 15, 'outs': 30, 'sb': 8},\n     'R1': {'bb': 5, 'er': 3, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 7, 'er': 13, 'h': 22, 'hr': 12, 'outs': 30, 'sb': 5}}],\n   {'R0': 20, 'R1': 18, 'R2': 10})],\n [('regression: ratio precision',\n   [{'R0': {'bb': 9, 'er': 5, 'h': 21, 'hr': 10, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 6, 'er': 7, 'h': 15, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 6, 'er': 6, 'h': 25, 'hr': 15, 'outs': 54, 'sb': 3},\n     'R3': {'bb': 3, 'er': 4, 'h': 14, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 6, 'er': 6, 'h': 17, 'hr': 15, 'outs': 30, 'sb': 8}}],\n   {'R0': 31, 'R1': 16, 'R2': 25, 'R3': 24, 'R4': 24}),\n  ('partial repair probe: ratio precision',\n   [{'R0': {'bb': 2, 'er': 14, 'h': 3, 'hr': 15, 'outs': 86, 'sb': 5},\n     'R1': {'bb': 1, 'er': 6, 'h': 5, 'hr': 12, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 8, 'er': 9, 'h': 8, 'hr': 15, 'outs': 82, 'sb': 5},\n     'R3': {'bb': 7, 'er': 1, 'h': 9, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R4': {'bb': 7, 'er': 14, 'h': 20, 'hr': 12, 'outs': 18, 'sb': 5}}],\n   {'R0': 29, 'R1': 24, 'R2': 29, 'R3': 24, 'R4': 14}),\n  ('second regression',\n   [{'R0': {'bb': 0, 'er': 12, 'h': 12, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R1': {'bb': 5, 'er': 14, 'h': 15, 'hr': 12, 'outs': 32, 'sb': 5},\n     'R2': {'bb': 10, 'er': 0, 'h': 7, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R3': {'bb': 9, 'er': 1, 'h': 21, 'hr': 12, 'outs': 30, 'sb': 5},\n     'R4': {'bb': 8, 'er': 7, 'h': 15, 'hr': 12, 'outs': 81, 'sb': 5},\n     'R5': {'bb': 1, 'er': 1, 'h': 9, 'hr': 10, 'outs': 81, 'sb': 3}}],\n   {'R0': 29, 'R1': 23, 'R2': 29, 'R3': 27, 'R4': 33, 'R5': 27}),\n  ('normal control 1',\n   [{'R0': {'bb': 10, 'er': 6, 'h': 21, 'hr': 10, 'outs': 0, 'sb': 3},\n     'R1': {'bb': 5, 'er': 10, 'h': 16, 'hr': 15, 'outs': 54, 'sb': 5},\n     'R2': {'bb': 3, 'er': 9, 'h': 24, 'hr': 15, 'outs': 27, 'sb': 3}}],\n   {'R0': 9, 'R1': 23, 'R2': 16}),\n  ('normal control 2',\n   [{'R0': {'bb': 8, 'er': 14, 'h': 6, 'hr': 15, 'outs': 27, 'sb': 5},\n     'R1': {'bb': 9, 'er': 8, 'h': 20, 'hr': 15, 'outs': 0, 'sb': 8},\n     'R2': {'bb': 1, 'er': 10, 'h': 1, 'hr': 12, 'outs': 78, 'sb': 3}}],\n   {'R0': 17, 'R1': 15, 'R2': 16}),\n  ('normal control 3',\n   [{'R0': {'bb': 2, 'er': 13, 'h': 0, 'hr': 15, 'outs': 81, 'sb': 8},\n     'R1': {'bb': 2, 'er': 0, 'h': 12, 'hr': 12, 'outs': 16, 'sb': 3},\n     'R2': {'bb': 2, 'er': 3, 'h': 8, 'hr': 12, 'outs': 0, 'sb': 5}}],\n   {'R0': 22, 'R1': 15, 'R2': 11}),\n  ('normal control 4',\n   [{'R0': {'bb': 7, 'er': 2, 'h': 22, 'hr': 12, 'outs': 0, 'sb': 5},\n     'R1': {'bb': 9, 'er': 11, 'h': 25, 'hr': 10, 'outs': 30, 'sb': 5},\n     'R2': {'bb': 2, 'er': 5, 'h': 0, 'hr': 10, 'outs': 81, 'sb': 3},\n     'R3': {'bb': 7, 'er': 3, 'h': 13, 'hr': 12, 'outs': 30, 'sb': 3},\n     'R4': {'bb': 2, 'er': 14, 'h': 5, 'hr': 15, 'outs': 10, 'sb': 3},\n     'R5': {'bb': 4, 'er': 8, 'h': 0, 'hr': 12, 'outs': 30, 'sb': 8}}],\n   {'R0': 21, 'R1': 22, 'R2': 31, 'R3': 30, 'R4': 26, 'R5': 38})]]\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-rotisserie-standings-ratio-precision","generated_at":"2026-09-29T14:50:37.202175+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Roto standings aggregate ratios and ties across categories; ratio precision and tie averaging decide league titles.","repair":"Rank on the exact rational ERA.","root_cause":"ERA is computed with integer division, collapsing distinct ratios into false ties.","sha256":"b60a8020791f46b2f4b29c7812676b3717296370b8aedb5397d5c39b453ceac5","title":"ERA truncated to whole runs before ranking · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.561,"exit_code":1,"observations":[{"actual":{"R0":15,"R1":17,"R2":31,"R3":17},"check":"regression: ratio precision","expected":{"R0":15,"R1":17,"R2":31,"R3":17},"passed":true},{"actual":{"R0":25,"R1":32,"R2":26,"R3":15,"R4":22},"check":"partial repair probe: ratio precision","expected":{"R0":25,"R1":33,"R2":25,"R3":15,"R4":22},"passed":false},{"actual":{"R0":32,"R1":35,"R2":35,"R3":38,"R4":12,"R5":16},"check":"second regression","expected":{"R0":32,"R1":35,"R2":35,"R3":38,"R4":12,"R5":16},"passed":true},{"actual":{"R0":26,"R1":21,"R2":20,"R3":13},"check":"normal control 1","expected":{"R0":26,"R1":21,"R2":20,"R3":13},"passed":true},{"actual":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"check":"normal control 2","expected":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"passed":true},{"actual":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"check":"normal control 3","expected":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"passed":true},{"actual":{"R0":24,"R1":22,"R2":15,"R3":19},"check":"normal control 4","expected":{"R0":24,"R1":22,"R2":15,"R3":19},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ratio precision\", \"actual\": {\"R0\": 15, \"R1\": 17, \"R2\": 31, \"R3\": 17}, \"expected\": {\"R0\": 15, \"R1\": 17, \"R2\": 31, \"R3\": 17}, \"passed\": true}, {\"check\": \"partial repair probe: ratio precision\", \"actual\": {\"R0\": 25, \"R1\": 32, \"R2\": 26, \"R3\": 15, \"R4\": 22}, \"expected\": {\"R0\": 25, \"R1\": 33, \"R2\": 25, \"R3\": 15, \"R4\": 22}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"R0\": 32, \"R1\": 35, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"expected\": {\"R0\": 32, \"R1\": 35, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"expected\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"expected\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"expected\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"expected\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.483,"exit_code":1,"observations":[{"actual":{"R0":16,"R1":17,"R2":31,"R3":16},"check":"regression: ratio precision","expected":{"R0":15,"R1":17,"R2":31,"R3":17},"passed":false},{"actual":{"R0":25,"R1":32,"R2":26,"R3":15,"R4":22},"check":"partial repair probe: ratio precision","expected":{"R0":25,"R1":33,"R2":25,"R3":15,"R4":22},"passed":false},{"actual":{"R0":33,"R1":34,"R2":35,"R3":38,"R4":12,"R5":16},"check":"second regression","expected":{"R0":32,"R1":35,"R2":35,"R3":38,"R4":12,"R5":16},"passed":false},{"actual":{"R0":26,"R1":21,"R2":20,"R3":13},"check":"normal control 1","expected":{"R0":26,"R1":21,"R2":20,"R3":13},"passed":true},{"actual":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"check":"normal control 2","expected":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"passed":true},{"actual":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"check":"normal control 3","expected":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"passed":true},{"actual":{"R0":24,"R1":22,"R2":15,"R3":19},"check":"normal control 4","expected":{"R0":24,"R1":22,"R2":15,"R3":19},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ratio precision\", \"actual\": {\"R0\": 16, \"R1\": 17, \"R2\": 31, \"R3\": 16}, \"expected\": {\"R0\": 15, \"R1\": 17, \"R2\": 31, \"R3\": 17}, \"passed\": false}, {\"check\": \"partial repair probe: ratio precision\", \"actual\": {\"R0\": 25, \"R1\": 32, \"R2\": 26, \"R3\": 15, \"R4\": 22}, \"expected\": {\"R0\": 25, \"R1\": 33, \"R2\": 25, \"R3\": 15, \"R4\": 22}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"R0\": 33, \"R1\": 34, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"expected\": {\"R0\": 32, \"R1\": 35, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"expected\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"expected\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"expected\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"expected\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.413,"exit_code":0,"observations":[{"actual":{"R0":15,"R1":17,"R2":31,"R3":17},"check":"regression: ratio precision","expected":{"R0":15,"R1":17,"R2":31,"R3":17},"passed":true},{"actual":{"R0":25,"R1":33,"R2":25,"R3":15,"R4":22},"check":"partial repair probe: ratio precision","expected":{"R0":25,"R1":33,"R2":25,"R3":15,"R4":22},"passed":true},{"actual":{"R0":32,"R1":35,"R2":35,"R3":38,"R4":12,"R5":16},"check":"second regression","expected":{"R0":32,"R1":35,"R2":35,"R3":38,"R4":12,"R5":16},"passed":true},{"actual":{"R0":26,"R1":21,"R2":20,"R3":13},"check":"normal control 1","expected":{"R0":26,"R1":21,"R2":20,"R3":13},"passed":true},{"actual":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"check":"normal control 2","expected":{"R0":38,"R1":37,"R2":15,"R3":31,"R4":25,"R5":22},"passed":true},{"actual":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"check":"normal control 3","expected":{"R0":16,"R1":27,"R2":31,"R3":20,"R4":26},"passed":true},{"actual":{"R0":24,"R1":22,"R2":15,"R3":19},"check":"normal control 4","expected":{"R0":24,"R1":22,"R2":15,"R3":19},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ratio precision\", \"actual\": {\"R0\": 15, \"R1\": 17, \"R2\": 31, \"R3\": 17}, \"expected\": {\"R0\": 15, \"R1\": 17, \"R2\": 31, \"R3\": 17}, \"passed\": true}, {\"check\": \"partial repair probe: ratio precision\", \"actual\": {\"R0\": 25, \"R1\": 33, \"R2\": 25, \"R3\": 15, \"R4\": 22}, \"expected\": {\"R0\": 25, \"R1\": 33, \"R2\": 25, \"R3\": 15, \"R4\": 22}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"R0\": 32, \"R1\": 35, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"expected\": {\"R0\": 32, \"R1\": 35, \"R2\": 35, \"R3\": 38, \"R4\": 12, \"R5\": 16}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"expected\": {\"R0\": 26, \"R1\": 21, \"R2\": 20, \"R3\": 13}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"expected\": {\"R0\": 38, \"R1\": 37, \"R2\": 15, \"R3\": 31, \"R4\": 25, \"R5\": 22}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"expected\": {\"R0\": 16, \"R1\": 27, \"R2\": 31, \"R3\": 20, \"R4\": 26}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"expected\": {\"R0\": 24, \"R1\": 22, \"R2\": 15, \"R3\": 19}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}