FA-61656 / Options payoff and settlement / Open access
Exercise assignment allocation across short accounts: fifo assigns whole positions past the exercised count · case 01
More contracts are assigned than were exercised.
ROOT CAUSE
Each fifo step takes the full position quantity.
VERIFIED REPAIR
Take the smaller of the position and the contracts still unassigned.
Unsuccessful approach: Capping by the total exercised count instead of the remaining count still overassigns.
Case contract
Inputs exercised contracts (<= total short), shorts [account, qty, open sequence] and method. fifo assigns in ascending open sequence, each up to its quantity. pro-rata gives floor(exercised*qty/total) and distributes the remaining contracts one each by largest fractional remainder, ties by lower open sequence. Return sorted [account, assigned] for accounts with assignments.
Why this case matters
Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(exercised, shorts, method):
total = sum(q for _, q, _ in shorts)
alloc = {}
if method == 'fifo':
left = exercised
for acct, q, seq in sorted(shorts, key=lambda s: s[2]):
take = q if left > 0 else 0
alloc[acct] = alloc.get(acct, 0) + take
left -= take
else:
rem = []
for acct, q, seq in shorts:
alloc[acct] = alloc.get(acct, 0) + exercised * q // total
rem.append((-(exercised * q % total), seq, acct))
left = exercised - sum(alloc.values())
for _, seq, acct in sorted(rem)[:left]:
alloc[acct] += 1
return sorted([a, n] for a, n in alloc.items() if n > 0)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression fifo allocation cap 1', [1, [['A1', 2, 17]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['F6', 7, 15]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [3, [['A1', 7, 19], ['E5', 2, 4], ['F6', 1, 15], ['D4', 3, 3]], 'fifo'], [['D4', 3]]], ['partial repair probe 2', [3, [['E5', 3, 8], ['D4', 3, 19]], 'fifo'], [['E5', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['D4', 10, 16], ['E5', 1, 18], ['C3', 3, 13], ['A1', 1, 8]], 'pro-rata'], [['A1', 1], ['C3', 1], ['D4', 5]]], ['normal control 2', [3, [['E5', 3, 14], ['F6', 2, 15], ['A1', 2, 1], ['B2', 5, 2], ['D4', 1, 12]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['F6', 2, 4]], 'pro-rata'], [['F6', 2]]]], [['regression fifo allocation cap 1', [14, [['C3', 10, 2], ['E5', 3, 5], ['A1', 3, 9], ['F6', 3, 8]], 'fifo'], [['C3', 10], ['E5', 3], ['F6', 1]]], ['regression fifo allocation cap 2', [9, [['B2', 7, 18], ['E5', 7, 5], ['C3', 1, 6]], 'fifo'], [['B2', 1], ['C3', 1], ['E5', 7]]], ['partial repair probe 1', [6, [['C3', 1, 11], ['A1', 3, 14], ['B2', 3, 16], ['D4', 2, 4]], 'fifo'], [['A1', 3], ['C3', 1], ['D4', 2]]], ['partial repair probe 2', [2, [['C3', 1, 6], ['F6', 1, 2], ['E5', 2, 1], ['B2', 7, 15]], 'fifo'], [['E5', 2]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['B2', 10, 14], ['F6', 3, 1], ['C3', 1, 5], ['A1', 5, 11], ['D4', 3, 9]], 'pro-rata'], [['A1', 2], ['B2', 3], ['D4', 1], ['F6', 1]]], ['normal control 2', [7, [['E5', 10, 1], ['A1', 5, 8], ['D4', 3, 18]], 'pro-rata'], [['A1', 2], ['D4', 1], ['E5', 4]]], ['normal control 3', [1, [['D4', 2, 17]], 'pro-rata'], [['D4', 1]]]], [['regression fifo allocation cap 1', [1, [['A1', 3, 7]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['B2', 2, 12]], 'fifo'], [['B2', 1]]], ['partial repair probe 1', [5, [['B2', 7, 13], ['A1', 3, 6], ['C3', 2, 5], ['F6', 2, 12]], 'fifo'], [['A1', 3], ['C3', 2]]], ['partial repair probe 2', [12, [['C3', 3, 10], ['F6', 3, 2], ['D4', 7, 3], ['B2', 5, 18], ['A1', 2, 8]], 'fifo'], [['A1', 2], ['D4', 7], ['F6', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [6, [['F6', 10, 18], ['C3', 2, 1], ['E5', 3, 10], ['D4', 10, 4]], 'pro-rata'], [['C3', 1], ['D4', 2], ['E5', 1], ['F6', 2]]], ['normal control 2', [4, [['B2', 2, 1], ['F6', 2, 8]], 'pro-rata'], [['B2', 2], ['F6', 2]]], ['normal control 3', [6, [['F6', 7, 17], ['D4', 3, 4], ['B2', 1, 2]], 'pro-rata'], [['D4', 2], ['F6', 4]]]], [['regression fifo allocation cap 1', [6, [['F6', 3, 4], ['C3', 10, 16], ['E5', 7, 13]], 'fifo'], [['E5', 3], ['F6', 3]]], ['regression fifo allocation cap 2', [6, [['C3', 10, 3], ['A1', 7, 2], ['B2', 2, 9], ['F6', 3, 12]], 'fifo'], [['A1', 6]]], ['partial repair probe 1', [4, [['B2', 1, 6], ['D4', 10, 18], ['A1', 3, 13]], 'fifo'], [['A1', 3], ['B2', 1]]], ['partial repair probe 2', [7, [['B2', 3, 4], ['A1', 10, 14], ['E5', 1, 10], ['D4', 3, 11], ['C3', 3, 19]], 'fifo'], [['B2', 3], ['D4', 3], ['E5', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['F6', 3, 13], ['E5', 10, 14], ['C3', 2, 8], ['B2', 3, 4], ['A1', 3, 11]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 2', [10, [['F6', 5, 17], ['A1', 3, 3], ['C3', 7, 18]], 'pro-rata'], [['A1', 2], ['C3', 5], ['F6', 3]]], ['normal control 3', [7, [['C3', 5, 8], ['F6', 3, 5], ['D4', 10, 14]], 'pro-rata'], [['C3', 2], ['D4', 4], ['F6', 1]]]], [['regression fifo allocation cap 1', [12, [['B2', 5, 18], ['C3', 3, 13], ['E5', 2, 5], ['D4', 5, 14]], 'fifo'], [['B2', 2], ['C3', 3], ['D4', 5], ['E5', 2]]], ['regression fifo allocation cap 2', [4, [['B2', 10, 14], ['A1', 3, 4], ['D4', 3, 6], ['C3', 3, 13]], 'fifo'], [['A1', 3], ['D4', 1]]], ['partial repair probe 1', [8, [['F6', 5, 17], ['E5', 3, 14], ['C3', 2, 18]], 'fifo'], [['E5', 3], ['F6', 5]]], ['partial repair probe 2', [1, [['E5', 5, 14], ['A1', 1, 1]], 'fifo'], [['A1', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['B2', 10, 9]], 'pro-rata'], [['B2', 3]]], ['normal control 2', [2, [['A1', 1, 12], ['F6', 3, 5], ['B2', 7, 13], ['E5', 10, 4]], 'pro-rata'], [['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['C3', 5, 3]], 'pro-rata'], [['C3', 2]]]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression fifo allocation cap 1 | [['A1', 2]] | [['A1', 1]] | Failed |
| regression fifo allocation cap 2 | [['F6', 7]] | [['F6', 1]] | Failed |
| partial repair probe 1 | [['D4', 3]] | [['D4', 3]] | Passed |
| partial repair probe 2 | [['E5', 3]] | [['E5', 3]] | Passed |
| boundary control 1 | [['A1', 1], ['B2', 1], ['C3', 1]] | [['A1', 1], ['B2', 1], ['C3', 1]] | Passed |
| normal control 1 | [['A1', 1], ['C3', 1], ['D4', 5]] | [['A1', 1], ['C3', 1], ['D4', 5]] | Passed |
| normal control 2 | [['A1', 1], ['B2', 1], ['E5', 1]] | [['A1', 1], ['B2', 1], ['E5', 1]] | Passed |
| normal control 3 | [['F6', 2]] | [['F6', 2]] | Passed |
SHA-256 / bcb3e21c27f292574fb56fac177669da4f003a277f9e308f61e70edb41540b5a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(exercised, shorts, method):
total = sum(q for _, q, _ in shorts)
alloc = {}
if method == 'fifo':
left = exercised
for acct, q, seq in sorted(shorts, key=lambda s: s[2]):
take = min(q, exercised)
alloc[acct] = alloc.get(acct, 0) + take
left -= take
else:
rem = []
for acct, q, seq in shorts:
alloc[acct] = alloc.get(acct, 0) + exercised * q // total
rem.append((-(exercised * q % total), seq, acct))
left = exercised - sum(alloc.values())
for _, seq, acct in sorted(rem)[:left]:
alloc[acct] += 1
return sorted([a, n] for a, n in alloc.items() if n > 0)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression fifo allocation cap 1', [1, [['A1', 2, 17]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['F6', 7, 15]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [3, [['A1', 7, 19], ['E5', 2, 4], ['F6', 1, 15], ['D4', 3, 3]], 'fifo'], [['D4', 3]]], ['partial repair probe 2', [3, [['E5', 3, 8], ['D4', 3, 19]], 'fifo'], [['E5', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['D4', 10, 16], ['E5', 1, 18], ['C3', 3, 13], ['A1', 1, 8]], 'pro-rata'], [['A1', 1], ['C3', 1], ['D4', 5]]], ['normal control 2', [3, [['E5', 3, 14], ['F6', 2, 15], ['A1', 2, 1], ['B2', 5, 2], ['D4', 1, 12]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['F6', 2, 4]], 'pro-rata'], [['F6', 2]]]], [['regression fifo allocation cap 1', [14, [['C3', 10, 2], ['E5', 3, 5], ['A1', 3, 9], ['F6', 3, 8]], 'fifo'], [['C3', 10], ['E5', 3], ['F6', 1]]], ['regression fifo allocation cap 2', [9, [['B2', 7, 18], ['E5', 7, 5], ['C3', 1, 6]], 'fifo'], [['B2', 1], ['C3', 1], ['E5', 7]]], ['partial repair probe 1', [6, [['C3', 1, 11], ['A1', 3, 14], ['B2', 3, 16], ['D4', 2, 4]], 'fifo'], [['A1', 3], ['C3', 1], ['D4', 2]]], ['partial repair probe 2', [2, [['C3', 1, 6], ['F6', 1, 2], ['E5', 2, 1], ['B2', 7, 15]], 'fifo'], [['E5', 2]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['B2', 10, 14], ['F6', 3, 1], ['C3', 1, 5], ['A1', 5, 11], ['D4', 3, 9]], 'pro-rata'], [['A1', 2], ['B2', 3], ['D4', 1], ['F6', 1]]], ['normal control 2', [7, [['E5', 10, 1], ['A1', 5, 8], ['D4', 3, 18]], 'pro-rata'], [['A1', 2], ['D4', 1], ['E5', 4]]], ['normal control 3', [1, [['D4', 2, 17]], 'pro-rata'], [['D4', 1]]]], [['regression fifo allocation cap 1', [1, [['A1', 3, 7]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['B2', 2, 12]], 'fifo'], [['B2', 1]]], ['partial repair probe 1', [5, [['B2', 7, 13], ['A1', 3, 6], ['C3', 2, 5], ['F6', 2, 12]], 'fifo'], [['A1', 3], ['C3', 2]]], ['partial repair probe 2', [12, [['C3', 3, 10], ['F6', 3, 2], ['D4', 7, 3], ['B2', 5, 18], ['A1', 2, 8]], 'fifo'], [['A1', 2], ['D4', 7], ['F6', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [6, [['F6', 10, 18], ['C3', 2, 1], ['E5', 3, 10], ['D4', 10, 4]], 'pro-rata'], [['C3', 1], ['D4', 2], ['E5', 1], ['F6', 2]]], ['normal control 2', [4, [['B2', 2, 1], ['F6', 2, 8]], 'pro-rata'], [['B2', 2], ['F6', 2]]], ['normal control 3', [6, [['F6', 7, 17], ['D4', 3, 4], ['B2', 1, 2]], 'pro-rata'], [['D4', 2], ['F6', 4]]]], [['regression fifo allocation cap 1', [6, [['F6', 3, 4], ['C3', 10, 16], ['E5', 7, 13]], 'fifo'], [['E5', 3], ['F6', 3]]], ['regression fifo allocation cap 2', [6, [['C3', 10, 3], ['A1', 7, 2], ['B2', 2, 9], ['F6', 3, 12]], 'fifo'], [['A1', 6]]], ['partial repair probe 1', [4, [['B2', 1, 6], ['D4', 10, 18], ['A1', 3, 13]], 'fifo'], [['A1', 3], ['B2', 1]]], ['partial repair probe 2', [7, [['B2', 3, 4], ['A1', 10, 14], ['E5', 1, 10], ['D4', 3, 11], ['C3', 3, 19]], 'fifo'], [['B2', 3], ['D4', 3], ['E5', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['F6', 3, 13], ['E5', 10, 14], ['C3', 2, 8], ['B2', 3, 4], ['A1', 3, 11]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 2', [10, [['F6', 5, 17], ['A1', 3, 3], ['C3', 7, 18]], 'pro-rata'], [['A1', 2], ['C3', 5], ['F6', 3]]], ['normal control 3', [7, [['C3', 5, 8], ['F6', 3, 5], ['D4', 10, 14]], 'pro-rata'], [['C3', 2], ['D4', 4], ['F6', 1]]]], [['regression fifo allocation cap 1', [12, [['B2', 5, 18], ['C3', 3, 13], ['E5', 2, 5], ['D4', 5, 14]], 'fifo'], [['B2', 2], ['C3', 3], ['D4', 5], ['E5', 2]]], ['regression fifo allocation cap 2', [4, [['B2', 10, 14], ['A1', 3, 4], ['D4', 3, 6], ['C3', 3, 13]], 'fifo'], [['A1', 3], ['D4', 1]]], ['partial repair probe 1', [8, [['F6', 5, 17], ['E5', 3, 14], ['C3', 2, 18]], 'fifo'], [['E5', 3], ['F6', 5]]], ['partial repair probe 2', [1, [['E5', 5, 14], ['A1', 1, 1]], 'fifo'], [['A1', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['B2', 10, 9]], 'pro-rata'], [['B2', 3]]], ['normal control 2', [2, [['A1', 1, 12], ['F6', 3, 5], ['B2', 7, 13], ['E5', 10, 4]], 'pro-rata'], [['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['C3', 5, 3]], 'pro-rata'], [['C3', 2]]]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression fifo allocation cap 1 | [['A1', 1]] | [['A1', 1]] | Passed |
| regression fifo allocation cap 2 | [['F6', 1]] | [['F6', 1]] | Passed |
| partial repair probe 1 | [['A1', 3], ['D4', 3], ['E5', 2], ['F6', 1]] | [['D4', 3]] | Failed |
| partial repair probe 2 | [['D4', 3], ['E5', 3]] | [['E5', 3]] | Failed |
| boundary control 1 | [['A1', 1], ['B2', 1], ['C3', 1]] | [['A1', 1], ['B2', 1], ['C3', 1]] | Passed |
| normal control 1 | [['A1', 1], ['C3', 1], ['D4', 5]] | [['A1', 1], ['C3', 1], ['D4', 5]] | Passed |
| normal control 2 | [['A1', 1], ['B2', 1], ['E5', 1]] | [['A1', 1], ['B2', 1], ['E5', 1]] | Passed |
| normal control 3 | [['F6', 2]] | [['F6', 2]] | Passed |
SHA-256 / 5c8c60768d92ffb4eef706cf7e2fe12358aa818c5da520adf80eb66c145580fa
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(exercised, shorts, method):
total = sum(q for _, q, _ in shorts)
alloc = {}
if method == 'fifo':
left = exercised
for acct, q, seq in sorted(shorts, key=lambda s: s[2]):
take = min(q, left)
alloc[acct] = alloc.get(acct, 0) + take
left -= take
else:
rem = []
for acct, q, seq in shorts:
alloc[acct] = alloc.get(acct, 0) + exercised * q // total
rem.append((-(exercised * q % total), seq, acct))
left = exercised - sum(alloc.values())
for _, seq, acct in sorted(rem)[:left]:
alloc[acct] += 1
return sorted([a, n] for a, n in alloc.items() if n > 0)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression fifo allocation cap 1', [1, [['A1', 2, 17]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['F6', 7, 15]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [3, [['A1', 7, 19], ['E5', 2, 4], ['F6', 1, 15], ['D4', 3, 3]], 'fifo'], [['D4', 3]]], ['partial repair probe 2', [3, [['E5', 3, 8], ['D4', 3, 19]], 'fifo'], [['E5', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['D4', 10, 16], ['E5', 1, 18], ['C3', 3, 13], ['A1', 1, 8]], 'pro-rata'], [['A1', 1], ['C3', 1], ['D4', 5]]], ['normal control 2', [3, [['E5', 3, 14], ['F6', 2, 15], ['A1', 2, 1], ['B2', 5, 2], ['D4', 1, 12]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['F6', 2, 4]], 'pro-rata'], [['F6', 2]]]], [['regression fifo allocation cap 1', [14, [['C3', 10, 2], ['E5', 3, 5], ['A1', 3, 9], ['F6', 3, 8]], 'fifo'], [['C3', 10], ['E5', 3], ['F6', 1]]], ['regression fifo allocation cap 2', [9, [['B2', 7, 18], ['E5', 7, 5], ['C3', 1, 6]], 'fifo'], [['B2', 1], ['C3', 1], ['E5', 7]]], ['partial repair probe 1', [6, [['C3', 1, 11], ['A1', 3, 14], ['B2', 3, 16], ['D4', 2, 4]], 'fifo'], [['A1', 3], ['C3', 1], ['D4', 2]]], ['partial repair probe 2', [2, [['C3', 1, 6], ['F6', 1, 2], ['E5', 2, 1], ['B2', 7, 15]], 'fifo'], [['E5', 2]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [7, [['B2', 10, 14], ['F6', 3, 1], ['C3', 1, 5], ['A1', 5, 11], ['D4', 3, 9]], 'pro-rata'], [['A1', 2], ['B2', 3], ['D4', 1], ['F6', 1]]], ['normal control 2', [7, [['E5', 10, 1], ['A1', 5, 8], ['D4', 3, 18]], 'pro-rata'], [['A1', 2], ['D4', 1], ['E5', 4]]], ['normal control 3', [1, [['D4', 2, 17]], 'pro-rata'], [['D4', 1]]]], [['regression fifo allocation cap 1', [1, [['A1', 3, 7]], 'fifo'], [['A1', 1]]], ['regression fifo allocation cap 2', [1, [['B2', 2, 12]], 'fifo'], [['B2', 1]]], ['partial repair probe 1', [5, [['B2', 7, 13], ['A1', 3, 6], ['C3', 2, 5], ['F6', 2, 12]], 'fifo'], [['A1', 3], ['C3', 2]]], ['partial repair probe 2', [12, [['C3', 3, 10], ['F6', 3, 2], ['D4', 7, 3], ['B2', 5, 18], ['A1', 2, 8]], 'fifo'], [['A1', 2], ['D4', 7], ['F6', 3]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [6, [['F6', 10, 18], ['C3', 2, 1], ['E5', 3, 10], ['D4', 10, 4]], 'pro-rata'], [['C3', 1], ['D4', 2], ['E5', 1], ['F6', 2]]], ['normal control 2', [4, [['B2', 2, 1], ['F6', 2, 8]], 'pro-rata'], [['B2', 2], ['F6', 2]]], ['normal control 3', [6, [['F6', 7, 17], ['D4', 3, 4], ['B2', 1, 2]], 'pro-rata'], [['D4', 2], ['F6', 4]]]], [['regression fifo allocation cap 1', [6, [['F6', 3, 4], ['C3', 10, 16], ['E5', 7, 13]], 'fifo'], [['E5', 3], ['F6', 3]]], ['regression fifo allocation cap 2', [6, [['C3', 10, 3], ['A1', 7, 2], ['B2', 2, 9], ['F6', 3, 12]], 'fifo'], [['A1', 6]]], ['partial repair probe 1', [4, [['B2', 1, 6], ['D4', 10, 18], ['A1', 3, 13]], 'fifo'], [['A1', 3], ['B2', 1]]], ['partial repair probe 2', [7, [['B2', 3, 4], ['A1', 10, 14], ['E5', 1, 10], ['D4', 3, 11], ['C3', 3, 19]], 'fifo'], [['B2', 3], ['D4', 3], ['E5', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['F6', 3, 13], ['E5', 10, 14], ['C3', 2, 8], ['B2', 3, 4], ['A1', 3, 11]], 'pro-rata'], [['A1', 1], ['B2', 1], ['E5', 1]]], ['normal control 2', [10, [['F6', 5, 17], ['A1', 3, 3], ['C3', 7, 18]], 'pro-rata'], [['A1', 2], ['C3', 5], ['F6', 3]]], ['normal control 3', [7, [['C3', 5, 8], ['F6', 3, 5], ['D4', 10, 14]], 'pro-rata'], [['C3', 2], ['D4', 4], ['F6', 1]]]], [['regression fifo allocation cap 1', [12, [['B2', 5, 18], ['C3', 3, 13], ['E5', 2, 5], ['D4', 5, 14]], 'fifo'], [['B2', 2], ['C3', 3], ['D4', 5], ['E5', 2]]], ['regression fifo allocation cap 2', [4, [['B2', 10, 14], ['A1', 3, 4], ['D4', 3, 6], ['C3', 3, 13]], 'fifo'], [['A1', 3], ['D4', 1]]], ['partial repair probe 1', [8, [['F6', 5, 17], ['E5', 3, 14], ['C3', 2, 18]], 'fifo'], [['E5', 3], ['F6', 5]]], ['partial repair probe 2', [1, [['E5', 5, 14], ['A1', 1, 1]], 'fifo'], [['A1', 1]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [3, [['B2', 10, 9]], 'pro-rata'], [['B2', 3]]], ['normal control 2', [2, [['A1', 1, 12], ['F6', 3, 5], ['B2', 7, 13], ['E5', 10, 4]], 'pro-rata'], [['B2', 1], ['E5', 1]]], ['normal control 3', [2, [['C3', 5, 3]], 'pro-rata'], [['C3', 2]]]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression fifo allocation cap 1 | [['A1', 1]] | [['A1', 1]] | Passed |
| regression fifo allocation cap 2 | [['F6', 1]] | [['F6', 1]] | Passed |
| partial repair probe 1 | [['D4', 3]] | [['D4', 3]] | Passed |
| partial repair probe 2 | [['E5', 3]] | [['E5', 3]] | Passed |
| boundary control 1 | [['A1', 1], ['B2', 1], ['C3', 1]] | [['A1', 1], ['B2', 1], ['C3', 1]] | Passed |
| normal control 1 | [['A1', 1], ['C3', 1], ['D4', 5]] | [['A1', 1], ['C3', 1], ['D4', 5]] | Passed |
| normal control 2 | [['A1', 1], ['B2', 1], ['E5', 1]] | [['A1', 1], ['B2', 1], ['E5', 1]] | Passed |
| normal control 3 | [['F6', 2]] | [['F6', 2]] | Passed |
SHA-256 / c0242f01799cef15b761da40b41283015ddf82bfca5b3ae9870b628cfa487a17
Verification & scope
A deterministic toy contract stated explicitly in the contract field; no claim of conformance to any exchange or clearing rulebook. 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:46:57.375591+00:00.
Case digest / 0e558c63e56930af4d5793787d7d8af110eb7319b43eab4b3882a6740fc291b5