{"abstract":"A player swapped into a second slot counts twice in the total.","category":"Fantasy sports scoring","checks":7,"contract":"Apply lineup swaps [time, slot, incoming player] in time order (submission order on equal times). A swap is rejected if either the outgoing or incoming player's game has kicked off at or before the swap time, or if the incoming player already occupies another slot. Return the final lineup, the sorted indices of rejected swaps and the lineup's total points.","contract_signature":"lineup, swaps, kickoffs, points","evaluation_group":"w2-fantasy-sports-scoring-kickoff-lineup-lock","failed_approach":"Checking the original lineup misses players added by earlier swaps and blocks players already swapped out.","family":"w2-fantasy-sports-scoring-kickoff-lineup-lock-duplicate-starter-check","id":"FA-84976","implementations":{"attempt":{"sha256":"1fde04023dabe915d3a4d5f698888f38e65eebea6d1d7e0cf89ba240181c0798","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(lineup, swaps, kickoffs, points):\n    cur = dict(lineup)\n    rejected = []\n    order = sorted(range(len(swaps)), key=lambda i: (swaps[i][0], i))\n    for i in order:\n        t, slot, new = swaps[i]\n        old = cur[slot]\n        if kickoffs[old] <= t or kickoffs[new] <= t:\n            rejected.append(i)\n            continue\n        if new in lineup.values():\n            rejected.append(i)\n            continue\n        cur[slot] = new\n    total = sum(points[p] for p in cur.values())\n    return {'final': cur, 'rejected': sorted(rejected), 'total': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S3', 'p0'], [150, 'S3', 'p0'], [150, 'S2', 'p5'], [250, 'S1', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 100, 'p6': 300},\n    {'p0': 28, 'p1': 14, 'p2': 22, 'p3': 29, 'p4': 7, 'p5': 25, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 64}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p5'], [150, 'S3', 'p3'], [50, 'S3', 'p1'], [50, 'S3', 'p3'], [150, 'S3', 'p2']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 300},\n    {'p0': 8, 'p1': 8, 'p2': 20, 'p3': 23, 'p4': 30, 'p5': 29, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [0, 1, 2, 4], 'total': 39}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S3', 'p4'], [200, 'S1', 'p1'], [150, 'S3', 'p5'], [300, 'S3', 'p4'], [300, 'S2', 'p3']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 3, 'p1': 2, 'p2': 25, 'p3': 9, 'p4': 19, 'p5': 18, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1, 3, 4], 'total': 23}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S1', 'p6'], [200, 'S1', 'p3']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 2, 'p1': 8, 'p2': 15, 'p3': 1, 'p4': 22, 'p5': 24, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 25}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S2', 'p5'], [250, 'S2', 'p3']],\n    {'p0': 300, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 29, 'p1': 20, 'p2': 0, 'p3': 29, 'p4': 22, 'p5': 26, 'p6': 28}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 49}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p2'], [300, 'S2', 'p2']],\n    {'p0': 300, 'p1': 200, 'p2': 100, 'p3': 300, 'p4': 100, 'p5': 100, 'p6': 100},\n    {'p0': 1, 'p1': 4, 'p2': 18, 'p3': 20, 'p4': 26, 'p5': 18, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 23}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S2', 'p2']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 5, 'p1': 19, 'p2': 26, 'p3': 1, 'p4': 22, 'p5': 6, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 50})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S1', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 300, 'p6': 200},\n    {'p0': 26, 'p1': 10, 'p2': 5, 'p3': 15, 'p4': 26, 'p5': 12, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 41}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[250, 'S1', 'p0'], [150, 'S3', 'p4'], [300, 'S3', 'p4'], [50, 'S2', 'p4'], [150, 'S2', 'p3']],\n    {'p0': 300, 'p1': 100, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 21, 'p2': 20, 'p3': 25, 'p4': 14, 'p5': 11, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [0, 1, 2, 4], 'total': 41}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p6'], [300, 'S3', 'p0'], [150, 'S2', 'p1'], [50, 'S3', 'p5']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 30, 'p1': 24, 'p2': 1, 'p3': 20, 'p4': 18, 'p5': 30, 'p6': 22}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [0, 1, 2], 'total': 84}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p0'], [50, 'S3', 'p4'], [100, 'S2', 'p5']],\n    {'p0': 200, 'p1': 200, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 11, 'p1': 7, 'p2': 23, 'p3': 28, 'p4': 17, 'p5': 24, 'p6': 20}],\n   {'final': {'S1': 'p0', 'S2': 'p5', 'S3': 'p4'}, 'rejected': [0], 'total': 52}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5']],\n    {'p0': 300, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 8, 'p1': 21, 'p2': 24, 'p3': 17, 'p4': 4, 'p5': 14, 'p6': 14}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 53}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S1', 'p1']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 23, 'p1': 24, 'p2': 11, 'p3': 17, 'p4': 4, 'p5': 0, 'p6': 7}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 58}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 17, 'p1': 12, 'p2': 6, 'p3': 11, 'p4': 2, 'p5': 7, 'p6': 21}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 35})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S3', 'p2'], [300, 'S1', 'p6'], [50, 'S1', 'p0'], [100, 'S3', 'p2']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 8, 'p1': 8, 'p2': 29, 'p3': 17, 'p4': 11, 'p5': 21, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 45}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S3', 'p2'], [300, 'S1', 'p2'], [50, 'S3', 'p4'], [200, 'S3', 'p4'], [200, 'S3', 'p0']],\n    {'p0': 200, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 25, 'p1': 13, 'p2': 25, 'p3': 7, 'p4': 7, 'p5': 2, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [1, 3, 4], 'total': 63}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S3', 'p4'], [50, 'S3', 'p0'], [300, 'S3', 'p2'], [300, 'S2', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 100},\n    {'p0': 8, 'p1': 3, 'p2': 29, 'p3': 24, 'p4': 29, 'p5': 24, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p4'}, 'rejected': [1, 2, 3], 'total': 40}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 15, 'p1': 29, 'p2': 1, 'p3': 23, 'p4': 13, 'p5': 19, 'p6': 13}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 45}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p3'], [300, 'S2', 'p0'], [300, 'S2', 'p1']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 7, 'p1': 29, 'p2': 10, 'p3': 19, 'p4': 29, 'p5': 13, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [1, 2], 'total': 55}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p6'], [250, 'S2', 'p2'], [300, 'S2', 'p3'], [50, 'S2', 'p4'], [200, 'S1', 'p1']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 17, 'p1': 15, 'p2': 10, 'p3': 13, 'p4': 15, 'p5': 0, 'p6': 21}],\n   {'final': {'S1': 'p6', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [1, 2, 4], 'total': 46}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5'], [300, 'S3', 'p6'], [200, 'S3', 'p6']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 100, 'p6': 100},\n    {'p0': 14, 'p1': 0, 'p2': 6, 'p3': 5, 'p4': 15, 'p5': 4, 'p6': 12}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 20})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p2'], [250, 'S3', 'p3'], [100, 'S2', 'p4']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 200},\n    {'p0': 20, 'p1': 25, 'p2': 17, 'p3': 10, 'p4': 30, 'p5': 9, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 62}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S1', 'p2'], [50, 'S1', 'p3'], [100, 'S2', 'p3']],\n    {'p0': 300, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 100},\n    {'p0': 7, 'p1': 18, 'p2': 21, 'p3': 22, 'p4': 9, 'p5': 0, 'p6': 25}],\n   {'final': {'S1': 'p3', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 2], 'total': 61}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[250, 'S1', 'p0'], [200, 'S3', 'p1'], [100, 'S3', 'p0'], [200, 'S2', 'p2'], [150, 'S2', 'p2']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 26, 'p1': 21, 'p2': 5, 'p3': 12, 'p4': 17, 'p5': 2, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 52}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5'], [200, 'S2', 'p4']],\n    {'p0': 300, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 100},\n    {'p0': 22, 'p1': 7, 'p2': 0, 'p3': 6, 'p4': 15, 'p5': 4, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 33}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6'], [250, 'S3', 'p3']],\n    {'p0': 100, 'p1': 100, 'p2': 200, 'p3': 200, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 26, 'p1': 25, 'p2': 3, 'p3': 6, 'p4': 8, 'p5': 13, 'p6': 21}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 54}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p3'], [150, 'S2', 'p3'], [50, 'S3', 'p5']],\n    {'p0': 200, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 12, 'p1': 12, 'p2': 1, 'p3': 9, 'p4': 27, 'p5': 24, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 48}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p4']],\n    {'p0': 200, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 28, 'p1': 1, 'p2': 13, 'p3': 29, 'p4': 24, 'p5': 3, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [], 'total': 65})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p0'], [150, 'S2', 'p2']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 0, 'p1': 26, 'p2': 8, 'p3': 1, 'p4': 0, 'p5': 9, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 34}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S3', 'p3'], [50, 'S3', 'p0'], [50, 'S3', 'p3'], [200, 'S3', 'p4'], [300, 'S1', 'p5']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 21, 'p1': 1, 'p2': 14, 'p3': 9, 'p4': 19, 'p5': 4, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [1, 2, 3, 4], 'total': 31}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p0'], [100, 'S1', 'p1']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 200},\n    {'p0': 18, 'p1': 26, 'p2': 11, 'p3': 19, 'p4': 24, 'p5': 12, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 55}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S1', 'p6'], [200, 'S2', 'p3']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 27, 'p1': 23, 'p2': 30, 'p3': 21, 'p4': 30, 'p5': 7, 'p6': 9}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [0], 'total': 78}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p6'], [150, 'S1', 'p4']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 25, 'p1': 15, 'p2': 25, 'p3': 25, 'p4': 27, 'p5': 0, 'p6': 17}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 65}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p3'], [300, 'S1', 'p0']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 23, 'p1': 3, 'p2': 11, 'p3': 9, 'p4': 7, 'p5': 22, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 37}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S1', 'p6'], [150, 'S1', 'p1'], [100, 'S1', 'p0'], [250, 'S1', 'p4'], [100, 'S3', 'p6']],\n    {'p0': 100, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 4, 'p1': 0, 'p2': 20, 'p3': 10, 'p4': 12, 'p5': 21, 'p6': 11}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [1, 2, 3, 4], 'total': 31})]]\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":"bc1a7fd99f20c6b91727da1fbae2846c90e92374cd858e618f59987dba1ac277","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(lineup, swaps, kickoffs, points):\n    cur = dict(lineup)\n    rejected = []\n    order = sorted(range(len(swaps)), key=lambda i: (swaps[i][0], i))\n    for i in order:\n        t, slot, new = swaps[i]\n        old = cur[slot]\n        if kickoffs[old] <= t or kickoffs[new] <= t:\n            rejected.append(i)\n            continue\n        cur[slot] = new\n    total = sum(points[p] for p in cur.values())\n    return {'final': cur, 'rejected': sorted(rejected), 'total': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S3', 'p0'], [150, 'S3', 'p0'], [150, 'S2', 'p5'], [250, 'S1', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 100, 'p6': 300},\n    {'p0': 28, 'p1': 14, 'p2': 22, 'p3': 29, 'p4': 7, 'p5': 25, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 64}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p5'], [150, 'S3', 'p3'], [50, 'S3', 'p1'], [50, 'S3', 'p3'], [150, 'S3', 'p2']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 300},\n    {'p0': 8, 'p1': 8, 'p2': 20, 'p3': 23, 'p4': 30, 'p5': 29, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [0, 1, 2, 4], 'total': 39}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S3', 'p4'], [200, 'S1', 'p1'], [150, 'S3', 'p5'], [300, 'S3', 'p4'], [300, 'S2', 'p3']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 3, 'p1': 2, 'p2': 25, 'p3': 9, 'p4': 19, 'p5': 18, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1, 3, 4], 'total': 23}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S1', 'p6'], [200, 'S1', 'p3']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 2, 'p1': 8, 'p2': 15, 'p3': 1, 'p4': 22, 'p5': 24, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 25}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S2', 'p5'], [250, 'S2', 'p3']],\n    {'p0': 300, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 29, 'p1': 20, 'p2': 0, 'p3': 29, 'p4': 22, 'p5': 26, 'p6': 28}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 49}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p2'], [300, 'S2', 'p2']],\n    {'p0': 300, 'p1': 200, 'p2': 100, 'p3': 300, 'p4': 100, 'p5': 100, 'p6': 100},\n    {'p0': 1, 'p1': 4, 'p2': 18, 'p3': 20, 'p4': 26, 'p5': 18, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 23}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S2', 'p2']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 5, 'p1': 19, 'p2': 26, 'p3': 1, 'p4': 22, 'p5': 6, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 50})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S1', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 300, 'p6': 200},\n    {'p0': 26, 'p1': 10, 'p2': 5, 'p3': 15, 'p4': 26, 'p5': 12, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 41}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[250, 'S1', 'p0'], [150, 'S3', 'p4'], [300, 'S3', 'p4'], [50, 'S2', 'p4'], [150, 'S2', 'p3']],\n    {'p0': 300, 'p1': 100, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 21, 'p2': 20, 'p3': 25, 'p4': 14, 'p5': 11, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [0, 1, 2, 4], 'total': 41}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p6'], [300, 'S3', 'p0'], [150, 'S2', 'p1'], [50, 'S3', 'p5']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 30, 'p1': 24, 'p2': 1, 'p3': 20, 'p4': 18, 'p5': 30, 'p6': 22}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [0, 1, 2], 'total': 84}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p0'], [50, 'S3', 'p4'], [100, 'S2', 'p5']],\n    {'p0': 200, 'p1': 200, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 11, 'p1': 7, 'p2': 23, 'p3': 28, 'p4': 17, 'p5': 24, 'p6': 20}],\n   {'final': {'S1': 'p0', 'S2': 'p5', 'S3': 'p4'}, 'rejected': [0], 'total': 52}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5']],\n    {'p0': 300, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 8, 'p1': 21, 'p2': 24, 'p3': 17, 'p4': 4, 'p5': 14, 'p6': 14}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 53}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S1', 'p1']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 23, 'p1': 24, 'p2': 11, 'p3': 17, 'p4': 4, 'p5': 0, 'p6': 7}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 58}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 17, 'p1': 12, 'p2': 6, 'p3': 11, 'p4': 2, 'p5': 7, 'p6': 21}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 35})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S3', 'p2'], [300, 'S1', 'p6'], [50, 'S1', 'p0'], [100, 'S3', 'p2']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 8, 'p1': 8, 'p2': 29, 'p3': 17, 'p4': 11, 'p5': 21, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 45}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S3', 'p2'], [300, 'S1', 'p2'], [50, 'S3', 'p4'], [200, 'S3', 'p4'], [200, 'S3', 'p0']],\n    {'p0': 200, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 25, 'p1': 13, 'p2': 25, 'p3': 7, 'p4': 7, 'p5': 2, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [1, 3, 4], 'total': 63}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S3', 'p4'], [50, 'S3', 'p0'], [300, 'S3', 'p2'], [300, 'S2', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 100},\n    {'p0': 8, 'p1': 3, 'p2': 29, 'p3': 24, 'p4': 29, 'p5': 24, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p4'}, 'rejected': [1, 2, 3], 'total': 40}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 15, 'p1': 29, 'p2': 1, 'p3': 23, 'p4': 13, 'p5': 19, 'p6': 13}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 45}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p3'], [300, 'S2', 'p0'], [300, 'S2', 'p1']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 7, 'p1': 29, 'p2': 10, 'p3': 19, 'p4': 29, 'p5': 13, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [1, 2], 'total': 55}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p6'], [250, 'S2', 'p2'], [300, 'S2', 'p3'], [50, 'S2', 'p4'], [200, 'S1', 'p1']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 17, 'p1': 15, 'p2': 10, 'p3': 13, 'p4': 15, 'p5': 0, 'p6': 21}],\n   {'final': {'S1': 'p6', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [1, 2, 4], 'total': 46}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5'], [300, 'S3', 'p6'], [200, 'S3', 'p6']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 100, 'p6': 100},\n    {'p0': 14, 'p1': 0, 'p2': 6, 'p3': 5, 'p4': 15, 'p5': 4, 'p6': 12}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 20})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p2'], [250, 'S3', 'p3'], [100, 'S2', 'p4']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 200},\n    {'p0': 20, 'p1': 25, 'p2': 17, 'p3': 10, 'p4': 30, 'p5': 9, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 62}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S1', 'p2'], [50, 'S1', 'p3'], [100, 'S2', 'p3']],\n    {'p0': 300, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 200, 'p5': 100, 'p6': 100},\n    {'p0': 7, 'p1': 18, 'p2': 21, 'p3': 22, 'p4': 9, 'p5': 0, 'p6': 25}],\n   {'final': {'S1': 'p3', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 2], 'total': 61}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[250, 'S1', 'p0'], [200, 'S3', 'p1'], [100, 'S3', 'p0'], [200, 'S2', 'p2'], [150, 'S2', 'p2']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 26, 'p1': 21, 'p2': 5, 'p3': 12, 'p4': 17, 'p5': 2, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 52}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p5'], [200, 'S2', 'p4']],\n    {'p0': 300, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 100},\n    {'p0': 22, 'p1': 7, 'p2': 0, 'p3': 6, 'p4': 15, 'p5': 4, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 33}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6'], [250, 'S3', 'p3']],\n    {'p0': 100, 'p1': 100, 'p2': 200, 'p3': 200, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 26, 'p1': 25, 'p2': 3, 'p3': 6, 'p4': 8, 'p5': 13, 'p6': 21}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 54}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p3'], [150, 'S2', 'p3'], [50, 'S3', 'p5']],\n    {'p0': 200, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 12, 'p1': 12, 'p2': 1, 'p3': 9, 'p4': 27, 'p5': 24, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 48}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p4']],\n    {'p0': 200, 'p1': 200, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 28, 'p1': 1, 'p2': 13, 'p3': 29, 'p4': 24, 'p5': 3, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [], 'total': 65})],\n [('regression: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p0'], [150, 'S2', 'p2']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 0, 'p1': 26, 'p2': 8, 'p3': 1, 'p4': 0, 'p5': 9, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 34}),\n  ('partial repair probe: duplicate starter check',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S3', 'p3'], [50, 'S3', 'p0'], [50, 'S3', 'p3'], [200, 'S3', 'p4'], [300, 'S1', 'p5']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 100, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 21, 'p1': 1, 'p2': 14, 'p3': 9, 'p4': 19, 'p5': 4, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p3'}, 'rejected': [1, 2, 3, 4], 'total': 31}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S3', 'p0'], [100, 'S1', 'p1']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 200},\n    {'p0': 18, 'p1': 26, 'p2': 11, 'p3': 19, 'p4': 24, 'p5': 12, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 55}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S1', 'p6'], [200, 'S2', 'p3']],\n    {'p0': 100, 'p1': 300, 'p2': 200, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 27, 'p1': 23, 'p2': 30, 'p3': 21, 'p4': 30, 'p5': 7, 'p6': 9}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [0], 'total': 78}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p6'], [150, 'S1', 'p4']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 25, 'p1': 15, 'p2': 25, 'p3': 25, 'p4': 27, 'p5': 0, 'p6': 17}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 65}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p3'], [300, 'S1', 'p0']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 23, 'p1': 3, 'p2': 11, 'p3': 9, 'p4': 7, 'p5': 22, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 37}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S1', 'p6'], [150, 'S1', 'p1'], [100, 'S1', 'p0'], [250, 'S1', 'p4'], [100, 'S3', 'p6']],\n    {'p0': 100, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 4, 'p1': 0, 'p2': 20, 'p3': 10, 'p4': 12, 'p5': 21, 'p6': 11}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [1, 2, 3, 4], 'total': 31})]]\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 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-fantasy-sports-scoring-kickoff-lineup-lock-duplicate-starter-check","generated_at":"2026-09-29T14:50:36.000024+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Game-time lineup locks decide whether late swaps count; wrong lock semantics let users bench players after they score.","root_cause":"The duplicate-occupancy check is missing.","sha256":"a7dbf90c7a03c0378b9c2d914c77bace0f2e3be7cb771008dc78d137dcc1c366","title":"Same player started in two slots · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.348,"exit_code":1,"observations":[{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3],"total":64},"check":"regression: duplicate starter check","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3],"total":64},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p3"},"rejected":[0,2,4],"total":39},"check":"partial repair probe: duplicate starter check","expected":{"final":{"S1":"p0","S2":"p1","S3":"p3"},"rejected":[0,1,2,4],"total":39},"passed":false},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p5"},"rejected":[1,3,4],"total":23},"check":"second regression","expected":{"final":{"S1":"p0","S2":"p1","S3":"p5"},"rejected":[1,3,4],"total":23},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":25},"check":"normal control 1","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":25},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":49},"check":"normal control 2","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":49},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":23},"check":"normal control 3","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":23},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":50},"check":"normal control 4","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":50},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: duplicate starter check\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 64}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 64}, \"passed\": true}, {\"check\": \"partial repair probe: duplicate starter check\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p3\"}, \"rejected\": [0, 2, 4], \"total\": 39}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p3\"}, \"rejected\": [0, 1, 2, 4], \"total\": 39}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p5\"}, \"rejected\": [1, 3, 4], \"total\": 23}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p5\"}, \"rejected\": [1, 3, 4], \"total\": 23}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 25}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 25}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 49}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 49}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 23}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 23}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 50}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 50}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.321,"exit_code":1,"observations":[{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p0"},"rejected":[0,2],"total":70},"check":"regression: duplicate starter check","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3],"total":64},"passed":false},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p3"},"rejected":[0,4],"total":39},"check":"partial repair probe: duplicate starter check","expected":{"final":{"S1":"p0","S2":"p1","S3":"p3"},"rejected":[0,1,2,4],"total":39},"passed":false},{"actual":{"final":{"S1":"p1","S2":"p1","S3":"p5"},"rejected":[3,4],"total":22},"check":"second regression","expected":{"final":{"S1":"p0","S2":"p1","S3":"p5"},"rejected":[1,3,4],"total":23},"passed":false},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":25},"check":"normal control 1","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":25},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":49},"check":"normal control 2","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":49},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":23},"check":"normal control 3","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":23},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":50},"check":"normal control 4","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":50},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: duplicate starter check\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p0\"}, \"rejected\": [0, 2], \"total\": 70}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 64}, \"passed\": false}, {\"check\": \"partial repair probe: duplicate starter check\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p3\"}, \"rejected\": [0, 4], \"total\": 39}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p3\"}, \"rejected\": [0, 1, 2, 4], \"total\": 39}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"final\": {\"S1\": \"p1\", \"S2\": \"p1\", \"S3\": \"p5\"}, \"rejected\": [3, 4], \"total\": 22}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p5\"}, \"rejected\": [1, 3, 4], \"total\": 23}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 25}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 25}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 49}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 49}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 23}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 23}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 50}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 50}, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}