{"abstract":"Workers with capacity left never pick a second shift.","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":"A fixed two rounds still stops early for higher caps.","family":"w2-shift-rostering-labor-rules-seniority-shift-bidding-repeat-rounds","id":"FA-94296","implementations":{"attempt":{"sha256":"8ab44609d3f75ffd343e7f52a739222e8e64ef107c460254d1b984defb720368","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    for _round in range(2):\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: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 100, 3]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s1', 's2', 's3', 's0', 's4'],\n     'w1': ['s3', 's1', 's2', 's0'],\n     'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1', 's4']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 2]],\n    {'s0': [480, 720], 's1': [720, 960], 's2': [0, 480], 's3': [960, 1440], 's4': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's4'], 'w1': ['s4', 's3', 's2']}],\n   {'w0': ['s2', 's3', 's1'], 'w1': ['s4']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3]],\n    {'s0': [480, 960], 's1': [0, 480], 's2': [960, 1440], 's3': [480, 960], 's4': [960, 1440]},\n    {'w0': ['s1', 's0', 's3', 's4', 's2'], 'w1': ['s4', 's0', 's2']}],\n   {'w0': ['s1', 's3', 's2'], 'w1': ['s4', 's0']}),\n  ('normal control 5',\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 6',\n   [[['w0', 300, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [960, 1200], 's2': [720, 960]},\n    {'w0': ['s0', 's2'], 'w1': ['s1', 's2', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 300, 3], ['w1', 300, 2], ['w2', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s1'], 'w1': ['s1', 's0'], 'w2': ['s2']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s2']})],\n [('regression: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [240, 720], 's4': [960, 1440]},\n    {'w0': ['s0', 's4', 's3', 's1', 's2'], 'w1': ['s4', 's3']}],\n   {'w0': ['s0', 's2'], 'w1': ['s4', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 100, 1]],\n    {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 480], 's3': [480, 720], 's4': [240, 480]},\n    {'w0': ['s1', 's4', 's0', 's3'], 'w1': ['s1', 's0', 's4', 's2']}],\n   {'w0': ['s1', 's4', 's3'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 2], ['w1', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 960], 's2': [240, 720], 's3': [480, 720]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s0']}],\n   {'w0': ['s3', 's1'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 6',\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']}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 1], ['w2', 300, 2]],\n    {'s0': [240, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [720, 1200],\n     's5': [0, 240]},\n    {'w0': ['s5', 's3', 's2', 's0', 's1', 's4'],\n     'w1': ['s0', 's1', 's4', 's2', 's3'],\n     'w2': ['s4', 's1', 's0', 's5']}],\n   {'w0': ['s5', 's3'], 'w1': ['s0'], 'w2': ['s4']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 1], ['w1', 200, 3], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s3', 's1'], 'w1': ['s2', 's0', 's1'], 'w2': ['s2'], 'w3': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s3'], 'w1': ['s2', 's1'], 'w2': [], 'w3': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 1]],\n    {'s0': [480, 960],\n     's1': [240, 480],\n     's2': [480, 960],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1200]},\n    {'w0': ['s1', 's5', 's2', 's0'], 'w1': ['s2']}],\n   {'w0': ['s1', 's5', 's0'], 'w1': ['s2']}),\n  ('normal control 4',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [0, 240],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [240, 720],\n     's4': [720, 1200],\n     's5': [0, 480]},\n    {'w0': ['s3', 's1'], 'w1': ['s0']}],\n   {'w0': ['s3'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1]],\n    {'s0': [480, 960], 's1': [480, 720], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's2'], 'w1': ['s1', 's0', 's2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [240, 480]},\n    {'w0': ['s1'], 'w1': ['s3', 's0', 's2', 's1']}],\n   {'w0': ['s1'], 'w1': ['s3']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2], ['w2', 200, 2]], {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 480]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s2', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [960, 1200], 's2': [960, 1440], 's3': [240, 720]},\n    {'w0': ['s3', 's0', 's2'], 'w1': ['s1', 's2', 's3'], 'w2': ['s0', 's1'], 'w3': ['s0', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1'], 'w2': ['s0'], 'w3': []}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 2], ['w1', 100, 2]], {'s0': [0, 240], 's1': [240, 720], 's2': [720, 1200], 's3': [0, 240]},\n    {'w0': ['s2', 's0', 's3'], 'w1': ['s3', 's2', 's1', 's0']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3', 's1']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 300, 3]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 720], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2', 's0', 's4', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2', 's4', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 5',\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 6',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('normal control 7',\n   [[['w0', 200, 3], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1440]},\n    {'w0': ['s2', 's0', 's1'], 'w1': ['s2'], 'w2': ['s1']}],\n   {'w0': ['s2'], 'w1': [], 'w2': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 200, 1], ['w2', 100, 2], ['w3', 200, 3]],\n    {'s0': [0, 240], 's1': [960, 1440], 's2': [0, 240], 's3': [0, 480], 's4': [240, 720]},\n    {'w0': ['s3', 's1', 's4', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's4', 's1', 's2'], 'w3': ['s4', 's2']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s4'], 'w3': []})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [960, 1200], 's2': [960, 1200], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s3'], 'w1': ['s0', 's1', 's3', 's2', 's4'], 'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s3'], 'w1': ['s0', 's2'], 'w2': ['s1']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [720, 960], 's2': [720, 1200], 's3': [960, 1440], 's4': [240, 720]},\n    {'w0': ['s0', 's2'], 'w1': ['s2', 's3'], 'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3', 's2', 's1'], 'w2': ['s3', 's1']}],\n   {'w0': [], 'w1': ['s0', 's2', 's1'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 200, 3], ['w2', 200, 1], ['w3', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [960, 1440],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s5', 's4', 's2'], 'w1': ['s4', 's0', 's5'], 'w2': ['s4', 's3', 's1', 's5'], 'w3': ['s1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s4', 's0'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 5',\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  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 300, 3], ['w2', 300, 2], ['w3', 200, 2]],\n    {'s0': [480, 720],\n     's1': [240, 480],\n     's2': [720, 1200],\n     's3': [720, 1200],\n     's4': [240, 720],\n     's5': [960, 1200]},\n    {'w0': ['s5', 's0', 's3'],\n     'w1': ['s0'],\n     'w2': ['s5', 's4', 's2', 's1', 's0', 's3'],\n     'w3': ['s0', 's4', 's5', 's3', 's1']}],\n   {'w0': ['s5'], 'w1': [], 'w2': ['s4', 's2'], 'w3': ['s0', 's3']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 1]], {'s0': [0, 240], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2']}],\n   {'w0': ['s0', 's1'], 'w1': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2], ['w3', 200, 2]],\n    {'s0': [960, 1440], 's1': [480, 720], 's2': [240, 720], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s3', 's1', 's2', 's0'], 'w3': ['s2', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1'], 'w3': ['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":"807f0029318db4226d655c46e92644ace571d279566402125dd576e3430bb8fd","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    for _round in range(1):\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: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 100, 3]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s1', 's2', 's3', 's0', 's4'],\n     'w1': ['s3', 's1', 's2', 's0'],\n     'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1', 's4']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 2]],\n    {'s0': [480, 720], 's1': [720, 960], 's2': [0, 480], 's3': [960, 1440], 's4': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's4'], 'w1': ['s4', 's3', 's2']}],\n   {'w0': ['s2', 's3', 's1'], 'w1': ['s4']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3]],\n    {'s0': [480, 960], 's1': [0, 480], 's2': [960, 1440], 's3': [480, 960], 's4': [960, 1440]},\n    {'w0': ['s1', 's0', 's3', 's4', 's2'], 'w1': ['s4', 's0', 's2']}],\n   {'w0': ['s1', 's3', 's2'], 'w1': ['s4', 's0']}),\n  ('normal control 5',\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 6',\n   [[['w0', 300, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [960, 1200], 's2': [720, 960]},\n    {'w0': ['s0', 's2'], 'w1': ['s1', 's2', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 300, 3], ['w1', 300, 2], ['w2', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s1'], 'w1': ['s1', 's0'], 'w2': ['s2']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s2']})],\n [('regression: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [240, 720], 's4': [960, 1440]},\n    {'w0': ['s0', 's4', 's3', 's1', 's2'], 'w1': ['s4', 's3']}],\n   {'w0': ['s0', 's2'], 'w1': ['s4', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 100, 1]],\n    {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 480], 's3': [480, 720], 's4': [240, 480]},\n    {'w0': ['s1', 's4', 's0', 's3'], 'w1': ['s1', 's0', 's4', 's2']}],\n   {'w0': ['s1', 's4', 's3'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 2], ['w1', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 960], 's2': [240, 720], 's3': [480, 720]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s0']}],\n   {'w0': ['s3', 's1'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 6',\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']}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 1], ['w2', 300, 2]],\n    {'s0': [240, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [720, 1200],\n     's5': [0, 240]},\n    {'w0': ['s5', 's3', 's2', 's0', 's1', 's4'],\n     'w1': ['s0', 's1', 's4', 's2', 's3'],\n     'w2': ['s4', 's1', 's0', 's5']}],\n   {'w0': ['s5', 's3'], 'w1': ['s0'], 'w2': ['s4']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 1], ['w1', 200, 3], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s3', 's1'], 'w1': ['s2', 's0', 's1'], 'w2': ['s2'], 'w3': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s3'], 'w1': ['s2', 's1'], 'w2': [], 'w3': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 1]],\n    {'s0': [480, 960],\n     's1': [240, 480],\n     's2': [480, 960],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1200]},\n    {'w0': ['s1', 's5', 's2', 's0'], 'w1': ['s2']}],\n   {'w0': ['s1', 's5', 's0'], 'w1': ['s2']}),\n  ('normal control 4',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [0, 240],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [240, 720],\n     's4': [720, 1200],\n     's5': [0, 480]},\n    {'w0': ['s3', 's1'], 'w1': ['s0']}],\n   {'w0': ['s3'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1]],\n    {'s0': [480, 960], 's1': [480, 720], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's2'], 'w1': ['s1', 's0', 's2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [240, 480]},\n    {'w0': ['s1'], 'w1': ['s3', 's0', 's2', 's1']}],\n   {'w0': ['s1'], 'w1': ['s3']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2], ['w2', 200, 2]], {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 480]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s2', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [960, 1200], 's2': [960, 1440], 's3': [240, 720]},\n    {'w0': ['s3', 's0', 's2'], 'w1': ['s1', 's2', 's3'], 'w2': ['s0', 's1'], 'w3': ['s0', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1'], 'w2': ['s0'], 'w3': []}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 2], ['w1', 100, 2]], {'s0': [0, 240], 's1': [240, 720], 's2': [720, 1200], 's3': [0, 240]},\n    {'w0': ['s2', 's0', 's3'], 'w1': ['s3', 's2', 's1', 's0']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3', 's1']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 300, 3]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 720], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2', 's0', 's4', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2', 's4', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 5',\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 6',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('normal control 7',\n   [[['w0', 200, 3], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1440]},\n    {'w0': ['s2', 's0', 's1'], 'w1': ['s2'], 'w2': ['s1']}],\n   {'w0': ['s2'], 'w1': [], 'w2': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 200, 1], ['w2', 100, 2], ['w3', 200, 3]],\n    {'s0': [0, 240], 's1': [960, 1440], 's2': [0, 240], 's3': [0, 480], 's4': [240, 720]},\n    {'w0': ['s3', 's1', 's4', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's4', 's1', 's2'], 'w3': ['s4', 's2']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s4'], 'w3': []})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [960, 1200], 's2': [960, 1200], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s3'], 'w1': ['s0', 's1', 's3', 's2', 's4'], 'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s3'], 'w1': ['s0', 's2'], 'w2': ['s1']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [720, 960], 's2': [720, 1200], 's3': [960, 1440], 's4': [240, 720]},\n    {'w0': ['s0', 's2'], 'w1': ['s2', 's3'], 'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3', 's2', 's1'], 'w2': ['s3', 's1']}],\n   {'w0': [], 'w1': ['s0', 's2', 's1'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 200, 3], ['w2', 200, 1], ['w3', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [960, 1440],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s5', 's4', 's2'], 'w1': ['s4', 's0', 's5'], 'w2': ['s4', 's3', 's1', 's5'], 'w3': ['s1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s4', 's0'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 5',\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  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 300, 3], ['w2', 300, 2], ['w3', 200, 2]],\n    {'s0': [480, 720],\n     's1': [240, 480],\n     's2': [720, 1200],\n     's3': [720, 1200],\n     's4': [240, 720],\n     's5': [960, 1200]},\n    {'w0': ['s5', 's0', 's3'],\n     'w1': ['s0'],\n     'w2': ['s5', 's4', 's2', 's1', 's0', 's3'],\n     'w3': ['s0', 's4', 's5', 's3', 's1']}],\n   {'w0': ['s5'], 'w1': [], 'w2': ['s4', 's2'], 'w3': ['s0', 's3']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 1]], {'s0': [0, 240], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2']}],\n   {'w0': ['s0', 's1'], 'w1': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2], ['w3', 200, 2]],\n    {'s0': [960, 1440], 's1': [480, 720], 's2': [240, 720], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s3', 's1', 's2', 's0'], 'w3': ['s2', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1'], 'w3': ['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":"c3a2d0e8a5a7d178d02fc5a15556c89f87ed24b7eb83e0e86da3bf139be5fdc5","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: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 100, 3]],\n    {'s0': [0, 480], 's1': [960, 1440], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s1', 's2', 's3', 's0', 's4'],\n     'w1': ['s3', 's1', 's2', 's0'],\n     'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1', 's4']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 2]],\n    {'s0': [480, 720], 's1': [720, 960], 's2': [0, 480], 's3': [960, 1440], 's4': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's4'], 'w1': ['s4', 's3', 's2']}],\n   {'w0': ['s2', 's3', 's1'], 'w1': ['s4']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 3]],\n    {'s0': [480, 960], 's1': [0, 480], 's2': [960, 1440], 's3': [480, 960], 's4': [960, 1440]},\n    {'w0': ['s1', 's0', 's3', 's4', 's2'], 'w1': ['s4', 's0', 's2']}],\n   {'w0': ['s1', 's3', 's2'], 'w1': ['s4', 's0']}),\n  ('normal control 5',\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 6',\n   [[['w0', 300, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [960, 1200], 's2': [720, 960]},\n    {'w0': ['s0', 's2'], 'w1': ['s1', 's2', 's0']}],\n   {'w0': ['s0'], 'w1': ['s1']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 300, 3], ['w1', 300, 2], ['w2', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 1200], 's2': [720, 1200]},\n    {'w0': ['s1'], 'w1': ['s1', 's0'], 'w2': ['s2']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': ['s2']})],\n [('regression: repeat rounds 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: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 3]],\n    {'s0': [240, 480], 's1': [0, 480], 's2': [0, 240], 's3': [240, 720], 's4': [960, 1440]},\n    {'w0': ['s0', 's4', 's3', 's1', 's2'], 'w1': ['s4', 's3']}],\n   {'w0': ['s0', 's2'], 'w1': ['s4', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 100, 1]],\n    {'s0': [720, 1200], 's1': [720, 960], 's2': [0, 480], 's3': [480, 720], 's4': [240, 480]},\n    {'w0': ['s1', 's4', 's0', 's3'], 'w1': ['s1', 's0', 's4', 's2']}],\n   {'w0': ['s1', 's4', 's3'], 'w1': ['s0']}),\n  ('normal control 4',\n   [[['w0', 200, 2], ['w1', 200, 2]],\n    {'s0': [960, 1440], 's1': [720, 960], 's2': [240, 720], 's3': [480, 720]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s0']}],\n   {'w0': ['s3', 's1'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 6',\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']}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 1], ['w2', 300, 2]],\n    {'s0': [240, 480],\n     's1': [960, 1440],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [720, 1200],\n     's5': [0, 240]},\n    {'w0': ['s5', 's3', 's2', 's0', 's1', 's4'],\n     'w1': ['s0', 's1', 's4', 's2', 's3'],\n     'w2': ['s4', 's1', 's0', 's5']}],\n   {'w0': ['s5', 's3'], 'w1': ['s0'], 'w2': ['s4']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 1], ['w1', 200, 3], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 960], 's1': [960, 1440], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s3', 's1'], 'w1': ['s2', 's0', 's1'], 'w2': ['s2'], 'w3': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s3'], 'w1': ['s2', 's1'], 'w2': [], 'w3': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 100, 3], ['w1', 200, 1]],\n    {'s0': [480, 960],\n     's1': [240, 480],\n     's2': [480, 960],\n     's3': [480, 960],\n     's4': [480, 960],\n     's5': [960, 1200]},\n    {'w0': ['s1', 's5', 's2', 's0'], 'w1': ['s2']}],\n   {'w0': ['s1', 's5', 's0'], 'w1': ['s2']}),\n  ('normal control 4',\n   [[['w0', 100, 1], ['w1', 200, 2]],\n    {'s0': [0, 240],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [240, 720],\n     's4': [720, 1200],\n     's5': [0, 480]},\n    {'w0': ['s3', 's1'], 'w1': ['s0']}],\n   {'w0': ['s3'], 'w1': ['s0']}),\n  ('normal control 5',\n   [[['w0', 300, 1], ['w1', 300, 1], ['w2', 200, 1]],\n    {'s0': [480, 960], 's1': [480, 720], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1', 's2'], 'w1': ['s1', 's0', 's2'], 'w2': ['s2', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 300, 1], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [240, 480]},\n    {'w0': ['s1'], 'w1': ['s3', 's0', 's2', 's1']}],\n   {'w0': ['s1'], 'w1': ['s3']}),\n  ('normal control 7',\n   [[['w0', 100, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [0, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s0'], 'w1': ['s2', 's4', 's0', 's1', 's3'], 'w2': ['s4', 's3'], 'w3': ['s1', 's4']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s4', 's3'], 'w3': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 1], ['w1', 200, 2], ['w2', 200, 2]], {'s0': [720, 1200], 's1': [240, 720], 's2': [0, 480]},\n    {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s2', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2'], 'w2': ['s0']})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 3], ['w1', 300, 1], ['w2', 100, 3], ['w3', 200, 1]],\n    {'s0': [720, 960], 's1': [960, 1200], 's2': [960, 1440], 's3': [240, 720]},\n    {'w0': ['s3', 's0', 's2'], 'w1': ['s1', 's2', 's3'], 'w2': ['s0', 's1'], 'w3': ['s0', 's3']}],\n   {'w0': ['s3', 's2'], 'w1': ['s1'], 'w2': ['s0'], 'w3': []}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 100, 2], ['w1', 100, 2]], {'s0': [0, 240], 's1': [240, 720], 's2': [720, 1200], 's3': [0, 240]},\n    {'w0': ['s2', 's0', 's3'], 'w1': ['s3', 's2', 's1', 's0']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3', 's1']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 300, 3]],\n    {'s0': [0, 480], 's1': [240, 720], 's2': [480, 720], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s0', 's1'], 'w1': ['s2', 's0', 's4', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2', 's4', 's3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 100, 1], ['w2', 200, 3], ['w3', 200, 1]],\n    {'s0': [480, 720], 's1': [240, 720], 's2': [720, 960], 's3': [240, 720]},\n    {'w0': ['s3', 's2', 's1', 's0'], 'w1': ['s0', 's2'], 'w2': ['s3', 's2'], 'w3': ['s3', 's0', 's1']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s2'], 'w3': ['s1']}),\n  ('normal control 5',\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 6',\n   [[['w0', 200, 1], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [720, 960], 's1': [960, 1440], 's2': [480, 960], 's3': [480, 960], 's4': [960, 1200]},\n    {'w0': ['s1', 's4', 's2', 's0', 's3'], 'w1': ['s2', 's4', 's0', 's3'], 'w2': ['s3', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's4'], 'w2': ['s3']}),\n  ('normal control 7',\n   [[['w0', 200, 3], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [960, 1200], 's1': [720, 960], 's2': [960, 1440]},\n    {'w0': ['s2', 's0', 's1'], 'w1': ['s2'], 'w2': ['s1']}],\n   {'w0': ['s2'], 'w1': [], 'w2': ['s1']}),\n  ('normal control 8',\n   [[['w0', 100, 3], ['w1', 200, 1], ['w2', 100, 2], ['w3', 200, 3]],\n    {'s0': [0, 240], 's1': [960, 1440], 's2': [0, 240], 's3': [0, 480], 's4': [240, 720]},\n    {'w0': ['s3', 's1', 's4', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's4', 's1', 's2'], 'w3': ['s4', 's2']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s4'], 'w3': []})],\n [('regression: repeat rounds 1',\n   [[['w0', 200, 1], ['w1', 200, 2], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [960, 1200], 's2': [960, 1200], 's3': [0, 480], 's4': [720, 1200]},\n    {'w0': ['s3'], 'w1': ['s0', 's1', 's3', 's2', 's4'], 'w2': ['s1', 's4', 's2', 's3', 's0']}],\n   {'w0': ['s3'], 'w1': ['s0', 's2'], 'w2': ['s1']}),\n  ('regression variant: repeat rounds 2',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 960], 's1': [720, 960], 's2': [720, 1200], 's3': [960, 1440], 's4': [240, 720]},\n    {'w0': ['s0', 's2'], 'w1': ['s2', 's3'], 'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s1', 's3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 3]],\n    {'s0': [0, 240], 's1': [480, 720], 's2': [720, 960], 's3': [480, 960]},\n    {'w0': ['s0'], 'w1': ['s0', 's3', 's2', 's1'], 'w2': ['s3', 's1']}],\n   {'w0': [], 'w1': ['s0', 's2', 's1'], 'w2': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 2], ['w1', 200, 3], ['w2', 200, 1], ['w3', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [960, 1440],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s5', 's4', 's2'], 'w1': ['s4', 's0', 's5'], 'w2': ['s4', 's3', 's1', 's5'], 'w3': ['s1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s4', 's0'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 5',\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  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 300, 3], ['w2', 300, 2], ['w3', 200, 2]],\n    {'s0': [480, 720],\n     's1': [240, 480],\n     's2': [720, 1200],\n     's3': [720, 1200],\n     's4': [240, 720],\n     's5': [960, 1200]},\n    {'w0': ['s5', 's0', 's3'],\n     'w1': ['s0'],\n     'w2': ['s5', 's4', 's2', 's1', 's0', 's3'],\n     'w3': ['s0', 's4', 's5', 's3', 's1']}],\n   {'w0': ['s5'], 'w1': [], 'w2': ['s4', 's2'], 'w3': ['s0', 's3']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 1]], {'s0': [0, 240], 's1': [960, 1440], 's2': [480, 960]},\n    {'w0': ['s0', 's1', 's2'], 'w1': ['s2']}],\n   {'w0': ['s0', 's1'], 'w1': ['s2']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1], ['w2', 200, 2], ['w3', 200, 2]],\n    {'s0': [960, 1440], 's1': [480, 720], 's2': [240, 720], 's3': [720, 1200]},\n    {'w0': ['s3', 's0', 's1'], 'w1': ['s3', 's0'], 'w2': ['s3', 's1', 's2', 's0'], 'w3': ['s2', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0'], 'w2': ['s1'], 'w3': ['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-repeat-rounds","generated_at":"2026-09-29T14:52:03.017542+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":"Repeat rounds until a full round makes no pick.","root_cause":"Only one round of bidding is run.","sha256":"f2b600b3f1d25ca70eb3a316d70e1645e7c4e2e4c4a6381d75387f9fa4e50e3b","title":"Bidding stops after a single round · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.209,"exit_code":1,"observations":[{"actual":{"w0":["s4","s1"],"w1":["s3"]},"check":"regression: repeat rounds 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s2"],"w1":["s3","s0"],"w2":["s1","s4"]},"check":"regression variant: repeat rounds 2","expected":{"w0":["s2"],"w1":["s3","s0"],"w2":["s1","s4"]},"passed":true},{"actual":{"w0":["s2","s3"],"w1":["s4"]},"check":"partial repair guard 3","expected":{"w0":["s2","s3","s1"],"w1":["s4"]},"passed":false},{"actual":{"w0":["s1","s3"],"w1":["s4","s0"]},"check":"normal control 4","expected":{"w0":["s1","s3","s2"],"w1":["s4","s0"]},"passed":false},{"actual":{"w0":["s4"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s4"],"w1":["s0"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s1"]},"check":"normal control 6","expected":{"w0":["s0"],"w1":["s1"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s2"],"w2":["s4","s3"],"w3":["s1"]},"check":"normal control 7","expected":{"w0":["s0"],"w1":["s2"],"w2":["s4","s3"],"w3":["s1"]},"passed":true},{"actual":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"check":"normal control 8","expected":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeat rounds 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"regression variant: repeat rounds 2\", \"actual\": {\"w0\": [\"s2\"], \"w1\": [\"s3\", \"s0\"], \"w2\": [\"s1\", \"s4\"]}, \"expected\": {\"w0\": [\"s2\"], \"w1\": [\"s3\", \"s0\"], \"w2\": [\"s1\", \"s4\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\", \"s3\"], \"w1\": [\"s4\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\", \"s1\"], \"w1\": [\"s4\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s1\", \"s3\"], \"w1\": [\"s4\", \"s0\"]}, \"expected\": {\"w0\": [\"s1\", \"s3\", \"s2\"], \"w1\": [\"s4\", \"s0\"]}, \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\", \"s3\"], \"w3\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\", \"s3\"], \"w3\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.983,"exit_code":1,"observations":[{"actual":{"w0":["s4"],"w1":["s3"]},"check":"regression: repeat rounds 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s2"],"w1":["s3"],"w2":["s1"]},"check":"regression variant: repeat rounds 2","expected":{"w0":["s2"],"w1":["s3","s0"],"w2":["s1","s4"]},"passed":false},{"actual":{"w0":["s2"],"w1":["s4"]},"check":"partial repair guard 3","expected":{"w0":["s2","s3","s1"],"w1":["s4"]},"passed":false},{"actual":{"w0":["s1"],"w1":["s4"]},"check":"normal control 4","expected":{"w0":["s1","s3","s2"],"w1":["s4","s0"]},"passed":false},{"actual":{"w0":["s4"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s4"],"w1":["s0"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s1"]},"check":"normal control 6","expected":{"w0":["s0"],"w1":["s1"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s2"],"w2":["s4"],"w3":["s1"]},"check":"normal control 7","expected":{"w0":["s0"],"w1":["s2"],"w2":["s4","s3"],"w3":["s1"]},"passed":false},{"actual":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"check":"normal control 8","expected":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeat rounds 1\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"regression variant: repeat rounds 2\", \"actual\": {\"w0\": [\"s2\"], \"w1\": [\"s3\"], \"w2\": [\"s1\"]}, \"expected\": {\"w0\": [\"s2\"], \"w1\": [\"s3\", \"s0\"], \"w2\": [\"s1\", \"s4\"]}, \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\"], \"w1\": [\"s4\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\", \"s1\"], \"w1\": [\"s4\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s4\"]}, \"expected\": {\"w0\": [\"s1\", \"s3\", \"s2\"], \"w1\": [\"s4\", \"s0\"]}, \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\"], \"w3\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\", \"s3\"], \"w3\": [\"s1\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.057,"exit_code":0,"observations":[{"actual":{"w0":["s4","s1"],"w1":["s3"]},"check":"regression: repeat rounds 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s2"],"w1":["s3","s0"],"w2":["s1","s4"]},"check":"regression variant: repeat rounds 2","expected":{"w0":["s2"],"w1":["s3","s0"],"w2":["s1","s4"]},"passed":true},{"actual":{"w0":["s2","s3","s1"],"w1":["s4"]},"check":"partial repair guard 3","expected":{"w0":["s2","s3","s1"],"w1":["s4"]},"passed":true},{"actual":{"w0":["s1","s3","s2"],"w1":["s4","s0"]},"check":"normal control 4","expected":{"w0":["s1","s3","s2"],"w1":["s4","s0"]},"passed":true},{"actual":{"w0":["s4"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s4"],"w1":["s0"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s1"]},"check":"normal control 6","expected":{"w0":["s0"],"w1":["s1"]},"passed":true},{"actual":{"w0":["s0"],"w1":["s2"],"w2":["s4","s3"],"w3":["s1"]},"check":"normal control 7","expected":{"w0":["s0"],"w1":["s2"],"w2":["s4","s3"],"w3":["s1"]},"passed":true},{"actual":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"check":"normal control 8","expected":{"w0":["s1"],"w1":["s0"],"w2":["s2"]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeat rounds 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"regression variant: repeat rounds 2\", \"actual\": {\"w0\": [\"s2\"], \"w1\": [\"s3\", \"s0\"], \"w2\": [\"s1\", \"s4\"]}, \"expected\": {\"w0\": [\"s2\"], \"w1\": [\"s3\", \"s0\"], \"w2\": [\"s1\", \"s4\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\", \"s3\", \"s1\"], \"w1\": [\"s4\"]}, \"expected\": {\"w0\": [\"s2\", \"s3\", \"s1\"], \"w1\": [\"s4\"]}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s1\", \"s3\", \"s2\"], \"w1\": [\"s4\", \"s0\"]}, \"expected\": {\"w0\": [\"s1\", \"s3\", \"s2\"], \"w1\": [\"s4\", \"s0\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s4\"], \"w1\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\", \"s3\"], \"w3\": [\"s1\"]}, \"expected\": {\"w0\": [\"s0\"], \"w1\": [\"s2\"], \"w2\": [\"s4\", \"s3\"], \"w3\": [\"s1\"]}, \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": [\"s2\"]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}