{"abstract":"Candidates go straight from one paper to the next.","category":"Exam timetabling constraints","checks":8,"contract":"Each clash [student, exam a, exam b] shares a start time. The longer exam is sat first (ties by id), then a 15-minute supervised break, then the second exam. Return [student, first, second, second start, whether the second exam ends by day_end (inclusive)].","evaluation_group":"w2-exam-timetabling-constraints-clash-sequential-sitting","failed_approach":"Using the second exam's duration offsets by the wrong paper.","family":"w2-exam-timetabling-constraints-clash-sequential-sitting-supervised-break","id":"FA-94671","implementations":{"attempt":{"sha256":"a8ff040be0b8aa9663862ea7732255ffadd14f44f16404ee9b5090bc77c31eb1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(clashes, dur, start, day_end):\n    out = []\n    for st, a, b in clashes:\n        first, second = sorted([a, b], key=lambda e: (-dur[e], e))\n        s2 = start + dur[second] + 15\n        out.append([st, first, second, s2, s2 + dur[second] <= day_end])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 180}, 600, 1080],\n   [['s1', 'B', 'A', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'MATH101H', 'ECON150'], ['s5', 'MATH101', 'CHEM120'], ['s1', 'ECON150', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 90},\n    840, 1080],\n   [['s1', 'MATH101H', 'ECON150', 1035, False], ['s5', 'MATH101', 'CHEM120', 975, True],\n    ['s1', 'BIO130', 'ECON150', 945, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'BIO130', 'PHYS110'], ['s1', 'ECON150', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 60,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 90},\n    780, 1020],\n   [['s3', 'BIO130', 'PHYS110', 975, False], ['s1', 'HIST140', 'ECON150', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 5',\n   [[['s5', 'CHEM120', 'MATH101H'], ['s3', 'PHYS110', 'BIO130'], ['s1', 'CHEM120', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'CHEM120', 'MATH101H', 645, True], ['s3', 'PHYS110', 'BIO130', 735, True],\n    ['s1', 'MATH101', 'CHEM120', 675, True]]),\n  ('normal control 6',\n   [[['s3', 'BIO130', 'MATH101H'], ['s4', 'MATH101', 'CHEM120']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    840, 1020],\n   [['s3', 'BIO130', 'MATH101H', 945, False], ['s4', 'CHEM120', 'MATH101', 1035, False]]),\n  ('normal control 7',\n   [[['s3', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'MATH101', 'PHYS110', 795, True]]),\n  ('normal control 8',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 60},\n    600, 1080],\n   [['s3', 'HIST140', 'MATH101H', 705, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855],\n   [['s1', 'A', 'B', 735, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'CHEM120', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'CHEM120', 'PHYS110', 795, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s3', 'MATH101H', 'HIST140', 675, True]]),\n  ('boundary control 4', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 6',\n   [[['s4', 'CHEM120', 'MATH101H'], ['s1', 'HIST140', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1080],\n   [['s4', 'CHEM120', 'MATH101H', 915, True], ['s1', 'BIO130', 'HIST140', 945, True]]),\n  ('normal control 7',\n   [[['s1', 'CHEM120', 'ECON150'], ['s1', 'PHYS110', 'CHEM120'], ['s1', 'MATH101', 'CHEM120']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 90,\n     'CHEM120': 120,\n     'BIO130': 120,\n     'HIST140': 180,\n     'ECON150': 180},\n    840, 1020],\n   [['s1', 'ECON150', 'CHEM120', 1035, False], ['s1', 'CHEM120', 'PHYS110', 975, False],\n    ['s1', 'MATH101', 'CHEM120', 1035, False]]),\n  ('normal control 8',\n   [[['s5', 'ECON150', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 90},\n    840, 1080],\n   [['s5', 'ECON150', 'PHYS110', 945, True], ['s5', 'MATH101', 'PHYS110', 975, True]])],\n [('regression: supervised break 1', [[['s1', 'B', 'A']], {'A': 90, 'B': 90}, 780, 1080],\n   [['s1', 'A', 'B', 885, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'BIO130'], ['s4', 'BIO130', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 60},\n    840, 1080],\n   [['s1', 'BIO130', 'ECON150', 945, True], ['s4', 'HIST140', 'BIO130', 1035, False]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 90},\n    780, 1020],\n   [['s4', 'PHYS110', 'MATH101H', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('boundary control 5', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('normal control 6',\n   [[['s5', 'ECON150', 'MATH101'], ['s4', 'HIST140', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'ECON150', 'MATH101', 735, True], ['s4', 'PHYS110', 'HIST140', 675, True],\n    ['s5', 'MATH101', 'PHYS110', 735, True]]),\n  ('normal control 7',\n   [[['s2', 'PHYS110', 'BIO130'], ['s1', 'BIO130', 'ECON150']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 180,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s2', 'BIO130', 'PHYS110', 795, True], ['s1', 'BIO130', 'ECON150', 795, True]]),\n  ('normal control 8',\n   [[['s2', 'BIO130', 'HIST140'], ['s2', 'CHEM120', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s2', 'HIST140', 'BIO130', 645, True], ['s2', 'BIO130', 'CHEM120', 615, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'PHYS110'], ['s2', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 120},\n    540, 1080],\n   [['s1', 'ECON150', 'PHYS110', 675, True], ['s2', 'MATH101', 'PHYS110', 735, True]]),\n  ('partial repair guard 3',\n   [[['s4', 'BIO130', 'ECON150'], ['s4', 'MATH101', 'MATH101H']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 120},\n    780, 1020],\n   [['s4', 'BIO130', 'ECON150', 915, False], ['s4', 'MATH101H', 'MATH101', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855], [['s1', 'A', 'B', 795, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('normal control 6',\n   [[['s5', 'HIST140', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s5', 'PHYS110', 'HIST140', 675, True]]),\n  ('normal control 7',\n   [[['s3', 'BIO130', 'PHYS110'], ['s3', 'PHYS110', 'CHEM120'], ['s2', 'BIO130', 'CHEM120']],\n    {'MATH101': 90,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'BIO130', 735, True], ['s3', 'CHEM120', 'PHYS110', 735, True],\n    ['s2', 'CHEM120', 'BIO130', 735, True]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1020],\n   [['s1', 'MATH101', 'PHYS110', 1035, False]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855],\n   [['s1', 'A', 'B', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 90,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 120,\n     'HIST140': 60,\n     'ECON150': 180},\n    780, 1020],\n   [['s3', 'BIO130', 'MATH101', 915, True]]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130', 'ECON150'], ['s4', 'ECON150', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 120},\n    780, 1020],\n   [['s2', 'BIO130', 'ECON150', 975, False], ['s4', 'MATH101', 'ECON150', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 780, 1035],\n   [['s1', 'A', 'B', 915, True]]),\n  ('normal control 5',\n   [[['s2', 'HIST140', 'PHYS110']],\n    {'MATH101': 90,\n     'MATH101H': 90,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 60,\n     'HIST140': 180,\n     'ECON150': 120},\n    840, 1020],\n   [['s2', 'HIST140', 'PHYS110', 1035, False]]),\n  ('normal control 6',\n   [[['s3', 'MATH101H', 'ECON150'], ['s2', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1020],\n   [['s3', 'MATH101H', 'ECON150', 675, True], ['s2', 'BIO130', 'MATH101', 645, True]]),\n  ('normal control 7',\n   [[['s3', 'PHYS110', 'MATH101H'], ['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'MATH101H', 675, True], ['s4', 'PHYS110', 'MATH101H', 675, True]]),\n  ('normal control 8',\n   [[['s2', 'PHYS110', 'HIST140'], ['s5', 'CHEM120', 'BIO130'], ['s5', 'MATH101H', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    600, 1020],\n   [['s2', 'PHYS110', 'HIST140', 735, True], ['s5', 'BIO130', 'CHEM120', 675, True],\n    ['s5', 'MATH101H', 'PHYS110', 795, True]])]]\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":"017f6fe07196b8f4c90142479580c74bc619aed6f4b321349fdf27d4c67b8ff3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(clashes, dur, start, day_end):\n    out = []\n    for st, a, b in clashes:\n        first, second = sorted([a, b], key=lambda e: (-dur[e], e))\n        s2 = start + dur[first]\n        out.append([st, first, second, s2, s2 + dur[second] <= day_end])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 180}, 600, 1080],\n   [['s1', 'B', 'A', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'MATH101H', 'ECON150'], ['s5', 'MATH101', 'CHEM120'], ['s1', 'ECON150', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 90},\n    840, 1080],\n   [['s1', 'MATH101H', 'ECON150', 1035, False], ['s5', 'MATH101', 'CHEM120', 975, True],\n    ['s1', 'BIO130', 'ECON150', 945, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'BIO130', 'PHYS110'], ['s1', 'ECON150', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 60,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 90},\n    780, 1020],\n   [['s3', 'BIO130', 'PHYS110', 975, False], ['s1', 'HIST140', 'ECON150', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 5',\n   [[['s5', 'CHEM120', 'MATH101H'], ['s3', 'PHYS110', 'BIO130'], ['s1', 'CHEM120', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'CHEM120', 'MATH101H', 645, True], ['s3', 'PHYS110', 'BIO130', 735, True],\n    ['s1', 'MATH101', 'CHEM120', 675, True]]),\n  ('normal control 6',\n   [[['s3', 'BIO130', 'MATH101H'], ['s4', 'MATH101', 'CHEM120']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    840, 1020],\n   [['s3', 'BIO130', 'MATH101H', 945, False], ['s4', 'CHEM120', 'MATH101', 1035, False]]),\n  ('normal control 7',\n   [[['s3', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'MATH101', 'PHYS110', 795, True]]),\n  ('normal control 8',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 60},\n    600, 1080],\n   [['s3', 'HIST140', 'MATH101H', 705, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855],\n   [['s1', 'A', 'B', 735, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'CHEM120', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'CHEM120', 'PHYS110', 795, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s3', 'MATH101H', 'HIST140', 675, True]]),\n  ('boundary control 4', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 6',\n   [[['s4', 'CHEM120', 'MATH101H'], ['s1', 'HIST140', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1080],\n   [['s4', 'CHEM120', 'MATH101H', 915, True], ['s1', 'BIO130', 'HIST140', 945, True]]),\n  ('normal control 7',\n   [[['s1', 'CHEM120', 'ECON150'], ['s1', 'PHYS110', 'CHEM120'], ['s1', 'MATH101', 'CHEM120']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 90,\n     'CHEM120': 120,\n     'BIO130': 120,\n     'HIST140': 180,\n     'ECON150': 180},\n    840, 1020],\n   [['s1', 'ECON150', 'CHEM120', 1035, False], ['s1', 'CHEM120', 'PHYS110', 975, False],\n    ['s1', 'MATH101', 'CHEM120', 1035, False]]),\n  ('normal control 8',\n   [[['s5', 'ECON150', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 90},\n    840, 1080],\n   [['s5', 'ECON150', 'PHYS110', 945, True], ['s5', 'MATH101', 'PHYS110', 975, True]])],\n [('regression: supervised break 1', [[['s1', 'B', 'A']], {'A': 90, 'B': 90}, 780, 1080],\n   [['s1', 'A', 'B', 885, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'BIO130'], ['s4', 'BIO130', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 60},\n    840, 1080],\n   [['s1', 'BIO130', 'ECON150', 945, True], ['s4', 'HIST140', 'BIO130', 1035, False]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 90},\n    780, 1020],\n   [['s4', 'PHYS110', 'MATH101H', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('boundary control 5', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('normal control 6',\n   [[['s5', 'ECON150', 'MATH101'], ['s4', 'HIST140', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'ECON150', 'MATH101', 735, True], ['s4', 'PHYS110', 'HIST140', 675, True],\n    ['s5', 'MATH101', 'PHYS110', 735, True]]),\n  ('normal control 7',\n   [[['s2', 'PHYS110', 'BIO130'], ['s1', 'BIO130', 'ECON150']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 180,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s2', 'BIO130', 'PHYS110', 795, True], ['s1', 'BIO130', 'ECON150', 795, True]]),\n  ('normal control 8',\n   [[['s2', 'BIO130', 'HIST140'], ['s2', 'CHEM120', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s2', 'HIST140', 'BIO130', 645, True], ['s2', 'BIO130', 'CHEM120', 615, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'PHYS110'], ['s2', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 120},\n    540, 1080],\n   [['s1', 'ECON150', 'PHYS110', 675, True], ['s2', 'MATH101', 'PHYS110', 735, True]]),\n  ('partial repair guard 3',\n   [[['s4', 'BIO130', 'ECON150'], ['s4', 'MATH101', 'MATH101H']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 120},\n    780, 1020],\n   [['s4', 'BIO130', 'ECON150', 915, False], ['s4', 'MATH101H', 'MATH101', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855], [['s1', 'A', 'B', 795, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('normal control 6',\n   [[['s5', 'HIST140', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s5', 'PHYS110', 'HIST140', 675, True]]),\n  ('normal control 7',\n   [[['s3', 'BIO130', 'PHYS110'], ['s3', 'PHYS110', 'CHEM120'], ['s2', 'BIO130', 'CHEM120']],\n    {'MATH101': 90,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'BIO130', 735, True], ['s3', 'CHEM120', 'PHYS110', 735, True],\n    ['s2', 'CHEM120', 'BIO130', 735, True]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1020],\n   [['s1', 'MATH101', 'PHYS110', 1035, False]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855],\n   [['s1', 'A', 'B', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 90,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 120,\n     'HIST140': 60,\n     'ECON150': 180},\n    780, 1020],\n   [['s3', 'BIO130', 'MATH101', 915, True]]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130', 'ECON150'], ['s4', 'ECON150', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 120},\n    780, 1020],\n   [['s2', 'BIO130', 'ECON150', 975, False], ['s4', 'MATH101', 'ECON150', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 780, 1035],\n   [['s1', 'A', 'B', 915, True]]),\n  ('normal control 5',\n   [[['s2', 'HIST140', 'PHYS110']],\n    {'MATH101': 90,\n     'MATH101H': 90,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 60,\n     'HIST140': 180,\n     'ECON150': 120},\n    840, 1020],\n   [['s2', 'HIST140', 'PHYS110', 1035, False]]),\n  ('normal control 6',\n   [[['s3', 'MATH101H', 'ECON150'], ['s2', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1020],\n   [['s3', 'MATH101H', 'ECON150', 675, True], ['s2', 'BIO130', 'MATH101', 645, True]]),\n  ('normal control 7',\n   [[['s3', 'PHYS110', 'MATH101H'], ['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'MATH101H', 675, True], ['s4', 'PHYS110', 'MATH101H', 675, True]]),\n  ('normal control 8',\n   [[['s2', 'PHYS110', 'HIST140'], ['s5', 'CHEM120', 'BIO130'], ['s5', 'MATH101H', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    600, 1020],\n   [['s2', 'PHYS110', 'HIST140', 735, True], ['s5', 'BIO130', 'CHEM120', 675, True],\n    ['s5', 'MATH101H', 'PHYS110', 795, True]])]]\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":"87f95f1b9840841b83471a0a59a3275dfa5883dccdd4391c21e2dad4d651a578","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(clashes, dur, start, day_end):\n    out = []\n    for st, a, b in clashes:\n        first, second = sorted([a, b], key=lambda e: (-dur[e], e))\n        s2 = start + dur[first] + 15\n        out.append([st, first, second, s2, s2 + dur[second] <= day_end])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 180}, 600, 1080],\n   [['s1', 'B', 'A', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'MATH101H', 'ECON150'], ['s5', 'MATH101', 'CHEM120'], ['s1', 'ECON150', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 90},\n    840, 1080],\n   [['s1', 'MATH101H', 'ECON150', 1035, False], ['s5', 'MATH101', 'CHEM120', 975, True],\n    ['s1', 'BIO130', 'ECON150', 945, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'BIO130', 'PHYS110'], ['s1', 'ECON150', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 60,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 90},\n    780, 1020],\n   [['s3', 'BIO130', 'PHYS110', 975, False], ['s1', 'HIST140', 'ECON150', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 5',\n   [[['s5', 'CHEM120', 'MATH101H'], ['s3', 'PHYS110', 'BIO130'], ['s1', 'CHEM120', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'CHEM120', 'MATH101H', 645, True], ['s3', 'PHYS110', 'BIO130', 735, True],\n    ['s1', 'MATH101', 'CHEM120', 675, True]]),\n  ('normal control 6',\n   [[['s3', 'BIO130', 'MATH101H'], ['s4', 'MATH101', 'CHEM120']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 180},\n    840, 1020],\n   [['s3', 'BIO130', 'MATH101H', 945, False], ['s4', 'CHEM120', 'MATH101', 1035, False]]),\n  ('normal control 7',\n   [[['s3', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'MATH101', 'PHYS110', 795, True]]),\n  ('normal control 8',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 120,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 60},\n    600, 1080],\n   [['s3', 'HIST140', 'MATH101H', 705, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855],\n   [['s1', 'A', 'B', 735, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'CHEM120', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 180,\n     'HIST140': 90,\n     'ECON150': 180},\n    600, 1020],\n   [['s3', 'CHEM120', 'PHYS110', 795, True]]),\n  ('partial repair guard 3',\n   [[['s3', 'MATH101H', 'HIST140']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s3', 'MATH101H', 'HIST140', 675, True]]),\n  ('boundary control 4', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('normal control 6',\n   [[['s4', 'CHEM120', 'MATH101H'], ['s1', 'HIST140', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1080],\n   [['s4', 'CHEM120', 'MATH101H', 915, True], ['s1', 'BIO130', 'HIST140', 945, True]]),\n  ('normal control 7',\n   [[['s1', 'CHEM120', 'ECON150'], ['s1', 'PHYS110', 'CHEM120'], ['s1', 'MATH101', 'CHEM120']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 90,\n     'CHEM120': 120,\n     'BIO130': 120,\n     'HIST140': 180,\n     'ECON150': 180},\n    840, 1020],\n   [['s1', 'ECON150', 'CHEM120', 1035, False], ['s1', 'CHEM120', 'PHYS110', 975, False],\n    ['s1', 'MATH101', 'CHEM120', 1035, False]]),\n  ('normal control 8',\n   [[['s5', 'ECON150', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 60,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 60,\n     'ECON150': 90},\n    840, 1080],\n   [['s5', 'ECON150', 'PHYS110', 945, True], ['s5', 'MATH101', 'PHYS110', 975, True]])],\n [('regression: supervised break 1', [[['s1', 'B', 'A']], {'A': 90, 'B': 90}, 780, 1080],\n   [['s1', 'A', 'B', 885, True]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'BIO130'], ['s4', 'BIO130', 'HIST140']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 60},\n    840, 1080],\n   [['s1', 'BIO130', 'ECON150', 945, True], ['s4', 'HIST140', 'BIO130', 1035, False]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 90},\n    780, 1020],\n   [['s4', 'PHYS110', 'MATH101H', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('boundary control 5', [[['s3', 'A', 'B'], ['s1', 'A', 'B']], {'A': 60, 'B': 90}, 780, 1020],\n   [['s3', 'B', 'A', 885, True], ['s1', 'B', 'A', 885, True]]),\n  ('normal control 6',\n   [[['s5', 'ECON150', 'MATH101'], ['s4', 'HIST140', 'PHYS110'], ['s5', 'PHYS110', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s5', 'ECON150', 'MATH101', 735, True], ['s4', 'PHYS110', 'HIST140', 675, True],\n    ['s5', 'MATH101', 'PHYS110', 735, True]]),\n  ('normal control 7',\n   [[['s2', 'PHYS110', 'BIO130'], ['s1', 'BIO130', 'ECON150']],\n    {'MATH101': 120,\n     'MATH101H': 90,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 180,\n     'HIST140': 60,\n     'ECON150': 180},\n    600, 1020],\n   [['s2', 'BIO130', 'PHYS110', 795, True], ['s1', 'BIO130', 'ECON150', 795, True]]),\n  ('normal control 8',\n   [[['s2', 'BIO130', 'HIST140'], ['s2', 'CHEM120', 'BIO130']],\n    {'MATH101': 120,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 90,\n     'ECON150': 180},\n    540, 1020],\n   [['s2', 'HIST140', 'BIO130', 645, True], ['s2', 'BIO130', 'CHEM120', 615, True]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 840, 1080],\n   [['s1', 'A', 'B', 1035, False]]),\n  ('regression variant: supervised break 2',\n   [[['s1', 'ECON150', 'PHYS110'], ['s2', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 90,\n     'HIST140': 180,\n     'ECON150': 120},\n    540, 1080],\n   [['s1', 'ECON150', 'PHYS110', 675, True], ['s2', 'MATH101', 'PHYS110', 735, True]]),\n  ('partial repair guard 3',\n   [[['s4', 'BIO130', 'ECON150'], ['s4', 'MATH101', 'MATH101H']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 180,\n     'CHEM120': 60,\n     'BIO130': 120,\n     'HIST140': 90,\n     'ECON150': 120},\n    780, 1020],\n   [['s4', 'BIO130', 'ECON150', 915, False], ['s4', 'MATH101H', 'MATH101', 915, True]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855], [['s1', 'A', 'B', 795, True]]),\n  ('boundary control 5', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 600, 855], [['s1', 'A', 'B', 735, True]]),\n  ('normal control 6',\n   [[['s5', 'HIST140', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 120},\n    540, 1080],\n   [['s5', 'PHYS110', 'HIST140', 675, True]]),\n  ('normal control 7',\n   [[['s3', 'BIO130', 'PHYS110'], ['s3', 'PHYS110', 'CHEM120'], ['s2', 'BIO130', 'CHEM120']],\n    {'MATH101': 90,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'BIO130', 735, True], ['s3', 'CHEM120', 'PHYS110', 735, True],\n    ['s2', 'CHEM120', 'BIO130', 735, True]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 'PHYS110']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 180,\n     'CHEM120': 120,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    840, 1020],\n   [['s1', 'MATH101', 'PHYS110', 1035, False]])],\n [('regression: supervised break 1', [[['s1', 'A', 'B']], {'A': 180, 'B': 60}, 600, 855],\n   [['s1', 'A', 'B', 795, True]]),\n  ('regression variant: supervised break 2',\n   [[['s3', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 90,\n     'PHYS110': 90,\n     'CHEM120': 180,\n     'BIO130': 120,\n     'HIST140': 60,\n     'ECON150': 180},\n    780, 1020],\n   [['s3', 'BIO130', 'MATH101', 915, True]]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130', 'ECON150'], ['s4', 'ECON150', 'MATH101']],\n    {'MATH101': 180,\n     'MATH101H': 120,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 180,\n     'HIST140': 120,\n     'ECON150': 120},\n    780, 1020],\n   [['s2', 'BIO130', 'ECON150', 975, False], ['s4', 'MATH101', 'ECON150', 975, False]]),\n  ('boundary control 4', [[['s1', 'A', 'B']], {'A': 120, 'B': 120}, 780, 1035],\n   [['s1', 'A', 'B', 915, True]]),\n  ('normal control 5',\n   [[['s2', 'HIST140', 'PHYS110']],\n    {'MATH101': 90,\n     'MATH101H': 90,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 60,\n     'HIST140': 180,\n     'ECON150': 120},\n    840, 1020],\n   [['s2', 'HIST140', 'PHYS110', 1035, False]]),\n  ('normal control 6',\n   [[['s3', 'MATH101H', 'ECON150'], ['s2', 'MATH101', 'BIO130']],\n    {'MATH101': 60,\n     'MATH101H': 120,\n     'PHYS110': 60,\n     'CHEM120': 180,\n     'BIO130': 90,\n     'HIST140': 90,\n     'ECON150': 60},\n    540, 1020],\n   [['s3', 'MATH101H', 'ECON150', 675, True], ['s2', 'BIO130', 'MATH101', 645, True]]),\n  ('normal control 7',\n   [[['s3', 'PHYS110', 'MATH101H'], ['s4', 'PHYS110', 'MATH101H']],\n    {'MATH101': 180,\n     'MATH101H': 60,\n     'PHYS110': 120,\n     'CHEM120': 90,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    540, 1080],\n   [['s3', 'PHYS110', 'MATH101H', 675, True], ['s4', 'PHYS110', 'MATH101H', 675, True]]),\n  ('normal control 8',\n   [[['s2', 'PHYS110', 'HIST140'], ['s5', 'CHEM120', 'BIO130'], ['s5', 'MATH101H', 'PHYS110']],\n    {'MATH101': 120,\n     'MATH101H': 180,\n     'PHYS110': 120,\n     'CHEM120': 60,\n     'BIO130': 60,\n     'HIST140': 60,\n     'ECON150': 60},\n    600, 1020],\n   [['s2', 'PHYS110', 'HIST140', 735, True], ['s5', 'BIO130', 'CHEM120', 675, True],\n    ['s5', 'MATH101H', 'PHYS110', 795, True]])]]\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 exam-timetabling rule set for a bounded model; it does not claim conformance with any institution's regulations or a benchmark specification, and it performs no search or optimisation. 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-exam-timetabling-constraints-clash-sequential-sitting-supervised-break","generated_at":"2026-09-29T14:52:06.558530+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Clash resolution by supervised sequential sitting is a standard timetabling fallback.","repair":"Second start = start + first duration + 15.","root_cause":"The 15-minute break is omitted.","sha256":"f09588408c3b5fa19266e1cb42287c297ddac0970cd65159f22f1ee8d6e8f4a1","title":"Second sitting starts without the supervised break · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.981,"exit_code":1,"observations":[{"actual":[["s1","B","A",735,true]],"check":"regression: supervised break 1","expected":[["s1","B","A",795,true]],"passed":false},{"actual":[["s1","MATH101H","ECON150",945,true],["s5","MATH101","CHEM120",915,true],["s1","BIO130","ECON150",945,true]],"check":"regression variant: supervised break 2","expected":[["s1","MATH101H","ECON150",1035,false],["s5","MATH101","CHEM120",975,true],["s1","BIO130","ECON150",945,true]],"passed":false},{"actual":[["s3","BIO130","PHYS110",885,true],["s1","HIST140","ECON150",885,true]],"check":"partial repair guard 3","expected":[["s3","BIO130","PHYS110",975,false],["s1","HIST140","ECON150",915,true]],"passed":false},{"actual":[["s1","A","B",915,true]],"check":"boundary control 4","expected":[["s1","A","B",1035,false]],"passed":false},{"actual":[["s5","CHEM120","MATH101H",645,true],["s3","PHYS110","BIO130",645,true],["s1","MATH101","CHEM120",645,true]],"check":"normal control 5","expected":[["s5","CHEM120","MATH101H",645,true],["s3","PHYS110","BIO130",735,true],["s1","MATH101","CHEM120",675,true]],"passed":false},{"actual":[["s3","BIO130","MATH101H",945,false],["s4","CHEM120","MATH101",975,false]],"check":"normal control 6","expected":[["s3","BIO130","MATH101H",945,false],["s4","CHEM120","MATH101",1035,false]],"passed":false},{"actual":[["s3","MATH101","PHYS110",795,true]],"check":"normal control 7","expected":[["s3","MATH101","PHYS110",795,true]],"passed":true},{"actual":[["s3","HIST140","MATH101H",705,true]],"check":"normal control 8","expected":[["s3","HIST140","MATH101H",705,true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: supervised break 1\", \"actual\": [[\"s1\", \"B\", \"A\", 735, true]], \"expected\": [[\"s1\", \"B\", \"A\", 795, true]], \"passed\": false}, {\"check\": \"regression variant: supervised break 2\", \"actual\": [[\"s1\", \"MATH101H\", \"ECON150\", 945, true], [\"s5\", \"MATH101\", \"CHEM120\", 915, true], [\"s1\", \"BIO130\", \"ECON150\", 945, true]], \"expected\": [[\"s1\", \"MATH101H\", \"ECON150\", 1035, false], [\"s5\", \"MATH101\", \"CHEM120\", 975, true], [\"s1\", \"BIO130\", \"ECON150\", 945, true]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"s3\", \"BIO130\", \"PHYS110\", 885, true], [\"s1\", \"HIST140\", \"ECON150\", 885, true]], \"expected\": [[\"s3\", \"BIO130\", \"PHYS110\", 975, false], [\"s1\", \"HIST140\", \"ECON150\", 915, true]], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [[\"s1\", \"A\", \"B\", 915, true]], \"expected\": [[\"s1\", \"A\", \"B\", 1035, false]], \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": [[\"s5\", \"CHEM120\", \"MATH101H\", 645, true], [\"s3\", \"PHYS110\", \"BIO130\", 645, true], [\"s1\", \"MATH101\", \"CHEM120\", 645, true]], \"expected\": [[\"s5\", \"CHEM120\", \"MATH101H\", 645, true], [\"s3\", \"PHYS110\", \"BIO130\", 735, true], [\"s1\", \"MATH101\", \"CHEM120\", 675, true]], \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": [[\"s3\", \"BIO130\", \"MATH101H\", 945, false], [\"s4\", \"CHEM120\", \"MATH101\", 975, false]], \"expected\": [[\"s3\", \"BIO130\", \"MATH101H\", 945, false], [\"s4\", \"CHEM120\", \"MATH101\", 1035, false]], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"s3\", \"MATH101\", \"PHYS110\", 795, true]], \"expected\": [[\"s3\", \"MATH101\", \"PHYS110\", 795, true]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"s3\", \"HIST140\", \"MATH101H\", 705, true]], \"expected\": [[\"s3\", \"HIST140\", \"MATH101H\", 705, true]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.272,"exit_code":1,"observations":[{"actual":[["s1","B","A",780,true]],"check":"regression: supervised break 1","expected":[["s1","B","A",795,true]],"passed":false},{"actual":[["s1","MATH101H","ECON150",1020,false],["s5","MATH101","CHEM120",960,true],["s1","BIO130","ECON150",930,true]],"check":"regression variant: supervised break 2","expected":[["s1","MATH101H","ECON150",1035,false],["s5","MATH101","CHEM120",975,true],["s1","BIO130","ECON150",945,true]],"passed":false},{"actual":[["s3","BIO130","PHYS110",960,false],["s1","HIST140","ECON150",900,true]],"check":"partial repair guard 3","expected":[["s3","BIO130","PHYS110",975,false],["s1","HIST140","ECON150",915,true]],"passed":false},{"actual":[["s1","A","B",1020,true]],"check":"boundary control 4","expected":[["s1","A","B",1035,false]],"passed":false},{"actual":[["s5","CHEM120","MATH101H",630,true],["s3","PHYS110","BIO130",720,true],["s1","MATH101","CHEM120",660,true]],"check":"normal control 5","expected":[["s5","CHEM120","MATH101H",645,true],["s3","PHYS110","BIO130",735,true],["s1","MATH101","CHEM120",675,true]],"passed":false},{"actual":[["s3","BIO130","MATH101H",930,true],["s4","CHEM120","MATH101",1020,false]],"check":"normal control 6","expected":[["s3","BIO130","MATH101H",945,false],["s4","CHEM120","MATH101",1035,false]],"passed":false},{"actual":[["s3","MATH101","PHYS110",780,true]],"check":"normal control 7","expected":[["s3","MATH101","PHYS110",795,true]],"passed":false},{"actual":[["s3","HIST140","MATH101H",690,true]],"check":"normal control 8","expected":[["s3","HIST140","MATH101H",705,true]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: supervised break 1\", \"actual\": [[\"s1\", \"B\", \"A\", 780, true]], \"expected\": [[\"s1\", \"B\", \"A\", 795, true]], \"passed\": false}, {\"check\": \"regression variant: supervised break 2\", \"actual\": [[\"s1\", \"MATH101H\", \"ECON150\", 1020, false], [\"s5\", \"MATH101\", \"CHEM120\", 960, true], [\"s1\", \"BIO130\", \"ECON150\", 930, true]], \"expected\": [[\"s1\", \"MATH101H\", \"ECON150\", 1035, false], [\"s5\", \"MATH101\", \"CHEM120\", 975, true], [\"s1\", \"BIO130\", \"ECON150\", 945, true]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"s3\", \"BIO130\", \"PHYS110\", 960, false], [\"s1\", \"HIST140\", \"ECON150\", 900, true]], \"expected\": [[\"s3\", \"BIO130\", \"PHYS110\", 975, false], [\"s1\", \"HIST140\", \"ECON150\", 915, true]], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [[\"s1\", \"A\", \"B\", 1020, true]], \"expected\": [[\"s1\", \"A\", \"B\", 1035, false]], \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": [[\"s5\", \"CHEM120\", \"MATH101H\", 630, true], [\"s3\", \"PHYS110\", \"BIO130\", 720, true], [\"s1\", \"MATH101\", \"CHEM120\", 660, true]], \"expected\": [[\"s5\", \"CHEM120\", \"MATH101H\", 645, true], [\"s3\", \"PHYS110\", \"BIO130\", 735, true], [\"s1\", \"MATH101\", \"CHEM120\", 675, true]], \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": [[\"s3\", \"BIO130\", \"MATH101H\", 930, true], [\"s4\", \"CHEM120\", \"MATH101\", 1020, false]], \"expected\": [[\"s3\", \"BIO130\", \"MATH101H\", 945, false], [\"s4\", \"CHEM120\", \"MATH101\", 1035, false]], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"s3\", \"MATH101\", \"PHYS110\", 780, true]], \"expected\": [[\"s3\", \"MATH101\", \"PHYS110\", 795, true]], \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": [[\"s3\", \"HIST140\", \"MATH101H\", 690, true]], \"expected\": [[\"s3\", \"HIST140\", \"MATH101H\", 705, true]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.415,"exit_code":0,"observations":[{"actual":[["s1","B","A",795,true]],"check":"regression: supervised break 1","expected":[["s1","B","A",795,true]],"passed":true},{"actual":[["s1","MATH101H","ECON150",1035,false],["s5","MATH101","CHEM120",975,true],["s1","BIO130","ECON150",945,true]],"check":"regression variant: supervised break 2","expected":[["s1","MATH101H","ECON150",1035,false],["s5","MATH101","CHEM120",975,true],["s1","BIO130","ECON150",945,true]],"passed":true},{"actual":[["s3","BIO130","PHYS110",975,false],["s1","HIST140","ECON150",915,true]],"check":"partial repair guard 3","expected":[["s3","BIO130","PHYS110",975,false],["s1","HIST140","ECON150",915,true]],"passed":true},{"actual":[["s1","A","B",1035,false]],"check":"boundary control 4","expected":[["s1","A","B",1035,false]],"passed":true},{"actual":[["s5","CHEM120","MATH101H",645,true],["s3","PHYS110","BIO130",735,true],["s1","MATH101","CHEM120",675,true]],"check":"normal control 5","expected":[["s5","CHEM120","MATH101H",645,true],["s3","PHYS110","BIO130",735,true],["s1","MATH101","CHEM120",675,true]],"passed":true},{"actual":[["s3","BIO130","MATH101H",945,false],["s4","CHEM120","MATH101",1035,false]],"check":"normal control 6","expected":[["s3","BIO130","MATH101H",945,false],["s4","CHEM120","MATH101",1035,false]],"passed":true},{"actual":[["s3","MATH101","PHYS110",795,true]],"check":"normal control 7","expected":[["s3","MATH101","PHYS110",795,true]],"passed":true},{"actual":[["s3","HIST140","MATH101H",705,true]],"check":"normal control 8","expected":[["s3","HIST140","MATH101H",705,true]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: supervised break 1\", \"actual\": [[\"s1\", \"B\", \"A\", 795, true]], \"expected\": [[\"s1\", \"B\", \"A\", 795, true]], \"passed\": true}, {\"check\": \"regression variant: supervised break 2\", \"actual\": [[\"s1\", \"MATH101H\", \"ECON150\", 1035, false], [\"s5\", \"MATH101\", \"CHEM120\", 975, true], [\"s1\", \"BIO130\", \"ECON150\", 945, true]], \"expected\": [[\"s1\", \"MATH101H\", \"ECON150\", 1035, false], [\"s5\", \"MATH101\", \"CHEM120\", 975, true], [\"s1\", \"BIO130\", \"ECON150\", 945, true]], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"s3\", \"BIO130\", \"PHYS110\", 975, false], [\"s1\", \"HIST140\", \"ECON150\", 915, true]], \"expected\": [[\"s3\", \"BIO130\", \"PHYS110\", 975, false], [\"s1\", \"HIST140\", \"ECON150\", 915, true]], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [[\"s1\", \"A\", \"B\", 1035, false]], \"expected\": [[\"s1\", \"A\", \"B\", 1035, false]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[\"s5\", \"CHEM120\", \"MATH101H\", 645, true], [\"s3\", \"PHYS110\", \"BIO130\", 735, true], [\"s1\", \"MATH101\", \"CHEM120\", 675, true]], \"expected\": [[\"s5\", \"CHEM120\", \"MATH101H\", 645, true], [\"s3\", \"PHYS110\", \"BIO130\", 735, true], [\"s1\", \"MATH101\", \"CHEM120\", 675, true]], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"s3\", \"BIO130\", \"MATH101H\", 945, false], [\"s4\", \"CHEM120\", \"MATH101\", 1035, false]], \"expected\": [[\"s3\", \"BIO130\", \"MATH101H\", 945, false], [\"s4\", \"CHEM120\", \"MATH101\", 1035, false]], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[\"s3\", \"MATH101\", \"PHYS110\", 795, true]], \"expected\": [[\"s3\", \"MATH101\", \"PHYS110\", 795, true]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"s3\", \"HIST140\", \"MATH101H\", 705, true]], \"expected\": [[\"s3\", \"HIST140\", \"MATH101H\", 705, true]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}