{"abstract":"Dropped exams are not reported while stray exams are.","category":"Exam timetabling constraints","checks":8,"contract":"exams = required exam ids; assign [exam, room, period]. Return missing (required but unassigned), unknown (assigned but not required) and conflict (assigned to more than one distinct period; a split across rooms in one period is fine), each sorted.","evaluation_group":"w2-exam-timetabling-constraints-timetable-completeness","failed_approach":"The symmetric difference mixes missing and unknown exams.","family":"w2-exam-timetabling-constraints-timetable-completeness-missing-direction","id":"FA-94816","implementations":{"attempt":{"sha256":"dff0a5727bafe634d0141024ec1caefadb065aec3433e8d9cd94182922c25c44","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exams, assign):\n    req = set(exams)\n    per = {}\n    for ex, r, p in assign:\n        per.setdefault(ex, set()).add(p)\n    return {'missing': sorted(req ^ set(per)), 'unknown': sorted(set(per) - req),\n            'conflict': sorted(ex for ex in per if len(per[ex]) > 1)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: missing direction 1', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('regression variant: missing direction 2',\n   [['HIST140', 'MATH101H', 'BIO130', 'PHYS110', 'CHEM120', 'ECON150'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 0], ['MATH101', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'HIST140', 'MATH101H'], 'unknown': ['MATH101'], 'conflict': []}),\n  ('boundary control 3', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 4',\n   [['HIST140', 'PHYS110', 'MATH101H', 'MATH101', 'BIO130', 'CHEM120'],\n    [['BIO130', 'R2', 1], ['MATH101H', 'R1', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['CHEM120', 'HIST140', 'MATH101', 'PHYS110'], 'unknown': [], 'conflict': ['MATH101H']}),\n  ('normal control 5',\n   [['MATH101', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['PHYS110', 'R1', 0], ['MATH101', 'R1', 0], ['MATH101H', 'R2', 2]]],\n   {'missing': ['ECON150'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101H', 'MATH101', 'CHEM120', 'HIST140', 'BIO130'],\n    [['MATH101', 'R2', 2], ['BIO130', 'R1', 1], ['CHEM120', 'R2', 1], ['BIO130', 'R2', 1]]],\n   {'missing': ['HIST140', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'MATH101', 'HIST140', 'ECON150', 'MATH101H'],\n    [['HIST140', 'R1', 2], ['CHEM120', 'R1', 2], ['ECON150', 'R2', 2], ['HIST140', 'R2', 1],\n     ['PHYS110', 'R1', 0]]],\n   {'missing': ['MATH101', 'MATH101H'], 'unknown': ['CHEM120'], 'conflict': ['HIST140']}),\n  ('normal control 8', [['CHEM120', 'MATH101', 'ECON150'], [['BIO130', 'R1', 1], ['MATH101', 'R1', 0]]],\n   {'missing': ['CHEM120', 'ECON150'], 'unknown': ['BIO130'], 'conflict': []})],\n [('regression: missing direction 1', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('regression variant: missing direction 2',\n   [['PHYS110', 'MATH101H', 'HIST140', 'CHEM120'],\n    [['PHYS110', 'R2', 1], ['BIO130', 'R2', 0], ['PHYS110', 'R2', 1], ['MATH101H', 'R1', 0],\n     ['MATH101', 'R1', 2], ['ECON150', 'R2', 1], ['HIST140', 'R1', 0]]],\n   {'missing': ['CHEM120'], 'unknown': ['BIO130', 'ECON150', 'MATH101'], 'conflict': []}),\n  ('partial repair guard 3',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'], [['MATH101H', 'R2', 0], ['PHYS110', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101'], 'unknown': ['MATH101H'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 5',\n   [['ECON150', 'HIST140'], [['HIST140', 'R1', 1], ['CHEM120', 'R2', 1], ['PHYS110', 'R1', 1]]],\n   {'missing': ['ECON150'], 'unknown': ['CHEM120', 'PHYS110'], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101', 'CHEM120'], [['CHEM120', 'R1', 2], ['BIO130', 'R2', 1], ['PHYS110', 'R2', 2]]],\n   {'missing': ['MATH101'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []}),\n  ('normal control 7',\n   [['BIO130', 'MATH101'],\n    [['CHEM120', 'R1', 0], ['MATH101', 'R1', 1], ['MATH101H', 'R1', 0], ['BIO130', 'R1', 2],\n     ['CHEM120', 'R2', 0], ['MATH101', 'R1', 0], ['BIO130', 'R1', 2]]],\n   {'missing': [], 'unknown': ['CHEM120', 'MATH101H'], 'conflict': ['MATH101']}),\n  ('normal control 8',\n   [['MATH101', 'MATH101H'],\n    [['ECON150', 'R1', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R1', 0], ['PHYS110', 'R1', 1],\n     ['ECON150', 'R1', 1], ['PHYS110', 'R1', 2]]],\n   {'missing': [], 'unknown': ['ECON150', 'PHYS110'], 'conflict': ['PHYS110']})],\n [('regression: missing direction 1',\n   [['MATH101H', 'MATH101', 'ECON150', 'HIST140'],\n    [['HIST140', 'R1', 1], ['BIO130', 'R1', 1], ['CHEM120', 'R1', 1], ['CHEM120', 'R1', 0],\n     ['MATH101H', 'R1', 0], ['HIST140', 'R2', 1]]],\n   {'missing': ['ECON150', 'MATH101'], 'unknown': ['BIO130', 'CHEM120'], 'conflict': ['CHEM120']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'MATH101H', 'PHYS110', 'MATH101', 'HIST140'],\n    [['MATH101', 'R1', 0], ['HIST140', 'R2', 1], ['ECON150', 'R1', 1], ['ECON150', 'R1', 0],\n     ['BIO130', 'R1', 0]]],\n   {'missing': ['CHEM120', 'MATH101H', 'PHYS110'],\n    'unknown': ['BIO130', 'ECON150'],\n    'conflict': ['ECON150']}),\n  ('partial repair guard 3',\n   [['ECON150', 'HIST140', 'PHYS110', 'MATH101'],\n    [['CHEM120', 'R2', 0], ['CHEM120', 'R1', 2], ['HIST140', 'R1', 0]]],\n   {'missing': ['ECON150', 'MATH101', 'PHYS110'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['MATH101', 'R1', 1], ['HIST140', 'R1', 1], ['MATH101H', 'R1', 2], ['HIST140', 'R1', 0],\n     ['HIST140', 'R2', 0], ['CHEM120', 'R2', 2], ['HIST140', 'R1', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 7',\n   [['MATH101H', 'HIST140', 'CHEM120', 'MATH101', 'PHYS110', 'BIO130'],\n    [['ECON150', 'R2', 1], ['HIST140', 'R2', 1], ['CHEM120', 'R2', 2]]],\n   {'missing': ['BIO130', 'MATH101', 'MATH101H', 'PHYS110'], 'unknown': ['ECON150'], 'conflict': []}),\n  ('normal control 8',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'],\n    [['CHEM120', 'R1', 2], ['MATH101', 'R1', 0], ['HIST140', 'R2', 2], ['BIO130', 'R1', 2],\n     ['ECON150', 'R2', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['BIO130', 'HIST140', 'MATH101H'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['HIST140', 'MATH101'],\n    [['HIST140', 'R1', 0], ['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 1]]],\n   {'missing': ['MATH101'], 'unknown': ['MATH101H'], 'conflict': ['MATH101H']}),\n  ('regression variant: missing direction 2',\n   [['BIO130', 'HIST140', 'ECON150', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['ECON150', 'R1', 2], ['PHYS110', 'R2', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R2', 0], ['HIST140', 'R1', 0]]],\n   {'missing': ['BIO130', 'MATH101'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('partial repair guard 3',\n   [['MATH101', 'PHYS110', 'BIO130'], [['MATH101', 'R1', 2], ['BIO130', 'R1', 2], ['HIST140', 'R2', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('boundary control 5', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 6',\n   [['PHYS110', 'MATH101', 'HIST140', 'MATH101H', 'BIO130', 'CHEM120'], [['PHYS110', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'HIST140', 'MATH101', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'BIO130', 'MATH101', 'ECON150', 'HIST140', 'CHEM120'],\n    [['CHEM120', 'R1', 1], ['CHEM120', 'R1', 1], ['ECON150', 'R1', 1], ['MATH101', 'R1', 1],\n     ['BIO130', 'R2', 2], ['BIO130', 'R2', 2], ['ECON150', 'R2', 2]]],\n   {'missing': ['HIST140', 'PHYS110'], 'unknown': [], 'conflict': ['ECON150']}),\n  ('normal control 8',\n   [['PHYS110', 'HIST140', 'MATH101H'],\n    [['MATH101H', 'R2', 2], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0], ['CHEM120', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['CHEM120', 'ECON150'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['MATH101', 'CHEM120', 'HIST140', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['BIO130', 'R1', 2], ['HIST140', 'R2', 1], ['BIO130', 'R1', 0], ['MATH101', 'R1', 1],\n     ['ECON150', 'R2', 0], ['MATH101H', 'R1', 2]]],\n   {'missing': ['CHEM120', 'PHYS110'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'ECON150', 'PHYS110', 'BIO130'], [['ECON150', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'PHYS110'], 'unknown': [], 'conflict': []}),\n  ('partial repair guard 3',\n   [['PHYS110', 'ECON150', 'MATH101H', 'CHEM120', 'MATH101'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 2], ['BIO130', 'R2', 0], ['BIO130', 'R1', 2]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101', 'MATH101H'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101H', 'MATH101'],\n    [['PHYS110', 'R2', 1], ['MATH101', 'R1', 1], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0],\n     ['MATH101', 'R2', 2], ['CHEM120', 'R2', 2], ['CHEM120', 'R2', 2]]],\n   {'missing': ['MATH101H'], 'unknown': ['ECON150', 'HIST140', 'PHYS110'], 'conflict': ['MATH101']}),\n  ('normal control 7',\n   [['BIO130', 'PHYS110'],\n    [['HIST140', 'R1', 2], ['HIST140', 'R1', 1], ['PHYS110', 'R1', 0], ['CHEM120', 'R1', 2]]],\n   {'missing': ['BIO130'], 'unknown': ['CHEM120', 'HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 8',\n   [['HIST140', 'ECON150'],\n    [['PHYS110', 'R1', 0], ['BIO130', 'R1', 1], ['PHYS110', 'R1', 0], ['PHYS110', 'R2', 0]]],\n   {'missing': ['ECON150', 'HIST140'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []})]]\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":"47c6d3831884f9626cd14a07c2d4578b54572618ba950c12f6eaab0f4ab3e438","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exams, assign):\n    req = set(exams)\n    per = {}\n    for ex, r, p in assign:\n        per.setdefault(ex, set()).add(p)\n    return {'missing': sorted(set(per) - req), 'unknown': sorted(set(per) - req),\n            'conflict': sorted(ex for ex in per if len(per[ex]) > 1)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: missing direction 1', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('regression variant: missing direction 2',\n   [['HIST140', 'MATH101H', 'BIO130', 'PHYS110', 'CHEM120', 'ECON150'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 0], ['MATH101', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'HIST140', 'MATH101H'], 'unknown': ['MATH101'], 'conflict': []}),\n  ('boundary control 3', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 4',\n   [['HIST140', 'PHYS110', 'MATH101H', 'MATH101', 'BIO130', 'CHEM120'],\n    [['BIO130', 'R2', 1], ['MATH101H', 'R1', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['CHEM120', 'HIST140', 'MATH101', 'PHYS110'], 'unknown': [], 'conflict': ['MATH101H']}),\n  ('normal control 5',\n   [['MATH101', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['PHYS110', 'R1', 0], ['MATH101', 'R1', 0], ['MATH101H', 'R2', 2]]],\n   {'missing': ['ECON150'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101H', 'MATH101', 'CHEM120', 'HIST140', 'BIO130'],\n    [['MATH101', 'R2', 2], ['BIO130', 'R1', 1], ['CHEM120', 'R2', 1], ['BIO130', 'R2', 1]]],\n   {'missing': ['HIST140', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'MATH101', 'HIST140', 'ECON150', 'MATH101H'],\n    [['HIST140', 'R1', 2], ['CHEM120', 'R1', 2], ['ECON150', 'R2', 2], ['HIST140', 'R2', 1],\n     ['PHYS110', 'R1', 0]]],\n   {'missing': ['MATH101', 'MATH101H'], 'unknown': ['CHEM120'], 'conflict': ['HIST140']}),\n  ('normal control 8', [['CHEM120', 'MATH101', 'ECON150'], [['BIO130', 'R1', 1], ['MATH101', 'R1', 0]]],\n   {'missing': ['CHEM120', 'ECON150'], 'unknown': ['BIO130'], 'conflict': []})],\n [('regression: missing direction 1', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('regression variant: missing direction 2',\n   [['PHYS110', 'MATH101H', 'HIST140', 'CHEM120'],\n    [['PHYS110', 'R2', 1], ['BIO130', 'R2', 0], ['PHYS110', 'R2', 1], ['MATH101H', 'R1', 0],\n     ['MATH101', 'R1', 2], ['ECON150', 'R2', 1], ['HIST140', 'R1', 0]]],\n   {'missing': ['CHEM120'], 'unknown': ['BIO130', 'ECON150', 'MATH101'], 'conflict': []}),\n  ('partial repair guard 3',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'], [['MATH101H', 'R2', 0], ['PHYS110', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101'], 'unknown': ['MATH101H'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 5',\n   [['ECON150', 'HIST140'], [['HIST140', 'R1', 1], ['CHEM120', 'R2', 1], ['PHYS110', 'R1', 1]]],\n   {'missing': ['ECON150'], 'unknown': ['CHEM120', 'PHYS110'], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101', 'CHEM120'], [['CHEM120', 'R1', 2], ['BIO130', 'R2', 1], ['PHYS110', 'R2', 2]]],\n   {'missing': ['MATH101'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []}),\n  ('normal control 7',\n   [['BIO130', 'MATH101'],\n    [['CHEM120', 'R1', 0], ['MATH101', 'R1', 1], ['MATH101H', 'R1', 0], ['BIO130', 'R1', 2],\n     ['CHEM120', 'R2', 0], ['MATH101', 'R1', 0], ['BIO130', 'R1', 2]]],\n   {'missing': [], 'unknown': ['CHEM120', 'MATH101H'], 'conflict': ['MATH101']}),\n  ('normal control 8',\n   [['MATH101', 'MATH101H'],\n    [['ECON150', 'R1', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R1', 0], ['PHYS110', 'R1', 1],\n     ['ECON150', 'R1', 1], ['PHYS110', 'R1', 2]]],\n   {'missing': [], 'unknown': ['ECON150', 'PHYS110'], 'conflict': ['PHYS110']})],\n [('regression: missing direction 1',\n   [['MATH101H', 'MATH101', 'ECON150', 'HIST140'],\n    [['HIST140', 'R1', 1], ['BIO130', 'R1', 1], ['CHEM120', 'R1', 1], ['CHEM120', 'R1', 0],\n     ['MATH101H', 'R1', 0], ['HIST140', 'R2', 1]]],\n   {'missing': ['ECON150', 'MATH101'], 'unknown': ['BIO130', 'CHEM120'], 'conflict': ['CHEM120']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'MATH101H', 'PHYS110', 'MATH101', 'HIST140'],\n    [['MATH101', 'R1', 0], ['HIST140', 'R2', 1], ['ECON150', 'R1', 1], ['ECON150', 'R1', 0],\n     ['BIO130', 'R1', 0]]],\n   {'missing': ['CHEM120', 'MATH101H', 'PHYS110'],\n    'unknown': ['BIO130', 'ECON150'],\n    'conflict': ['ECON150']}),\n  ('partial repair guard 3',\n   [['ECON150', 'HIST140', 'PHYS110', 'MATH101'],\n    [['CHEM120', 'R2', 0], ['CHEM120', 'R1', 2], ['HIST140', 'R1', 0]]],\n   {'missing': ['ECON150', 'MATH101', 'PHYS110'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['MATH101', 'R1', 1], ['HIST140', 'R1', 1], ['MATH101H', 'R1', 2], ['HIST140', 'R1', 0],\n     ['HIST140', 'R2', 0], ['CHEM120', 'R2', 2], ['HIST140', 'R1', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 7',\n   [['MATH101H', 'HIST140', 'CHEM120', 'MATH101', 'PHYS110', 'BIO130'],\n    [['ECON150', 'R2', 1], ['HIST140', 'R2', 1], ['CHEM120', 'R2', 2]]],\n   {'missing': ['BIO130', 'MATH101', 'MATH101H', 'PHYS110'], 'unknown': ['ECON150'], 'conflict': []}),\n  ('normal control 8',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'],\n    [['CHEM120', 'R1', 2], ['MATH101', 'R1', 0], ['HIST140', 'R2', 2], ['BIO130', 'R1', 2],\n     ['ECON150', 'R2', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['BIO130', 'HIST140', 'MATH101H'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['HIST140', 'MATH101'],\n    [['HIST140', 'R1', 0], ['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 1]]],\n   {'missing': ['MATH101'], 'unknown': ['MATH101H'], 'conflict': ['MATH101H']}),\n  ('regression variant: missing direction 2',\n   [['BIO130', 'HIST140', 'ECON150', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['ECON150', 'R1', 2], ['PHYS110', 'R2', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R2', 0], ['HIST140', 'R1', 0]]],\n   {'missing': ['BIO130', 'MATH101'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('partial repair guard 3',\n   [['MATH101', 'PHYS110', 'BIO130'], [['MATH101', 'R1', 2], ['BIO130', 'R1', 2], ['HIST140', 'R2', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('boundary control 5', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 6',\n   [['PHYS110', 'MATH101', 'HIST140', 'MATH101H', 'BIO130', 'CHEM120'], [['PHYS110', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'HIST140', 'MATH101', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'BIO130', 'MATH101', 'ECON150', 'HIST140', 'CHEM120'],\n    [['CHEM120', 'R1', 1], ['CHEM120', 'R1', 1], ['ECON150', 'R1', 1], ['MATH101', 'R1', 1],\n     ['BIO130', 'R2', 2], ['BIO130', 'R2', 2], ['ECON150', 'R2', 2]]],\n   {'missing': ['HIST140', 'PHYS110'], 'unknown': [], 'conflict': ['ECON150']}),\n  ('normal control 8',\n   [['PHYS110', 'HIST140', 'MATH101H'],\n    [['MATH101H', 'R2', 2], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0], ['CHEM120', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['CHEM120', 'ECON150'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['MATH101', 'CHEM120', 'HIST140', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['BIO130', 'R1', 2], ['HIST140', 'R2', 1], ['BIO130', 'R1', 0], ['MATH101', 'R1', 1],\n     ['ECON150', 'R2', 0], ['MATH101H', 'R1', 2]]],\n   {'missing': ['CHEM120', 'PHYS110'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'ECON150', 'PHYS110', 'BIO130'], [['ECON150', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'PHYS110'], 'unknown': [], 'conflict': []}),\n  ('partial repair guard 3',\n   [['PHYS110', 'ECON150', 'MATH101H', 'CHEM120', 'MATH101'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 2], ['BIO130', 'R2', 0], ['BIO130', 'R1', 2]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101', 'MATH101H'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101H', 'MATH101'],\n    [['PHYS110', 'R2', 1], ['MATH101', 'R1', 1], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0],\n     ['MATH101', 'R2', 2], ['CHEM120', 'R2', 2], ['CHEM120', 'R2', 2]]],\n   {'missing': ['MATH101H'], 'unknown': ['ECON150', 'HIST140', 'PHYS110'], 'conflict': ['MATH101']}),\n  ('normal control 7',\n   [['BIO130', 'PHYS110'],\n    [['HIST140', 'R1', 2], ['HIST140', 'R1', 1], ['PHYS110', 'R1', 0], ['CHEM120', 'R1', 2]]],\n   {'missing': ['BIO130'], 'unknown': ['CHEM120', 'HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 8',\n   [['HIST140', 'ECON150'],\n    [['PHYS110', 'R1', 0], ['BIO130', 'R1', 1], ['PHYS110', 'R1', 0], ['PHYS110', 'R2', 0]]],\n   {'missing': ['ECON150', 'HIST140'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []})]]\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":"c0e1bf0313825f182781a2a7cd30796d92d06e9fbeab02bbef3b32dddba74961","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(exams, assign):\n    req = set(exams)\n    per = {}\n    for ex, r, p in assign:\n        per.setdefault(ex, set()).add(p)\n    return {'missing': sorted(req - set(per)), 'unknown': sorted(set(per) - req),\n            'conflict': sorted(ex for ex in per if len(per[ex]) > 1)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: missing direction 1', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('regression variant: missing direction 2',\n   [['HIST140', 'MATH101H', 'BIO130', 'PHYS110', 'CHEM120', 'ECON150'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 0], ['MATH101', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'HIST140', 'MATH101H'], 'unknown': ['MATH101'], 'conflict': []}),\n  ('boundary control 3', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 4',\n   [['HIST140', 'PHYS110', 'MATH101H', 'MATH101', 'BIO130', 'CHEM120'],\n    [['BIO130', 'R2', 1], ['MATH101H', 'R1', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['CHEM120', 'HIST140', 'MATH101', 'PHYS110'], 'unknown': [], 'conflict': ['MATH101H']}),\n  ('normal control 5',\n   [['MATH101', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['PHYS110', 'R1', 0], ['MATH101', 'R1', 0], ['MATH101H', 'R2', 2]]],\n   {'missing': ['ECON150'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101H', 'MATH101', 'CHEM120', 'HIST140', 'BIO130'],\n    [['MATH101', 'R2', 2], ['BIO130', 'R1', 1], ['CHEM120', 'R2', 1], ['BIO130', 'R2', 1]]],\n   {'missing': ['HIST140', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'MATH101', 'HIST140', 'ECON150', 'MATH101H'],\n    [['HIST140', 'R1', 2], ['CHEM120', 'R1', 2], ['ECON150', 'R2', 2], ['HIST140', 'R2', 1],\n     ['PHYS110', 'R1', 0]]],\n   {'missing': ['MATH101', 'MATH101H'], 'unknown': ['CHEM120'], 'conflict': ['HIST140']}),\n  ('normal control 8', [['CHEM120', 'MATH101', 'ECON150'], [['BIO130', 'R1', 1], ['MATH101', 'R1', 0]]],\n   {'missing': ['CHEM120', 'ECON150'], 'unknown': ['BIO130'], 'conflict': []})],\n [('regression: missing direction 1', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('regression variant: missing direction 2',\n   [['PHYS110', 'MATH101H', 'HIST140', 'CHEM120'],\n    [['PHYS110', 'R2', 1], ['BIO130', 'R2', 0], ['PHYS110', 'R2', 1], ['MATH101H', 'R1', 0],\n     ['MATH101', 'R1', 2], ['ECON150', 'R2', 1], ['HIST140', 'R1', 0]]],\n   {'missing': ['CHEM120'], 'unknown': ['BIO130', 'ECON150', 'MATH101'], 'conflict': []}),\n  ('partial repair guard 3',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'], [['MATH101H', 'R2', 0], ['PHYS110', 'R1', 1]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101'], 'unknown': ['MATH101H'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 5',\n   [['ECON150', 'HIST140'], [['HIST140', 'R1', 1], ['CHEM120', 'R2', 1], ['PHYS110', 'R1', 1]]],\n   {'missing': ['ECON150'], 'unknown': ['CHEM120', 'PHYS110'], 'conflict': []}),\n  ('normal control 6',\n   [['MATH101', 'CHEM120'], [['CHEM120', 'R1', 2], ['BIO130', 'R2', 1], ['PHYS110', 'R2', 2]]],\n   {'missing': ['MATH101'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []}),\n  ('normal control 7',\n   [['BIO130', 'MATH101'],\n    [['CHEM120', 'R1', 0], ['MATH101', 'R1', 1], ['MATH101H', 'R1', 0], ['BIO130', 'R1', 2],\n     ['CHEM120', 'R2', 0], ['MATH101', 'R1', 0], ['BIO130', 'R1', 2]]],\n   {'missing': [], 'unknown': ['CHEM120', 'MATH101H'], 'conflict': ['MATH101']}),\n  ('normal control 8',\n   [['MATH101', 'MATH101H'],\n    [['ECON150', 'R1', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R1', 0], ['PHYS110', 'R1', 1],\n     ['ECON150', 'R1', 1], ['PHYS110', 'R1', 2]]],\n   {'missing': [], 'unknown': ['ECON150', 'PHYS110'], 'conflict': ['PHYS110']})],\n [('regression: missing direction 1',\n   [['MATH101H', 'MATH101', 'ECON150', 'HIST140'],\n    [['HIST140', 'R1', 1], ['BIO130', 'R1', 1], ['CHEM120', 'R1', 1], ['CHEM120', 'R1', 0],\n     ['MATH101H', 'R1', 0], ['HIST140', 'R2', 1]]],\n   {'missing': ['ECON150', 'MATH101'], 'unknown': ['BIO130', 'CHEM120'], 'conflict': ['CHEM120']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'MATH101H', 'PHYS110', 'MATH101', 'HIST140'],\n    [['MATH101', 'R1', 0], ['HIST140', 'R2', 1], ['ECON150', 'R1', 1], ['ECON150', 'R1', 0],\n     ['BIO130', 'R1', 0]]],\n   {'missing': ['CHEM120', 'MATH101H', 'PHYS110'],\n    'unknown': ['BIO130', 'ECON150'],\n    'conflict': ['ECON150']}),\n  ('partial repair guard 3',\n   [['ECON150', 'HIST140', 'PHYS110', 'MATH101'],\n    [['CHEM120', 'R2', 0], ['CHEM120', 'R1', 2], ['HIST140', 'R1', 0]]],\n   {'missing': ['ECON150', 'MATH101', 'PHYS110'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['MATH101', 'R1', 1], ['HIST140', 'R1', 1], ['MATH101H', 'R1', 2], ['HIST140', 'R1', 0],\n     ['HIST140', 'R2', 0], ['CHEM120', 'R2', 2], ['HIST140', 'R1', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 7',\n   [['MATH101H', 'HIST140', 'CHEM120', 'MATH101', 'PHYS110', 'BIO130'],\n    [['ECON150', 'R2', 1], ['HIST140', 'R2', 1], ['CHEM120', 'R2', 2]]],\n   {'missing': ['BIO130', 'MATH101', 'MATH101H', 'PHYS110'], 'unknown': ['ECON150'], 'conflict': []}),\n  ('normal control 8',\n   [['CHEM120', 'PHYS110', 'ECON150', 'MATH101'],\n    [['CHEM120', 'R1', 2], ['MATH101', 'R1', 0], ['HIST140', 'R2', 2], ['BIO130', 'R1', 2],\n     ['ECON150', 'R2', 2], ['MATH101H', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['BIO130', 'HIST140', 'MATH101H'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['HIST140', 'MATH101'],\n    [['HIST140', 'R1', 0], ['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 1]]],\n   {'missing': ['MATH101'], 'unknown': ['MATH101H'], 'conflict': ['MATH101H']}),\n  ('regression variant: missing direction 2',\n   [['BIO130', 'HIST140', 'ECON150', 'MATH101', 'PHYS110', 'MATH101H'],\n    [['ECON150', 'R1', 2], ['PHYS110', 'R2', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R2', 0], ['HIST140', 'R1', 0]]],\n   {'missing': ['BIO130', 'MATH101'], 'unknown': ['CHEM120'], 'conflict': ['CHEM120']}),\n  ('partial repair guard 3',\n   [['MATH101', 'PHYS110', 'BIO130'], [['MATH101', 'R1', 2], ['BIO130', 'R1', 2], ['HIST140', 'R2', 2]]],\n   {'missing': ['PHYS110'], 'unknown': ['HIST140'], 'conflict': []}),\n  ('boundary control 4', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('boundary control 5', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('normal control 6',\n   [['PHYS110', 'MATH101', 'HIST140', 'MATH101H', 'BIO130', 'CHEM120'], [['PHYS110', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'HIST140', 'MATH101', 'MATH101H'], 'unknown': [], 'conflict': []}),\n  ('normal control 7',\n   [['PHYS110', 'BIO130', 'MATH101', 'ECON150', 'HIST140', 'CHEM120'],\n    [['CHEM120', 'R1', 1], ['CHEM120', 'R1', 1], ['ECON150', 'R1', 1], ['MATH101', 'R1', 1],\n     ['BIO130', 'R2', 2], ['BIO130', 'R2', 2], ['ECON150', 'R2', 2]]],\n   {'missing': ['HIST140', 'PHYS110'], 'unknown': [], 'conflict': ['ECON150']}),\n  ('normal control 8',\n   [['PHYS110', 'HIST140', 'MATH101H'],\n    [['MATH101H', 'R2', 2], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0], ['CHEM120', 'R2', 0]]],\n   {'missing': ['PHYS110'], 'unknown': ['CHEM120', 'ECON150'], 'conflict': []})],\n [('regression: missing direction 1',\n   [['MATH101', 'CHEM120', 'HIST140', 'ECON150', 'MATH101H', 'PHYS110'],\n    [['BIO130', 'R1', 2], ['HIST140', 'R2', 1], ['BIO130', 'R1', 0], ['MATH101', 'R1', 1],\n     ['ECON150', 'R2', 0], ['MATH101H', 'R1', 2]]],\n   {'missing': ['CHEM120', 'PHYS110'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('regression variant: missing direction 2',\n   [['CHEM120', 'ECON150', 'PHYS110', 'BIO130'], [['ECON150', 'R1', 2]]],\n   {'missing': ['BIO130', 'CHEM120', 'PHYS110'], 'unknown': [], 'conflict': []}),\n  ('partial repair guard 3',\n   [['PHYS110', 'ECON150', 'MATH101H', 'CHEM120', 'MATH101'],\n    [['BIO130', 'R1', 0], ['PHYS110', 'R2', 2], ['BIO130', 'R2', 0], ['BIO130', 'R1', 2]]],\n   {'missing': ['CHEM120', 'ECON150', 'MATH101', 'MATH101H'], 'unknown': ['BIO130'], 'conflict': ['BIO130']}),\n  ('boundary control 4', [['A'], [['A', 'R1', 0], ['A', 'R2', 1], ['C', 'R1', 0]]],\n   {'missing': [], 'unknown': ['C'], 'conflict': ['A']}),\n  ('boundary control 5', [['A', 'B'], [['A', 'R1', 0], ['A', 'R2', 0]]],\n   {'missing': ['B'], 'unknown': [], 'conflict': []}),\n  ('normal control 6',\n   [['CHEM120', 'MATH101H', 'MATH101'],\n    [['PHYS110', 'R2', 1], ['MATH101', 'R1', 1], ['ECON150', 'R1', 0], ['HIST140', 'R1', 0],\n     ['MATH101', 'R2', 2], ['CHEM120', 'R2', 2], ['CHEM120', 'R2', 2]]],\n   {'missing': ['MATH101H'], 'unknown': ['ECON150', 'HIST140', 'PHYS110'], 'conflict': ['MATH101']}),\n  ('normal control 7',\n   [['BIO130', 'PHYS110'],\n    [['HIST140', 'R1', 2], ['HIST140', 'R1', 1], ['PHYS110', 'R1', 0], ['CHEM120', 'R1', 2]]],\n   {'missing': ['BIO130'], 'unknown': ['CHEM120', 'HIST140'], 'conflict': ['HIST140']}),\n  ('normal control 8',\n   [['HIST140', 'ECON150'],\n    [['PHYS110', 'R1', 0], ['BIO130', 'R1', 1], ['PHYS110', 'R1', 0], ['PHYS110', 'R2', 0]]],\n   {'missing': ['ECON150', 'HIST140'], 'unknown': ['BIO130', 'PHYS110'], 'conflict': []})]]\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-timetable-completeness-missing-direction","generated_at":"2026-09-29T14:52:07.897494+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Completeness checks catch exams dropped or duplicated when merging timetable drafts.","repair":"Missing = required minus assigned.","root_cause":"The set difference is reversed.","sha256":"c8f898878014b5e92f8ec8271b466cf41e8356f553b9fd1ca33b4cb45c773cf8","title":"Missing-exam list reports unknown exams instead · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.897,"exit_code":1,"observations":[{"actual":{"conflict":[],"missing":["B"],"unknown":[]},"check":"regression: missing direction 1","expected":{"conflict":[],"missing":["B"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["CHEM120","ECON150","HIST140","MATH101","MATH101H"],"unknown":["MATH101"]},"check":"regression variant: missing direction 2","expected":{"conflict":[],"missing":["CHEM120","ECON150","HIST140","MATH101H"],"unknown":["MATH101"]},"passed":false},{"actual":{"conflict":["A"],"missing":["C"],"unknown":["C"]},"check":"boundary control 3","expected":{"conflict":["A"],"missing":[],"unknown":["C"]},"passed":false},{"actual":{"conflict":["MATH101H"],"missing":["CHEM120","HIST140","MATH101","PHYS110"],"unknown":[]},"check":"normal control 4","expected":{"conflict":["MATH101H"],"missing":["CHEM120","HIST140","MATH101","PHYS110"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["ECON150"],"unknown":[]},"check":"normal control 5","expected":{"conflict":[],"missing":["ECON150"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["HIST140","MATH101H"],"unknown":[]},"check":"normal control 6","expected":{"conflict":[],"missing":["HIST140","MATH101H"],"unknown":[]},"passed":true},{"actual":{"conflict":["HIST140"],"missing":["CHEM120","MATH101","MATH101H"],"unknown":["CHEM120"]},"check":"normal control 7","expected":{"conflict":["HIST140"],"missing":["MATH101","MATH101H"],"unknown":["CHEM120"]},"passed":false},{"actual":{"conflict":[],"missing":["BIO130","CHEM120","ECON150"],"unknown":["BIO130"]},"check":"normal control 8","expected":{"conflict":[],"missing":["CHEM120","ECON150"],"unknown":["BIO130"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: missing direction 1\", \"actual\": {\"missing\": [\"B\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"B\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"regression variant: missing direction 2\", \"actual\": {\"missing\": [\"CHEM120\", \"ECON150\", \"HIST140\", \"MATH101\", \"MATH101H\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\", \"HIST140\", \"MATH101H\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"passed\": false}, {\"check\": \"boundary control 3\", \"actual\": {\"missing\": [\"C\"], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"expected\": {\"missing\": [], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"missing\": [\"CHEM120\", \"HIST140\", \"MATH101\", \"PHYS110\"], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"expected\": {\"missing\": [\"CHEM120\", \"HIST140\", \"MATH101\", \"PHYS110\"], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"missing\": [\"ECON150\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"ECON150\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"missing\": [\"HIST140\", \"MATH101H\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"HIST140\", \"MATH101H\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"missing\": [\"CHEM120\", \"MATH101\", \"MATH101H\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"expected\": {\"missing\": [\"MATH101\", \"MATH101H\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"missing\": [\"BIO130\", \"CHEM120\", \"ECON150\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.955,"exit_code":1,"observations":[{"actual":{"conflict":[],"missing":[],"unknown":[]},"check":"regression: missing direction 1","expected":{"conflict":[],"missing":["B"],"unknown":[]},"passed":false},{"actual":{"conflict":[],"missing":["MATH101"],"unknown":["MATH101"]},"check":"regression variant: missing direction 2","expected":{"conflict":[],"missing":["CHEM120","ECON150","HIST140","MATH101H"],"unknown":["MATH101"]},"passed":false},{"actual":{"conflict":["A"],"missing":["C"],"unknown":["C"]},"check":"boundary control 3","expected":{"conflict":["A"],"missing":[],"unknown":["C"]},"passed":false},{"actual":{"conflict":["MATH101H"],"missing":[],"unknown":[]},"check":"normal control 4","expected":{"conflict":["MATH101H"],"missing":["CHEM120","HIST140","MATH101","PHYS110"],"unknown":[]},"passed":false},{"actual":{"conflict":[],"missing":[],"unknown":[]},"check":"normal control 5","expected":{"conflict":[],"missing":["ECON150"],"unknown":[]},"passed":false},{"actual":{"conflict":[],"missing":[],"unknown":[]},"check":"normal control 6","expected":{"conflict":[],"missing":["HIST140","MATH101H"],"unknown":[]},"passed":false},{"actual":{"conflict":["HIST140"],"missing":["CHEM120"],"unknown":["CHEM120"]},"check":"normal control 7","expected":{"conflict":["HIST140"],"missing":["MATH101","MATH101H"],"unknown":["CHEM120"]},"passed":false},{"actual":{"conflict":[],"missing":["BIO130"],"unknown":["BIO130"]},"check":"normal control 8","expected":{"conflict":[],"missing":["CHEM120","ECON150"],"unknown":["BIO130"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: missing direction 1\", \"actual\": {\"missing\": [], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"B\"], \"unknown\": [], \"conflict\": []}, \"passed\": false}, {\"check\": \"regression variant: missing direction 2\", \"actual\": {\"missing\": [\"MATH101\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\", \"HIST140\", \"MATH101H\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"passed\": false}, {\"check\": \"boundary control 3\", \"actual\": {\"missing\": [\"C\"], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"expected\": {\"missing\": [], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": {\"missing\": [], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"expected\": {\"missing\": [\"CHEM120\", \"HIST140\", \"MATH101\", \"PHYS110\"], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": {\"missing\": [], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"ECON150\"], \"unknown\": [], \"conflict\": []}, \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": {\"missing\": [], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"HIST140\", \"MATH101H\"], \"unknown\": [], \"conflict\": []}, \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": {\"missing\": [\"CHEM120\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"expected\": {\"missing\": [\"MATH101\", \"MATH101H\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": {\"missing\": [\"BIO130\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.596,"exit_code":0,"observations":[{"actual":{"conflict":[],"missing":["B"],"unknown":[]},"check":"regression: missing direction 1","expected":{"conflict":[],"missing":["B"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["CHEM120","ECON150","HIST140","MATH101H"],"unknown":["MATH101"]},"check":"regression variant: missing direction 2","expected":{"conflict":[],"missing":["CHEM120","ECON150","HIST140","MATH101H"],"unknown":["MATH101"]},"passed":true},{"actual":{"conflict":["A"],"missing":[],"unknown":["C"]},"check":"boundary control 3","expected":{"conflict":["A"],"missing":[],"unknown":["C"]},"passed":true},{"actual":{"conflict":["MATH101H"],"missing":["CHEM120","HIST140","MATH101","PHYS110"],"unknown":[]},"check":"normal control 4","expected":{"conflict":["MATH101H"],"missing":["CHEM120","HIST140","MATH101","PHYS110"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["ECON150"],"unknown":[]},"check":"normal control 5","expected":{"conflict":[],"missing":["ECON150"],"unknown":[]},"passed":true},{"actual":{"conflict":[],"missing":["HIST140","MATH101H"],"unknown":[]},"check":"normal control 6","expected":{"conflict":[],"missing":["HIST140","MATH101H"],"unknown":[]},"passed":true},{"actual":{"conflict":["HIST140"],"missing":["MATH101","MATH101H"],"unknown":["CHEM120"]},"check":"normal control 7","expected":{"conflict":["HIST140"],"missing":["MATH101","MATH101H"],"unknown":["CHEM120"]},"passed":true},{"actual":{"conflict":[],"missing":["CHEM120","ECON150"],"unknown":["BIO130"]},"check":"normal control 8","expected":{"conflict":[],"missing":["CHEM120","ECON150"],"unknown":["BIO130"]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: missing direction 1\", \"actual\": {\"missing\": [\"B\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"B\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"regression variant: missing direction 2\", \"actual\": {\"missing\": [\"CHEM120\", \"ECON150\", \"HIST140\", \"MATH101H\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\", \"HIST140\", \"MATH101H\"], \"unknown\": [\"MATH101\"], \"conflict\": []}, \"passed\": true}, {\"check\": \"boundary control 3\", \"actual\": {\"missing\": [], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"expected\": {\"missing\": [], \"unknown\": [\"C\"], \"conflict\": [\"A\"]}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"missing\": [\"CHEM120\", \"HIST140\", \"MATH101\", \"PHYS110\"], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"expected\": {\"missing\": [\"CHEM120\", \"HIST140\", \"MATH101\", \"PHYS110\"], \"unknown\": [], \"conflict\": [\"MATH101H\"]}, \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": {\"missing\": [\"ECON150\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"ECON150\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": {\"missing\": [\"HIST140\", \"MATH101H\"], \"unknown\": [], \"conflict\": []}, \"expected\": {\"missing\": [\"HIST140\", \"MATH101H\"], \"unknown\": [], \"conflict\": []}, \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": {\"missing\": [\"MATH101\", \"MATH101H\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"expected\": {\"missing\": [\"MATH101\", \"MATH101H\"], \"unknown\": [\"CHEM120\"], \"conflict\": [\"HIST140\"]}, \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": {\"missing\": [\"CHEM120\", \"ECON150\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"expected\": {\"missing\": [\"CHEM120\", \"ECON150\"], \"unknown\": [\"BIO130\"], \"conflict\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}