FAILURE MAP
← Case archive

FA-85046 / Fantasy sports scoring / Open access

Zero-cent entries listed as winners · case 01

Every non-cashing entry appears in the payout report with 0 cents.

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

ROOT CAUSE

The payout filter accepts zero amounts.

VERIFIED REPAIR

Record only positive amounts.

Unsuccessful approach: Filtering on the base share drops entries whose only prize is a remainder cent.

Case contract

Daily contest entries are [entry id, score in hundredths]; payouts[r] is the prize in cents for finishing position r (0-based), positions past the list pay 0. Entries with equal scores share the positions they jointly occupy: their prizes are summed and split equally, whole cents only, with leftover cents given one each to the tied entries in ascending id order. Return id -> cents for entries receiving more than 0.

Why this case matters

Tie splitting in paid contests moves real money; cent remainders and the pooled positions must be exact.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(entries, payouts):
    ordered = sorted(entries, key=lambda e: (-e[1], e[0]))
    out = {}
    i = 0
    while i < len(ordered):
        j = i
        while j < len(ordered) and ordered[j][1] == ordered[i][1]:
            j += 1
        pool = sum(payouts[i:j])
        group = sorted(e[0] for e in ordered[i:j])
        share, extra = divmod(pool, len(group))
        for k, eid in enumerate(group):
            amt = share + (1 if k < extra else 0)
            if amt >= 0:
                out[eid] = amt
        i = j
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: remainder-only recipients',
   [[['e22', 1500], ['e06', 1497], ['e27', 1495], ['e28', 1500], ['e09', 1495], ['e02', 1493], ['e01', 1500],
     ['e16', 1500], ['e11', 1495]],
    [250, 100, 77]],
   {'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}),
  ('partial repair probe: remainder-only recipients',
   [[['e06', 1333], ['e19', 1328], ['e10', 1278], ['e20', 1328], ['e29', 1323], ['e11', 1333], ['e23', 1333],
     ['e13', 1333]],
    [1000, 501, 500, 250, 1]],
   {'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}),
  ('second regression',
   [[['e15', 1413], ['e03', 1365], ['e11', 1420], ['e05', 1413], ['e02', 1410], ['e27', 1413], ['e25', 1410],
     ['e21', 1417]],
    [501, 500, 301, 301, 100]],
   {'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}),
  ('normal control 1', [[['e20', 1490], ['e24', 1500], ['e18', 1495]], [1000, 1000, 250, 2]],
   {'e18': 1000, 'e20': 250, 'e24': 1000}),
  ('normal control 2', [[['e03', 1490], ['e11', 1500], ['e23', 1500], ['e21', 1500]], [501, 199, 199, 2, 1]],
   {'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}),
  ('normal control 3', [[['e06', 1365], ['e19', 1410], ['e10', 1365]], [1000, 301, 250, 77, 77]],
   {'e06': 276, 'e10': 275, 'e19': 1000}),
  ('normal control 4',
   [[['e17', 1490], ['e27', 1495], ['e23', 1490], ['e11', 1490], ['e07', 1490], ['e15', 1495], ['e21', 1490]],
    [1000, 250, 100, 1, 1]],
   {'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625})],
 [('regression: remainder-only recipients',
   [[['e06', 1415], ['e16', 1365], ['e12', 1415], ['e26', 1415], ['e05', 1410]], [500, 301]],
   {'e06': 267, 'e12': 267, 'e26': 267}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e29', 1323], ['e15', 1333], ['e28', 1326], ['e27', 1278], ['e01', 1323]],
    [501, 500, 250, 1]],
   {'e01': 1, 'e05': 500, 'e15': 501, 'e28': 250}),
  ('second regression',
   [[['e22', 1490], ['e28', 1495], ['e14', 1493], ['e13', 1500], ['e03', 1500], ['e21', 1495], ['e29', 1445]],
    [500, 301, 100]],
   {'e03': 401, 'e13': 400, 'e21': 50, 'e28': 50}),
  ('normal control 1', [[['e08', 1420], ['e19', 1420], ['e17', 1413]], [501, 77, 77, 1]],
   {'e08': 289, 'e17': 77, 'e19': 289}),
  ('normal control 2', [[['e25', 1497], ['e13', 1490], ['e26', 1445], ['e10', 1445]], [1000, 100, 77, 2, 2]],
   {'e10': 40, 'e13': 100, 'e25': 1000, 'e26': 39}),
  ('normal control 3', [[['e09', 1415], ['e11', 1417], ['e04', 1417]], [199, 199, 1]],
   {'e04': 199, 'e09': 1, 'e11': 199}),
  ('normal control 4',
   [[['e02', 1413], ['e21', 1417], ['e06', 1415], ['e01', 1365], ['e20', 1415]], [1000, 1000, 501, 501, 1]],
   {'e01': 1, 'e02': 501, 'e06': 751, 'e20': 750, 'e21': 1000})],
 [('regression: remainder-only recipients',
   [[['e09', 1490], ['e13', 1493], ['e24', 1500], ['e28', 1500], ['e02', 1445], ['e17', 1493], ['e15', 1495],
     ['e04', 1490]],
    [1000, 501, 301, 2, 1]],
   {'e13': 2, 'e15': 301, 'e17': 1, 'e24': 751, 'e28': 750}),
  ('partial repair probe: remainder-only recipients',
   [[['e19', 1417], ['e11', 1415], ['e18', 1420], ['e27', 1415]], [199, 1, 1]],
   {'e11': 1, 'e18': 199, 'e19': 1}),
  ('second regression',
   [[['e25', 1333], ['e13', 1328], ['e01', 1333], ['e05', 1323], ['e22', 1278], ['e29', 1323], ['e08', 1326],
     ['e15', 1333], ['e09', 1278]],
    [301, 250, 77]],
   {'e01': 210, 'e15': 209, 'e25': 209}),
  ('normal control 1', [[['e01', 1417], ['e26', 1420], ['e17', 1415], ['e25', 1420]], [1000, 500, 500, 301]],
   {'e01': 500, 'e17': 301, 'e25': 750, 'e26': 750}),
  ('normal control 2', [[['e01', 1365], ['e10', 1417], ['e29', 1365]], [1000, 501, 250, 199]],
   {'e01': 376, 'e10': 1000, 'e29': 375}),
  ('normal control 3', [[['e17', 1490], ['e08', 1493], ['e03', 1500]], [1000, 501, 500, 500, 2]],
   {'e03': 1000, 'e08': 501, 'e17': 500}),
  ('normal control 4', [[['e05', 1333], ['e10', 1278], ['e27', 1326]], [250, 199, 77]],
   {'e05': 250, 'e10': 77, 'e27': 199})],
 [('regression: remainder-only recipients',
   [[['e18', 1415], ['e06', 1420], ['e21', 1410], ['e02', 1415]], [1000, 100]],
   {'e02': 50, 'e06': 1000, 'e18': 50}),
  ('partial repair probe: remainder-only recipients',
   [[['e21', 1323], ['e25', 1328], ['e06', 1328], ['e23', 1323], ['e03', 1333], ['e27', 1278], ['e01', 1330]],
    [500, 77, 1]],
   {'e01': 77, 'e03': 500, 'e06': 1}),
  ('second regression',
   [[['e02', 1415], ['e16', 1420], ['e18', 1420], ['e19', 1420], ['e09', 1420], ['e08', 1413], ['e11', 1420]],
    [199, 100]],
   {'e09': 60, 'e11': 60, 'e16': 60, 'e18': 60, 'e19': 59}),
  ('normal control 1',
   [[['e24', 1500], ['e29', 1493], ['e10', 1500], ['e21', 1500], ['e13', 1493]], [1000, 1000, 1000, 500, 2]],
   {'e10': 1000, 'e13': 251, 'e21': 1000, 'e24': 1000, 'e29': 251}),
  ('normal control 2', [[['e21', 1333], ['e03', 1333], ['e07', 1333]], [1000, 1000, 501, 250, 1]],
   {'e03': 834, 'e07': 834, 'e21': 833}),
  ('normal control 3', [[['e02', 1420], ['e25', 1413], ['e27', 1365]], [501, 500, 77, 2]],
   {'e02': 501, 'e25': 500, 'e27': 77}),
  ('normal control 4', [[['e20', 1445], ['e24', 1495], ['e28', 1490], ['e05', 1445]], [1000, 77, 77, 1]],
   {'e05': 39, 'e20': 39, 'e24': 1000, 'e28': 77})],
 [('regression: remainder-only recipients',
   [[['e13', 1365], ['e02', 1413], ['e28', 1410], ['e15', 1420], ['e10', 1420], ['e26', 1413], ['e07', 1415],
     ['e18', 1410]],
    [1000, 501, 500, 77]],
   {'e02': 39, 'e07': 500, 'e10': 751, 'e15': 750, 'e26': 38}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e09', 1330], ['e12', 1328], ['e06', 1333], ['e13', 1328], ['e25', 1326], ['e29', 1323]],
    [199, 1]],
   {'e05': 1, 'e06': 199}),
  ('second regression',
   [[['e13', 1333], ['e10', 1326], ['e21', 1333], ['e27', 1328], ['e04', 1278], ['e14', 1278], ['e23', 1323],
     ['e28', 1323]],
    [501, 2, 1]],
   {'e13': 252, 'e21': 251, 'e27': 1}),
  ('normal control 1', [[['e05', 1326], ['e26', 1278], ['e04', 1328]], [250, 199, 100, 100]],
   {'e04': 250, 'e05': 199, 'e26': 100}),
  ('normal control 2',
   [[['e15', 1333], ['e27', 1333], ['e24', 1333], ['e04', 1326]], [1000, 1000, 77, 77, 2]],
   {'e04': 77, 'e15': 693, 'e24': 692, 'e27': 692}),
  ('normal control 3', [[['e06', 1278], ['e18', 1323], ['e10', 1333]], [500, 199, 77]],
   {'e06': 77, 'e10': 500, 'e18': 199}),
  ('normal control 4',
   [[['e06', 1500], ['e03', 1445], ['e04', 1445], ['e29', 1490], ['e17', 1500]], [250, 199, 100, 100]],
   {'e03': 50, 'e04': 50, 'e06': 225, 'e17': 224, 'e29': 100})]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: remainder-only recipients{'e01': 107, 'e02': 0, 'e06': 0, 'e09': 0, 'e11': 0, 'e16': 107, 'e22': 107, 'e27': 0, 'e28': 106}{'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}Failed
partial repair probe: remainder-only recipients{'e06': 563, 'e10': 0, 'e11': 563, 'e13': 563, 'e19': 1, 'e20': 0, 'e23': 562, 'e29': 0}{'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}Failed
second regression{'e02': 0, 'e03': 0, 'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e25': 0, 'e27': 234}{'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}Failed
normal control 1{'e18': 1000, 'e20': 250, 'e24': 1000}{'e18': 1000, 'e20': 250, 'e24': 1000}Passed
normal control 2{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}Passed
normal control 3{'e06': 276, 'e10': 275, 'e19': 1000}{'e06': 276, 'e10': 275, 'e19': 1000}Passed
normal control 4{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}Passed

SHA-256 / 1c6cde373f43fededcb3fa8266cb465868add360ee80e2de54486a376a1f6e81

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(entries, payouts):
    ordered = sorted(entries, key=lambda e: (-e[1], e[0]))
    out = {}
    i = 0
    while i < len(ordered):
        j = i
        while j < len(ordered) and ordered[j][1] == ordered[i][1]:
            j += 1
        pool = sum(payouts[i:j])
        group = sorted(e[0] for e in ordered[i:j])
        share, extra = divmod(pool, len(group))
        for k, eid in enumerate(group):
            amt = share + (1 if k < extra else 0)
            if share > 0:
                out[eid] = amt
        i = j
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: remainder-only recipients',
   [[['e22', 1500], ['e06', 1497], ['e27', 1495], ['e28', 1500], ['e09', 1495], ['e02', 1493], ['e01', 1500],
     ['e16', 1500], ['e11', 1495]],
    [250, 100, 77]],
   {'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}),
  ('partial repair probe: remainder-only recipients',
   [[['e06', 1333], ['e19', 1328], ['e10', 1278], ['e20', 1328], ['e29', 1323], ['e11', 1333], ['e23', 1333],
     ['e13', 1333]],
    [1000, 501, 500, 250, 1]],
   {'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}),
  ('second regression',
   [[['e15', 1413], ['e03', 1365], ['e11', 1420], ['e05', 1413], ['e02', 1410], ['e27', 1413], ['e25', 1410],
     ['e21', 1417]],
    [501, 500, 301, 301, 100]],
   {'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}),
  ('normal control 1', [[['e20', 1490], ['e24', 1500], ['e18', 1495]], [1000, 1000, 250, 2]],
   {'e18': 1000, 'e20': 250, 'e24': 1000}),
  ('normal control 2', [[['e03', 1490], ['e11', 1500], ['e23', 1500], ['e21', 1500]], [501, 199, 199, 2, 1]],
   {'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}),
  ('normal control 3', [[['e06', 1365], ['e19', 1410], ['e10', 1365]], [1000, 301, 250, 77, 77]],
   {'e06': 276, 'e10': 275, 'e19': 1000}),
  ('normal control 4',
   [[['e17', 1490], ['e27', 1495], ['e23', 1490], ['e11', 1490], ['e07', 1490], ['e15', 1495], ['e21', 1490]],
    [1000, 250, 100, 1, 1]],
   {'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625})],
 [('regression: remainder-only recipients',
   [[['e06', 1415], ['e16', 1365], ['e12', 1415], ['e26', 1415], ['e05', 1410]], [500, 301]],
   {'e06': 267, 'e12': 267, 'e26': 267}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e29', 1323], ['e15', 1333], ['e28', 1326], ['e27', 1278], ['e01', 1323]],
    [501, 500, 250, 1]],
   {'e01': 1, 'e05': 500, 'e15': 501, 'e28': 250}),
  ('second regression',
   [[['e22', 1490], ['e28', 1495], ['e14', 1493], ['e13', 1500], ['e03', 1500], ['e21', 1495], ['e29', 1445]],
    [500, 301, 100]],
   {'e03': 401, 'e13': 400, 'e21': 50, 'e28': 50}),
  ('normal control 1', [[['e08', 1420], ['e19', 1420], ['e17', 1413]], [501, 77, 77, 1]],
   {'e08': 289, 'e17': 77, 'e19': 289}),
  ('normal control 2', [[['e25', 1497], ['e13', 1490], ['e26', 1445], ['e10', 1445]], [1000, 100, 77, 2, 2]],
   {'e10': 40, 'e13': 100, 'e25': 1000, 'e26': 39}),
  ('normal control 3', [[['e09', 1415], ['e11', 1417], ['e04', 1417]], [199, 199, 1]],
   {'e04': 199, 'e09': 1, 'e11': 199}),
  ('normal control 4',
   [[['e02', 1413], ['e21', 1417], ['e06', 1415], ['e01', 1365], ['e20', 1415]], [1000, 1000, 501, 501, 1]],
   {'e01': 1, 'e02': 501, 'e06': 751, 'e20': 750, 'e21': 1000})],
 [('regression: remainder-only recipients',
   [[['e09', 1490], ['e13', 1493], ['e24', 1500], ['e28', 1500], ['e02', 1445], ['e17', 1493], ['e15', 1495],
     ['e04', 1490]],
    [1000, 501, 301, 2, 1]],
   {'e13': 2, 'e15': 301, 'e17': 1, 'e24': 751, 'e28': 750}),
  ('partial repair probe: remainder-only recipients',
   [[['e19', 1417], ['e11', 1415], ['e18', 1420], ['e27', 1415]], [199, 1, 1]],
   {'e11': 1, 'e18': 199, 'e19': 1}),
  ('second regression',
   [[['e25', 1333], ['e13', 1328], ['e01', 1333], ['e05', 1323], ['e22', 1278], ['e29', 1323], ['e08', 1326],
     ['e15', 1333], ['e09', 1278]],
    [301, 250, 77]],
   {'e01': 210, 'e15': 209, 'e25': 209}),
  ('normal control 1', [[['e01', 1417], ['e26', 1420], ['e17', 1415], ['e25', 1420]], [1000, 500, 500, 301]],
   {'e01': 500, 'e17': 301, 'e25': 750, 'e26': 750}),
  ('normal control 2', [[['e01', 1365], ['e10', 1417], ['e29', 1365]], [1000, 501, 250, 199]],
   {'e01': 376, 'e10': 1000, 'e29': 375}),
  ('normal control 3', [[['e17', 1490], ['e08', 1493], ['e03', 1500]], [1000, 501, 500, 500, 2]],
   {'e03': 1000, 'e08': 501, 'e17': 500}),
  ('normal control 4', [[['e05', 1333], ['e10', 1278], ['e27', 1326]], [250, 199, 77]],
   {'e05': 250, 'e10': 77, 'e27': 199})],
 [('regression: remainder-only recipients',
   [[['e18', 1415], ['e06', 1420], ['e21', 1410], ['e02', 1415]], [1000, 100]],
   {'e02': 50, 'e06': 1000, 'e18': 50}),
  ('partial repair probe: remainder-only recipients',
   [[['e21', 1323], ['e25', 1328], ['e06', 1328], ['e23', 1323], ['e03', 1333], ['e27', 1278], ['e01', 1330]],
    [500, 77, 1]],
   {'e01': 77, 'e03': 500, 'e06': 1}),
  ('second regression',
   [[['e02', 1415], ['e16', 1420], ['e18', 1420], ['e19', 1420], ['e09', 1420], ['e08', 1413], ['e11', 1420]],
    [199, 100]],
   {'e09': 60, 'e11': 60, 'e16': 60, 'e18': 60, 'e19': 59}),
  ('normal control 1',
   [[['e24', 1500], ['e29', 1493], ['e10', 1500], ['e21', 1500], ['e13', 1493]], [1000, 1000, 1000, 500, 2]],
   {'e10': 1000, 'e13': 251, 'e21': 1000, 'e24': 1000, 'e29': 251}),
  ('normal control 2', [[['e21', 1333], ['e03', 1333], ['e07', 1333]], [1000, 1000, 501, 250, 1]],
   {'e03': 834, 'e07': 834, 'e21': 833}),
  ('normal control 3', [[['e02', 1420], ['e25', 1413], ['e27', 1365]], [501, 500, 77, 2]],
   {'e02': 501, 'e25': 500, 'e27': 77}),
  ('normal control 4', [[['e20', 1445], ['e24', 1495], ['e28', 1490], ['e05', 1445]], [1000, 77, 77, 1]],
   {'e05': 39, 'e20': 39, 'e24': 1000, 'e28': 77})],
 [('regression: remainder-only recipients',
   [[['e13', 1365], ['e02', 1413], ['e28', 1410], ['e15', 1420], ['e10', 1420], ['e26', 1413], ['e07', 1415],
     ['e18', 1410]],
    [1000, 501, 500, 77]],
   {'e02': 39, 'e07': 500, 'e10': 751, 'e15': 750, 'e26': 38}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e09', 1330], ['e12', 1328], ['e06', 1333], ['e13', 1328], ['e25', 1326], ['e29', 1323]],
    [199, 1]],
   {'e05': 1, 'e06': 199}),
  ('second regression',
   [[['e13', 1333], ['e10', 1326], ['e21', 1333], ['e27', 1328], ['e04', 1278], ['e14', 1278], ['e23', 1323],
     ['e28', 1323]],
    [501, 2, 1]],
   {'e13': 252, 'e21': 251, 'e27': 1}),
  ('normal control 1', [[['e05', 1326], ['e26', 1278], ['e04', 1328]], [250, 199, 100, 100]],
   {'e04': 250, 'e05': 199, 'e26': 100}),
  ('normal control 2',
   [[['e15', 1333], ['e27', 1333], ['e24', 1333], ['e04', 1326]], [1000, 1000, 77, 77, 2]],
   {'e04': 77, 'e15': 693, 'e24': 692, 'e27': 692}),
  ('normal control 3', [[['e06', 1278], ['e18', 1323], ['e10', 1333]], [500, 199, 77]],
   {'e06': 77, 'e10': 500, 'e18': 199}),
  ('normal control 4',
   [[['e06', 1500], ['e03', 1445], ['e04', 1445], ['e29', 1490], ['e17', 1500]], [250, 199, 100, 100]],
   {'e03': 50, 'e04': 50, 'e06': 225, 'e17': 224, 'e29': 100})]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: remainder-only recipients{'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}{'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}Passed
partial repair probe: remainder-only recipients{'e06': 563, 'e11': 563, 'e13': 563, 'e23': 562}{'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}Failed
second regression{'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}{'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}Passed
normal control 1{'e18': 1000, 'e20': 250, 'e24': 1000}{'e18': 1000, 'e20': 250, 'e24': 1000}Passed
normal control 2{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}Passed
normal control 3{'e06': 276, 'e10': 275, 'e19': 1000}{'e06': 276, 'e10': 275, 'e19': 1000}Passed
normal control 4{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}Passed

SHA-256 / acc1ec3d8f50a2dbe904b767cdd2e38fed7ab2621987d5b2e1aa99c1e64c4e88

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(entries, payouts):
    ordered = sorted(entries, key=lambda e: (-e[1], e[0]))
    out = {}
    i = 0
    while i < len(ordered):
        j = i
        while j < len(ordered) and ordered[j][1] == ordered[i][1]:
            j += 1
        pool = sum(payouts[i:j])
        group = sorted(e[0] for e in ordered[i:j])
        share, extra = divmod(pool, len(group))
        for k, eid in enumerate(group):
            amt = share + (1 if k < extra else 0)
            if amt > 0:
                out[eid] = amt
        i = j
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: remainder-only recipients',
   [[['e22', 1500], ['e06', 1497], ['e27', 1495], ['e28', 1500], ['e09', 1495], ['e02', 1493], ['e01', 1500],
     ['e16', 1500], ['e11', 1495]],
    [250, 100, 77]],
   {'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}),
  ('partial repair probe: remainder-only recipients',
   [[['e06', 1333], ['e19', 1328], ['e10', 1278], ['e20', 1328], ['e29', 1323], ['e11', 1333], ['e23', 1333],
     ['e13', 1333]],
    [1000, 501, 500, 250, 1]],
   {'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}),
  ('second regression',
   [[['e15', 1413], ['e03', 1365], ['e11', 1420], ['e05', 1413], ['e02', 1410], ['e27', 1413], ['e25', 1410],
     ['e21', 1417]],
    [501, 500, 301, 301, 100]],
   {'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}),
  ('normal control 1', [[['e20', 1490], ['e24', 1500], ['e18', 1495]], [1000, 1000, 250, 2]],
   {'e18': 1000, 'e20': 250, 'e24': 1000}),
  ('normal control 2', [[['e03', 1490], ['e11', 1500], ['e23', 1500], ['e21', 1500]], [501, 199, 199, 2, 1]],
   {'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}),
  ('normal control 3', [[['e06', 1365], ['e19', 1410], ['e10', 1365]], [1000, 301, 250, 77, 77]],
   {'e06': 276, 'e10': 275, 'e19': 1000}),
  ('normal control 4',
   [[['e17', 1490], ['e27', 1495], ['e23', 1490], ['e11', 1490], ['e07', 1490], ['e15', 1495], ['e21', 1490]],
    [1000, 250, 100, 1, 1]],
   {'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625})],
 [('regression: remainder-only recipients',
   [[['e06', 1415], ['e16', 1365], ['e12', 1415], ['e26', 1415], ['e05', 1410]], [500, 301]],
   {'e06': 267, 'e12': 267, 'e26': 267}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e29', 1323], ['e15', 1333], ['e28', 1326], ['e27', 1278], ['e01', 1323]],
    [501, 500, 250, 1]],
   {'e01': 1, 'e05': 500, 'e15': 501, 'e28': 250}),
  ('second regression',
   [[['e22', 1490], ['e28', 1495], ['e14', 1493], ['e13', 1500], ['e03', 1500], ['e21', 1495], ['e29', 1445]],
    [500, 301, 100]],
   {'e03': 401, 'e13': 400, 'e21': 50, 'e28': 50}),
  ('normal control 1', [[['e08', 1420], ['e19', 1420], ['e17', 1413]], [501, 77, 77, 1]],
   {'e08': 289, 'e17': 77, 'e19': 289}),
  ('normal control 2', [[['e25', 1497], ['e13', 1490], ['e26', 1445], ['e10', 1445]], [1000, 100, 77, 2, 2]],
   {'e10': 40, 'e13': 100, 'e25': 1000, 'e26': 39}),
  ('normal control 3', [[['e09', 1415], ['e11', 1417], ['e04', 1417]], [199, 199, 1]],
   {'e04': 199, 'e09': 1, 'e11': 199}),
  ('normal control 4',
   [[['e02', 1413], ['e21', 1417], ['e06', 1415], ['e01', 1365], ['e20', 1415]], [1000, 1000, 501, 501, 1]],
   {'e01': 1, 'e02': 501, 'e06': 751, 'e20': 750, 'e21': 1000})],
 [('regression: remainder-only recipients',
   [[['e09', 1490], ['e13', 1493], ['e24', 1500], ['e28', 1500], ['e02', 1445], ['e17', 1493], ['e15', 1495],
     ['e04', 1490]],
    [1000, 501, 301, 2, 1]],
   {'e13': 2, 'e15': 301, 'e17': 1, 'e24': 751, 'e28': 750}),
  ('partial repair probe: remainder-only recipients',
   [[['e19', 1417], ['e11', 1415], ['e18', 1420], ['e27', 1415]], [199, 1, 1]],
   {'e11': 1, 'e18': 199, 'e19': 1}),
  ('second regression',
   [[['e25', 1333], ['e13', 1328], ['e01', 1333], ['e05', 1323], ['e22', 1278], ['e29', 1323], ['e08', 1326],
     ['e15', 1333], ['e09', 1278]],
    [301, 250, 77]],
   {'e01': 210, 'e15': 209, 'e25': 209}),
  ('normal control 1', [[['e01', 1417], ['e26', 1420], ['e17', 1415], ['e25', 1420]], [1000, 500, 500, 301]],
   {'e01': 500, 'e17': 301, 'e25': 750, 'e26': 750}),
  ('normal control 2', [[['e01', 1365], ['e10', 1417], ['e29', 1365]], [1000, 501, 250, 199]],
   {'e01': 376, 'e10': 1000, 'e29': 375}),
  ('normal control 3', [[['e17', 1490], ['e08', 1493], ['e03', 1500]], [1000, 501, 500, 500, 2]],
   {'e03': 1000, 'e08': 501, 'e17': 500}),
  ('normal control 4', [[['e05', 1333], ['e10', 1278], ['e27', 1326]], [250, 199, 77]],
   {'e05': 250, 'e10': 77, 'e27': 199})],
 [('regression: remainder-only recipients',
   [[['e18', 1415], ['e06', 1420], ['e21', 1410], ['e02', 1415]], [1000, 100]],
   {'e02': 50, 'e06': 1000, 'e18': 50}),
  ('partial repair probe: remainder-only recipients',
   [[['e21', 1323], ['e25', 1328], ['e06', 1328], ['e23', 1323], ['e03', 1333], ['e27', 1278], ['e01', 1330]],
    [500, 77, 1]],
   {'e01': 77, 'e03': 500, 'e06': 1}),
  ('second regression',
   [[['e02', 1415], ['e16', 1420], ['e18', 1420], ['e19', 1420], ['e09', 1420], ['e08', 1413], ['e11', 1420]],
    [199, 100]],
   {'e09': 60, 'e11': 60, 'e16': 60, 'e18': 60, 'e19': 59}),
  ('normal control 1',
   [[['e24', 1500], ['e29', 1493], ['e10', 1500], ['e21', 1500], ['e13', 1493]], [1000, 1000, 1000, 500, 2]],
   {'e10': 1000, 'e13': 251, 'e21': 1000, 'e24': 1000, 'e29': 251}),
  ('normal control 2', [[['e21', 1333], ['e03', 1333], ['e07', 1333]], [1000, 1000, 501, 250, 1]],
   {'e03': 834, 'e07': 834, 'e21': 833}),
  ('normal control 3', [[['e02', 1420], ['e25', 1413], ['e27', 1365]], [501, 500, 77, 2]],
   {'e02': 501, 'e25': 500, 'e27': 77}),
  ('normal control 4', [[['e20', 1445], ['e24', 1495], ['e28', 1490], ['e05', 1445]], [1000, 77, 77, 1]],
   {'e05': 39, 'e20': 39, 'e24': 1000, 'e28': 77})],
 [('regression: remainder-only recipients',
   [[['e13', 1365], ['e02', 1413], ['e28', 1410], ['e15', 1420], ['e10', 1420], ['e26', 1413], ['e07', 1415],
     ['e18', 1410]],
    [1000, 501, 500, 77]],
   {'e02': 39, 'e07': 500, 'e10': 751, 'e15': 750, 'e26': 38}),
  ('partial repair probe: remainder-only recipients',
   [[['e05', 1330], ['e09', 1330], ['e12', 1328], ['e06', 1333], ['e13', 1328], ['e25', 1326], ['e29', 1323]],
    [199, 1]],
   {'e05': 1, 'e06': 199}),
  ('second regression',
   [[['e13', 1333], ['e10', 1326], ['e21', 1333], ['e27', 1328], ['e04', 1278], ['e14', 1278], ['e23', 1323],
     ['e28', 1323]],
    [501, 2, 1]],
   {'e13': 252, 'e21': 251, 'e27': 1}),
  ('normal control 1', [[['e05', 1326], ['e26', 1278], ['e04', 1328]], [250, 199, 100, 100]],
   {'e04': 250, 'e05': 199, 'e26': 100}),
  ('normal control 2',
   [[['e15', 1333], ['e27', 1333], ['e24', 1333], ['e04', 1326]], [1000, 1000, 77, 77, 2]],
   {'e04': 77, 'e15': 693, 'e24': 692, 'e27': 692}),
  ('normal control 3', [[['e06', 1278], ['e18', 1323], ['e10', 1333]], [500, 199, 77]],
   {'e06': 77, 'e10': 500, 'e18': 199}),
  ('normal control 4',
   [[['e06', 1500], ['e03', 1445], ['e04', 1445], ['e29', 1490], ['e17', 1500]], [250, 199, 100, 100]],
   {'e03': 50, 'e04': 50, 'e06': 225, 'e17': 224, 'e29': 100})]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: remainder-only recipients{'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}{'e01': 107, 'e16': 107, 'e22': 107, 'e28': 106}Passed
partial repair probe: remainder-only recipients{'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}{'e06': 563, 'e11': 563, 'e13': 563, 'e19': 1, 'e23': 562}Passed
second regression{'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}{'e05': 234, 'e11': 501, 'e15': 234, 'e21': 500, 'e27': 234}Passed
normal control 1{'e18': 1000, 'e20': 250, 'e24': 1000}{'e18': 1000, 'e20': 250, 'e24': 1000}Passed
normal control 2{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}{'e03': 2, 'e11': 300, 'e21': 300, 'e23': 299}Passed
normal control 3{'e06': 276, 'e10': 275, 'e19': 1000}{'e06': 276, 'e10': 275, 'e19': 1000}Passed
normal control 4{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}{'e07': 21, 'e11': 21, 'e15': 625, 'e17': 20, 'e21': 20, 'e23': 20, 'e27': 625}Passed

SHA-256 / 2b859324531ffd3bf531748776ce35afd23f6ec3c3d410aadc206a15d6642b41

Verification & scope

A deterministic toy scoring contract stipulated for this example; it is not the rulebook of any real fantasy platform. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

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

Case digest / 57b10fbeabcea593013fc3b9ad62d4fc4baebda732bd29b35fd3aa3e5b2bf80a