FAILURE MAP
← Case archive

FA-84096 / Sports scoring and tiebreakers / Open access

Equal percentages ordered by name before wins · case 01

A 4-4 team is listed below a 2-2 team.

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

ROOT CAUSE

The tiebreak after percentage uses the name.

VERIFIED REPAIR

Break percentage ties by more wins, then name.

Unsuccessful approach: Sorting by fewer losses reverses the intended order for equal percentages.

Case contract

Division standings. teams rows are [name, wins, losses]. Win percentage is wins / games (0 for no games) shown with three decimals and the leading zero dropped (".500", but "1.000"). Sort by win percentage, then more wins, then name. The leader is the first sorted row; games behind = ((leader_wins - wins) + (losses - leader_losses)) / 2, shown as "-" when zero and otherwise with one decimal (negative values allowed). Return [name, pct, gb] rows.

Why this case matters

Standings pages and playoff-race widgets print win percentage and games behind.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(teams):
    def pct(w, l):
        return Fraction(w, w + l) if w + l else Fraction(0)
    rows = sorted(teams, key=lambda r: (-pct(r[1], r[2]), r[0]))
    lw, ll = rows[0][1], rows[0][2]
    out = []
    for name, w, l in rows:
        p = '%.3f' % float(pct(w, l))
        if p.startswith('0'):
            p = p[1:]
        gb2 = (lw - w) + (l - ll)
        gb = '-' if gb2 == 0 else '%.1f' % (gb2 / 2)
        out.append([name, p, gb])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 3, 8], ['Wolves', 6, 16], ['Jets', 3, 11], ['Suns', 0, 4]],),
   [['Wolves', '.273', '-'],
    ['Cats', '.273', '-2.5'],
    ['Jets', '.214', '-1.0'],
    ['Suns', '.000', '-3.0']]),
  ('variant scenario 1',
   ([['Suns', 9, 0], ['Cats', 19, 11], ['Bucks', 6, 7]],),
   [['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]),
  ('variant scenario 2',
   ([['Cats', 8, 15], ['Jets', 18, 12], ['Wolves', 6, 3]],),
   [['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 1, 0], ['Jets', 15, 5], ['Wolves', 0, 0], ['Suns', 15, 0]],),
   [['Suns', '1.000', '-'],
    ['Cats', '1.000', '7.0'],
    ['Jets', '.750', '2.5'],
    ['Wolves', '.000', '7.5']]),
  ('variant scenario 1',
   ([['Suns', 8, 18], ['Cats', 30, 2], ['Jets', 0, 33], ['Bucks', 2, 3], ['Wolves', 1, 9]],),
   [['Cats', '.938', '-'],
    ['Bucks', '.400', '14.5'],
    ['Suns', '.308', '19.0'],
    ['Wolves', '.100', '18.0'],
    ['Jets', '.000', '30.5']]),
  ('variant scenario 2',
   ([['Bucks', 10, 19], ['Suns', 27, 4], ['Jets', 31, 0]],),
   [['Jets', '1.000', '-'], ['Suns', '.871', '4.0'], ['Bucks', '.345', '20.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 14, 20], ['Jets', 28, 40], ['Wolves', 14, 19], ['Suns', 0, 10]],),
   [['Wolves', '.424', '-'],
    ['Jets', '.412', '3.5'],
    ['Bucks', '.412', '0.5'],
    ['Suns', '.000', '2.5']]),
  ('variant scenario 1',
   ([['Cats', 2, 15], ['Suns', 1, 7]],),
   [['Suns', '.125', '-'], ['Cats', '.118', '3.5']]),
  ('variant scenario 2',
   ([['Bucks', 2, 17], ['Suns', 9, 11]],),
   [['Suns', '.450', '-'], ['Bucks', '.105', '6.5']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Wolves', 4, 18], ['Suns', 8, 36], ['Cats', 4, 35], ['Jets', 10, 27]],),
   [['Jets', '.270', '-'],
    ['Suns', '.182', '5.5'],
    ['Wolves', '.182', '-1.5'],
    ['Cats', '.103', '7.0']]),
  ('regression: equal percentage order',
   ([['Jets', 7, 16], ['Wolves', 14, 32], ['Suns', 3, 15]],),
   [['Wolves', '.304', '-'], ['Jets', '.304', '-4.5'], ['Suns', '.167', '-3.0']]),
  ('variant scenario 1',
   ([['Bucks', 5, 10], ['Cats', 16, 0]],),
   [['Cats', '1.000', '-'], ['Bucks', '.333', '10.5']]),
  ('variant scenario 2',
   ([['Jets', 11, 19], ['Bucks', 22, 38]],),
   [['Bucks', '.367', '-'], ['Jets', '.367', '-4.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 1, 3], ['Suns', 2, 6], ['Cats', 15, 15]],),
   [['Cats', '.500', '-'], ['Suns', '.250', '2.0'], ['Bucks', '.250', '1.0']]),
  ('variant scenario 1',
   ([['Cats', 4, 26], ['Jets', 8, 52], ['Suns', 6, 27]],),
   [['Suns', '.182', '-'], ['Jets', '.133', '11.5'], ['Cats', '.133', '0.5']]),
  ('variant scenario 2',
   ([['Suns', 11, 6], ['Cats', 22, 12], ['Bucks', 7, 0], ['Wolves', 6, 8], ['Jets', 1, 33]],),
   [['Bucks', '1.000', '-'],
    ['Cats', '.647', '-1.5'],
    ['Suns', '.647', '1.0'],
    ['Wolves', '.429', '4.5'],
    ['Jets', '.029', '19.5']])]]
for label, args, expected in cases[N - 1]:
    check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
control two teams[['Cats', '.667', '-'], ['Jets', '.533', '2.0']][['Cats', '.667', '-'], ['Jets', '.533', '2.0']]Passed
boundary half game[['Cats', '.667', '-'], ['Jets', '.643', '0.5']][['Cats', '.667', '-'], ['Jets', '.643', '0.5']]Passed
boundary perfect record[['Suns', '1.000', '-'], ['Jets', '.500', '1.5']][['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]Passed
boundary no games played[['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']][['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]Passed
control equal pct more wins first[['Bucks', '.500', '-'], ['Cats', '.500', '-']][['Bucks', '.500', '-'], ['Cats', '.500', '-']]Passed
regression: equal percentage order[['Cats', '.273', '-'], ['Wolves', '.273', '2.5'], ['Jets', '.214', '1.5'], ['Suns', '.000', '-0.5']][['Wolves', '.273', '-'], ['Cats', '.273', '-2.5'], ['Jets', '.214', '-1.0'], ['Suns', '.000', '-3.0']]Failed
variant scenario 1[['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']][['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]Passed
variant scenario 2[['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']][['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']]Passed

SHA-256 / c895b9afdede09ba6f783f1e886f162641446f8de269055dc1c3f51bc33db010

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(teams):
    def pct(w, l):
        return Fraction(w, w + l) if w + l else Fraction(0)
    rows = sorted(teams, key=lambda r: (-pct(r[1], r[2]), r[2], r[0]))
    lw, ll = rows[0][1], rows[0][2]
    out = []
    for name, w, l in rows:
        p = '%.3f' % float(pct(w, l))
        if p.startswith('0'):
            p = p[1:]
        gb2 = (lw - w) + (l - ll)
        gb = '-' if gb2 == 0 else '%.1f' % (gb2 / 2)
        out.append([name, p, gb])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 3, 8], ['Wolves', 6, 16], ['Jets', 3, 11], ['Suns', 0, 4]],),
   [['Wolves', '.273', '-'],
    ['Cats', '.273', '-2.5'],
    ['Jets', '.214', '-1.0'],
    ['Suns', '.000', '-3.0']]),
  ('variant scenario 1',
   ([['Suns', 9, 0], ['Cats', 19, 11], ['Bucks', 6, 7]],),
   [['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]),
  ('variant scenario 2',
   ([['Cats', 8, 15], ['Jets', 18, 12], ['Wolves', 6, 3]],),
   [['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 1, 0], ['Jets', 15, 5], ['Wolves', 0, 0], ['Suns', 15, 0]],),
   [['Suns', '1.000', '-'],
    ['Cats', '1.000', '7.0'],
    ['Jets', '.750', '2.5'],
    ['Wolves', '.000', '7.5']]),
  ('variant scenario 1',
   ([['Suns', 8, 18], ['Cats', 30, 2], ['Jets', 0, 33], ['Bucks', 2, 3], ['Wolves', 1, 9]],),
   [['Cats', '.938', '-'],
    ['Bucks', '.400', '14.5'],
    ['Suns', '.308', '19.0'],
    ['Wolves', '.100', '18.0'],
    ['Jets', '.000', '30.5']]),
  ('variant scenario 2',
   ([['Bucks', 10, 19], ['Suns', 27, 4], ['Jets', 31, 0]],),
   [['Jets', '1.000', '-'], ['Suns', '.871', '4.0'], ['Bucks', '.345', '20.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 14, 20], ['Jets', 28, 40], ['Wolves', 14, 19], ['Suns', 0, 10]],),
   [['Wolves', '.424', '-'],
    ['Jets', '.412', '3.5'],
    ['Bucks', '.412', '0.5'],
    ['Suns', '.000', '2.5']]),
  ('variant scenario 1',
   ([['Cats', 2, 15], ['Suns', 1, 7]],),
   [['Suns', '.125', '-'], ['Cats', '.118', '3.5']]),
  ('variant scenario 2',
   ([['Bucks', 2, 17], ['Suns', 9, 11]],),
   [['Suns', '.450', '-'], ['Bucks', '.105', '6.5']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Wolves', 4, 18], ['Suns', 8, 36], ['Cats', 4, 35], ['Jets', 10, 27]],),
   [['Jets', '.270', '-'],
    ['Suns', '.182', '5.5'],
    ['Wolves', '.182', '-1.5'],
    ['Cats', '.103', '7.0']]),
  ('regression: equal percentage order',
   ([['Jets', 7, 16], ['Wolves', 14, 32], ['Suns', 3, 15]],),
   [['Wolves', '.304', '-'], ['Jets', '.304', '-4.5'], ['Suns', '.167', '-3.0']]),
  ('variant scenario 1',
   ([['Bucks', 5, 10], ['Cats', 16, 0]],),
   [['Cats', '1.000', '-'], ['Bucks', '.333', '10.5']]),
  ('variant scenario 2',
   ([['Jets', 11, 19], ['Bucks', 22, 38]],),
   [['Bucks', '.367', '-'], ['Jets', '.367', '-4.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 1, 3], ['Suns', 2, 6], ['Cats', 15, 15]],),
   [['Cats', '.500', '-'], ['Suns', '.250', '2.0'], ['Bucks', '.250', '1.0']]),
  ('variant scenario 1',
   ([['Cats', 4, 26], ['Jets', 8, 52], ['Suns', 6, 27]],),
   [['Suns', '.182', '-'], ['Jets', '.133', '11.5'], ['Cats', '.133', '0.5']]),
  ('variant scenario 2',
   ([['Suns', 11, 6], ['Cats', 22, 12], ['Bucks', 7, 0], ['Wolves', 6, 8], ['Jets', 1, 33]],),
   [['Bucks', '1.000', '-'],
    ['Cats', '.647', '-1.5'],
    ['Suns', '.647', '1.0'],
    ['Wolves', '.429', '4.5'],
    ['Jets', '.029', '19.5']])]]
for label, args, expected in cases[N - 1]:
    check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
control two teams[['Cats', '.667', '-'], ['Jets', '.533', '2.0']][['Cats', '.667', '-'], ['Jets', '.533', '2.0']]Passed
boundary half game[['Cats', '.667', '-'], ['Jets', '.643', '0.5']][['Cats', '.667', '-'], ['Jets', '.643', '0.5']]Passed
boundary perfect record[['Suns', '1.000', '-'], ['Jets', '.500', '1.5']][['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]Passed
boundary no games played[['Suns', '.000', '-'], ['Bucks', '.000', '1.0']][['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]Failed
control equal pct more wins first[['Cats', '.500', '-'], ['Bucks', '.500', '-']][['Bucks', '.500', '-'], ['Cats', '.500', '-']]Failed
regression: equal percentage order[['Cats', '.273', '-'], ['Wolves', '.273', '2.5'], ['Jets', '.214', '1.5'], ['Suns', '.000', '-0.5']][['Wolves', '.273', '-'], ['Cats', '.273', '-2.5'], ['Jets', '.214', '-1.0'], ['Suns', '.000', '-3.0']]Failed
variant scenario 1[['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']][['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]Passed
variant scenario 2[['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']][['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']]Passed

SHA-256 / 00c8fd951269c0aca24ad90f88d25efa802c8d71242310c6cc4aeb01e8ce8921

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(teams):
    def pct(w, l):
        return Fraction(w, w + l) if w + l else Fraction(0)
    rows = sorted(teams, key=lambda r: (-pct(r[1], r[2]), -r[1], r[0]))
    lw, ll = rows[0][1], rows[0][2]
    out = []
    for name, w, l in rows:
        p = '%.3f' % float(pct(w, l))
        if p.startswith('0'):
            p = p[1:]
        gb2 = (lw - w) + (l - ll)
        gb = '-' if gb2 == 0 else '%.1f' % (gb2 / 2)
        out.append([name, p, gb])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
def run(args):
    try:
        return solve(*args)
    except Exception as exc:
        return 'raised ' + type(exc).__name__
cases = [[('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 3, 8], ['Wolves', 6, 16], ['Jets', 3, 11], ['Suns', 0, 4]],),
   [['Wolves', '.273', '-'],
    ['Cats', '.273', '-2.5'],
    ['Jets', '.214', '-1.0'],
    ['Suns', '.000', '-3.0']]),
  ('variant scenario 1',
   ([['Suns', 9, 0], ['Cats', 19, 11], ['Bucks', 6, 7]],),
   [['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]),
  ('variant scenario 2',
   ([['Cats', 8, 15], ['Jets', 18, 12], ['Wolves', 6, 3]],),
   [['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Cats', 1, 0], ['Jets', 15, 5], ['Wolves', 0, 0], ['Suns', 15, 0]],),
   [['Suns', '1.000', '-'],
    ['Cats', '1.000', '7.0'],
    ['Jets', '.750', '2.5'],
    ['Wolves', '.000', '7.5']]),
  ('variant scenario 1',
   ([['Suns', 8, 18], ['Cats', 30, 2], ['Jets', 0, 33], ['Bucks', 2, 3], ['Wolves', 1, 9]],),
   [['Cats', '.938', '-'],
    ['Bucks', '.400', '14.5'],
    ['Suns', '.308', '19.0'],
    ['Wolves', '.100', '18.0'],
    ['Jets', '.000', '30.5']]),
  ('variant scenario 2',
   ([['Bucks', 10, 19], ['Suns', 27, 4], ['Jets', 31, 0]],),
   [['Jets', '1.000', '-'], ['Suns', '.871', '4.0'], ['Bucks', '.345', '20.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 14, 20], ['Jets', 28, 40], ['Wolves', 14, 19], ['Suns', 0, 10]],),
   [['Wolves', '.424', '-'],
    ['Jets', '.412', '3.5'],
    ['Bucks', '.412', '0.5'],
    ['Suns', '.000', '2.5']]),
  ('variant scenario 1',
   ([['Cats', 2, 15], ['Suns', 1, 7]],),
   [['Suns', '.125', '-'], ['Cats', '.118', '3.5']]),
  ('variant scenario 2',
   ([['Bucks', 2, 17], ['Suns', 9, 11]],),
   [['Suns', '.450', '-'], ['Bucks', '.105', '6.5']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Wolves', 4, 18], ['Suns', 8, 36], ['Cats', 4, 35], ['Jets', 10, 27]],),
   [['Jets', '.270', '-'],
    ['Suns', '.182', '5.5'],
    ['Wolves', '.182', '-1.5'],
    ['Cats', '.103', '7.0']]),
  ('regression: equal percentage order',
   ([['Jets', 7, 16], ['Wolves', 14, 32], ['Suns', 3, 15]],),
   [['Wolves', '.304', '-'], ['Jets', '.304', '-4.5'], ['Suns', '.167', '-3.0']]),
  ('variant scenario 1',
   ([['Bucks', 5, 10], ['Cats', 16, 0]],),
   [['Cats', '1.000', '-'], ['Bucks', '.333', '10.5']]),
  ('variant scenario 2',
   ([['Jets', 11, 19], ['Bucks', 22, 38]],),
   [['Bucks', '.367', '-'], ['Jets', '.367', '-4.0']])],
 [('control two teams',
   ([['Cats', 10, 5], ['Jets', 8, 7]],),
   [['Cats', '.667', '-'], ['Jets', '.533', '2.0']]),
  ('boundary half game',
   ([['Cats', 10, 5], ['Jets', 9, 5]],),
   [['Cats', '.667', '-'], ['Jets', '.643', '0.5']]),
  ('boundary perfect record',
   ([['Suns', 3, 0], ['Jets', 1, 1]],),
   [['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]),
  ('boundary no games played',
   ([['Suns', 0, 0], ['Bucks', 0, 2]],),
   [['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]),
  ('control equal pct more wins first',
   ([['Cats', 2, 2], ['Bucks', 4, 4]],),
   [['Bucks', '.500', '-'], ['Cats', '.500', '-']]),
  ('regression: equal percentage order',
   ([['Bucks', 1, 3], ['Suns', 2, 6], ['Cats', 15, 15]],),
   [['Cats', '.500', '-'], ['Suns', '.250', '2.0'], ['Bucks', '.250', '1.0']]),
  ('variant scenario 1',
   ([['Cats', 4, 26], ['Jets', 8, 52], ['Suns', 6, 27]],),
   [['Suns', '.182', '-'], ['Jets', '.133', '11.5'], ['Cats', '.133', '0.5']]),
  ('variant scenario 2',
   ([['Suns', 11, 6], ['Cats', 22, 12], ['Bucks', 7, 0], ['Wolves', 6, 8], ['Jets', 1, 33]],),
   [['Bucks', '1.000', '-'],
    ['Cats', '.647', '-1.5'],
    ['Suns', '.647', '1.0'],
    ['Wolves', '.429', '4.5'],
    ['Jets', '.029', '19.5']])]]
for label, args, expected in cases[N - 1]:
    check(label, run(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
control two teams[['Cats', '.667', '-'], ['Jets', '.533', '2.0']][['Cats', '.667', '-'], ['Jets', '.533', '2.0']]Passed
boundary half game[['Cats', '.667', '-'], ['Jets', '.643', '0.5']][['Cats', '.667', '-'], ['Jets', '.643', '0.5']]Passed
boundary perfect record[['Suns', '1.000', '-'], ['Jets', '.500', '1.5']][['Suns', '1.000', '-'], ['Jets', '.500', '1.5']]Passed
boundary no games played[['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']][['Bucks', '.000', '-'], ['Suns', '.000', '-1.0']]Passed
control equal pct more wins first[['Bucks', '.500', '-'], ['Cats', '.500', '-']][['Bucks', '.500', '-'], ['Cats', '.500', '-']]Passed
regression: equal percentage order[['Wolves', '.273', '-'], ['Cats', '.273', '-2.5'], ['Jets', '.214', '-1.0'], ['Suns', '.000', '-3.0']][['Wolves', '.273', '-'], ['Cats', '.273', '-2.5'], ['Jets', '.214', '-1.0'], ['Suns', '.000', '-3.0']]Passed
variant scenario 1[['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']][['Suns', '1.000', '-'], ['Cats', '.633', '0.5'], ['Bucks', '.462', '5.0']]Passed
variant scenario 2[['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']][['Wolves', '.667', '-'], ['Jets', '.600', '-1.5'], ['Cats', '.348', '5.0']]Passed

SHA-256 / 5e1d7c8e310c232be19cfc44ebdbd05e3046c21a551bae27e04926d80d7ecaa0

Verification & scope

Stipulated, bounded toy contract stated in the contract field; not a claim of conformance with any governing body rulebook or operator house rules. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:50:27.794560+00:00.

Case digest / f2aa51b18bc691f2a70e52f5de76e451a9d092e63c77575bb602ac85fcc898bb