{"abstract":"Recently opened shorts are assigned ahead of older ones.","category":"Options payoff and settlement","checks":8,"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.","evaluation_group":"w2-options_payoff_and_settlement-assignment-allocation","failed_approach":"Sorting by account name ignores open order.","family":"w2-options_payoff_and_settlement-assignment-allocation-fifo-ordering","id":"FA-61636","implementations":{"attempt":{"sha256":"66147ccc110f8af2460d8080d6949973e6da94b19724f48df35063f9e0d9261a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exercised, shorts, method):\n    total = sum(q for _, q, _ in shorts)\n    alloc = {}\n    if method == 'fifo':\n        left = exercised\n        for acct, q, seq in sorted(shorts, key=lambda s: s[0]):\n            take = min(q, left)\n            alloc[acct] = alloc.get(acct, 0) + take\n            left -= take\n    else:\n        rem = []\n        for acct, q, seq in shorts:\n            alloc[acct] = alloc.get(acct, 0) + exercised * q // total\n            rem.append((-(exercised * q % total), seq, acct))\n        left = exercised - sum(alloc.values())\n        for _, seq, acct in sorted(rem)[:left]:\n            alloc[acct] += 1\n    return sorted([a, n] for a, n in alloc.items() if n > 0)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fifo ordering 1', [6, [['F6', 1, 10], ['E5', 2, 14], ['B2', 3, 15], ['C3', 3, 16], ['A1', 7, 2]], 'fifo'], [['A1', 6]]], ['regression fifo ordering 2', [5, [['F6', 3, 8], ['D4', 7, 11], ['E5', 10, 5], ['C3', 7, 19], ['B2', 1, 9]], 'fifo'], [['E5', 5]]], ['partial repair probe 1', [4, [['C3', 3, 19], ['E5', 3, 13], ['F6', 10, 10], ['B2', 2, 2]], 'fifo'], [['B2', 2], ['F6', 2]]], ['partial repair probe 2', [16, [['B2', 5, 12], ['E5', 10, 9], ['C3', 7, 11], ['D4', 10, 18]], 'fifo'], [['C3', 6], ['E5', 10]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [10, [['F6', 1, 1], ['C3', 1, 5], ['D4', 3, 12], ['A1', 7, 6], ['B2', 2, 4]], 'pro-rata'], [['A1', 5], ['B2', 1], ['C3', 1], ['D4', 2], ['F6', 1]]], ['normal control 2', [8, [['E5', 2, 16], ['A1', 10, 1]], 'pro-rata'], [['A1', 7], ['E5', 1]]], ['normal control 3', [1, [['D4', 1, 16]], 'pro-rata'], [['D4', 1]]]], [['regression fifo ordering 1', [2, [['C3', 3, 11], ['E5', 10, 6], ['F6', 7, 17], ['A1', 10, 4]], 'fifo'], [['A1', 2]]], ['regression fifo ordering 2', [15, [['D4', 5, 11], ['E5', 10, 3], ['B2', 5, 14], ['C3', 2, 15]], 'fifo'], [['D4', 5], ['E5', 10]]], ['partial repair probe 1', [10, [['F6', 3, 1], ['A1', 10, 6], ['C3', 1, 5]], 'fifo'], [['A1', 6], ['C3', 1], ['F6', 3]]], ['partial repair probe 2', [7, [['A1', 7, 16], ['B2', 3, 14]], 'fifo'], [['A1', 4], ['B2', 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', [9, [['D4', 10, 17], ['E5', 3, 11]], 'pro-rata'], [['D4', 7], ['E5', 2]]], ['normal control 2', [1, [['F6', 10, 15]], 'fifo'], [['F6', 1]]], ['normal control 3', [12, [['B2', 5, 8], ['D4', 3, 1], ['E5', 1, 2], ['C3', 3, 4], ['A1', 7, 13]], 'pro-rata'], [['A1', 4], ['B2', 3], ['C3', 2], ['D4', 2], ['E5', 1]]]], [['regression fifo ordering 1', [4, [['C3', 10, 15], ['E5', 5, 16], ['F6', 7, 3], ['B2', 1, 9]], 'fifo'], [['F6', 4]]], ['regression fifo ordering 2', [1, [['F6', 3, 17], ['D4', 1, 18]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [7, [['C3', 1, 4], ['F6', 10, 2], ['D4', 7, 18], ['A1', 5, 8], ['E5', 1, 15]], 'fifo'], [['F6', 7]]], ['partial repair probe 2', [13, [['E5', 7, 7], ['A1', 5, 9], ['D4', 2, 6]], 'fifo'], [['A1', 4], ['D4', 2], ['E5', 7]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [5, [['F6', 3, 7], ['B2', 2, 19]], 'pro-rata'], [['B2', 2], ['F6', 3]]], ['normal control 2', [4, [['F6', 1, 8], ['B2', 2, 4], ['D4', 3, 15], ['C3', 7, 16]], 'pro-rata'], [['B2', 1], ['C3', 2], ['D4', 1]]], ['normal control 3', [2, [['D4', 2, 1]], 'pro-rata'], [['D4', 2]]]], [['regression fifo ordering 1', [22, [['F6', 7, 10], ['B2', 5, 7], ['C3', 2, 19], ['A1', 10, 14], ['E5', 5, 8]], 'fifo'], [['A1', 5], ['B2', 5], ['E5', 5], ['F6', 7]]], ['regression fifo ordering 2', [2, [['F6', 2, 5], ['C3', 1, 6]], 'fifo'], [['F6', 2]]], ['partial repair probe 1', [8, [['D4', 5, 5], ['C3', 7, 9]], 'fifo'], [['C3', 3], ['D4', 5]]], ['partial repair probe 2', [7, [['F6', 5, 16], ['D4', 3, 18], ['B2', 3, 17]], 'fifo'], [['B2', 2], ['F6', 5]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [16, [['F6', 10, 18], ['B2', 1, 12], ['D4', 10, 3]], 'pro-rata'], [['B2', 1], ['D4', 8], ['F6', 7]]], ['normal control 2', [1, [['E5', 1, 17]], 'pro-rata'], [['E5', 1]]], ['normal control 3', [7, [['C3', 7, 13], ['B2', 3, 8]], 'pro-rata'], [['B2', 2], ['C3', 5]]]], [['regression fifo ordering 1', [9, [['D4', 1, 12], ['B2', 7, 9], ['F6', 7, 19], ['C3', 10, 18]], 'fifo'], [['B2', 7], ['C3', 1], ['D4', 1]]], ['regression fifo ordering 2', [12, [['E5', 1, 5], ['F6', 3, 1], ['B2', 10, 3], ['C3', 3, 8]], 'fifo'], [['B2', 9], ['F6', 3]]], ['partial repair probe 1', [8, [['F6', 1, 14], ['B2', 2, 2], ['C3', 1, 18], ['A1', 7, 15]], 'fifo'], [['A1', 5], ['B2', 2], ['F6', 1]]], ['partial repair probe 2', [3, [['F6', 2, 8], ['D4', 2, 17], ['E5', 10, 15]], 'fifo'], [['E5', 1], ['F6', 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', [17, [['A1', 10, 11], ['D4', 10, 16], ['F6', 1, 5]], 'pro-rata'], [['A1', 8], ['D4', 8], ['F6', 1]]], ['normal control 2', [4, [['A1', 2, 4], ['B2', 2, 2], ['E5', 2, 1], ['D4', 2, 10]], 'pro-rata'], [['A1', 1], ['B2', 1], ['D4', 1], ['E5', 1]]], ['normal control 3', [7, [['B2', 2, 11], ['F6', 2, 6], ['D4', 3, 14]], 'pro-rata'], [['B2', 2], ['D4', 3], ['F6', 2]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bca21324bb88f3c1e32774f92052c80efb8832498f9dc98923748cb5239add34","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exercised, shorts, method):\n    total = sum(q for _, q, _ in shorts)\n    alloc = {}\n    if method == 'fifo':\n        left = exercised\n        for acct, q, seq in sorted(shorts, key=lambda s: s[2], reverse=True):\n            take = min(q, left)\n            alloc[acct] = alloc.get(acct, 0) + take\n            left -= take\n    else:\n        rem = []\n        for acct, q, seq in shorts:\n            alloc[acct] = alloc.get(acct, 0) + exercised * q // total\n            rem.append((-(exercised * q % total), seq, acct))\n        left = exercised - sum(alloc.values())\n        for _, seq, acct in sorted(rem)[:left]:\n            alloc[acct] += 1\n    return sorted([a, n] for a, n in alloc.items() if n > 0)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fifo ordering 1', [6, [['F6', 1, 10], ['E5', 2, 14], ['B2', 3, 15], ['C3', 3, 16], ['A1', 7, 2]], 'fifo'], [['A1', 6]]], ['regression fifo ordering 2', [5, [['F6', 3, 8], ['D4', 7, 11], ['E5', 10, 5], ['C3', 7, 19], ['B2', 1, 9]], 'fifo'], [['E5', 5]]], ['partial repair probe 1', [4, [['C3', 3, 19], ['E5', 3, 13], ['F6', 10, 10], ['B2', 2, 2]], 'fifo'], [['B2', 2], ['F6', 2]]], ['partial repair probe 2', [16, [['B2', 5, 12], ['E5', 10, 9], ['C3', 7, 11], ['D4', 10, 18]], 'fifo'], [['C3', 6], ['E5', 10]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [10, [['F6', 1, 1], ['C3', 1, 5], ['D4', 3, 12], ['A1', 7, 6], ['B2', 2, 4]], 'pro-rata'], [['A1', 5], ['B2', 1], ['C3', 1], ['D4', 2], ['F6', 1]]], ['normal control 2', [8, [['E5', 2, 16], ['A1', 10, 1]], 'pro-rata'], [['A1', 7], ['E5', 1]]], ['normal control 3', [1, [['D4', 1, 16]], 'pro-rata'], [['D4', 1]]]], [['regression fifo ordering 1', [2, [['C3', 3, 11], ['E5', 10, 6], ['F6', 7, 17], ['A1', 10, 4]], 'fifo'], [['A1', 2]]], ['regression fifo ordering 2', [15, [['D4', 5, 11], ['E5', 10, 3], ['B2', 5, 14], ['C3', 2, 15]], 'fifo'], [['D4', 5], ['E5', 10]]], ['partial repair probe 1', [10, [['F6', 3, 1], ['A1', 10, 6], ['C3', 1, 5]], 'fifo'], [['A1', 6], ['C3', 1], ['F6', 3]]], ['partial repair probe 2', [7, [['A1', 7, 16], ['B2', 3, 14]], 'fifo'], [['A1', 4], ['B2', 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', [9, [['D4', 10, 17], ['E5', 3, 11]], 'pro-rata'], [['D4', 7], ['E5', 2]]], ['normal control 2', [1, [['F6', 10, 15]], 'fifo'], [['F6', 1]]], ['normal control 3', [12, [['B2', 5, 8], ['D4', 3, 1], ['E5', 1, 2], ['C3', 3, 4], ['A1', 7, 13]], 'pro-rata'], [['A1', 4], ['B2', 3], ['C3', 2], ['D4', 2], ['E5', 1]]]], [['regression fifo ordering 1', [4, [['C3', 10, 15], ['E5', 5, 16], ['F6', 7, 3], ['B2', 1, 9]], 'fifo'], [['F6', 4]]], ['regression fifo ordering 2', [1, [['F6', 3, 17], ['D4', 1, 18]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [7, [['C3', 1, 4], ['F6', 10, 2], ['D4', 7, 18], ['A1', 5, 8], ['E5', 1, 15]], 'fifo'], [['F6', 7]]], ['partial repair probe 2', [13, [['E5', 7, 7], ['A1', 5, 9], ['D4', 2, 6]], 'fifo'], [['A1', 4], ['D4', 2], ['E5', 7]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [5, [['F6', 3, 7], ['B2', 2, 19]], 'pro-rata'], [['B2', 2], ['F6', 3]]], ['normal control 2', [4, [['F6', 1, 8], ['B2', 2, 4], ['D4', 3, 15], ['C3', 7, 16]], 'pro-rata'], [['B2', 1], ['C3', 2], ['D4', 1]]], ['normal control 3', [2, [['D4', 2, 1]], 'pro-rata'], [['D4', 2]]]], [['regression fifo ordering 1', [22, [['F6', 7, 10], ['B2', 5, 7], ['C3', 2, 19], ['A1', 10, 14], ['E5', 5, 8]], 'fifo'], [['A1', 5], ['B2', 5], ['E5', 5], ['F6', 7]]], ['regression fifo ordering 2', [2, [['F6', 2, 5], ['C3', 1, 6]], 'fifo'], [['F6', 2]]], ['partial repair probe 1', [8, [['D4', 5, 5], ['C3', 7, 9]], 'fifo'], [['C3', 3], ['D4', 5]]], ['partial repair probe 2', [7, [['F6', 5, 16], ['D4', 3, 18], ['B2', 3, 17]], 'fifo'], [['B2', 2], ['F6', 5]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [16, [['F6', 10, 18], ['B2', 1, 12], ['D4', 10, 3]], 'pro-rata'], [['B2', 1], ['D4', 8], ['F6', 7]]], ['normal control 2', [1, [['E5', 1, 17]], 'pro-rata'], [['E5', 1]]], ['normal control 3', [7, [['C3', 7, 13], ['B2', 3, 8]], 'pro-rata'], [['B2', 2], ['C3', 5]]]], [['regression fifo ordering 1', [9, [['D4', 1, 12], ['B2', 7, 9], ['F6', 7, 19], ['C3', 10, 18]], 'fifo'], [['B2', 7], ['C3', 1], ['D4', 1]]], ['regression fifo ordering 2', [12, [['E5', 1, 5], ['F6', 3, 1], ['B2', 10, 3], ['C3', 3, 8]], 'fifo'], [['B2', 9], ['F6', 3]]], ['partial repair probe 1', [8, [['F6', 1, 14], ['B2', 2, 2], ['C3', 1, 18], ['A1', 7, 15]], 'fifo'], [['A1', 5], ['B2', 2], ['F6', 1]]], ['partial repair probe 2', [3, [['F6', 2, 8], ['D4', 2, 17], ['E5', 10, 15]], 'fifo'], [['E5', 1], ['F6', 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', [17, [['A1', 10, 11], ['D4', 10, 16], ['F6', 1, 5]], 'pro-rata'], [['A1', 8], ['D4', 8], ['F6', 1]]], ['normal control 2', [4, [['A1', 2, 4], ['B2', 2, 2], ['E5', 2, 1], ['D4', 2, 10]], 'pro-rata'], [['A1', 1], ['B2', 1], ['D4', 1], ['E5', 1]]], ['normal control 3', [7, [['B2', 2, 11], ['F6', 2, 6], ['D4', 3, 14]], 'pro-rata'], [['B2', 2], ['D4', 3], ['F6', 2]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"3f9daf01bd1227cc6e70fe855e2ffd959ffef3ab17f287483cd014a70cd44372","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exercised, shorts, method):\n    total = sum(q for _, q, _ in shorts)\n    alloc = {}\n    if method == 'fifo':\n        left = exercised\n        for acct, q, seq in sorted(shorts, key=lambda s: s[2]):\n            take = min(q, left)\n            alloc[acct] = alloc.get(acct, 0) + take\n            left -= take\n    else:\n        rem = []\n        for acct, q, seq in shorts:\n            alloc[acct] = alloc.get(acct, 0) + exercised * q // total\n            rem.append((-(exercised * q % total), seq, acct))\n        left = exercised - sum(alloc.values())\n        for _, seq, acct in sorted(rem)[:left]:\n            alloc[acct] += 1\n    return sorted([a, n] for a, n in alloc.items() if n > 0)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression fifo ordering 1', [6, [['F6', 1, 10], ['E5', 2, 14], ['B2', 3, 15], ['C3', 3, 16], ['A1', 7, 2]], 'fifo'], [['A1', 6]]], ['regression fifo ordering 2', [5, [['F6', 3, 8], ['D4', 7, 11], ['E5', 10, 5], ['C3', 7, 19], ['B2', 1, 9]], 'fifo'], [['E5', 5]]], ['partial repair probe 1', [4, [['C3', 3, 19], ['E5', 3, 13], ['F6', 10, 10], ['B2', 2, 2]], 'fifo'], [['B2', 2], ['F6', 2]]], ['partial repair probe 2', [16, [['B2', 5, 12], ['E5', 10, 9], ['C3', 7, 11], ['D4', 10, 18]], 'fifo'], [['C3', 6], ['E5', 10]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [10, [['F6', 1, 1], ['C3', 1, 5], ['D4', 3, 12], ['A1', 7, 6], ['B2', 2, 4]], 'pro-rata'], [['A1', 5], ['B2', 1], ['C3', 1], ['D4', 2], ['F6', 1]]], ['normal control 2', [8, [['E5', 2, 16], ['A1', 10, 1]], 'pro-rata'], [['A1', 7], ['E5', 1]]], ['normal control 3', [1, [['D4', 1, 16]], 'pro-rata'], [['D4', 1]]]], [['regression fifo ordering 1', [2, [['C3', 3, 11], ['E5', 10, 6], ['F6', 7, 17], ['A1', 10, 4]], 'fifo'], [['A1', 2]]], ['regression fifo ordering 2', [15, [['D4', 5, 11], ['E5', 10, 3], ['B2', 5, 14], ['C3', 2, 15]], 'fifo'], [['D4', 5], ['E5', 10]]], ['partial repair probe 1', [10, [['F6', 3, 1], ['A1', 10, 6], ['C3', 1, 5]], 'fifo'], [['A1', 6], ['C3', 1], ['F6', 3]]], ['partial repair probe 2', [7, [['A1', 7, 16], ['B2', 3, 14]], 'fifo'], [['A1', 4], ['B2', 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', [9, [['D4', 10, 17], ['E5', 3, 11]], 'pro-rata'], [['D4', 7], ['E5', 2]]], ['normal control 2', [1, [['F6', 10, 15]], 'fifo'], [['F6', 1]]], ['normal control 3', [12, [['B2', 5, 8], ['D4', 3, 1], ['E5', 1, 2], ['C3', 3, 4], ['A1', 7, 13]], 'pro-rata'], [['A1', 4], ['B2', 3], ['C3', 2], ['D4', 2], ['E5', 1]]]], [['regression fifo ordering 1', [4, [['C3', 10, 15], ['E5', 5, 16], ['F6', 7, 3], ['B2', 1, 9]], 'fifo'], [['F6', 4]]], ['regression fifo ordering 2', [1, [['F6', 3, 17], ['D4', 1, 18]], 'fifo'], [['F6', 1]]], ['partial repair probe 1', [7, [['C3', 1, 4], ['F6', 10, 2], ['D4', 7, 18], ['A1', 5, 8], ['E5', 1, 15]], 'fifo'], [['F6', 7]]], ['partial repair probe 2', [13, [['E5', 7, 7], ['A1', 5, 9], ['D4', 2, 6]], 'fifo'], [['A1', 4], ['D4', 2], ['E5', 7]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [5, [['F6', 3, 7], ['B2', 2, 19]], 'pro-rata'], [['B2', 2], ['F6', 3]]], ['normal control 2', [4, [['F6', 1, 8], ['B2', 2, 4], ['D4', 3, 15], ['C3', 7, 16]], 'pro-rata'], [['B2', 1], ['C3', 2], ['D4', 1]]], ['normal control 3', [2, [['D4', 2, 1]], 'pro-rata'], [['D4', 2]]]], [['regression fifo ordering 1', [22, [['F6', 7, 10], ['B2', 5, 7], ['C3', 2, 19], ['A1', 10, 14], ['E5', 5, 8]], 'fifo'], [['A1', 5], ['B2', 5], ['E5', 5], ['F6', 7]]], ['regression fifo ordering 2', [2, [['F6', 2, 5], ['C3', 1, 6]], 'fifo'], [['F6', 2]]], ['partial repair probe 1', [8, [['D4', 5, 5], ['C3', 7, 9]], 'fifo'], [['C3', 3], ['D4', 5]]], ['partial repair probe 2', [7, [['F6', 5, 16], ['D4', 3, 18], ['B2', 3, 17]], 'fifo'], [['B2', 2], ['F6', 5]]], ['boundary control 1', [3, [['A1', 1, 1], ['B2', 1, 2], ['C3', 1, 3]], 'pro-rata'], [['A1', 1], ['B2', 1], ['C3', 1]]], ['normal control 1', [16, [['F6', 10, 18], ['B2', 1, 12], ['D4', 10, 3]], 'pro-rata'], [['B2', 1], ['D4', 8], ['F6', 7]]], ['normal control 2', [1, [['E5', 1, 17]], 'pro-rata'], [['E5', 1]]], ['normal control 3', [7, [['C3', 7, 13], ['B2', 3, 8]], 'pro-rata'], [['B2', 2], ['C3', 5]]]], [['regression fifo ordering 1', [9, [['D4', 1, 12], ['B2', 7, 9], ['F6', 7, 19], ['C3', 10, 18]], 'fifo'], [['B2', 7], ['C3', 1], ['D4', 1]]], ['regression fifo ordering 2', [12, [['E5', 1, 5], ['F6', 3, 1], ['B2', 10, 3], ['C3', 3, 8]], 'fifo'], [['B2', 9], ['F6', 3]]], ['partial repair probe 1', [8, [['F6', 1, 14], ['B2', 2, 2], ['C3', 1, 18], ['A1', 7, 15]], 'fifo'], [['A1', 5], ['B2', 2], ['F6', 1]]], ['partial repair probe 2', [3, [['F6', 2, 8], ['D4', 2, 17], ['E5', 10, 15]], 'fifo'], [['E5', 1], ['F6', 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', [17, [['A1', 10, 11], ['D4', 10, 16], ['F6', 1, 5]], 'pro-rata'], [['A1', 8], ['D4', 8], ['F6', 1]]], ['normal control 2', [4, [['A1', 2, 4], ['B2', 2, 2], ['E5', 2, 1], ['D4', 2, 10]], 'pro-rata'], [['A1', 1], ['B2', 1], ['D4', 1], ['E5', 1]]], ['normal control 3', [7, [['B2', 2, 11], ['F6', 2, 6], ['D4', 3, 14]], 'pro-rata'], [['B2', 2], ['D4', 3], ['F6', 2]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-options_payoff_and_settlement-assignment-allocation-fifo-ordering","generated_at":"2026-09-29T14:46:57.084043+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.","repair":"Sort by ascending open sequence.","root_cause":"The fifo sort is reversed.","sha256":"9fefe183aa30c309c26ece47b7f56a3245ef700caff8e415b54d6dabd275da9f","title":"Exercise assignment allocation across short accounts: fifo assigns the newest positions first · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":49.493,"exit_code":1,"observations":[{"actual":[["A1",6]],"check":"regression fifo ordering 1","expected":[["A1",6]],"passed":true},{"actual":[["B2",1],["C3",4]],"check":"regression fifo ordering 2","expected":[["E5",5]],"passed":false},{"actual":[["B2",2],["C3",2]],"check":"partial repair probe 1","expected":[["B2",2],["F6",2]],"passed":false},{"actual":[["B2",5],["C3",7],["D4",4]],"check":"partial repair probe 2","expected":[["C3",6],["E5",10]],"passed":false},{"actual":[["A1",1],["B2",1],["C3",1]],"check":"boundary control 1","expected":[["A1",1],["B2",1],["C3",1]],"passed":true},{"actual":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"check":"normal control 1","expected":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"passed":true},{"actual":[["A1",7],["E5",1]],"check":"normal control 2","expected":[["A1",7],["E5",1]],"passed":true},{"actual":[["D4",1]],"check":"normal control 3","expected":[["D4",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fifo ordering 1\", \"actual\": [[\"A1\", 6]], \"expected\": [[\"A1\", 6]], \"passed\": true}, {\"check\": \"regression fifo ordering 2\", \"actual\": [[\"B2\", 1], [\"C3\", 4]], \"expected\": [[\"E5\", 5]], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [[\"B2\", 2], [\"C3\", 2]], \"expected\": [[\"B2\", 2], [\"F6\", 2]], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": [[\"B2\", 5], [\"C3\", 7], [\"D4\", 4]], \"expected\": [[\"C3\", 6], [\"E5\", 10]], \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"expected\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"expected\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[\"A1\", 7], [\"E5\", 1]], \"expected\": [[\"A1\", 7], [\"E5\", 1]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[\"D4\", 1]], \"expected\": [[\"D4\", 1]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.371,"exit_code":1,"observations":[{"actual":[["B2",3],["C3",3]],"check":"regression fifo ordering 1","expected":[["A1",6]],"passed":false},{"actual":[["C3",5]],"check":"regression fifo ordering 2","expected":[["E5",5]],"passed":false},{"actual":[["C3",3],["E5",1]],"check":"partial repair probe 1","expected":[["B2",2],["F6",2]],"passed":false},{"actual":[["B2",5],["C3",1],["D4",10]],"check":"partial repair probe 2","expected":[["C3",6],["E5",10]],"passed":false},{"actual":[["A1",1],["B2",1],["C3",1]],"check":"boundary control 1","expected":[["A1",1],["B2",1],["C3",1]],"passed":true},{"actual":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"check":"normal control 1","expected":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"passed":true},{"actual":[["A1",7],["E5",1]],"check":"normal control 2","expected":[["A1",7],["E5",1]],"passed":true},{"actual":[["D4",1]],"check":"normal control 3","expected":[["D4",1]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fifo ordering 1\", \"actual\": [[\"B2\", 3], [\"C3\", 3]], \"expected\": [[\"A1\", 6]], \"passed\": false}, {\"check\": \"regression fifo ordering 2\", \"actual\": [[\"C3\", 5]], \"expected\": [[\"E5\", 5]], \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": [[\"C3\", 3], [\"E5\", 1]], \"expected\": [[\"B2\", 2], [\"F6\", 2]], \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": [[\"B2\", 5], [\"C3\", 1], [\"D4\", 10]], \"expected\": [[\"C3\", 6], [\"E5\", 10]], \"passed\": false}, {\"check\": \"boundary control 1\", \"actual\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"expected\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"expected\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[\"A1\", 7], [\"E5\", 1]], \"expected\": [[\"A1\", 7], [\"E5\", 1]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[\"D4\", 1]], \"expected\": [[\"D4\", 1]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.568,"exit_code":0,"observations":[{"actual":[["A1",6]],"check":"regression fifo ordering 1","expected":[["A1",6]],"passed":true},{"actual":[["E5",5]],"check":"regression fifo ordering 2","expected":[["E5",5]],"passed":true},{"actual":[["B2",2],["F6",2]],"check":"partial repair probe 1","expected":[["B2",2],["F6",2]],"passed":true},{"actual":[["C3",6],["E5",10]],"check":"partial repair probe 2","expected":[["C3",6],["E5",10]],"passed":true},{"actual":[["A1",1],["B2",1],["C3",1]],"check":"boundary control 1","expected":[["A1",1],["B2",1],["C3",1]],"passed":true},{"actual":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"check":"normal control 1","expected":[["A1",5],["B2",1],["C3",1],["D4",2],["F6",1]],"passed":true},{"actual":[["A1",7],["E5",1]],"check":"normal control 2","expected":[["A1",7],["E5",1]],"passed":true},{"actual":[["D4",1]],"check":"normal control 3","expected":[["D4",1]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression fifo ordering 1\", \"actual\": [[\"A1\", 6]], \"expected\": [[\"A1\", 6]], \"passed\": true}, {\"check\": \"regression fifo ordering 2\", \"actual\": [[\"E5\", 5]], \"expected\": [[\"E5\", 5]], \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": [[\"B2\", 2], [\"F6\", 2]], \"expected\": [[\"B2\", 2], [\"F6\", 2]], \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": [[\"C3\", 6], [\"E5\", 10]], \"expected\": [[\"C3\", 6], [\"E5\", 10]], \"passed\": true}, {\"check\": \"boundary control 1\", \"actual\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"expected\": [[\"A1\", 1], [\"B2\", 1], [\"C3\", 1]], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"expected\": [[\"A1\", 5], [\"B2\", 1], [\"C3\", 1], [\"D4\", 2], [\"F6\", 1]], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [[\"A1\", 7], [\"E5\", 1]], \"expected\": [[\"A1\", 7], [\"E5\", 1]], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [[\"D4\", 1]], \"expected\": [[\"D4\", 1]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}