{"abstract":"Ties go to juniors in violation of seniority tie-breaking.","category":"Shift rostering labor rules","checks":8,"contract":"ledger: worker -> [overtime minutes charged, seniority rank (1 most senior), minutes already worked today]; offers: [minutes, workers who will refuse]. For each offer, candidates are ordered by charged overtime then seniority rank. Workers who would exceed 720 minutes today are skipped without charge; refusers are charged the offered minutes; the first remaining worker takes it and is charged and credited today. Return [taker per offer (or None), charged minutes by worker].","contract_signature":"ledger, offers","evaluation_group":"w2-shift-rostering-labor-rules-overtime-equalization-offers","failed_approach":"Sorting by seniority first ignores the equalization ledger.","family":"w2-shift-rostering-labor-rules-overtime-equalization-offers-seniority-tie-break","id":"FA-94331","implementations":{"attempt":{"sha256":"f698e239ea02c32de38aaa69fd392dad3648481eebc3bc9c43a46dba8d8d1027","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ledger, offers):\n    led = {w: list(v) for w, v in ledger.items()}\n    result = []\n    for minutes, refusers in offers:\n        cands = sorted(led, key=lambda w: (led[w][1], led[w][0]))\n        taker = None\n        for w in cands:\n            if led[w][2] + minutes > 720:\n                continue\n            if w in refusers:\n                led[w][0] += minutes\n                continue\n            taker = w\n            break\n        if taker is not None:\n            led[taker][0] += minutes\n            led[taker][2] += minutes\n        result.append(taker)\n    return [result, {w: led[w][0] for w in sorted(led)}]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: seniority tie break 1',\n   [{'p': [120, 1, 240], 'r': [0, 2, 480], 'q': [60, 3, 240], 's': [60, 4, 480]},\n    [[60, []], [240, ['q', 'r']]]],\n   [['r', 's'], {'p': 120, 'q': 300, 'r': 60, 's': 300}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [240, 1, 480], 'p': [240, 2, 480], 'q': [120, 3, 480]}, [[120, ['p']], [60, ['p']]]],\n   [['q', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('partial repair guard 3', [{'q': [240, 1, 480], 'p': [60, 2, 240]}, [[60, []], [60, ['q', 'p']]]],\n   [['p', None], {'p': 180, 'q': 300}]),\n  ('normal control 4', [{'p': [120, 1, 480], 'q': [240, 2, 660], 'r': [0, 3, 600]}, [[60, ['r', 'p']]]],\n   [['q'], {'p': 180, 'q': 300, 'r': 60}]),\n  ('normal control 5',\n   [{'p': [60, 1, 480], 'q': [240, 2, 660]}, [[60, ['q']], [240, []], [120, ['p', 'q']], [120, []]]],\n   [['p', None, None, 'p'], {'p': 360, 'q': 240}]),\n  ('normal control 6',\n   [{'s': [60, 1, 0], 'p': [240, 2, 0], 'q': [120, 3, 240], 'r': [60, 4, 600]},\n    [[120, ['p']], [120, ['p', 'r']], [120, ['p', 'r']]]],\n   [['s', 'q', 's'], {'p': 240, 'q': 240, 'r': 180, 's': 300}]),\n  ('normal control 7', [{'q': [120, 1, 660], 'p': [0, 2, 480]}, [[60, ['q']], [120, ['p']], [60, ['q']]]],\n   [['p', None, 'p'], {'p': 240, 'q': 180}]),\n  ('normal control 8',\n   [{'p': [0, 1, 240], 'q': [0, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['r', 'q']], [120, []], [60, ['r', 'q']]]],\n   [['p', 'q', 'p'], {'p': 120, 'q': 120, 'r': 120}])],\n [('regression: seniority tie break 1',\n   [{'p': [0, 1, 0], 'q': [120, 2, 600]}, [[60, ['q', 'p']], [120, []], [120, ['q']], [120, []]]],\n   [[None, 'p', 'p', 'q'], {'p': 300, 'q': 300}]),\n  ('regression variant: seniority tie break 2',\n   [{'q': [240, 1, 480], 'p': [0, 2, 240], 'r': [120, 3, 0], 's': [120, 4, 240]},\n    [[120, []], [240, ['r', 'p']]]],\n   [['p', 's'], {'p': 360, 'q': 240, 'r': 360, 's': 360}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 0], 'p': [120, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['p']], [60, ['r', 'q']], [60, ['q', 'r']], [120, ['r', 'q']]]],\n   [['q', 'p', 'p', 'p'], {'p': 360, 'q': 360, 'r': 300}]),\n  ('normal control 4',\n   [{'r': [120, 1, 0], 'q': [120, 2, 660], 'p': [240, 3, 660]}, [[120, ['p']], [240, ['p', 'q']]]],\n   [['r', 'r'], {'p': 240, 'q': 120, 'r': 480}]),\n  ('normal control 5',\n   [{'r': [240, 1, 0], 's': [0, 2, 0], 'p': [120, 3, 660], 'q': [120, 4, 0]},\n    [[60, ['p', 's']], [240, ['r']], [60, ['s', 'r']], [240, ['r']]]],\n   [['q', 's', 'p', 'q'], {'p': 240, 'q': 420, 'r': 240, 's': 300}]),\n  ('normal control 6',\n   [{'p': [60, 1, 600], 'q': [240, 2, 660], 'r': [120, 3, 0]},\n    [[60, []], [120, []], [240, ['p']], [60, ['r']]]],\n   [['p', 'r', 'r', 'p'], {'p': 180, 'q': 240, 'r': 480}]),\n  ('normal control 7',\n   [{'p': [0, 1, 0], 'r': [240, 2, 240], 's': [120, 3, 600], 'q': [120, 4, 480]}, [[60, []]]],\n   [['p'], {'p': 60, 'q': 120, 'r': 240, 's': 120}]),\n  ('normal control 8',\n   [{'q': [0, 1, 480], 'r': [120, 2, 480], 'p': [60, 3, 660]},\n    [[60, ['r']], [240, ['p']], [120, ['q', 'r']], [60, ['q', 'r']]]],\n   [['q', 'r', None, 'p'], {'p': 120, 'q': 180, 'r': 360}])],\n [('regression: seniority tie break 1',\n   [{'q': [240, 1, 480], 's': [120, 2, 480], 'r': [0, 3, 660], 'p': [120, 4, 480]}, [[240, ['r', 'q']]]],\n   [['s'], {'p': 120, 'q': 240, 'r': 0, 's': 360}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [0, 1, 600], 'p': [120, 2, 660], 'q': [0, 3, 660]},\n    [[60, ['p', 'r']], [120, ['p', 'r']], [60, ['r', 'p']]]],\n   [['q', None, None], {'p': 180, 'q': 60, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'p': [240, 1, 660], 'r': [60, 2, 240], 's': [120, 3, 0], 'q': [0, 4, 600]},\n    [[240, []], [60, ['q', 'p']]]],\n   [['r', 's'], {'p': 240, 'q': 60, 'r': 300, 's': 180}]),\n  ('normal control 4',\n   [{'p': [240, 1, 480], 'q': [60, 2, 480]}, [[120, ['q']], [60, ['p', 'q']], [240, ['q']]]],\n   [['p', None, None], {'p': 420, 'q': 480}]),\n  ('normal control 5', [{'p': [60, 1, 0], 'r': [240, 2, 600], 'q': [0, 3, 480]}, [[240, ['r']]]],\n   [['q'], {'p': 60, 'q': 240, 'r': 240}]),\n  ('normal control 6',\n   [{'p': [0, 1, 660], 'q': [120, 2, 0], 's': [60, 3, 480], 'r': [60, 4, 240]}, [[240, ['r', 'q']]]],\n   [['s'], {'p': 0, 'q': 120, 'r': 60, 's': 300}]),\n  ('normal control 7', [{'q': [0, 1, 600], 'p': [60, 2, 600]}, [[240, ['q']], [240, ['p']]]],\n   [[None, None], {'p': 60, 'q': 0}]),\n  ('normal control 8', [{'q': [0, 1, 0], 'p': [240, 2, 480]}, [[120, []], [60, ['q', 'p']]]],\n   [['q', None], {'p': 300, 'q': 180}])],\n [('regression: seniority tie break 1',\n   [{'r': [240, 1, 0], 'p': [60, 2, 0], 'q': [120, 3, 0], 's': [120, 4, 600]}, [[120, ['p', 'q']]]],\n   [['s'], {'p': 180, 'q': 240, 'r': 240, 's': 240}]),\n  ('regression variant: seniority tie break 2',\n   [{'q': [120, 1, 480], 'r': [0, 2, 240], 'p': [120, 3, 0]}, [[60, []], [60, []], [240, ['p']], [120, []]]],\n   [['r', 'r', 'q', 'r'], {'p': 120, 'q': 360, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 240], 's': [240, 2, 600], 'r': [0, 3, 240], 'p': [0, 4, 480]}, [[240, ['r']]]],\n   [['p'], {'p': 240, 'q': 120, 'r': 240, 's': 240}]),\n  ('normal control 4', [{'p': [120, 1, 660], 'r': [120, 2, 600], 'q': [120, 3, 240]}, [[120, ['p', 'q']]]],\n   [['r'], {'p': 120, 'q': 120, 'r': 240}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 'r': [240, 2, 240], 'p': [0, 3, 600]}, [[240, []], [120, ['p']]]],\n   [['q', 'r'], {'p': 120, 'q': 360, 'r': 360}]),\n  ('normal control 6', [{'p': [240, 1, 0], 'q': [240, 2, 0], 'r': [120, 3, 240]}, [[60, []], [120, []]]],\n   [['r', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('normal control 7',\n   [{'q': [0, 1, 480], 's': [120, 2, 0], 'r': [120, 3, 240], 'p': [120, 4, 660]},\n    [[240, []], [60, []], [240, []]]],\n   [['q', 's', 'r'], {'p': 120, 'q': 240, 'r': 360, 's': 180}]),\n  ('normal control 8',\n   [{'p': [0, 1, 600], 'r': [120, 2, 240], 'q': [0, 3, 480]}, [[240, []], [240, ['p']], [60, []]]],\n   [['q', 'r', 'p'], {'p': 60, 'q': 240, 'r': 360}])],\n [('regression: seniority tie break 1',\n   [{'p': [0, 1, 240], 'q': [0, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['r', 'q']], [120, []], [60, ['r', 'q']]]],\n   [['p', 'q', 'p'], {'p': 120, 'q': 120, 'r': 120}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [0, 1, 480], 'p': [120, 2, 480], 'q': [0, 3, 480]},\n    [[240, []], [60, ['p']], [120, ['r', 'q']], [120, ['p', 'q']]]],\n   [['r', 'q', 'p', None], {'p': 360, 'q': 300, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'r': [120, 1, 480], 'p': [120, 2, 660], 'q': [60, 3, 480]},\n    [[240, ['p', 'q']], [120, ['r', 'q']], [120, ['p', 'r']], [120, ['r', 'p']]]],\n   [['r', None, 'q', 'q'], {'p': 120, 'q': 660, 'r': 360}]),\n  ('normal control 4', [{'p': [120, 1, 600], 'r': [120, 2, 0], 'q': [120, 3, 0]}, [[240, ['p', 'r']]]],\n   [['q'], {'p': 120, 'q': 360, 'r': 360}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 'r': [240, 2, 240], 'p': [240, 3, 480]},\n    [[240, ['r', 'p']], [60, ['q']], [120, ['r']], [60, []]]],\n   [['q', 'r', 'p', 'r'], {'p': 360, 'q': 360, 'r': 360}]),\n  ('normal control 6',\n   [{'p': [60, 1, 480], 'q': [120, 2, 600]}, [[60, ['p', 'q']], [60, ['q', 'p']], [60, ['p', 'q']]]],\n   [[None, None, None], {'p': 240, 'q': 300}]),\n  ('normal control 7', [{'r': [0, 1, 0], 'p': [240, 2, 660], 'q': [120, 3, 240]}, [[240, ['p']]]],\n   [['r'], {'p': 240, 'q': 120, 'r': 240}]),\n  ('normal control 8',\n   [{'s': [240, 1, 240], 'p': [0, 2, 240], 'r': [0, 3, 240], 'q': [240, 4, 660]},\n    [[240, ['r', 'q']], [120, []], [120, []]]],\n   [['p', 'r', 'r'], {'p': 240, 'q': 240, 'r': 240, 's': 240}])]]\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":"3ca296de4d7da336caabbdd1b6a4abaa4ec4d1d5f9016ee5df78d0d0aeec3e28","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ledger, offers):\n    led = {w: list(v) for w, v in ledger.items()}\n    result = []\n    for minutes, refusers in offers:\n        cands = sorted(led, key=lambda w: (led[w][0], -led[w][1]))\n        taker = None\n        for w in cands:\n            if led[w][2] + minutes > 720:\n                continue\n            if w in refusers:\n                led[w][0] += minutes\n                continue\n            taker = w\n            break\n        if taker is not None:\n            led[taker][0] += minutes\n            led[taker][2] += minutes\n        result.append(taker)\n    return [result, {w: led[w][0] for w in sorted(led)}]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: seniority tie break 1',\n   [{'p': [120, 1, 240], 'r': [0, 2, 480], 'q': [60, 3, 240], 's': [60, 4, 480]},\n    [[60, []], [240, ['q', 'r']]]],\n   [['r', 's'], {'p': 120, 'q': 300, 'r': 60, 's': 300}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [240, 1, 480], 'p': [240, 2, 480], 'q': [120, 3, 480]}, [[120, ['p']], [60, ['p']]]],\n   [['q', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('partial repair guard 3', [{'q': [240, 1, 480], 'p': [60, 2, 240]}, [[60, []], [60, ['q', 'p']]]],\n   [['p', None], {'p': 180, 'q': 300}]),\n  ('normal control 4', [{'p': [120, 1, 480], 'q': [240, 2, 660], 'r': [0, 3, 600]}, [[60, ['r', 'p']]]],\n   [['q'], {'p': 180, 'q': 300, 'r': 60}]),\n  ('normal control 5',\n   [{'p': [60, 1, 480], 'q': [240, 2, 660]}, [[60, ['q']], [240, []], [120, ['p', 'q']], [120, []]]],\n   [['p', None, None, 'p'], {'p': 360, 'q': 240}]),\n  ('normal control 6',\n   [{'s': [60, 1, 0], 'p': [240, 2, 0], 'q': [120, 3, 240], 'r': [60, 4, 600]},\n    [[120, ['p']], [120, ['p', 'r']], [120, ['p', 'r']]]],\n   [['s', 'q', 's'], {'p': 240, 'q': 240, 'r': 180, 's': 300}]),\n  ('normal control 7', [{'q': [120, 1, 660], 'p': [0, 2, 480]}, [[60, ['q']], [120, ['p']], [60, ['q']]]],\n   [['p', None, 'p'], {'p': 240, 'q': 180}]),\n  ('normal control 8',\n   [{'p': [0, 1, 240], 'q': [0, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['r', 'q']], [120, []], [60, ['r', 'q']]]],\n   [['p', 'q', 'p'], {'p': 120, 'q': 120, 'r': 120}])],\n [('regression: seniority tie break 1',\n   [{'p': [0, 1, 0], 'q': [120, 2, 600]}, [[60, ['q', 'p']], [120, []], [120, ['q']], [120, []]]],\n   [[None, 'p', 'p', 'q'], {'p': 300, 'q': 300}]),\n  ('regression variant: seniority tie break 2',\n   [{'q': [240, 1, 480], 'p': [0, 2, 240], 'r': [120, 3, 0], 's': [120, 4, 240]},\n    [[120, []], [240, ['r', 'p']]]],\n   [['p', 's'], {'p': 360, 'q': 240, 'r': 360, 's': 360}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 0], 'p': [120, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['p']], [60, ['r', 'q']], [60, ['q', 'r']], [120, ['r', 'q']]]],\n   [['q', 'p', 'p', 'p'], {'p': 360, 'q': 360, 'r': 300}]),\n  ('normal control 4',\n   [{'r': [120, 1, 0], 'q': [120, 2, 660], 'p': [240, 3, 660]}, [[120, ['p']], [240, ['p', 'q']]]],\n   [['r', 'r'], {'p': 240, 'q': 120, 'r': 480}]),\n  ('normal control 5',\n   [{'r': [240, 1, 0], 's': [0, 2, 0], 'p': [120, 3, 660], 'q': [120, 4, 0]},\n    [[60, ['p', 's']], [240, ['r']], [60, ['s', 'r']], [240, ['r']]]],\n   [['q', 's', 'p', 'q'], {'p': 240, 'q': 420, 'r': 240, 's': 300}]),\n  ('normal control 6',\n   [{'p': [60, 1, 600], 'q': [240, 2, 660], 'r': [120, 3, 0]},\n    [[60, []], [120, []], [240, ['p']], [60, ['r']]]],\n   [['p', 'r', 'r', 'p'], {'p': 180, 'q': 240, 'r': 480}]),\n  ('normal control 7',\n   [{'p': [0, 1, 0], 'r': [240, 2, 240], 's': [120, 3, 600], 'q': [120, 4, 480]}, [[60, []]]],\n   [['p'], {'p': 60, 'q': 120, 'r': 240, 's': 120}]),\n  ('normal control 8',\n   [{'q': [0, 1, 480], 'r': [120, 2, 480], 'p': [60, 3, 660]},\n    [[60, ['r']], [240, ['p']], [120, ['q', 'r']], [60, ['q', 'r']]]],\n   [['q', 'r', None, 'p'], {'p': 120, 'q': 180, 'r': 360}])],\n [('regression: seniority tie break 1',\n   [{'q': [240, 1, 480], 's': [120, 2, 480], 'r': [0, 3, 660], 'p': [120, 4, 480]}, [[240, ['r', 'q']]]],\n   [['s'], {'p': 120, 'q': 240, 'r': 0, 's': 360}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [0, 1, 600], 'p': [120, 2, 660], 'q': [0, 3, 660]},\n    [[60, ['p', 'r']], [120, ['p', 'r']], [60, ['r', 'p']]]],\n   [['q', None, None], {'p': 180, 'q': 60, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'p': [240, 1, 660], 'r': [60, 2, 240], 's': [120, 3, 0], 'q': [0, 4, 600]},\n    [[240, []], [60, ['q', 'p']]]],\n   [['r', 's'], {'p': 240, 'q': 60, 'r': 300, 's': 180}]),\n  ('normal control 4',\n   [{'p': [240, 1, 480], 'q': [60, 2, 480]}, [[120, ['q']], [60, ['p', 'q']], [240, ['q']]]],\n   [['p', None, None], {'p': 420, 'q': 480}]),\n  ('normal control 5', [{'p': [60, 1, 0], 'r': [240, 2, 600], 'q': [0, 3, 480]}, [[240, ['r']]]],\n   [['q'], {'p': 60, 'q': 240, 'r': 240}]),\n  ('normal control 6',\n   [{'p': [0, 1, 660], 'q': [120, 2, 0], 's': [60, 3, 480], 'r': [60, 4, 240]}, [[240, ['r', 'q']]]],\n   [['s'], {'p': 0, 'q': 120, 'r': 60, 's': 300}]),\n  ('normal control 7', [{'q': [0, 1, 600], 'p': [60, 2, 600]}, [[240, ['q']], [240, ['p']]]],\n   [[None, None], {'p': 60, 'q': 0}]),\n  ('normal control 8', [{'q': [0, 1, 0], 'p': [240, 2, 480]}, [[120, []], [60, ['q', 'p']]]],\n   [['q', None], {'p': 300, 'q': 180}])],\n [('regression: seniority tie break 1',\n   [{'r': [240, 1, 0], 'p': [60, 2, 0], 'q': [120, 3, 0], 's': [120, 4, 600]}, [[120, ['p', 'q']]]],\n   [['s'], {'p': 180, 'q': 240, 'r': 240, 's': 240}]),\n  ('regression variant: seniority tie break 2',\n   [{'q': [120, 1, 480], 'r': [0, 2, 240], 'p': [120, 3, 0]}, [[60, []], [60, []], [240, ['p']], [120, []]]],\n   [['r', 'r', 'q', 'r'], {'p': 120, 'q': 360, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 240], 's': [240, 2, 600], 'r': [0, 3, 240], 'p': [0, 4, 480]}, [[240, ['r']]]],\n   [['p'], {'p': 240, 'q': 120, 'r': 240, 's': 240}]),\n  ('normal control 4', [{'p': [120, 1, 660], 'r': [120, 2, 600], 'q': [120, 3, 240]}, [[120, ['p', 'q']]]],\n   [['r'], {'p': 120, 'q': 120, 'r': 240}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 'r': [240, 2, 240], 'p': [0, 3, 600]}, [[240, []], [120, ['p']]]],\n   [['q', 'r'], {'p': 120, 'q': 360, 'r': 360}]),\n  ('normal control 6', [{'p': [240, 1, 0], 'q': [240, 2, 0], 'r': [120, 3, 240]}, [[60, []], [120, []]]],\n   [['r', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('normal control 7',\n   [{'q': [0, 1, 480], 's': [120, 2, 0], 'r': [120, 3, 240], 'p': [120, 4, 660]},\n    [[240, []], [60, []], [240, []]]],\n   [['q', 's', 'r'], {'p': 120, 'q': 240, 'r': 360, 's': 180}]),\n  ('normal control 8',\n   [{'p': [0, 1, 600], 'r': [120, 2, 240], 'q': [0, 3, 480]}, [[240, []], [240, ['p']], [60, []]]],\n   [['q', 'r', 'p'], {'p': 60, 'q': 240, 'r': 360}])],\n [('regression: seniority tie break 1',\n   [{'p': [0, 1, 240], 'q': [0, 2, 240], 'r': [120, 3, 480]},\n    [[60, ['r', 'q']], [120, []], [60, ['r', 'q']]]],\n   [['p', 'q', 'p'], {'p': 120, 'q': 120, 'r': 120}]),\n  ('regression variant: seniority tie break 2',\n   [{'r': [0, 1, 480], 'p': [120, 2, 480], 'q': [0, 3, 480]},\n    [[240, []], [60, ['p']], [120, ['r', 'q']], [120, ['p', 'q']]]],\n   [['r', 'q', 'p', None], {'p': 360, 'q': 300, 'r': 240}]),\n  ('partial repair guard 3',\n   [{'r': [120, 1, 480], 'p': [120, 2, 660], 'q': [60, 3, 480]},\n    [[240, ['p', 'q']], [120, ['r', 'q']], [120, ['p', 'r']], [120, ['r', 'p']]]],\n   [['r', None, 'q', 'q'], {'p': 120, 'q': 660, 'r': 360}]),\n  ('normal control 4', [{'p': [120, 1, 600], 'r': [120, 2, 0], 'q': [120, 3, 0]}, [[240, ['p', 'r']]]],\n   [['q'], {'p': 120, 'q': 360, 'r': 360}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 'r': [240, 2, 240], 'p': [240, 3, 480]},\n    [[240, ['r', 'p']], [60, ['q']], [120, ['r']], [60, []]]],\n   [['q', 'r', 'p', 'r'], {'p': 360, 'q': 360, 'r': 360}]),\n  ('normal control 6',\n   [{'p': [60, 1, 480], 'q': [120, 2, 600]}, [[60, ['p', 'q']], [60, ['q', 'p']], [60, ['p', 'q']]]],\n   [[None, None, None], {'p': 240, 'q': 300}]),\n  ('normal control 7', [{'r': [0, 1, 0], 'p': [240, 2, 660], 'q': [120, 3, 240]}, [[240, ['p']]]],\n   [['r'], {'p': 240, 'q': 120, 'r': 240}]),\n  ('normal control 8',\n   [{'s': [240, 1, 240], 'p': [0, 2, 240], 'r': [0, 3, 240], 'q': [240, 4, 660]},\n    [[240, ['r', 'q']], [120, []], [120, []]]],\n   [['p', 'r', 'r'], {'p': 240, 'q': 240, 'r': 240, 's': 240}])]]\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":"Stipulated toy labor rule for a bounded roster model; it is not legal advice and does not claim conformance with any jurisdiction, award, or collective agreement. 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-shift-rostering-labor-rules-overtime-equalization-offers-seniority-tie-break","generated_at":"2026-09-29T14:52:03.321026+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Overtime equalization clauses require fair rotation of offers, including charging refusals.","root_cause":"The rank tie-break is negated.","sha256":"569e409de61a9344eafbf34e73d5b5da192684b1fb39603f2e10b28a876c96dd","title":"Equal-ledger ties offered to the most junior worker · 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":40.193,"exit_code":1,"observations":[{"actual":[["p","p"],{"p":420,"q":60,"r":0,"s":60}],"check":"regression: seniority tie break 1","expected":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"passed":false},{"actual":[["r","r"],{"p":240,"q":120,"r":420}],"check":"regression variant: seniority tie break 2","expected":[["q","r"],{"p":240,"q":240,"r":300}],"passed":false},{"actual":[["q",null],{"p":120,"q":360}],"check":"partial repair guard 3","expected":[["p",null],{"p":180,"q":300}],"passed":false},{"actual":[["q"],{"p":180,"q":300,"r":0}],"check":"normal control 4","expected":[["q"],{"p":180,"q":300,"r":60}],"passed":false},{"actual":[["p",null,null,"p"],{"p":360,"q":240}],"check":"normal control 5","expected":[["p",null,null,"p"],{"p":360,"q":240}],"passed":true},{"actual":[["s","s","s"],{"p":240,"q":120,"r":60,"s":420}],"check":"normal control 6","expected":[["s","q","s"],{"p":240,"q":240,"r":180,"s":300}],"passed":false},{"actual":[["p",null,"p"],{"p":240,"q":240}],"check":"normal control 7","expected":[["p",null,"p"],{"p":240,"q":180}],"passed":false},{"actual":[["p","p","p"],{"p":240,"q":0,"r":120}],"check":"normal control 8","expected":[["p","q","p"],{"p":120,"q":120,"r":120}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: seniority tie break 1\", \"actual\": [[\"p\", \"p\"], {\"p\": 420, \"q\": 60, \"r\": 0, \"s\": 60}], \"expected\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"passed\": false}, {\"check\": \"regression variant: seniority tie break 2\", \"actual\": [[\"r\", \"r\"], {\"p\": 240, \"q\": 120, \"r\": 420}], \"expected\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"q\", null], {\"p\": 120, \"q\": 360}], \"expected\": [[\"p\", null], {\"p\": 180, \"q\": 300}], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [[\"q\"], {\"p\": 180, \"q\": 300, \"r\": 0}], \"expected\": [[\"q\"], {\"p\": 180, \"q\": 300, \"r\": 60}], \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": [[\"p\", null, null, \"p\"], {\"p\": 360, \"q\": 240}], \"expected\": [[\"p\", null, null, \"p\"], {\"p\": 360, \"q\": 240}], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"s\", \"s\", \"s\"], {\"p\": 240, \"q\": 120, \"r\": 60, \"s\": 420}], \"expected\": [[\"s\", \"q\", \"s\"], {\"p\": 240, \"q\": 240, \"r\": 180, \"s\": 300}], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"p\", null, \"p\"], {\"p\": 240, \"q\": 240}], \"expected\": [[\"p\", null, \"p\"], {\"p\": 240, \"q\": 180}], \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": [[\"p\", \"p\", \"p\"], {\"p\": 240, \"q\": 0, \"r\": 120}], \"expected\": [[\"p\", \"q\", \"p\"], {\"p\": 120, \"q\": 120, \"r\": 120}], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.628,"exit_code":1,"observations":[{"actual":[["r","s"],{"p":120,"q":60,"r":60,"s":300}],"check":"regression: seniority tie break 1","expected":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"passed":false},{"actual":[["q","q"],{"p":240,"q":300,"r":240}],"check":"regression variant: seniority tie break 2","expected":[["q","r"],{"p":240,"q":240,"r":300}],"passed":false},{"actual":[["p",null],{"p":180,"q":300}],"check":"partial repair guard 3","expected":[["p",null],{"p":180,"q":300}],"passed":true},{"actual":[["q"],{"p":180,"q":300,"r":60}],"check":"normal control 4","expected":[["q"],{"p":180,"q":300,"r":60}],"passed":true},{"actual":[["p",null,null,"p"],{"p":360,"q":240}],"check":"normal control 5","expected":[["p",null,null,"p"],{"p":360,"q":240}],"passed":true},{"actual":[["r","s","q"],{"p":240,"q":240,"r":180,"s":180}],"check":"normal control 6","expected":[["s","q","s"],{"p":240,"q":240,"r":180,"s":300}],"passed":false},{"actual":[["p",null,"p"],{"p":240,"q":180}],"check":"normal control 7","expected":[["p",null,"p"],{"p":240,"q":180}],"passed":true},{"actual":[["p","q","p"],{"p":120,"q":180,"r":120}],"check":"normal control 8","expected":[["p","q","p"],{"p":120,"q":120,"r":120}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: seniority tie break 1\", \"actual\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 60, \"r\": 60, \"s\": 300}], \"expected\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"passed\": false}, {\"check\": \"regression variant: seniority tie break 2\", \"actual\": [[\"q\", \"q\"], {\"p\": 240, \"q\": 300, \"r\": 240}], \"expected\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"p\", null], {\"p\": 180, \"q\": 300}], \"expected\": [[\"p\", null], {\"p\": 180, \"q\": 300}], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [[\"q\"], {\"p\": 180, \"q\": 300, \"r\": 60}], \"expected\": [[\"q\"], {\"p\": 180, \"q\": 300, \"r\": 60}], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[\"p\", null, null, \"p\"], {\"p\": 360, \"q\": 240}], \"expected\": [[\"p\", null, null, \"p\"], {\"p\": 360, \"q\": 240}], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"r\", \"s\", \"q\"], {\"p\": 240, \"q\": 240, \"r\": 180, \"s\": 180}], \"expected\": [[\"s\", \"q\", \"s\"], {\"p\": 240, \"q\": 240, \"r\": 180, \"s\": 300}], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"p\", null, \"p\"], {\"p\": 240, \"q\": 180}], \"expected\": [[\"p\", null, \"p\"], {\"p\": 240, \"q\": 180}], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"p\", \"q\", \"p\"], {\"p\": 120, \"q\": 180, \"r\": 120}], \"expected\": [[\"p\", \"q\", \"p\"], {\"p\": 120, \"q\": 120, \"r\": 120}], \"passed\": false}], \"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."}}