FAILURE MAP
← Case archive

FA-12801 / Tournament pairing rules / Open access

Opponent tiebreak drops repeat encounters · case 01

Opponent tiebreak drops repeat encounters.

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

ROOT CAUSE

Opponent identifiers are deduplicated although every encounter contributes.

VERIFIED REPAIR

Sum the final integer score of each opponent occurrence; repeats and negative penalty-adjusted scores count.

Unsuccessful approach: Keeping occurrences but suppressing negative penalty-adjusted scores changes the sum.

Case contract

Synthetic model: Sum the final integer score of each opponent occurrence; repeats and negative penalty-adjusted scores count.

Why this case matters

Makes the stated pairing or standings policy executable without assuming any real federation rulebook.

1 / The failure

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

N = 1
observations = []
def solve(opponents, scores):
    return sum(scores[x] for x in set(opponents))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('repeat encounter', solve(['a','a'], {'a':N}), 2*N)
check('penalty score', solve(['a'], {'a':-N}), -N)
check('empty', solve([], {}), 0)
check('zero', solve(['a'], {'a':0}), 0)
check('mixed', solve(['a','b','a'], {'a':N,'b':2}), 2*N+2)
check('cancel', solve(['a','b'], {'a':N,'b':-N}), 0)
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
repeat encounter12Failed
penalty score-1-1Passed
empty00Passed
zero00Passed
mixed34Failed
cancel00Passed

SHA-256 / 1c1aaf31da0aa50f44eb24c2258328789690035c8bcd7e0da25afaa12df4daa9

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(opponents, scores):
    return sum(scores[x] for x in opponents if scores[x]>0)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('repeat encounter', solve(['a','a'], {'a':N}), 2*N)
check('penalty score', solve(['a'], {'a':-N}), -N)
check('empty', solve([], {}), 0)
check('zero', solve(['a'], {'a':0}), 0)
check('mixed', solve(['a','b','a'], {'a':N,'b':2}), 2*N+2)
check('cancel', solve(['a','b'], {'a':N,'b':-N}), 0)
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
repeat encounter22Passed
penalty score0-1Failed
empty00Passed
zero00Passed
mixed44Passed
cancel10Failed

SHA-256 / b520d86d7ca53cc1d1037bec9eedc360e733866d273640e73177e6493776e6ba

3 / The verified repair

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

N = 1
observations = []
def solve(opponents, scores):
    return sum(scores[x] for x in opponents)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('repeat encounter', solve(['a','a'], {'a':N}), 2*N)
check('penalty score', solve(['a'], {'a':-N}), -N)
check('empty', solve([], {}), 0)
check('zero', solve(['a'], {'a':0}), 0)
check('mixed', solve(['a','b','a'], {'a':N,'b':2}), 2*N+2)
check('cancel', solve(['a','b'], {'a':N,'b':-N}), 0)
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
repeat encounter22Passed
penalty score-1-1Passed
empty00Passed
zero00Passed
mixed44Passed
cancel00Passed

SHA-256 / b3cd0ffefbaaa97a9ce78a1bae43922ad77d9c420647c85d9b89d67d97509be3

Verification & scope

Controlled synthetic policy; does not implement an entire tournament system. 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:39:00.169424+00:00.

Case digest / 610ad6dc69308c5123bfc48796a1007366ffb42637d85ae839477e0cc048ace0