{"abstract":"Workers cannot bid for a shift that starts when their held shift ends.","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":"Making one side strict still rejects adjacency in the other direction.","family":"w2-shift-rostering-labor-rules-seniority-shift-bidding-adjacent-shift-overlap","id":"FA-94291","implementations":{"attempt":{"sha256":"cd15c888a20895c75abf2af992de10cee4638c7a9359892b762657fac8cc474b","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: adjacent shift overlap 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: adjacent shift overlap 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', 200, 2], ['w1', 200, 1]],\n    {'s0': [960, 1200], 's1': [240, 720], 's2': [480, 720], 's3': [240, 480], 's4': [240, 480]},\n    {'w0': ['s2', 's3', 's1', 's4', 's0'], 'w1': ['s3', 's1', 's4', 's2', 's0']}],\n   {'w0': ['s2', 's4'], 'w1': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 200, 3]],\n    {'s0': [960, 1200], 's1': [960, 1200], 's2': [240, 720], 's3': [480, 960], 's4': [0, 480]},\n    {'w0': ['s0', 's1', 's2', 's4'], 'w1': ['s2', 's1', 's0', 's3', 's4']}],\n   {'w0': ['s0', 's4'], 'w1': ['s2', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [720, 1200], 's2': [0, 480], 's3': [720, 960], 's4': [240, 720]},\n    {'w0': ['s1', 's3', 's4', 's0'], 'w1': ['s0']}],\n   {'w0': ['s1', 's4'], 'w1': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 3], ['w1', 200, 3], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [480, 960], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s1', 's0', 's2'], 'w1': ['s0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 300, 1], ['w1', 100, 2], ['w2', 300, 2]],\n    {'s0': [240, 480], 's1': [240, 480], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s3'], 'w1': ['s1', 's0', 's2'], 'w2': ['s3', 's4', 's0']}],\n   {'w0': ['s3'], 'w1': ['s1', 's2'], 'w2': ['s4', 's0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [720, 960],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s2', 's3', 's0', 's4'], 'w1': ['s2', 's0'], 'w2': ['s3', 's2', 's5', 's1', 's4', 's0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [0, 480], 's2': [240, 720], 's3': [720, 960]},\n    {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1', 's3', 's2']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1']}),\n  ('normal control 5',\n   [[['w0', 100, 3], ['w1', 300, 2]],\n    {'s0': [240, 720], 's1': [240, 720], 's2': [720, 960], 's3': [960, 1200], 's4': [0, 240]},\n    {'w0': ['s2', 's4', 's1', 's3'], 'w1': ['s3', 's4', 's0', 's1']}],\n   {'w0': ['s2', 's4', 's1'], 'w1': ['s3', 's0']}),\n  ('normal control 6',\n   [[['w0', 300, 3], ['w1', 100, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200], 's1': [480, 720], 's2': [240, 720], 's3': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s1'], 'w2': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2', 's0']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 2]],\n    {'s0': [480, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s2', 's3'], 'w1': ['s2', 's4', 's3', 's1']}],\n   {'w0': ['s2'], 'w1': ['s4', 's3']}),\n  ('normal control 8',\n   [[['w0', 100, 2], ['w1', 300, 3], ['w2', 100, 3]],\n    {'s0': [0, 240], 's1': [240, 720], 's2': [240, 480], 's3': [960, 1440]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s3', 's1', 's0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s3'], 'w2': ['s0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [720, 960],\n     's2': [0, 240],\n     's3': [0, 480],\n     's4': [960, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's3', 's4', 's2', 's1', 's5'],\n     'w1': ['s1', 's4', 's3', 's5', 's2', 's0'],\n     'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's5'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 300, 2]],\n    {'s0': [480, 960], 's1': [240, 720], 's2': [240, 720], 's3': [480, 960], 's4': [240, 720]},\n    {'w0': ['s2', 's4'], 'w1': ['s2'], 'w2': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s4'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 300, 3]],\n    {'s0': [240, 720], 's1': [0, 240], 's2': [480, 960], 's3': [0, 480], 's4': [960, 1440], 's5': [240, 720]},\n    {'w0': ['s5', 's1', 's4'], 'w1': ['s0', 's4', 's3'], 'w2': ['s5', 's0', 's2', 's3', 's4']}],\n   {'w0': ['s5', 's1'], 'w1': ['s0', 's4'], 'w2': ['s2', 's3']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 100, 2]],\n    {'s0': [960, 1440], 's1': [240, 480], 's2': [240, 720], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's0', 's2'], 'w3': ['s2', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 240], 's1': [0, 240], 's2': [720, 1200], 's3': [720, 1200]},\n    {'w0': ['s2', 's1'], 'w1': ['s2', 's0', 's1', 's3'], 'w2': ['s3', 's0', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [480, 960], 's1': [0, 240], 's2': [720, 960], 's3': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0']})],\n [('regression: adjacent shift overlap 1',\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  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 300, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 1200],\n     's1': [0, 480],\n     's2': [480, 960],\n     's3': [960, 1200],\n     's4': [960, 1200],\n     's5': [0, 240]},\n    {'w0': ['s4', 's2', 's0', 's5', 's1'],\n     'w1': ['s5', 's3', 's4', 's2'],\n     'w2': ['s2', 's4', 's1', 's3', 's5'],\n     'w3': ['s2', 's3']}],\n   {'w0': ['s4'], 'w1': ['s5'], 'w2': ['s2', 's1'], 'w3': ['s3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 1], ['w1', 200, 3], ['w2', 200, 1]],\n    {'s0': [480, 960],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [720, 960],\n     's4': [720, 960],\n     's5': [960, 1440]},\n    {'w0': ['s5', 's1', 's4', 's3', 's2'],\n     'w1': ['s1', 's2', 's0', 's4', 's5'],\n     'w2': ['s2', 's0', 's4', 's5', 's1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720], 's3': [240, 480]},\n    {'w0': ['s2', 's1', 's0'], 'w1': ['s0', 's2', 's3', 's1'], 'w2': ['s0']}],\n   {'w0': ['s2'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [0, 240], 's2': [0, 240], 's3': [720, 1200]},\n    {'w0': ['s1', 's2'], 'w1': ['s2', 's1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2']}),\n  ('normal control 8',\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 [('regression: adjacent shift overlap 1',\n   [[['w0', 100, 2], ['w1', 100, 2], ['w2', 200, 2]],\n    {'s0': [0, 480], 's1': [480, 720], 's2': [240, 480], 's3': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's0'], 'w1': ['s3', 's0', 's1'], 'w2': ['s2', 's1', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1']}),\n  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 720], 's1': [480, 960], 's2': [720, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's3', 's2'], 'w1': ['s1', 's3', 's0', 's2'], 'w2': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s0', 's2'], 'w1': ['s1'], 'w2': ['s3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 100, 1], ['w3', 100, 3]],\n    {'s0': [960, 1440],\n     's1': [960, 1200],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s1', 's4', 's2', 's5', 's3'],\n     'w1': ['s4', 's1', 's5', 's0', 's3', 's2'],\n     'w2': ['s2', 's4', 's0', 's1', 's5', 's3'],\n     'w3': ['s0', 's3', 's4', 's1', 's5']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s2'], 'w3': ['s0', 's5']}),\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', 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  ('normal control 6',\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 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 200, 1], ['w3', 200, 2]],\n    {'s0': [240, 480],\n     's1': [720, 1200],\n     's2': [720, 960],\n     's3': [0, 480],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's5', 's0'], 'w1': ['s3', 's0'], 'w2': ['s5'], 'w3': ['s0', 's3']}],\n   {'w0': ['s5'], 'w1': ['s3'], 'w2': [], 'w3': ['s0']})]]\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":"4f99bc3ee696f14ef44dddde4fc7dd786522af3c61a7a903ac339a6b97a0a7eb","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: adjacent shift overlap 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: adjacent shift overlap 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', 200, 2], ['w1', 200, 1]],\n    {'s0': [960, 1200], 's1': [240, 720], 's2': [480, 720], 's3': [240, 480], 's4': [240, 480]},\n    {'w0': ['s2', 's3', 's1', 's4', 's0'], 'w1': ['s3', 's1', 's4', 's2', 's0']}],\n   {'w0': ['s2', 's4'], 'w1': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 200, 3]],\n    {'s0': [960, 1200], 's1': [960, 1200], 's2': [240, 720], 's3': [480, 960], 's4': [0, 480]},\n    {'w0': ['s0', 's1', 's2', 's4'], 'w1': ['s2', 's1', 's0', 's3', 's4']}],\n   {'w0': ['s0', 's4'], 'w1': ['s2', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [720, 1200], 's2': [0, 480], 's3': [720, 960], 's4': [240, 720]},\n    {'w0': ['s1', 's3', 's4', 's0'], 'w1': ['s0']}],\n   {'w0': ['s1', 's4'], 'w1': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 3], ['w1', 200, 3], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [480, 960], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s1', 's0', 's2'], 'w1': ['s0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 300, 1], ['w1', 100, 2], ['w2', 300, 2]],\n    {'s0': [240, 480], 's1': [240, 480], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s3'], 'w1': ['s1', 's0', 's2'], 'w2': ['s3', 's4', 's0']}],\n   {'w0': ['s3'], 'w1': ['s1', 's2'], 'w2': ['s4', 's0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [720, 960],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s2', 's3', 's0', 's4'], 'w1': ['s2', 's0'], 'w2': ['s3', 's2', 's5', 's1', 's4', 's0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [0, 480], 's2': [240, 720], 's3': [720, 960]},\n    {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1', 's3', 's2']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1']}),\n  ('normal control 5',\n   [[['w0', 100, 3], ['w1', 300, 2]],\n    {'s0': [240, 720], 's1': [240, 720], 's2': [720, 960], 's3': [960, 1200], 's4': [0, 240]},\n    {'w0': ['s2', 's4', 's1', 's3'], 'w1': ['s3', 's4', 's0', 's1']}],\n   {'w0': ['s2', 's4', 's1'], 'w1': ['s3', 's0']}),\n  ('normal control 6',\n   [[['w0', 300, 3], ['w1', 100, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200], 's1': [480, 720], 's2': [240, 720], 's3': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s1'], 'w2': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2', 's0']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 2]],\n    {'s0': [480, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s2', 's3'], 'w1': ['s2', 's4', 's3', 's1']}],\n   {'w0': ['s2'], 'w1': ['s4', 's3']}),\n  ('normal control 8',\n   [[['w0', 100, 2], ['w1', 300, 3], ['w2', 100, 3]],\n    {'s0': [0, 240], 's1': [240, 720], 's2': [240, 480], 's3': [960, 1440]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s3', 's1', 's0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s3'], 'w2': ['s0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [720, 960],\n     's2': [0, 240],\n     's3': [0, 480],\n     's4': [960, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's3', 's4', 's2', 's1', 's5'],\n     'w1': ['s1', 's4', 's3', 's5', 's2', 's0'],\n     'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's5'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 300, 2]],\n    {'s0': [480, 960], 's1': [240, 720], 's2': [240, 720], 's3': [480, 960], 's4': [240, 720]},\n    {'w0': ['s2', 's4'], 'w1': ['s2'], 'w2': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s4'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 300, 3]],\n    {'s0': [240, 720], 's1': [0, 240], 's2': [480, 960], 's3': [0, 480], 's4': [960, 1440], 's5': [240, 720]},\n    {'w0': ['s5', 's1', 's4'], 'w1': ['s0', 's4', 's3'], 'w2': ['s5', 's0', 's2', 's3', 's4']}],\n   {'w0': ['s5', 's1'], 'w1': ['s0', 's4'], 'w2': ['s2', 's3']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 100, 2]],\n    {'s0': [960, 1440], 's1': [240, 480], 's2': [240, 720], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's0', 's2'], 'w3': ['s2', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 240], 's1': [0, 240], 's2': [720, 1200], 's3': [720, 1200]},\n    {'w0': ['s2', 's1'], 'w1': ['s2', 's0', 's1', 's3'], 'w2': ['s3', 's0', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [480, 960], 's1': [0, 240], 's2': [720, 960], 's3': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0']})],\n [('regression: adjacent shift overlap 1',\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  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 300, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 1200],\n     's1': [0, 480],\n     's2': [480, 960],\n     's3': [960, 1200],\n     's4': [960, 1200],\n     's5': [0, 240]},\n    {'w0': ['s4', 's2', 's0', 's5', 's1'],\n     'w1': ['s5', 's3', 's4', 's2'],\n     'w2': ['s2', 's4', 's1', 's3', 's5'],\n     'w3': ['s2', 's3']}],\n   {'w0': ['s4'], 'w1': ['s5'], 'w2': ['s2', 's1'], 'w3': ['s3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 1], ['w1', 200, 3], ['w2', 200, 1]],\n    {'s0': [480, 960],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [720, 960],\n     's4': [720, 960],\n     's5': [960, 1440]},\n    {'w0': ['s5', 's1', 's4', 's3', 's2'],\n     'w1': ['s1', 's2', 's0', 's4', 's5'],\n     'w2': ['s2', 's0', 's4', 's5', 's1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720], 's3': [240, 480]},\n    {'w0': ['s2', 's1', 's0'], 'w1': ['s0', 's2', 's3', 's1'], 'w2': ['s0']}],\n   {'w0': ['s2'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [0, 240], 's2': [0, 240], 's3': [720, 1200]},\n    {'w0': ['s1', 's2'], 'w1': ['s2', 's1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2']}),\n  ('normal control 8',\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 [('regression: adjacent shift overlap 1',\n   [[['w0', 100, 2], ['w1', 100, 2], ['w2', 200, 2]],\n    {'s0': [0, 480], 's1': [480, 720], 's2': [240, 480], 's3': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's0'], 'w1': ['s3', 's0', 's1'], 'w2': ['s2', 's1', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1']}),\n  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 720], 's1': [480, 960], 's2': [720, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's3', 's2'], 'w1': ['s1', 's3', 's0', 's2'], 'w2': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s0', 's2'], 'w1': ['s1'], 'w2': ['s3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 100, 1], ['w3', 100, 3]],\n    {'s0': [960, 1440],\n     's1': [960, 1200],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s1', 's4', 's2', 's5', 's3'],\n     'w1': ['s4', 's1', 's5', 's0', 's3', 's2'],\n     'w2': ['s2', 's4', 's0', 's1', 's5', 's3'],\n     'w3': ['s0', 's3', 's4', 's1', 's5']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s2'], 'w3': ['s0', 's5']}),\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', 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  ('normal control 6',\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 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 200, 1], ['w3', 200, 2]],\n    {'s0': [240, 480],\n     's1': [720, 1200],\n     's2': [720, 960],\n     's3': [0, 480],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's5', 's0'], 'w1': ['s3', 's0'], 'w2': ['s5'], 'w3': ['s0', 's3']}],\n   {'w0': ['s5'], 'w1': ['s3'], 'w2': [], 'w3': ['s0']})]]\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":"6b8eaef095e0537c235eab3ae43f2dc362e29615fdac1b47d54b21a40d810ee6","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: adjacent shift overlap 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: adjacent shift overlap 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', 200, 2], ['w1', 200, 1]],\n    {'s0': [960, 1200], 's1': [240, 720], 's2': [480, 720], 's3': [240, 480], 's4': [240, 480]},\n    {'w0': ['s2', 's3', 's1', 's4', 's0'], 'w1': ['s3', 's1', 's4', 's2', 's0']}],\n   {'w0': ['s2', 's4'], 'w1': ['s3']}),\n  ('normal control 4',\n   [[['w0', 100, 3], ['w1', 200, 3]],\n    {'s0': [960, 1200], 's1': [960, 1200], 's2': [240, 720], 's3': [480, 960], 's4': [0, 480]},\n    {'w0': ['s0', 's1', 's2', 's4'], 'w1': ['s2', 's1', 's0', 's3', 's4']}],\n   {'w0': ['s0', 's4'], 'w1': ['s2', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 3], ['w1', 200, 1]],\n    {'s0': [240, 720], 's1': [720, 1200], 's2': [0, 480], 's3': [720, 960], 's4': [240, 720]},\n    {'w0': ['s1', 's3', 's4', 's0'], 'w1': ['s0']}],\n   {'w0': ['s1', 's4'], 'w1': ['s0']}),\n  ('normal control 6',\n   [[['w0', 100, 3], ['w1', 200, 3], ['w2', 300, 1]],\n    {'s0': [0, 240], 's1': [480, 960], 's2': [720, 960], 's3': [720, 1200]},\n    {'w0': ['s1', 's0', 's2'], 'w1': ['s0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\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  ('normal control 8',\n   [[['w0', 300, 1], ['w1', 100, 2], ['w2', 300, 2]],\n    {'s0': [240, 480], 's1': [240, 480], 's2': [0, 240], 's3': [480, 720], 's4': [720, 960]},\n    {'w0': ['s3'], 'w1': ['s1', 's0', 's2'], 'w2': ['s3', 's4', 's0']}],\n   {'w0': ['s3'], 'w1': ['s1', 's2'], 'w2': ['s4', 's0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 1], ['w1', 200, 1], ['w2', 100, 2]],\n    {'s0': [720, 960],\n     's1': [480, 720],\n     's2': [720, 960],\n     's3': [240, 720],\n     's4': [480, 720],\n     's5': [720, 1200]},\n    {'w0': ['s2', 's3', 's0', 's4'], 'w1': ['s2', 's0'], 'w2': ['s3', 's2', 's5', 's1', 's4', 's0']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3', 's5']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [720, 1200], 's1': [0, 480], 's2': [240, 720], 's3': [720, 960]},\n    {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1', 's3', 's2']}],\n   {'w0': ['s2', 's0'], 'w1': ['s3'], 'w2': ['s1']}),\n  ('normal control 5',\n   [[['w0', 100, 3], ['w1', 300, 2]],\n    {'s0': [240, 720], 's1': [240, 720], 's2': [720, 960], 's3': [960, 1200], 's4': [0, 240]},\n    {'w0': ['s2', 's4', 's1', 's3'], 'w1': ['s3', 's4', 's0', 's1']}],\n   {'w0': ['s2', 's4', 's1'], 'w1': ['s3', 's0']}),\n  ('normal control 6',\n   [[['w0', 300, 3], ['w1', 100, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200], 's1': [480, 720], 's2': [240, 720], 's3': [0, 240]},\n    {'w0': ['s1'], 'w1': ['s1'], 'w2': ['s2', 's1', 's0']}],\n   {'w0': [], 'w1': ['s1'], 'w2': ['s2', 's0']}),\n  ('normal control 7',\n   [[['w0', 100, 1], ['w1', 300, 2]],\n    {'s0': [480, 720], 's1': [960, 1440], 's2': [240, 480], 's3': [0, 240], 's4': [960, 1200]},\n    {'w0': ['s2', 's3'], 'w1': ['s2', 's4', 's3', 's1']}],\n   {'w0': ['s2'], 'w1': ['s4', 's3']}),\n  ('normal control 8',\n   [[['w0', 100, 2], ['w1', 300, 3], ['w2', 100, 3]],\n    {'s0': [0, 240], 's1': [240, 720], 's2': [240, 480], 's3': [960, 1440]},\n    {'w0': ['s1', 's3', 's0', 's2'], 'w1': ['s3', 's1', 's0'], 'w2': ['s0']}],\n   {'w0': ['s1'], 'w1': ['s3'], 'w2': ['s0']})],\n [('regression: adjacent shift overlap 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: adjacent shift overlap 2',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 100, 2]],\n    {'s0': [960, 1200],\n     's1': [720, 960],\n     's2': [0, 240],\n     's3': [0, 480],\n     's4': [960, 1200],\n     's5': [720, 960]},\n    {'w0': ['s0', 's3', 's4', 's2', 's1', 's5'],\n     'w1': ['s1', 's4', 's3', 's5', 's2', 's0'],\n     'w2': ['s0', 's1', 's3']}],\n   {'w0': ['s3', 's5'], 'w1': ['s1', 's4'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 4',\n   [[['w0', 300, 3], ['w1', 200, 2], ['w2', 300, 2]],\n    {'s0': [480, 960], 's1': [240, 720], 's2': [240, 720], 's3': [480, 960], 's4': [240, 720]},\n    {'w0': ['s2', 's4'], 'w1': ['s2'], 'w2': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s4'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('normal control 5',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 300, 3]],\n    {'s0': [240, 720], 's1': [0, 240], 's2': [480, 960], 's3': [0, 480], 's4': [960, 1440], 's5': [240, 720]},\n    {'w0': ['s5', 's1', 's4'], 'w1': ['s0', 's4', 's3'], 'w2': ['s5', 's0', 's2', 's3', 's4']}],\n   {'w0': ['s5', 's1'], 'w1': ['s0', 's4'], 'w2': ['s2', 's3']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 100, 2]],\n    {'s0': [960, 1440], 's1': [240, 480], 's2': [240, 720], 's3': [960, 1200]},\n    {'w0': ['s1', 's0', 's3', 's2'], 'w1': ['s2', 's3'], 'w2': ['s3', 's0', 's2'], 'w3': ['s2', 's1']}],\n   {'w0': ['s0'], 'w1': ['s2'], 'w2': ['s3'], 'w3': ['s1']}),\n  ('normal control 7',\n   [[['w0', 300, 3], ['w1', 200, 3], ['w2', 100, 1]],\n    {'s0': [0, 240], 's1': [0, 240], 's2': [720, 1200], 's3': [720, 1200]},\n    {'w0': ['s2', 's1'], 'w1': ['s2', 's0', 's1', 's3'], 'w2': ['s3', 's0', 's2']}],\n   {'w0': ['s1'], 'w1': ['s2', 's0'], 'w2': ['s3']}),\n  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [480, 960], 's1': [0, 240], 's2': [720, 960], 's3': [0, 480]},\n    {'w0': ['s3'], 'w1': ['s0', 's2', 's1', 's3']}],\n   {'w0': ['s3'], 'w1': ['s0']})],\n [('regression: adjacent shift overlap 1',\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  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 200, 1]],\n    {'s0': [480, 720], 's1': [0, 240], 's2': [720, 1200], 's3': [240, 480]},\n    {'w0': ['s3', 's1', 's2', 's0'], 'w1': ['s2'], 'w2': ['s0', 's1']}],\n   {'w0': ['s3', 's1'], 'w1': ['s2'], 'w2': ['s0']}),\n  ('partial repair guard 3',\n   [[['w0', 300, 2], ['w1', 100, 3], ['w2', 200, 2], ['w3', 200, 1]],\n    {'s0': [720, 1200],\n     's1': [0, 480],\n     's2': [480, 960],\n     's3': [960, 1200],\n     's4': [960, 1200],\n     's5': [0, 240]},\n    {'w0': ['s4', 's2', 's0', 's5', 's1'],\n     'w1': ['s5', 's3', 's4', 's2'],\n     'w2': ['s2', 's4', 's1', 's3', 's5'],\n     'w3': ['s2', 's3']}],\n   {'w0': ['s4'], 'w1': ['s5'], 'w2': ['s2', 's1'], 'w3': ['s3']}),\n  ('normal control 4',\n   [[['w0', 200, 3], ['w1', 200, 3]],\n    {'s0': [720, 960],\n     's1': [0, 480],\n     's2': [960, 1440],\n     's3': [480, 720],\n     's4': [960, 1440],\n     's5': [240, 720]},\n    {'w0': ['s5', 's2', 's0', 's1', 's3', 's4'], 'w1': ['s2', 's5', 's4', 's0', 's3', 's1']}],\n   {'w0': ['s5', 's0', 's4'], 'w1': ['s2', 's3', 's1']}),\n  ('normal control 5',\n   [[['w0', 200, 1], ['w1', 200, 3], ['w2', 200, 1]],\n    {'s0': [480, 960],\n     's1': [720, 1200],\n     's2': [240, 720],\n     's3': [720, 960],\n     's4': [720, 960],\n     's5': [960, 1440]},\n    {'w0': ['s5', 's1', 's4', 's3', 's2'],\n     'w1': ['s1', 's2', 's0', 's4', 's5'],\n     'w2': ['s2', 's0', 's4', 's5', 's1', 's3']}],\n   {'w0': ['s5'], 'w1': ['s1'], 'w2': ['s2']}),\n  ('normal control 6',\n   [[['w0', 200, 2], ['w1', 200, 2], ['w2', 200, 3]],\n    {'s0': [240, 720], 's1': [480, 720], 's2': [240, 720], 's3': [240, 480]},\n    {'w0': ['s2', 's1', 's0'], 'w1': ['s0', 's2', 's3', 's1'], 'w2': ['s0']}],\n   {'w0': ['s2'], 'w1': ['s0'], 'w2': []}),\n  ('normal control 7',\n   [[['w0', 200, 2], ['w1', 200, 1]], {'s0': [720, 960], 's1': [0, 240], 's2': [0, 240], 's3': [720, 1200]},\n    {'w0': ['s1', 's2'], 'w1': ['s2', 's1', 's0']}],\n   {'w0': ['s1'], 'w1': ['s2']}),\n  ('normal control 8',\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 [('regression: adjacent shift overlap 1',\n   [[['w0', 100, 2], ['w1', 100, 2], ['w2', 200, 2]],\n    {'s0': [0, 480], 's1': [480, 720], 's2': [240, 480], 's3': [480, 960]},\n    {'w0': ['s2', 's3', 's1', 's0'], 'w1': ['s3', 's0', 's1'], 'w2': ['s2', 's1', 's3', 's0']}],\n   {'w0': ['s2'], 'w1': ['s3', 's0'], 'w2': ['s1']}),\n  ('regression variant: adjacent shift overlap 2',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 300, 3]],\n    {'s0': [480, 720], 's1': [480, 960], 's2': [720, 1200], 's3': [480, 960]},\n    {'w0': ['s0', 's3', 's2'], 'w1': ['s1', 's3', 's0', 's2'], 'w2': ['s0', 's1', 's3', 's2']}],\n   {'w0': ['s0', 's2'], 'w1': ['s1'], 'w2': ['s3']}),\n  ('partial repair guard 3',\n   [[['w0', 200, 3], ['w1', 200, 1], ['w2', 100, 1], ['w3', 100, 3]],\n    {'s0': [960, 1440],\n     's1': [960, 1200],\n     's2': [240, 720],\n     's3': [960, 1440],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s1', 's4', 's2', 's5', 's3'],\n     'w1': ['s4', 's1', 's5', 's0', 's3', 's2'],\n     'w2': ['s2', 's4', 's0', 's1', 's5', 's3'],\n     'w3': ['s0', 's3', 's4', 's1', 's5']}],\n   {'w0': ['s1'], 'w1': ['s4'], 'w2': ['s2'], 'w3': ['s0', 's5']}),\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', 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  ('normal control 6',\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 7',\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  ('normal control 8',\n   [[['w0', 200, 2], ['w1', 100, 2], ['w2', 200, 1], ['w3', 200, 2]],\n    {'s0': [240, 480],\n     's1': [720, 1200],\n     's2': [720, 960],\n     's3': [0, 480],\n     's4': [240, 480],\n     's5': [480, 960]},\n    {'w0': ['s3', 's5', 's0'], 'w1': ['s3', 's0'], 'w2': ['s5'], 'w3': ['s0', 's3']}],\n   {'w0': ['s5'], 'w1': ['s3'], 'w2': [], 'w3': ['s0']})]]\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-adjacent-shift-overlap","generated_at":"2026-09-29T14:52:02.982862+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":"Use strict comparisons so touching shifts are compatible.","root_cause":"The overlap test treats touching intervals as overlapping.","sha256":"94038a03d9d878f06ad904dbc6b27c48cd4c41452b983a198f031b827942c7cb","title":"Back-to-back shifts rejected as overlapping during bidding · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.512,"exit_code":1,"observations":[{"actual":{"w0":["s4","s2"],"w1":["s3"]},"check":"regression: adjacent shift overlap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s3"],"w1":["s2","s1"],"w2":[],"w3":["s0"]},"check":"regression variant: adjacent shift overlap 2","expected":{"w0":["s3"],"w1":["s2","s1"],"w2":[],"w3":["s0"]},"passed":true},{"actual":{"w0":["s2","s0"],"w1":["s3"]},"check":"partial repair guard 3","expected":{"w0":["s2","s4"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s0","s4"],"w1":["s2","s1"]},"check":"normal control 4","expected":{"w0":["s0","s4"],"w1":["s2","s1"]},"passed":true},{"actual":{"w0":["s1"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s1","s4"],"w1":["s0"]},"passed":false},{"actual":{"w0":["s1"],"w1":["s0"],"w2":[]},"check":"normal control 6","expected":{"w0":["s1"],"w1":["s0"],"w2":[]},"passed":true},{"actual":{"w0":["s0"],"w1":["s4","s3"]},"check":"normal control 7","expected":{"w0":["s0","s2"],"w1":["s4","s3"]},"passed":false},{"actual":{"w0":["s3"],"w1":["s1"],"w2":["s4","s0"]},"check":"normal control 8","expected":{"w0":["s3"],"w1":["s1","s2"],"w2":["s4","s0"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: adjacent shift overlap 1\", \"actual\": {\"w0\": [\"s4\", \"s2\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"regression variant: adjacent shift overlap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s2\", \"s1\"], \"w2\": [], \"w3\": [\"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s2\", \"s1\"], \"w2\": [], \"w3\": [\"s0\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\", \"s0\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s2\", \"s4\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"expected\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s1\", \"s4\"], \"w1\": [\"s0\"]}, \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s4\", \"s3\"]}, \"expected\": {\"w0\": [\"s0\", \"s2\"], \"w1\": [\"s4\", \"s3\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s4\", \"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\", \"s2\"], \"w2\": [\"s4\", \"s0\"]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.053,"exit_code":1,"observations":[{"actual":{"w0":["s4","s2"],"w1":["s3"]},"check":"regression: adjacent shift overlap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s3"],"w1":["s2"],"w2":[],"w3":["s0"]},"check":"regression variant: adjacent shift overlap 2","expected":{"w0":["s3"],"w1":["s2","s1"],"w2":[],"w3":["s0"]},"passed":false},{"actual":{"w0":["s2","s0"],"w1":["s3"]},"check":"partial repair guard 3","expected":{"w0":["s2","s4"],"w1":["s3"]},"passed":false},{"actual":{"w0":["s0","s4"],"w1":["s2","s1"]},"check":"normal control 4","expected":{"w0":["s0","s4"],"w1":["s2","s1"]},"passed":true},{"actual":{"w0":["s1"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s1","s4"],"w1":["s0"]},"passed":false},{"actual":{"w0":["s1"],"w1":["s0"],"w2":[]},"check":"normal control 6","expected":{"w0":["s1"],"w1":["s0"],"w2":[]},"passed":true},{"actual":{"w0":["s0"],"w1":["s4","s3"]},"check":"normal control 7","expected":{"w0":["s0","s2"],"w1":["s4","s3"]},"passed":false},{"actual":{"w0":["s3"],"w1":["s1"],"w2":["s4","s0"]},"check":"normal control 8","expected":{"w0":["s3"],"w1":["s1","s2"],"w2":["s4","s0"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: adjacent shift overlap 1\", \"actual\": {\"w0\": [\"s4\", \"s2\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"regression variant: adjacent shift overlap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s2\"], \"w2\": [], \"w3\": [\"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s2\", \"s1\"], \"w2\": [], \"w3\": [\"s0\"]}, \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\", \"s0\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s2\", \"s4\"], \"w1\": [\"s3\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"expected\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s1\", \"s4\"], \"w1\": [\"s0\"]}, \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\"], \"w1\": [\"s4\", \"s3\"]}, \"expected\": {\"w0\": [\"s0\", \"s2\"], \"w1\": [\"s4\", \"s3\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\"], \"w2\": [\"s4\", \"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\", \"s2\"], \"w2\": [\"s4\", \"s0\"]}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.169,"exit_code":0,"observations":[{"actual":{"w0":["s4","s1"],"w1":["s3"]},"check":"regression: adjacent shift overlap 1","expected":{"w0":["s4","s1"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s3"],"w1":["s2","s1"],"w2":[],"w3":["s0"]},"check":"regression variant: adjacent shift overlap 2","expected":{"w0":["s3"],"w1":["s2","s1"],"w2":[],"w3":["s0"]},"passed":true},{"actual":{"w0":["s2","s4"],"w1":["s3"]},"check":"partial repair guard 3","expected":{"w0":["s2","s4"],"w1":["s3"]},"passed":true},{"actual":{"w0":["s0","s4"],"w1":["s2","s1"]},"check":"normal control 4","expected":{"w0":["s0","s4"],"w1":["s2","s1"]},"passed":true},{"actual":{"w0":["s1","s4"],"w1":["s0"]},"check":"normal control 5","expected":{"w0":["s1","s4"],"w1":["s0"]},"passed":true},{"actual":{"w0":["s1"],"w1":["s0"],"w2":[]},"check":"normal control 6","expected":{"w0":["s1"],"w1":["s0"],"w2":[]},"passed":true},{"actual":{"w0":["s0","s2"],"w1":["s4","s3"]},"check":"normal control 7","expected":{"w0":["s0","s2"],"w1":["s4","s3"]},"passed":true},{"actual":{"w0":["s3"],"w1":["s1","s2"],"w2":["s4","s0"]},"check":"normal control 8","expected":{"w0":["s3"],"w1":["s1","s2"],"w2":["s4","s0"]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: adjacent shift overlap 1\", \"actual\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s4\", \"s1\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"regression variant: adjacent shift overlap 2\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s2\", \"s1\"], \"w2\": [], \"w3\": [\"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s2\", \"s1\"], \"w2\": [], \"w3\": [\"s0\"]}, \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": {\"w0\": [\"s2\", \"s4\"], \"w1\": [\"s3\"]}, \"expected\": {\"w0\": [\"s2\", \"s4\"], \"w1\": [\"s3\"]}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"expected\": {\"w0\": [\"s0\", \"s4\"], \"w1\": [\"s2\", \"s1\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"w0\": [\"s1\", \"s4\"], \"w1\": [\"s0\"]}, \"expected\": {\"w0\": [\"s1\", \"s4\"], \"w1\": [\"s0\"]}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"expected\": {\"w0\": [\"s1\"], \"w1\": [\"s0\"], \"w2\": []}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"w0\": [\"s0\", \"s2\"], \"w1\": [\"s4\", \"s3\"]}, \"expected\": {\"w0\": [\"s0\", \"s2\"], \"w1\": [\"s4\", \"s3\"]}, \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": {\"w0\": [\"s3\"], \"w1\": [\"s1\", \"s2\"], \"w2\": [\"s4\", \"s0\"]}, \"expected\": {\"w0\": [\"s3\"], \"w1\": [\"s1\", \"s2\"], \"w2\": [\"s4\", \"s0\"]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}