{"abstract":"Workers stop bidding once the whole team has taken as many shifts as their personal cap.","category":"Shift rostering labor rules","checks":8,"contract":"workers [id, hire day, max shifts]; shifts id -> [start, end]; prefs id -> ordered shift ids. Bidding rounds repeat until nobody picks: in each round workers in seniority order (earlier hire day, then id) take their first preferred shift that is untaken and does not overlap a shift they already hold (touching is fine), one pick per round, until reaching their maximum. Return worker -> picks in order.","evaluation_group":"w2-shift-rostering-labor-rules-seniority-shift-bidding","failed_approach":"An exclusive comparison lets a worker exceed their cap by one.","family":"w2-shift-rostering-labor-rules-seniority-shift-bidding-personal-cap","id":"FA-94281","implementations":{"attempt":{"sha256":"f52d1941a0c8cd460b76ff24b72e51c43f11589b24a0859aaf100561db5d63d7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(workers, shifts, prefs):\n    order = sorted(workers, key=lambda w: (w[1], w[0]))\n    taken = {}\n    got = {w[0]: [] for w in workers}\n    changed = True\n    while changed:\n        changed = False\n        for wid, hire, cap in order:\n            if len(got[wid]) > cap:\n                continue\n            for sid in prefs.get(wid, []):\n                if sid in taken:\n                    continue\n                s, e = shifts[sid]\n                if any(s < shifts[o][1] and shifts[o][0] < e for o in got[wid]):\n                    continue\n                taken[sid] = wid\n                got[wid].append(sid)\n                changed = True\n                break\n    return got\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: personal cap 1',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [0, 480], 's2': [0, 240], 's3': [0, 480], 's4': [480, 960], 's5': [240, 720]},\n    {'w0': ['s4', 's0', 's1', 's3', 's5', 's2'], 'w1': ['s3', 's5', 's0']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [960, 1440], 's3': [960, 1440], 's4': [240, 480]},\n    {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s1', 's0', 's4', 's3']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 2], ['w1', 300, 1]],\n    {'s0': [0, 480], 's1': [0, 240], 's2': [480, 720], 's3': [240, 720], 's4': [480, 720]},\n    {'w0': ['s4', 's3'], 'w1': ['s0', 's4', 's2']}],\n   {'w0': ['s4'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [960, 1440],\n     's1': [960, 1440],\n     's2': [960, 1200],\n     's3': [480, 960],\n     's4': [240, 720],\n     's5': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's5', 's2'], 'w1': ['s3', 's1', 's4', 's5', 's2']}],\n   {'w0': ['s3'], 'w1': ['s1']}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 720]},\n    {'w0': ['s1', 's2'], 'w1': ['s1'], 'w2': ['s2', 's0'], 'w3': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2'], 'w3': ['s0']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 3], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s0'], 'w1': ['s0', 's1'], 'w2': ['s1', 's2', 's0']}],\n   {'w0': [], 'w1': ['s0'], 'w2': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 100, 3], ['w2', 100, 3]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 1200], 's3': [960, 1440], 's4': [960, 1200]},\n    {'w0': ['s0', 's3'], 'w1': ['s2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0', 's3'], 'w1': ['s2'], 'w2': []})],\n [('regression: personal cap 1',\n   [[['w0', 100, 2], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 1200], 's3': [0, 240], 's4': [0, 480]},\n    {'w0': ['s3', 's2', 's4'], 'w1': ['s0', 's3', 's2', 's1']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 300, 2]],\n    {'s0': [0, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [480, 960],\n     's5': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s0', 's1', 's5']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 300, 2], ['w2', 200, 1]], {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720]},\n    {'w0': ['s0'], 'w1': ['s0', 's2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 300, 3], ['w2', 300, 1], ['w3', 300, 3]],\n    {'s0': [720, 960], 's1': [240, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [0, 480], 's5': [0, 480]},\n    {'w0': ['s5', 's4', 's3', 's0', 's1'],\n     'w1': ['s5', 's3', 's1', 's0', 's2', 's4'],\n     'w2': ['s3'],\n     'w3': ['s3', 's4', 's2', 's0']}],\n   {'w0': ['s5', 's0'], 'w1': ['s3', 's1', 's2'], 'w2': [], 'w3': ['s4']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 2], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [480, 720], 's2': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s1'], 'w3': ['s2', 's0', 's1']}],\n   {'w0': ['s1'], 'w1': [], 'w2': [], 'w3': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 1]], {'s0': [240, 480], 's1': [240, 480], 's2': [480, 720]},\n    {'w0': ['s1', 's0'], 'w1': ['s2', 's1'], 'w2': ['s0', 's1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: personal cap 1',\n   [[['w0', 300, 2], ['w1', 300, 2], ['w2', 100, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2'], 'w2': ['s2'], 'w3': ['s1', 's0', 's2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2'], 'w3': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 200, 3], ['w2', 300, 3], ['w3', 300, 2]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 960], 's3': [240, 720], 's4': [720, 1200]},\n    {'w0': ['s1', 's4', 's2'],\n     'w1': ['s4', 's0', 's3', 's1', 's2'],\n     'w2': ['s2', 's0', 's3', 's4', 's1'],\n     'w3': ['s1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s4', 's0'], 'w2': ['s2'], 'w3': []}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [720, 960], 's5': [240, 720]},\n    {'w0': ['s1', 's4', 's3', 's2', 's0', 's5'], 'w1': ['s5', 's1', 's0', 's3']}],\n   {'w0': ['s1'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3], ['w2', 200, 1]],\n    {'s0': [0, 240],\n     's1': [240, 720],\n     's2': [960, 1200],\n     's3': [720, 960],\n     's4': [720, 1200],\n     's5': [720, 1200]},\n    {'w0': ['s4', 's5', 's3', 's2', 's1', 's0'], 'w1': ['s3', 's2', 's5', 's0', 's1'], 'w2': ['s4']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3', 's2', 's0'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [960, 1200], 's2': [960, 1440], 's3': [720, 960], 's4': [480, 720]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s1', 's4', 's0', 's3'], 'w2': ['s0', 's4', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 2], ['w1', 100, 3], ['w2', 100, 1], ['w3', 200, 3]],\n    {'s0': [480, 960], 's1': [240, 480], 's2': [480, 960], 's3': [480, 720], 's4': [240, 720]},\n    {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3', 's0'], 'w3': ['s4', 's3']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3'], 'w3': ['s4']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 1], ['w2', 100, 2]], {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2', 's0'], 'w2': ['s2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [960, 1440], 's2': [960, 1200], 's3': [720, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3']})],\n [('regression: personal cap 1',\n   [[['w0', 100, 1], ['w1', 100, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s2'], 'w3': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3'], 'w2': [], 'w3': ['s2']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 1], ['w1', 300, 3], ['w2', 200, 3]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [240, 480],\n     's3': [0, 480],\n     's4': [720, 1200],\n     's5': [240, 720]},\n    {'w0': ['s4', 's5', 's2'],\n     'w1': ['s4', 's2', 's0', 's1', 's5', 's3'],\n     'w2': ['s3', 's2', 's4', 's1', 's5']}],\n   {'w0': ['s4'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [240, 480],\n     's1': [480, 960],\n     's2': [480, 720],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's0'], 'w1': ['s0', 's2', 's4'], 'w2': ['s0', 's3', 's1', 's2'], 'w3': ['s3', 's4']}],\n   {'w0': ['s2'], 'w1': ['s4'], 'w2': ['s0'], 'w3': ['s3']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 480], 's1': [720, 1200], 's2': [720, 960], 's3': [240, 720], 's4': [0, 480], 's5': [480, 720]},\n    {'w0': ['s2', 's3', 's5', 's0'], 'w1': ['s4', 's5', 's3', 's0'], 'w2': ['s1', 's3', 's0']}],\n   {'w0': ['s2', 's3'], 'w1': ['s4', 's5'], 'w2': ['s1']}),\n  ('normal control 6',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 1]],\n    {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 240], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s3', 's2'], 'w2': ['s2', 's3', 's0', 's1']}],\n   {'w0': ['s1', 's0'], 'w1': ['s3'], 'w2': ['s2']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 200, 3]], {'s0': [0, 240], 's1': [0, 240], 's2': [0, 480], 's3': [0, 240]},\n    {'w0': ['s1', 's2', 's0', 's3'], 'w1': ['s1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s0']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s2'], 'w1': ['s1', 's0', 's3', 's2']}],\n   {'w0': ['s2'], 'w1': ['s1', 's0']})],\n [('regression: personal cap 1',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 1]], {'s0': [240, 720], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 100, 3]], {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 240], 's3': [240, 480]},\n    {'w0': ['s3', 's2'], 'w1': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [960, 1200],\n     's2': [240, 480],\n     's3': [0, 240],\n     's4': [720, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's4'], 'w1': ['s5', 's4', 's3', 's1', 's0']}],\n   {'w0': ['s0'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 100, 1], ['w2', 100, 3], ['w3', 300, 2]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [480, 720],\n     's3': [960, 1200],\n     's4': [0, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's4'],\n     'w1': ['s1', 's3', 's2', 's5'],\n     'w2': ['s3', 's5', 's4', 's2', 's1', 's0'],\n     'w3': ['s2', 's3', 's0']}],\n   {'w0': ['s3', 's4'], 'w1': ['s1'], 'w2': ['s5', 's0'], 'w3': ['s2']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 200, 3], ['w3', 300, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [480, 720], 's3': [0, 240], 's4': [0, 240]},\n    {'w0': ['s1', 's4'], 'w1': ['s4', 's1', 's2', 's3'], 'w2': ['s0', 's2'], 'w3': ['s4']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s0', 's2'], 'w3': []}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1]],\n    {'s0': [240, 480], 's1': [0, 240], 's2': [720, 960], 's3': [720, 1200], 's4': [960, 1440]},\n    {'w0': ['s4', 's1', 's2', 's0'], 'w1': ['s1', 's2', 's3', 's0']}],\n   {'w0': ['s4', 's2'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 3], ['w3', 200, 2]],\n    {'s0': [720, 1200],\n     's1': [720, 1200],\n     's2': [480, 720],\n     's3': [0, 480],\n     's4': [240, 720],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's4'], 'w1': ['s3', 's4', 's1'], 'w2': ['s5'], 'w3': ['s0', 's1', 's4', 's5', 's3']}],\n   {'w0': ['s2'], 'w1': ['s3'], 'w2': ['s5'], 'w3': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [0, 480], 's1': [720, 960], 's2': [720, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s0', 's1', 's3'], 'w1': ['s0', 's2']}],\n   {'w0': ['s0'], 'w1': ['s2']})]]\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":"5181d995ac31929d6ff5441000404e86ad9d40f036121141cd202038f28a288d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(workers, shifts, prefs):\n    order = sorted(workers, key=lambda w: (w[1], w[0]))\n    taken = {}\n    got = {w[0]: [] for w in workers}\n    changed = True\n    while changed:\n        changed = False\n        for wid, hire, cap in order:\n            if len(taken) >= cap:\n                continue\n            for sid in prefs.get(wid, []):\n                if sid in taken:\n                    continue\n                s, e = shifts[sid]\n                if any(s < shifts[o][1] and shifts[o][0] < e for o in got[wid]):\n                    continue\n                taken[sid] = wid\n                got[wid].append(sid)\n                changed = True\n                break\n    return got\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: personal cap 1',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [0, 480], 's2': [0, 240], 's3': [0, 480], 's4': [480, 960], 's5': [240, 720]},\n    {'w0': ['s4', 's0', 's1', 's3', 's5', 's2'], 'w1': ['s3', 's5', 's0']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [960, 1440], 's3': [960, 1440], 's4': [240, 480]},\n    {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s1', 's0', 's4', 's3']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 2], ['w1', 300, 1]],\n    {'s0': [0, 480], 's1': [0, 240], 's2': [480, 720], 's3': [240, 720], 's4': [480, 720]},\n    {'w0': ['s4', 's3'], 'w1': ['s0', 's4', 's2']}],\n   {'w0': ['s4'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [960, 1440],\n     's1': [960, 1440],\n     's2': [960, 1200],\n     's3': [480, 960],\n     's4': [240, 720],\n     's5': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's5', 's2'], 'w1': ['s3', 's1', 's4', 's5', 's2']}],\n   {'w0': ['s3'], 'w1': ['s1']}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 720]},\n    {'w0': ['s1', 's2'], 'w1': ['s1'], 'w2': ['s2', 's0'], 'w3': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2'], 'w3': ['s0']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 3], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s0'], 'w1': ['s0', 's1'], 'w2': ['s1', 's2', 's0']}],\n   {'w0': [], 'w1': ['s0'], 'w2': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 100, 3], ['w2', 100, 3]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 1200], 's3': [960, 1440], 's4': [960, 1200]},\n    {'w0': ['s0', 's3'], 'w1': ['s2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0', 's3'], 'w1': ['s2'], 'w2': []})],\n [('regression: personal cap 1',\n   [[['w0', 100, 2], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 1200], 's3': [0, 240], 's4': [0, 480]},\n    {'w0': ['s3', 's2', 's4'], 'w1': ['s0', 's3', 's2', 's1']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 300, 2]],\n    {'s0': [0, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [480, 960],\n     's5': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s0', 's1', 's5']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 300, 2], ['w2', 200, 1]], {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720]},\n    {'w0': ['s0'], 'w1': ['s0', 's2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 300, 3], ['w2', 300, 1], ['w3', 300, 3]],\n    {'s0': [720, 960], 's1': [240, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [0, 480], 's5': [0, 480]},\n    {'w0': ['s5', 's4', 's3', 's0', 's1'],\n     'w1': ['s5', 's3', 's1', 's0', 's2', 's4'],\n     'w2': ['s3'],\n     'w3': ['s3', 's4', 's2', 's0']}],\n   {'w0': ['s5', 's0'], 'w1': ['s3', 's1', 's2'], 'w2': [], 'w3': ['s4']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 2], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [480, 720], 's2': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s1'], 'w3': ['s2', 's0', 's1']}],\n   {'w0': ['s1'], 'w1': [], 'w2': [], 'w3': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 1]], {'s0': [240, 480], 's1': [240, 480], 's2': [480, 720]},\n    {'w0': ['s1', 's0'], 'w1': ['s2', 's1'], 'w2': ['s0', 's1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: personal cap 1',\n   [[['w0', 300, 2], ['w1', 300, 2], ['w2', 100, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2'], 'w2': ['s2'], 'w3': ['s1', 's0', 's2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2'], 'w3': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 200, 3], ['w2', 300, 3], ['w3', 300, 2]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 960], 's3': [240, 720], 's4': [720, 1200]},\n    {'w0': ['s1', 's4', 's2'],\n     'w1': ['s4', 's0', 's3', 's1', 's2'],\n     'w2': ['s2', 's0', 's3', 's4', 's1'],\n     'w3': ['s1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s4', 's0'], 'w2': ['s2'], 'w3': []}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [720, 960], 's5': [240, 720]},\n    {'w0': ['s1', 's4', 's3', 's2', 's0', 's5'], 'w1': ['s5', 's1', 's0', 's3']}],\n   {'w0': ['s1'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3], ['w2', 200, 1]],\n    {'s0': [0, 240],\n     's1': [240, 720],\n     's2': [960, 1200],\n     's3': [720, 960],\n     's4': [720, 1200],\n     's5': [720, 1200]},\n    {'w0': ['s4', 's5', 's3', 's2', 's1', 's0'], 'w1': ['s3', 's2', 's5', 's0', 's1'], 'w2': ['s4']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3', 's2', 's0'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [960, 1200], 's2': [960, 1440], 's3': [720, 960], 's4': [480, 720]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s1', 's4', 's0', 's3'], 'w2': ['s0', 's4', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 2], ['w1', 100, 3], ['w2', 100, 1], ['w3', 200, 3]],\n    {'s0': [480, 960], 's1': [240, 480], 's2': [480, 960], 's3': [480, 720], 's4': [240, 720]},\n    {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3', 's0'], 'w3': ['s4', 's3']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3'], 'w3': ['s4']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 1], ['w2', 100, 2]], {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2', 's0'], 'w2': ['s2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [960, 1440], 's2': [960, 1200], 's3': [720, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3']})],\n [('regression: personal cap 1',\n   [[['w0', 100, 1], ['w1', 100, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s2'], 'w3': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3'], 'w2': [], 'w3': ['s2']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 1], ['w1', 300, 3], ['w2', 200, 3]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [240, 480],\n     's3': [0, 480],\n     's4': [720, 1200],\n     's5': [240, 720]},\n    {'w0': ['s4', 's5', 's2'],\n     'w1': ['s4', 's2', 's0', 's1', 's5', 's3'],\n     'w2': ['s3', 's2', 's4', 's1', 's5']}],\n   {'w0': ['s4'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [240, 480],\n     's1': [480, 960],\n     's2': [480, 720],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's0'], 'w1': ['s0', 's2', 's4'], 'w2': ['s0', 's3', 's1', 's2'], 'w3': ['s3', 's4']}],\n   {'w0': ['s2'], 'w1': ['s4'], 'w2': ['s0'], 'w3': ['s3']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 480], 's1': [720, 1200], 's2': [720, 960], 's3': [240, 720], 's4': [0, 480], 's5': [480, 720]},\n    {'w0': ['s2', 's3', 's5', 's0'], 'w1': ['s4', 's5', 's3', 's0'], 'w2': ['s1', 's3', 's0']}],\n   {'w0': ['s2', 's3'], 'w1': ['s4', 's5'], 'w2': ['s1']}),\n  ('normal control 6',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 1]],\n    {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 240], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s3', 's2'], 'w2': ['s2', 's3', 's0', 's1']}],\n   {'w0': ['s1', 's0'], 'w1': ['s3'], 'w2': ['s2']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 200, 3]], {'s0': [0, 240], 's1': [0, 240], 's2': [0, 480], 's3': [0, 240]},\n    {'w0': ['s1', 's2', 's0', 's3'], 'w1': ['s1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s0']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s2'], 'w1': ['s1', 's0', 's3', 's2']}],\n   {'w0': ['s2'], 'w1': ['s1', 's0']})],\n [('regression: personal cap 1',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 1]], {'s0': [240, 720], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 100, 3]], {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 240], 's3': [240, 480]},\n    {'w0': ['s3', 's2'], 'w1': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [960, 1200],\n     's2': [240, 480],\n     's3': [0, 240],\n     's4': [720, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's4'], 'w1': ['s5', 's4', 's3', 's1', 's0']}],\n   {'w0': ['s0'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 100, 1], ['w2', 100, 3], ['w3', 300, 2]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [480, 720],\n     's3': [960, 1200],\n     's4': [0, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's4'],\n     'w1': ['s1', 's3', 's2', 's5'],\n     'w2': ['s3', 's5', 's4', 's2', 's1', 's0'],\n     'w3': ['s2', 's3', 's0']}],\n   {'w0': ['s3', 's4'], 'w1': ['s1'], 'w2': ['s5', 's0'], 'w3': ['s2']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 200, 3], ['w3', 300, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [480, 720], 's3': [0, 240], 's4': [0, 240]},\n    {'w0': ['s1', 's4'], 'w1': ['s4', 's1', 's2', 's3'], 'w2': ['s0', 's2'], 'w3': ['s4']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s0', 's2'], 'w3': []}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1]],\n    {'s0': [240, 480], 's1': [0, 240], 's2': [720, 960], 's3': [720, 1200], 's4': [960, 1440]},\n    {'w0': ['s4', 's1', 's2', 's0'], 'w1': ['s1', 's2', 's3', 's0']}],\n   {'w0': ['s4', 's2'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 3], ['w3', 200, 2]],\n    {'s0': [720, 1200],\n     's1': [720, 1200],\n     's2': [480, 720],\n     's3': [0, 480],\n     's4': [240, 720],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's4'], 'w1': ['s3', 's4', 's1'], 'w2': ['s5'], 'w3': ['s0', 's1', 's4', 's5', 's3']}],\n   {'w0': ['s2'], 'w1': ['s3'], 'w2': ['s5'], 'w3': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [0, 480], 's1': [720, 960], 's2': [720, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s0', 's1', 's3'], 'w1': ['s0', 's2']}],\n   {'w0': ['s0'], 'w1': ['s2']})]]\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":"43bdf9862c9db6735deaecd5f9e8efbdb55682623308e8901ed7abd5b06acefd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(workers, shifts, prefs):\n    order = sorted(workers, key=lambda w: (w[1], w[0]))\n    taken = {}\n    got = {w[0]: [] for w in workers}\n    changed = True\n    while changed:\n        changed = False\n        for wid, hire, cap in order:\n            if len(got[wid]) >= cap:\n                continue\n            for sid in prefs.get(wid, []):\n                if sid in taken:\n                    continue\n                s, e = shifts[sid]\n                if any(s < shifts[o][1] and shifts[o][0] < e for o in got[wid]):\n                    continue\n                taken[sid] = wid\n                got[wid].append(sid)\n                changed = True\n                break\n    return got\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: personal cap 1',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [0, 480], 's2': [0, 240], 's3': [0, 480], 's4': [480, 960], 's5': [240, 720]},\n    {'w0': ['s4', 's0', 's1', 's3', 's5', 's2'], 'w1': ['s3', 's5', 's0']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [960, 1440], 's3': [960, 1440], 's4': [240, 480]},\n    {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s1', 's0', 's4', 's3']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 2], ['w1', 300, 1]],\n    {'s0': [0, 480], 's1': [0, 240], 's2': [480, 720], 's3': [240, 720], 's4': [480, 720]},\n    {'w0': ['s4', 's3'], 'w1': ['s0', 's4', 's2']}],\n   {'w0': ['s4'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [960, 1440],\n     's1': [960, 1440],\n     's2': [960, 1200],\n     's3': [480, 960],\n     's4': [240, 720],\n     's5': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's5', 's2'], 'w1': ['s3', 's1', 's4', 's5', 's2']}],\n   {'w0': ['s3'], 'w1': ['s1']}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 720]},\n    {'w0': ['s1', 's2'], 'w1': ['s1'], 'w2': ['s2', 's0'], 'w3': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2'], 'w3': ['s0']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 3], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s0'], 'w1': ['s0', 's1'], 'w2': ['s1', 's2', 's0']}],\n   {'w0': [], 'w1': ['s0'], 'w2': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 100, 3], ['w2', 100, 3]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 1200], 's3': [960, 1440], 's4': [960, 1200]},\n    {'w0': ['s0', 's3'], 'w1': ['s2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0', 's3'], 'w1': ['s2'], 'w2': []})],\n [('regression: personal cap 1',\n   [[['w0', 100, 2], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 1200], 's3': [0, 240], 's4': [0, 480]},\n    {'w0': ['s3', 's2', 's4'], 'w1': ['s0', 's3', 's2', 's1']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 300, 3], ['w1', 200, 1], ['w2', 300, 2]],\n    {'s0': [0, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [480, 960],\n     's5': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s0', 's1', 's5']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 300, 2], ['w2', 200, 1]], {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720]},\n    {'w0': ['s0'], 'w1': ['s0', 's2', 's1'], 'w2': ['s0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 300, 3], ['w1', 300, 3], ['w2', 300, 1], ['w3', 300, 3]],\n    {'s0': [720, 960], 's1': [240, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [0, 480], 's5': [0, 480]},\n    {'w0': ['s5', 's4', 's3', 's0', 's1'],\n     'w1': ['s5', 's3', 's1', 's0', 's2', 's4'],\n     'w2': ['s3'],\n     'w3': ['s3', 's4', 's2', 's0']}],\n   {'w0': ['s5', 's0'], 'w1': ['s3', 's1', 's2'], 'w2': [], 'w3': ['s4']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2]],\n    {'s0': [0, 240], 's1': [240, 480], 's2': [480, 720], 's3': [720, 960], 's4': [960, 1440]},\n    {'w0': ['s2', 's1', 's3', 's0'],\n     'w1': ['s1', 's3', 's0', 's4', 's2'],\n     'w2': ['s0', 's4', 's1', 's3', 's2']}],\n   {'w0': ['s2', 's3'], 'w1': ['s1'], 'w2': ['s0', 's4']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 2], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [480, 720], 's2': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s1'], 'w3': ['s2', 's0', 's1']}],\n   {'w0': ['s1'], 'w1': [], 'w2': [], 'w3': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 1]], {'s0': [240, 480], 's1': [240, 480], 's2': [480, 720]},\n    {'w0': ['s1', 's0'], 'w1': ['s2', 's1'], 'w2': ['s0', 's1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: personal cap 1',\n   [[['w0', 300, 2], ['w1', 300, 2], ['w2', 100, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2'], 'w2': ['s2'], 'w3': ['s1', 's0', 's2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2'], 'w3': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 200, 3], ['w2', 300, 3], ['w3', 300, 2]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 960], 's3': [240, 720], 's4': [720, 1200]},\n    {'w0': ['s1', 's4', 's2'],\n     'w1': ['s4', 's0', 's3', 's1', 's2'],\n     'w2': ['s2', 's0', 's3', 's4', 's1'],\n     'w3': ['s1', 's2']}],\n   {'w0': ['s1'], 'w1': ['s4', 's0'], 'w2': ['s2'], 'w3': []}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [720, 1200], 's4': [720, 960], 's5': [240, 720]},\n    {'w0': ['s1', 's4', 's3', 's2', 's0', 's5'], 'w1': ['s5', 's1', 's0', 's3']}],\n   {'w0': ['s1'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3], ['w2', 200, 1]],\n    {'s0': [0, 240],\n     's1': [240, 720],\n     's2': [960, 1200],\n     's3': [720, 960],\n     's4': [720, 1200],\n     's5': [720, 1200]},\n    {'w0': ['s4', 's5', 's3', 's2', 's1', 's0'], 'w1': ['s3', 's2', 's5', 's0', 's1'], 'w2': ['s4']}],\n   {'w0': ['s4', 's1'], 'w1': ['s3', 's2', 's0'], 'w2': []}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [960, 1200], 's2': [960, 1440], 's3': [720, 960], 's4': [480, 720]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s1', 's4', 's0', 's3'], 'w2': ['s0', 's4', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 2], ['w1', 100, 3], ['w2', 100, 1], ['w3', 200, 3]],\n    {'s0': [480, 960], 's1': [240, 480], 's2': [480, 960], 's3': [480, 720], 's4': [240, 720]},\n    {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3', 's0'], 'w3': ['s4', 's3']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s3'], 'w3': ['s4']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 1], ['w2', 100, 2]], {'s0': [960, 1440], 's1': [0, 480], 's2': [720, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2', 's0'], 'w2': ['s2']}],\n   {'w0': ['s0'], 'w1': [], 'w2': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [960, 1440], 's1': [960, 1440], 's2': [960, 1200], 's3': [720, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3']})],\n [('regression: personal cap 1',\n   [[['w0', 100, 1], ['w1', 100, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [0, 480], 's1': [960, 1200], 's2': [960, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s2'], 'w3': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s3'], 'w2': [], 'w3': ['s2']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 1], ['w1', 200, 1]], {'s0': [240, 480], 's1': [0, 240], 's2': [720, 1200], 's3': [480, 720]},\n    {'w0': ['s0'], 'w1': ['s1', 's3', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 1], ['w1', 300, 3], ['w2', 200, 3]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [240, 480],\n     's3': [0, 480],\n     's4': [720, 1200],\n     's5': [240, 720]},\n    {'w0': ['s4', 's5', 's2'],\n     'w1': ['s4', 's2', 's0', 's1', 's5', 's3'],\n     'w2': ['s3', 's2', 's4', 's1', 's5']}],\n   {'w0': ['s4'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1], ['w3', 100, 1]],\n    {'s0': [240, 480],\n     's1': [480, 960],\n     's2': [480, 720],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's0'], 'w1': ['s0', 's2', 's4'], 'w2': ['s0', 's3', 's1', 's2'], 'w3': ['s3', 's4']}],\n   {'w0': ['s2'], 'w1': ['s4'], 'w2': ['s0'], 'w3': ['s3']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 480], 's1': [720, 1200], 's2': [720, 960], 's3': [240, 720], 's4': [0, 480], 's5': [480, 720]},\n    {'w0': ['s2', 's3', 's5', 's0'], 'w1': ['s4', 's5', 's3', 's0'], 'w2': ['s1', 's3', 's0']}],\n   {'w0': ['s2', 's3'], 'w1': ['s4', 's5'], 'w2': ['s1']}),\n  ('normal control 6',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 1]],\n    {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 240], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s3', 's2'], 'w2': ['s2', 's3', 's0', 's1']}],\n   {'w0': ['s1', 's0'], 'w1': ['s3'], 'w2': ['s2']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 200, 3]], {'s0': [0, 240], 's1': [0, 240], 's2': [0, 480], 's3': [0, 240]},\n    {'w0': ['s1', 's2', 's0', 's3'], 'w1': ['s1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s0']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s2'], 'w1': ['s1', 's0', 's3', 's2']}],\n   {'w0': ['s2'], 'w1': ['s1', 's0']})],\n [('regression: personal cap 1',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 1]], {'s0': [240, 720], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1']}),\n  ('regression variant: personal cap 2',\n   [[['w0', 200, 2], ['w1', 100, 3]], {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 240], 's3': [240, 480]},\n    {'w0': ['s3', 's2'], 'w1': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 1], ['w1', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [960, 1200],\n     's2': [240, 480],\n     's3': [0, 240],\n     's4': [720, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's4'], 'w1': ['s5', 's4', 's3', 's1', 's0']}],\n   {'w0': ['s0'], 'w1': ['s5', 's3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 100, 1], ['w2', 100, 3], ['w3', 300, 2]],\n    {'s0': [960, 1440],\n     's1': [0, 480],\n     's2': [480, 720],\n     's3': [960, 1200],\n     's4': [0, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's4'],\n     'w1': ['s1', 's3', 's2', 's5'],\n     'w2': ['s3', 's5', 's4', 's2', 's1', 's0'],\n     'w3': ['s2', 's3', 's0']}],\n   {'w0': ['s3', 's4'], 'w1': ['s1'], 'w2': ['s5', 's0'], 'w3': ['s2']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 200, 3], ['w3', 300, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [480, 720], 's3': [0, 240], 's4': [0, 240]},\n    {'w0': ['s1', 's4'], 'w1': ['s4', 's1', 's2', 's3'], 'w2': ['s0', 's2'], 'w3': ['s4']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s0', 's2'], 'w3': []}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 1]],\n    {'s0': [240, 480], 's1': [0, 240], 's2': [720, 960], 's3': [720, 1200], 's4': [960, 1440]},\n    {'w0': ['s4', 's1', 's2', 's0'], 'w1': ['s1', 's2', 's3', 's0']}],\n   {'w0': ['s4', 's2'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 200, 1], ['w1', 300, 1], ['w2', 300, 3], ['w3', 200, 2]],\n    {'s0': [720, 1200],\n     's1': [720, 1200],\n     's2': [480, 720],\n     's3': [0, 480],\n     's4': [240, 720],\n     's5': [960, 1440]},\n    {'w0': ['s2', 's4'], 'w1': ['s3', 's4', 's1'], 'w2': ['s5'], 'w3': ['s0', 's1', 's4', 's5', 's3']}],\n   {'w0': ['s2'], 'w1': ['s3'], 'w2': ['s5'], 'w3': ['s0', 's4']}),\n  ('normal control 8',\n   [[['w0', 200, 1], ['w1', 200, 1]],\n    {'s0': [0, 480], 's1': [720, 960], 's2': [720, 1200], 's3': [480, 720], 's4': [480, 720]},\n    {'w0': ['s0', 's1', 's3'], 'w1': ['s0', 's2']}],\n   {'w0': ['s0'], 'w1': ['s2']})]]\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-seniority-shift-bidding-personal-cap","generated_at":"2026-09-29T14:52:02.841832+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Seniority bidding is a common contractual roster procedure; each rule change reallocates shifts.","repair":"Compare each worker's own holdings with their cap.","root_cause":"The maximum-shift check uses the global taken count.","sha256":"3f2af348da6a30001b695d8e4101d031a29f47db17e6762582dd19f5bac17eed","title":"Bid cap compared with all shifts taken by anyone · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.679,"exit_code":1,"observations":[{"actual":{"w0":["s4","s1"],"w1":["s3"]},"check":"regression: personal cap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s3"],"w1":["s1"],"w2":["s0"]},"check":"regression variant: personal cap 2","expected":{"w0":["s3"],"w1":["s1"],"w2":["s0"]},"passed":true},{"actual":{"w0":["s4"],"w1":["s0","s2"]},"check":"partial repair guard 3","expected":{"w0":["s4"],"w1":["s0"]},"passed":false},{"actual":{"w0":["s3","s0"],"w1":["s1","s4"]},"check":"normal control 4","expected":{"w0":["s3"],"w1":["s1"]},"passed":false},{"actual":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":["s0"]},"check":"normal control 5","expected":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":["s0"]},"passed":true},{"actual":{"w0":[],"w1":["s0"],"w2":["s1"]},"check":"normal control 6","expected":{"w0":[],"w1":["s0"],"w2":["s1"]},"passed":true},{"actual":{"w0":["s2","s3"],"w1":["s1","s4"],"w2":["s0"]},"check":"normal control 7","expected":{"w0":["s2","s3"],"w1":["s1"],"w2":["s0","s4"]},"passed":false},{"actual":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"check":"normal control 8","expected":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: personal cap 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"regression variant: personal cap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s0\", \"s2\"]}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s3\", \"s0\"], \"w1\": [\"s1\", \"s4\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"]}, \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": [\"s0\"]}, \"expected\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"expected\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s1\", \"s4\"], \"w2\": [\"s0\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\", \"s4\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"expected\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.859,"exit_code":1,"observations":[{"actual":{"w0":["s4","s1"],"w1":[]},"check":"regression: personal cap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s3"],"w1":[],"w2":[]},"check":"regression variant: personal cap 2","expected":{"w0":["s3"],"w1":["s1"],"w2":["s0"]},"passed":false},{"actual":{"w0":["s4"],"w1":[]},"check":"partial repair guard 3","expected":{"w0":["s4"],"w1":["s0"]},"passed":false},{"actual":{"w0":["s3"],"w1":[]},"check":"normal control 4","expected":{"w0":["s3"],"w1":["s1"]},"passed":false},{"actual":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":[]},"check":"normal control 5","expected":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":["s0"]},"passed":false},{"actual":{"w0":[],"w1":["s0"],"w2":["s1"]},"check":"normal control 6","expected":{"w0":[],"w1":["s0"],"w2":["s1"]},"passed":true},{"actual":{"w0":["s2"],"w1":[],"w2":["s0"]},"check":"normal control 7","expected":{"w0":["s2","s3"],"w1":["s1"],"w2":["s0","s4"]},"passed":false},{"actual":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"check":"normal control 8","expected":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: personal cap 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": []}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"regression variant: personal cap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [], \"w2\": []}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\"]}, \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s4\"], \"w1\": []}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s3\"], \"w1\": []}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"]}, \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": []}, \"expected\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": [\"s0\"]}, \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"expected\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s2\"], \"w1\": [], \"w2\": [\"s0\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\", \"s4\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"expected\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.539,"exit_code":0,"observations":[{"actual":{"w0":["s4","s1"],"w1":["s3"]},"check":"regression: personal cap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s3"],"w1":["s1"],"w2":["s0"]},"check":"regression variant: personal cap 2","expected":{"w0":["s3"],"w1":["s1"],"w2":["s0"]},"passed":true},{"actual":{"w0":["s4"],"w1":["s0"]},"check":"partial repair guard 3","expected":{"w0":["s4"],"w1":["s0"]},"passed":true},{"actual":{"w0":["s3"],"w1":["s1"]},"check":"normal control 4","expected":{"w0":["s3"],"w1":["s1"]},"passed":true},{"actual":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":["s0"]},"check":"normal control 5","expected":{"w0":[],"w1":["s1"],"w2":["s2"],"w3":["s0"]},"passed":true},{"actual":{"w0":[],"w1":["s0"],"w2":["s1"]},"check":"normal control 6","expected":{"w0":[],"w1":["s0"],"w2":["s1"]},"passed":true},{"actual":{"w0":["s2","s3"],"w1":["s1"],"w2":["s0","s4"]},"check":"normal control 7","expected":{"w0":["s2","s3"],"w1":["s1"],"w2":["s0","s4"]},"passed":true},{"actual":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"check":"normal control 8","expected":{"w0":["s0","s3"],"w1":["s2"],"w2":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: personal cap 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"regression variant: personal cap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": [\"s0\"]}, \"expected\": {\"w0\": [], \"w1\": [\"s1\"], \"w2\": [\"s2\"], \"w3\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"expected\": {\"w0\": [], \"w1\": [\"s0\"], \"w2\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\", \"s4\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s0\", \"s4\"]}, \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"expected\": {\"w0\": [\"s0\", \"s3\"], \"w1\": [\"s2\"], \"w2\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}