FA-84266 / Sports scoring and tiebreakers / Open access
Timing truncated instead of rounded up · case 01
10.101 is published as 10.10 and ties are split that should be shared.
ROOT CAUSE
Thousandths are converted to hundredths with floor division.
VERIFIED REPAIR
Round up to the next hundredth.
Unsuccessful approach: Rounding to the nearest hundredth still publishes 10.104 as 10.10.
Case contract
Sprint results. results rows are [name, time] where time is seconds with up to three decimals, or "DNF"/"DQ". Times are rounded up to the next hundredth for publication. Rank by rounded time then name; equal rounded times share the place and the next place is skipped (1, 2, 2, 4). DNF athletes follow the finishers in name order with place None and time "DNF"; DQ athletes are omitted. Return [place, name, time "S.hh"] rows.
Why this case matters
Result feeds publish hundredths from fully automatic timing and must rank ties consistently.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(results):
fin = []
dnf = []
for name, t in results:
if t == 'DQ':
continue
if t == 'DNF':
dnf.append(name)
continue
whole, _, frac = t.partition('.')
thous = int(whole) * 1000 + int((frac + '000')[:3])
hund = thous // 10
fin.append((hund, name))
fin.sort()
out = []
for i, (h, name) in enumerate(fin):
place = i + 1 if i == 0 or fin[i - 1][0] != h else out[-1][0]
out.append([place, name, '%d.%02d' % (h // 100, h % 100)])
for name in sorted(dnf):
out.append([None, name, 'DNF'])
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 distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Fay', '10.2'], ['Cy', '10.26'], ['Dee', '10.245'], ['Eli', '10.234']],),
[[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']]),
('variant scenario 1',
([['Fay', '10.24'],
['Dee', '10.24'],
['Bo', 'DNF'],
['Cy', 'DNF'],
['Eli', '10.265'],
['Ade', '10.']],),
[[1, 'Ade', '10.00'],
[2, 'Dee', '10.24'],
[2, 'Fay', '10.24'],
[4, 'Eli', '10.27'],
[None, 'Bo', 'DNF'],
[None, 'Cy', 'DNF']]),
('variant scenario 2',
([['Bo', '10.219'], ['Eli', '10.2'], ['Fay', 'DNF']],),
[[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Dee', '10.666'], ['Ade', '10.674'], ['Fay', '10.676'], ['Eli', '10.66']],),
[[1, 'Eli', '10.66'], [2, 'Dee', '10.67'], [3, 'Ade', '10.68'], [3, 'Fay', '10.68']]),
('variant scenario 1',
([['Eli', '9.835'], ['Fay', '9.826'], ['Ade', '9.81'], ['Dee', '9.814']],),
[[1, 'Ade', '9.81'], [2, 'Dee', '9.82'], [3, 'Fay', '9.83'], [4, 'Eli', '9.84']]),
('variant scenario 2',
([['Fay', '10.88'], ['Eli', '10.906'], ['Dee', '10.907']],),
[[1, 'Fay', '10.88'], [2, 'Dee', '10.91'], [2, 'Eli', '10.91']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.384'], ['Dee', '11.360'], ['Fay', '11.'], ['Bo', '11.377']],),
[[1, 'Fay', '11.00'], [2, 'Dee', '11.36'], [3, 'Bo', '11.38'], [4, 'Eli', '11.39']]),
('variant scenario 1',
([['Fay', '11.159'],
['Eli', '11.15'],
['Cy', '11.167'],
['Bo', 'DQ'],
['Ade', '11.14'],
['Dee', '11.146']],),
[[1, 'Ade', '11.14'],
[2, 'Dee', '11.15'],
[2, 'Eli', '11.15'],
[4, 'Fay', '11.16'],
[5, 'Cy', '11.17']]),
('variant scenario 2',
([['Bo', '10.68'], ['Dee', '10.703'], ['Fay', '10.694'], ['Eli', '10.713']],),
[[1, 'Bo', '10.68'], [2, 'Fay', '10.70'], [3, 'Dee', '10.71'], [4, 'Eli', '10.72']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Cy', '11.364'], ['Dee', '11.391'], ['Ade', 'DQ']],),
[[1, 'Cy', '11.37'], [2, 'Dee', '11.40']]),
('variant scenario 1',
([['Eli', '9.884'], ['Ade', '9.873'], ['Bo', '9.882'], ['Cy', '9.868'], ['Fay', '9.885']],),
[[1, 'Cy', '9.87'],
[2, 'Ade', '9.88'],
[3, 'Bo', '9.89'],
[3, 'Eli', '9.89'],
[3, 'Fay', '9.89']]),
('variant scenario 2',
([['Dee', '10.455'], ['Fay', '10.47'], ['Bo', '10.471'], ['Ade', '10.469'], ['Cy', 'DQ']],),
[[1, 'Dee', '10.46'], [2, 'Ade', '10.47'], [2, 'Fay', '10.47'], [4, 'Bo', '10.48']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.310'], ['Ade', 'DQ'], ['Fay', '11.34'], ['Dee', '11.323'], ['Cy', 'DNF']],),
[[1, 'Eli', '11.31'], [2, 'Dee', '11.33'], [3, 'Fay', '11.34'], [None, 'Cy', 'DNF']]),
('variant scenario 1',
([['Eli', 'DNF'], ['Fay', 'DNF'], ['Dee', 'DQ'], ['Ade', '11.155']],),
[[1, 'Ade', '11.16'], [None, 'Eli', 'DNF'], [None, 'Fay', 'DNF']]),
('variant scenario 2',
([['Dee', '11.420'], ['Eli', '11.38'], ['Cy', '11.41'], ['Ade', '11.416'], ['Bo', '11.40']],),
[[1, 'Eli', '11.38'],
[2, 'Bo', '11.40'],
[3, 'Cy', '11.41'],
[4, 'Ade', '11.42'],
[4, 'Dee', '11.42']])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control distinct times | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | Passed |
| boundary thousandth rounds up | [[1, 'Cy', '9.99']] | [[1, 'Cy', '10.00']] | Failed |
| boundary shared place skips next | [[1, 'Ade', '10.10'], [2, 'Bo', '10.11'], [3, 'Cy', '10.20']] | [[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']] | Failed |
| control dnf and dq | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | Passed |
| regression: round up hundredths | [[1, 'Fay', '10.20'], [2, 'Eli', '10.23'], [3, 'Dee', '10.24'], [4, 'Cy', '10.26']] | [[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']] | Failed |
| variant scenario 1 | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.26'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.27'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | Failed |
| variant scenario 2 | [[1, 'Eli', '10.20'], [2, 'Bo', '10.21'], [None, 'Fay', 'DNF']] | [[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']] | Failed |
SHA-256 / 201d29f41df521a2a6bd9047543857a419c58aa8c8e04f083b0bd802f82e7a14
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(results):
fin = []
dnf = []
for name, t in results:
if t == 'DQ':
continue
if t == 'DNF':
dnf.append(name)
continue
whole, _, frac = t.partition('.')
thous = int(whole) * 1000 + int((frac + '000')[:3])
hund = (thous + 5) // 10
fin.append((hund, name))
fin.sort()
out = []
for i, (h, name) in enumerate(fin):
place = i + 1 if i == 0 or fin[i - 1][0] != h else out[-1][0]
out.append([place, name, '%d.%02d' % (h // 100, h % 100)])
for name in sorted(dnf):
out.append([None, name, 'DNF'])
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 distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Fay', '10.2'], ['Cy', '10.26'], ['Dee', '10.245'], ['Eli', '10.234']],),
[[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']]),
('variant scenario 1',
([['Fay', '10.24'],
['Dee', '10.24'],
['Bo', 'DNF'],
['Cy', 'DNF'],
['Eli', '10.265'],
['Ade', '10.']],),
[[1, 'Ade', '10.00'],
[2, 'Dee', '10.24'],
[2, 'Fay', '10.24'],
[4, 'Eli', '10.27'],
[None, 'Bo', 'DNF'],
[None, 'Cy', 'DNF']]),
('variant scenario 2',
([['Bo', '10.219'], ['Eli', '10.2'], ['Fay', 'DNF']],),
[[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Dee', '10.666'], ['Ade', '10.674'], ['Fay', '10.676'], ['Eli', '10.66']],),
[[1, 'Eli', '10.66'], [2, 'Dee', '10.67'], [3, 'Ade', '10.68'], [3, 'Fay', '10.68']]),
('variant scenario 1',
([['Eli', '9.835'], ['Fay', '9.826'], ['Ade', '9.81'], ['Dee', '9.814']],),
[[1, 'Ade', '9.81'], [2, 'Dee', '9.82'], [3, 'Fay', '9.83'], [4, 'Eli', '9.84']]),
('variant scenario 2',
([['Fay', '10.88'], ['Eli', '10.906'], ['Dee', '10.907']],),
[[1, 'Fay', '10.88'], [2, 'Dee', '10.91'], [2, 'Eli', '10.91']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.384'], ['Dee', '11.360'], ['Fay', '11.'], ['Bo', '11.377']],),
[[1, 'Fay', '11.00'], [2, 'Dee', '11.36'], [3, 'Bo', '11.38'], [4, 'Eli', '11.39']]),
('variant scenario 1',
([['Fay', '11.159'],
['Eli', '11.15'],
['Cy', '11.167'],
['Bo', 'DQ'],
['Ade', '11.14'],
['Dee', '11.146']],),
[[1, 'Ade', '11.14'],
[2, 'Dee', '11.15'],
[2, 'Eli', '11.15'],
[4, 'Fay', '11.16'],
[5, 'Cy', '11.17']]),
('variant scenario 2',
([['Bo', '10.68'], ['Dee', '10.703'], ['Fay', '10.694'], ['Eli', '10.713']],),
[[1, 'Bo', '10.68'], [2, 'Fay', '10.70'], [3, 'Dee', '10.71'], [4, 'Eli', '10.72']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Cy', '11.364'], ['Dee', '11.391'], ['Ade', 'DQ']],),
[[1, 'Cy', '11.37'], [2, 'Dee', '11.40']]),
('variant scenario 1',
([['Eli', '9.884'], ['Ade', '9.873'], ['Bo', '9.882'], ['Cy', '9.868'], ['Fay', '9.885']],),
[[1, 'Cy', '9.87'],
[2, 'Ade', '9.88'],
[3, 'Bo', '9.89'],
[3, 'Eli', '9.89'],
[3, 'Fay', '9.89']]),
('variant scenario 2',
([['Dee', '10.455'], ['Fay', '10.47'], ['Bo', '10.471'], ['Ade', '10.469'], ['Cy', 'DQ']],),
[[1, 'Dee', '10.46'], [2, 'Ade', '10.47'], [2, 'Fay', '10.47'], [4, 'Bo', '10.48']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.310'], ['Ade', 'DQ'], ['Fay', '11.34'], ['Dee', '11.323'], ['Cy', 'DNF']],),
[[1, 'Eli', '11.31'], [2, 'Dee', '11.33'], [3, 'Fay', '11.34'], [None, 'Cy', 'DNF']]),
('variant scenario 1',
([['Eli', 'DNF'], ['Fay', 'DNF'], ['Dee', 'DQ'], ['Ade', '11.155']],),
[[1, 'Ade', '11.16'], [None, 'Eli', 'DNF'], [None, 'Fay', 'DNF']]),
('variant scenario 2',
([['Dee', '11.420'], ['Eli', '11.38'], ['Cy', '11.41'], ['Ade', '11.416'], ['Bo', '11.40']],),
[[1, 'Eli', '11.38'],
[2, 'Bo', '11.40'],
[3, 'Cy', '11.41'],
[4, 'Ade', '11.42'],
[4, 'Dee', '11.42']])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control distinct times | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | Passed |
| boundary thousandth rounds up | [[1, 'Cy', '9.99']] | [[1, 'Cy', '10.00']] | Failed |
| boundary shared place skips next | [[1, 'Ade', '10.10'], [2, 'Bo', '10.11'], [3, 'Cy', '10.20']] | [[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']] | Failed |
| control dnf and dq | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | Passed |
| regression: round up hundredths | [[1, 'Fay', '10.20'], [2, 'Eli', '10.23'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']] | [[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']] | Failed |
| variant scenario 1 | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.27'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.27'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | Passed |
| variant scenario 2 | [[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']] | [[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']] | Passed |
SHA-256 / 508f07681db5e09668ebd28bdf108533d089993c07386e3dedb3c0132052c4ee
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(results):
fin = []
dnf = []
for name, t in results:
if t == 'DQ':
continue
if t == 'DNF':
dnf.append(name)
continue
whole, _, frac = t.partition('.')
thous = int(whole) * 1000 + int((frac + '000')[:3])
hund = -(-thous // 10)
fin.append((hund, name))
fin.sort()
out = []
for i, (h, name) in enumerate(fin):
place = i + 1 if i == 0 or fin[i - 1][0] != h else out[-1][0]
out.append([place, name, '%d.%02d' % (h // 100, h % 100)])
for name in sorted(dnf):
out.append([None, name, 'DNF'])
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 distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Fay', '10.2'], ['Cy', '10.26'], ['Dee', '10.245'], ['Eli', '10.234']],),
[[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']]),
('variant scenario 1',
([['Fay', '10.24'],
['Dee', '10.24'],
['Bo', 'DNF'],
['Cy', 'DNF'],
['Eli', '10.265'],
['Ade', '10.']],),
[[1, 'Ade', '10.00'],
[2, 'Dee', '10.24'],
[2, 'Fay', '10.24'],
[4, 'Eli', '10.27'],
[None, 'Bo', 'DNF'],
[None, 'Cy', 'DNF']]),
('variant scenario 2',
([['Bo', '10.219'], ['Eli', '10.2'], ['Fay', 'DNF']],),
[[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Dee', '10.666'], ['Ade', '10.674'], ['Fay', '10.676'], ['Eli', '10.66']],),
[[1, 'Eli', '10.66'], [2, 'Dee', '10.67'], [3, 'Ade', '10.68'], [3, 'Fay', '10.68']]),
('variant scenario 1',
([['Eli', '9.835'], ['Fay', '9.826'], ['Ade', '9.81'], ['Dee', '9.814']],),
[[1, 'Ade', '9.81'], [2, 'Dee', '9.82'], [3, 'Fay', '9.83'], [4, 'Eli', '9.84']]),
('variant scenario 2',
([['Fay', '10.88'], ['Eli', '10.906'], ['Dee', '10.907']],),
[[1, 'Fay', '10.88'], [2, 'Dee', '10.91'], [2, 'Eli', '10.91']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.384'], ['Dee', '11.360'], ['Fay', '11.'], ['Bo', '11.377']],),
[[1, 'Fay', '11.00'], [2, 'Dee', '11.36'], [3, 'Bo', '11.38'], [4, 'Eli', '11.39']]),
('variant scenario 1',
([['Fay', '11.159'],
['Eli', '11.15'],
['Cy', '11.167'],
['Bo', 'DQ'],
['Ade', '11.14'],
['Dee', '11.146']],),
[[1, 'Ade', '11.14'],
[2, 'Dee', '11.15'],
[2, 'Eli', '11.15'],
[4, 'Fay', '11.16'],
[5, 'Cy', '11.17']]),
('variant scenario 2',
([['Bo', '10.68'], ['Dee', '10.703'], ['Fay', '10.694'], ['Eli', '10.713']],),
[[1, 'Bo', '10.68'], [2, 'Fay', '10.70'], [3, 'Dee', '10.71'], [4, 'Eli', '10.72']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Cy', '11.364'], ['Dee', '11.391'], ['Ade', 'DQ']],),
[[1, 'Cy', '11.37'], [2, 'Dee', '11.40']]),
('variant scenario 1',
([['Eli', '9.884'], ['Ade', '9.873'], ['Bo', '9.882'], ['Cy', '9.868'], ['Fay', '9.885']],),
[[1, 'Cy', '9.87'],
[2, 'Ade', '9.88'],
[3, 'Bo', '9.89'],
[3, 'Eli', '9.89'],
[3, 'Fay', '9.89']]),
('variant scenario 2',
([['Dee', '10.455'], ['Fay', '10.47'], ['Bo', '10.471'], ['Ade', '10.469'], ['Cy', 'DQ']],),
[[1, 'Dee', '10.46'], [2, 'Ade', '10.47'], [2, 'Fay', '10.47'], [4, 'Bo', '10.48']])],
[('control distinct times',
([['Bo', '10.12'], ['Ade', '10.15']],),
[[1, 'Bo', '10.12'], [2, 'Ade', '10.15']]),
('boundary thousandth rounds up', ([['Cy', '9.991']],), [[1, 'Cy', '10.00']]),
('boundary shared place skips next',
([['Ade', '10.101'], ['Bo', '10.11'], ['Cy', '10.2']],),
[[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']]),
('control dnf and dq',
([['Eli', 'DNF'], ['Dee', '11.0'], ['Fay', 'DQ']],),
[[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']]),
('regression: round up hundredths',
([['Eli', '11.310'], ['Ade', 'DQ'], ['Fay', '11.34'], ['Dee', '11.323'], ['Cy', 'DNF']],),
[[1, 'Eli', '11.31'], [2, 'Dee', '11.33'], [3, 'Fay', '11.34'], [None, 'Cy', 'DNF']]),
('variant scenario 1',
([['Eli', 'DNF'], ['Fay', 'DNF'], ['Dee', 'DQ'], ['Ade', '11.155']],),
[[1, 'Ade', '11.16'], [None, 'Eli', 'DNF'], [None, 'Fay', 'DNF']]),
('variant scenario 2',
([['Dee', '11.420'], ['Eli', '11.38'], ['Cy', '11.41'], ['Ade', '11.416'], ['Bo', '11.40']],),
[[1, 'Eli', '11.38'],
[2, 'Bo', '11.40'],
[3, 'Cy', '11.41'],
[4, 'Ade', '11.42'],
[4, 'Dee', '11.42']])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control distinct times | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | [[1, 'Bo', '10.12'], [2, 'Ade', '10.15']] | Passed |
| boundary thousandth rounds up | [[1, 'Cy', '10.00']] | [[1, 'Cy', '10.00']] | Passed |
| boundary shared place skips next | [[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']] | [[1, 'Ade', '10.11'], [1, 'Bo', '10.11'], [3, 'Cy', '10.20']] | Passed |
| control dnf and dq | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | [[1, 'Dee', '11.00'], [None, 'Eli', 'DNF']] | Passed |
| regression: round up hundredths | [[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']] | [[1, 'Fay', '10.20'], [2, 'Eli', '10.24'], [3, 'Dee', '10.25'], [4, 'Cy', '10.26']] | Passed |
| variant scenario 1 | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.27'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | [[1, 'Ade', '10.00'], [2, 'Dee', '10.24'], [2, 'Fay', '10.24'], [4, 'Eli', '10.27'], [None, 'Bo', 'DNF'], [None, 'Cy', 'DNF']] | Passed |
| variant scenario 2 | [[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']] | [[1, 'Eli', '10.20'], [2, 'Bo', '10.22'], [None, 'Fay', 'DNF']] | Passed |
SHA-256 / 0bf1ec8d09fd24119fb440f395a2533ba0c88b1bcf855bd6bfd9f3a7d83aaa4e
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:29.173447+00:00.
Case digest / 8c8e0474a83d28d892de3de9b7f2237a6a839d0ce92dca4983cf5d61999e1da7