{"abstract":"Rooms hosting exactly k exams are flagged.","category":"Exam timetabling constraints","checks":8,"contract":"assign [exam, room, period] (rows may repeat); building room -> building; k = maximum distinct exams per room-period. Findings per exam (by id): multi_period if it occupies more than one period, split_buildings if its rooms span more than one building; then room_load for room-periods hosting more than k distinct exams.","evaluation_group":"w2-exam-timetabling-constraints-split-exam-building-and-room-load","failed_approach":"Counting assignment rows lets duplicate rows exceed the limit.","family":"w2-exam-timetabling-constraints-split-exam-building-and-room-load-room-load-distinct","id":"FA-94806","implementations":{"attempt":{"sha256":"5f711eae581a6ea32277083c2b63ef95c52880ab8bc4206c5bfbeacd7fbc357d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(assign, building, k):\n    rooms_of = {}\n    periods_of = {}\n    load = {}\n    for ex, r, p in assign:\n        rooms_of.setdefault(ex, []).append(r)\n        periods_of.setdefault(ex, set()).add(p)\n        load.setdefault((r, p), set()).add(ex)\n    out = []\n    for ex in sorted(rooms_of):\n        if len(periods_of[ex]) > 1:\n            out.append(['multi_period', ex])\n        if len({building[r] for r in rooms_of[ex]}) > 1:\n            out.append(['split_buildings', ex])\n    for (r, p) in sorted(load):\n        if sum(1 for e, rr, pp in assign if rr == r and pp == p) > k:\n            out.append(['room_load', r, p])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('regression variant: room load distinct 2',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R3', 2],\n     ['MATH101', 'R4', 1], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['multi_period', 'MATH101'], ['split_buildings', 'MATH101']]),\n  ('partial repair guard 3',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 6',\n   [[['MATH101H', 'R3', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R2', 2], ['PHYS110', 'R1', 2],\n     ['MATH101', 'R2', 0], ['MATH101', 'R4', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0]]),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['CHEM120', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 1], ['MATH101H', 'R3', 0], ['CHEM120', 'R4', 2], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R3', 1], ['CHEM120', 'R2', 0], ['PHYS110', 'R3', 0], ['CHEM120', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0], ['room_load', 'R3', 0]])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R3', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['split_buildings', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('partial repair guard 3',\n   [[['MATH101', 'R2', 2], ['PHYS110', 'R3', 2], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 4',\n   [[['MATH101H', 'R2', 1], ['CHEM120', 'R2', 0], ['MATH101', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 5',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R4', 1], ['PHYS110', 'R4', 1], ['CHEM120', 'R4', 2],\n     ['CHEM120', 'R4', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['room_load', 'R4', 1]]),\n  ('normal control 6',\n   [[['CHEM120', 'R1', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['PHYS110', 'R2', 0], ['MATH101', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('regression variant: room load distinct 2',\n   [[['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101', 'R2', 0], ['CHEM120', 'R3', 2],\n     ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'MATH101H']]),\n  ('partial repair guard 3',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['CHEM120', 'R2', 2], ['MATH101', 'R1', 2], ['CHEM120', 'R1', 1], ['MATH101', 'R1', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 1], ['CHEM120', 'R2', 2], ['MATH101', 'R4', 2], ['PHYS110', 'R2', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R4', 2], ['MATH101', 'R3', 1], ['PHYS110', 'R3', 1],\n     ['PHYS110', 'R1', 1], ['PHYS110', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'PHYS110'], ['room_load', 'R3', 1]]),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 2], ['MATH101H', 'R4', 1], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H'], ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R2', 1], ['MATH101', 'R1', 2], ['MATH101', 'R1', 2], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R4', 0], ['CHEM120', 'R2', 2], ['MATH101', 'R2', 2], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110'],\n    ['room_load', 'R1', 2], ['room_load', 'R2', 2]]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R4', 0], ['CHEM120', 'R4', 1], ['MATH101H', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 5',\n   [[['MATH101', 'R1', 2], ['PHYS110', 'R1', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R3', 0],\n     ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['room_load', 'R1', 1]]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 2], ['MATH101', 'R1', 0], ['PHYS110', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['CHEM120', 'R3', 2], ['MATH101', 'R2', 0], ['MATH101H', 'R4', 1], ['MATH101H', 'R4', 0],\n     ['MATH101H', 'R1', 0], ['PHYS110', 'R2', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R2', 2], ['MATH101', 'R1', 1], ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('normal control 5',\n   [[['CHEM120', 'R1', 2], ['CHEM120', 'R1', 0], ['MATH101H', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101', 'R3', 1], ['PHYS110', 'R4', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H']]),\n  ('normal control 7',\n   [[['PHYS110', 'R3', 1], ['PHYS110', 'R3', 2], ['PHYS110', 'R4', 1], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('normal control 8',\n   [[['PHYS110', 'R2', 0], ['CHEM120', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 0],\n     ['MATH101', 'R4', 0], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120']])]]\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":"f6725280cc50baeab191aa01df154766cd5d6fffd45e3b2e6d3de42f263b60c8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(assign, building, k):\n    rooms_of = {}\n    periods_of = {}\n    load = {}\n    for ex, r, p in assign:\n        rooms_of.setdefault(ex, []).append(r)\n        periods_of.setdefault(ex, set()).add(p)\n        load.setdefault((r, p), set()).add(ex)\n    out = []\n    for ex in sorted(rooms_of):\n        if len(periods_of[ex]) > 1:\n            out.append(['multi_period', ex])\n        if len({building[r] for r in rooms_of[ex]}) > 1:\n            out.append(['split_buildings', ex])\n    for (r, p) in sorted(load):\n        if len(load[(r, p)]) >= k:\n            out.append(['room_load', r, p])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('regression variant: room load distinct 2',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R3', 2],\n     ['MATH101', 'R4', 1], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['multi_period', 'MATH101'], ['split_buildings', 'MATH101']]),\n  ('partial repair guard 3',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 6',\n   [[['MATH101H', 'R3', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R2', 2], ['PHYS110', 'R1', 2],\n     ['MATH101', 'R2', 0], ['MATH101', 'R4', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0]]),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['CHEM120', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 1], ['MATH101H', 'R3', 0], ['CHEM120', 'R4', 2], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R3', 1], ['CHEM120', 'R2', 0], ['PHYS110', 'R3', 0], ['CHEM120', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0], ['room_load', 'R3', 0]])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R3', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['split_buildings', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('partial repair guard 3',\n   [[['MATH101', 'R2', 2], ['PHYS110', 'R3', 2], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 4',\n   [[['MATH101H', 'R2', 1], ['CHEM120', 'R2', 0], ['MATH101', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 5',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R4', 1], ['PHYS110', 'R4', 1], ['CHEM120', 'R4', 2],\n     ['CHEM120', 'R4', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['room_load', 'R4', 1]]),\n  ('normal control 6',\n   [[['CHEM120', 'R1', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['PHYS110', 'R2', 0], ['MATH101', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('regression variant: room load distinct 2',\n   [[['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101', 'R2', 0], ['CHEM120', 'R3', 2],\n     ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'MATH101H']]),\n  ('partial repair guard 3',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['CHEM120', 'R2', 2], ['MATH101', 'R1', 2], ['CHEM120', 'R1', 1], ['MATH101', 'R1', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 1], ['CHEM120', 'R2', 2], ['MATH101', 'R4', 2], ['PHYS110', 'R2', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R4', 2], ['MATH101', 'R3', 1], ['PHYS110', 'R3', 1],\n     ['PHYS110', 'R1', 1], ['PHYS110', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'PHYS110'], ['room_load', 'R3', 1]]),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 2], ['MATH101H', 'R4', 1], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H'], ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R2', 1], ['MATH101', 'R1', 2], ['MATH101', 'R1', 2], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R4', 0], ['CHEM120', 'R2', 2], ['MATH101', 'R2', 2], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110'],\n    ['room_load', 'R1', 2], ['room_load', 'R2', 2]]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R4', 0], ['CHEM120', 'R4', 1], ['MATH101H', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 5',\n   [[['MATH101', 'R1', 2], ['PHYS110', 'R1', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R3', 0],\n     ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['room_load', 'R1', 1]]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 2], ['MATH101', 'R1', 0], ['PHYS110', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['CHEM120', 'R3', 2], ['MATH101', 'R2', 0], ['MATH101H', 'R4', 1], ['MATH101H', 'R4', 0],\n     ['MATH101H', 'R1', 0], ['PHYS110', 'R2', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R2', 2], ['MATH101', 'R1', 1], ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('normal control 5',\n   [[['CHEM120', 'R1', 2], ['CHEM120', 'R1', 0], ['MATH101H', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101', 'R3', 1], ['PHYS110', 'R4', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H']]),\n  ('normal control 7',\n   [[['PHYS110', 'R3', 1], ['PHYS110', 'R3', 2], ['PHYS110', 'R4', 1], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('normal control 8',\n   [[['PHYS110', 'R2', 0], ['CHEM120', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 0],\n     ['MATH101', 'R4', 0], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120']])]]\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":"2cec70aee5f56e0ceb553d5cc776bcb68412a5259674521574f755f420138592","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(assign, building, k):\n    rooms_of = {}\n    periods_of = {}\n    load = {}\n    for ex, r, p in assign:\n        rooms_of.setdefault(ex, []).append(r)\n        periods_of.setdefault(ex, set()).add(p)\n        load.setdefault((r, p), set()).add(ex)\n    out = []\n    for ex in sorted(rooms_of):\n        if len(periods_of[ex]) > 1:\n            out.append(['multi_period', ex])\n        if len({building[r] for r in rooms_of[ex]}) > 1:\n            out.append(['split_buildings', ex])\n    for (r, p) in sorted(load):\n        if len(load[(r, p)]) > k:\n            out.append(['room_load', r, p])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('regression variant: room load distinct 2',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R3', 2],\n     ['MATH101', 'R4', 1], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['multi_period', 'MATH101'], ['split_buildings', 'MATH101']]),\n  ('partial repair guard 3',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 6',\n   [[['MATH101H', 'R3', 1], ['MATH101H', 'R2', 0], ['MATH101', 'R2', 2], ['PHYS110', 'R1', 2],\n     ['MATH101', 'R2', 0], ['MATH101', 'R4', 1], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0]]),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['CHEM120', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 1], ['MATH101H', 'R3', 0], ['CHEM120', 'R4', 2], ['MATH101H', 'R2', 0],\n     ['CHEM120', 'R3', 1], ['CHEM120', 'R2', 0], ['PHYS110', 'R3', 0], ['CHEM120', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H'], ['room_load', 'R2', 0], ['room_load', 'R3', 0]])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R3', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['split_buildings', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R3', 2], ['MATH101H', 'R1', 1], ['MATH101', 'R3', 2], ['MATH101H', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('partial repair guard 3',\n   [[['MATH101', 'R2', 2], ['PHYS110', 'R3', 2], ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 4',\n   [[['MATH101H', 'R2', 1], ['CHEM120', 'R2', 0], ['MATH101', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 5',\n   [[['CHEM120', 'R4', 0], ['CHEM120', 'R4', 1], ['PHYS110', 'R4', 1], ['CHEM120', 'R4', 2],\n     ['CHEM120', 'R4', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['room_load', 'R4', 1]]),\n  ('normal control 6',\n   [[['CHEM120', 'R1', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['PHYS110', 'R2', 0], ['MATH101', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 8',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R2', 0], ['MATH101', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('regression variant: room load distinct 2',\n   [[['MATH101H', 'R1', 0], ['MATH101H', 'R1', 2], ['MATH101', 'R2', 0], ['CHEM120', 'R3', 2],\n     ['MATH101', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'MATH101H']]),\n  ('partial repair guard 3',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('normal control 5',\n   [[['CHEM120', 'R2', 2], ['MATH101', 'R1', 2], ['CHEM120', 'R1', 1], ['MATH101', 'R1', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 1], ['CHEM120', 'R2', 2], ['MATH101', 'R4', 2], ['PHYS110', 'R2', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('normal control 7',\n   [[['MATH101H', 'R3', 1], ['MATH101', 'R4', 2], ['MATH101', 'R3', 1], ['PHYS110', 'R3', 1],\n     ['PHYS110', 'R1', 1], ['PHYS110', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'PHYS110'], ['room_load', 'R3', 1]]),\n  ('normal control 8',\n   [[['MATH101H', 'R2', 2], ['MATH101H', 'R4', 1], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H'], ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 1]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['MATH101', 'R2', 1], ['MATH101', 'R1', 2], ['MATH101', 'R1', 2], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R4', 0], ['CHEM120', 'R2', 2], ['MATH101', 'R2', 2], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110'],\n    ['room_load', 'R1', 2], ['room_load', 'R2', 2]]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R4', 0], ['CHEM120', 'R4', 1], ['MATH101H', 'R4', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R1', 0], ['B', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 5',\n   [[['MATH101', 'R1', 2], ['PHYS110', 'R1', 1], ['CHEM120', 'R2', 1], ['MATH101H', 'R3', 0],\n     ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101'], ['room_load', 'R1', 1]]),\n  ('normal control 6',\n   [[['MATH101H', 'R4', 2], ['MATH101', 'R1', 0], ['PHYS110', 'R3', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 7',\n   [[['MATH101', 'R3', 2], ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   []),\n  ('normal control 8',\n   [[['CHEM120', 'R3', 2], ['MATH101', 'R2', 0], ['MATH101H', 'R4', 1], ['MATH101H', 'R4', 0],\n     ['MATH101H', 'R1', 0], ['PHYS110', 'R2', 1], ['MATH101', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'MATH101'], ['split_buildings', 'MATH101'], ['multi_period', 'MATH101H'],\n    ['split_buildings', 'MATH101H']])],\n [('regression: room load distinct 1',\n   [[['A', 'R1', 0], ['A', 'R1', 2]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'A']]),\n  ('regression variant: room load distinct 2',\n   [[['PHYS110', 'R4', 1], ['CHEM120', 'R2', 2], ['PHYS110', 'R1', 0], ['CHEM120', 'R2', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('partial repair guard 3',\n   [[['MATH101H', 'R2', 2], ['MATH101', 'R1', 1], ['MATH101', 'R1', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   []),\n  ('boundary control 4',\n   [[['A', 'R1', 0], ['A', 'R2', 0]], {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1], []),\n  ('normal control 5',\n   [[['CHEM120', 'R1', 2], ['CHEM120', 'R1', 0], ['MATH101H', 'R3', 2]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120']]),\n  ('normal control 6',\n   [[['MATH101', 'R3', 1], ['PHYS110', 'R4', 0], ['MATH101H', 'R1', 2], ['MATH101H', 'R1', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'MATH101H']]),\n  ('normal control 7',\n   [[['PHYS110', 'R3', 1], ['PHYS110', 'R3', 2], ['PHYS110', 'R4', 1], ['PHYS110', 'R1', 2],\n     ['PHYS110', 'R3', 1]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 2],\n   [['multi_period', 'PHYS110'], ['split_buildings', 'PHYS110']]),\n  ('normal control 8',\n   [[['PHYS110', 'R2', 0], ['CHEM120', 'R1', 1], ['CHEM120', 'R3', 2], ['CHEM120', 'R3', 0],\n     ['MATH101', 'R4', 0], ['PHYS110', 'R2', 0]],\n    {'R1': 'north', 'R2': 'north', 'R3': 'south', 'R4': 'south'}, 1],\n   [['multi_period', 'CHEM120'], ['split_buildings', 'CHEM120']])]]\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-split-exam-building-and-room-load-room-load-distinct","generated_at":"2026-09-29T14:52:07.848265+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Split exams must stay in one building and rooms have limits on concurrent exams.","repair":"Report only more than k distinct exams.","root_cause":"The load comparison is inclusive.","sha256":"b119e095b1b7a9e7b27050536c7c4d16c0260a4139cd2f8f65f90075c2e07559","title":"Room-period at the concurrent exam limit reported · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.101,"exit_code":1,"observations":[{"actual":[],"check":"regression: room load distinct 1","expected":[],"passed":true},{"actual":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"],["room_load","R2",0]],"check":"regression variant: room load distinct 2","expected":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"]],"passed":false},{"actual":[["room_load","R1",1],["room_load","R3",2]],"check":"partial repair guard 3","expected":[],"passed":false},{"actual":[["multi_period","A"]],"check":"boundary control 4","expected":[["multi_period","A"]],"passed":true},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R2",2]],"check":"normal control 6","expected":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0]],"passed":false},{"actual":[],"check":"normal control 7","expected":[],"passed":true},{"actual":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R3",0]],"check":"normal control 8","expected":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R3",0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: room load distinct 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"regression variant: room load distinct 2\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"room_load\", \"R2\", 0]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"room_load\", \"R1\", 1], [\"room_load\", \"R3\", 2]], \"expected\": [], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [[\"multi_period\", \"A\"]], \"expected\": [[\"multi_period\", \"A\"]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R2\", 2]], \"expected\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0]], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 0]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.023,"exit_code":1,"observations":[{"actual":[["room_load","R1",0],["room_load","R2",0]],"check":"regression: room load distinct 1","expected":[],"passed":false},{"actual":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"],["room_load","R2",0],["room_load","R3",1],["room_load","R3",2],["room_load","R4",0],["room_load","R4",1]],"check":"regression variant: room load distinct 2","expected":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"]],"passed":false},{"actual":[["room_load","R1",1],["room_load","R3",2]],"check":"partial repair guard 3","expected":[],"passed":false},{"actual":[["multi_period","A"],["room_load","R1",0],["room_load","R1",1]],"check":"boundary control 4","expected":[["multi_period","A"]],"passed":false},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R1",2],["room_load","R2",0],["room_load","R2",2],["room_load","R3",1],["room_load","R4",1]],"check":"normal control 6","expected":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0]],"passed":false},{"actual":[],"check":"normal control 7","expected":[],"passed":true},{"actual":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R2",1],["room_load","R3",0],["room_load","R3",1],["room_load","R4",2]],"check":"normal control 8","expected":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R3",0]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: room load distinct 1\", \"actual\": [[\"room_load\", \"R1\", 0], [\"room_load\", \"R2\", 0]], \"expected\": [], \"passed\": false}, {\"check\": \"regression variant: room load distinct 2\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 1], [\"room_load\", \"R3\", 2], [\"room_load\", \"R4\", 0], [\"room_load\", \"R4\", 1]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"room_load\", \"R1\", 1], [\"room_load\", \"R3\", 2]], \"expected\": [], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [[\"multi_period\", \"A\"], [\"room_load\", \"R1\", 0], [\"room_load\", \"R1\", 1]], \"expected\": [[\"multi_period\", \"A\"]], \"passed\": false}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R1\", 2], [\"room_load\", \"R2\", 0], [\"room_load\", \"R2\", 2], [\"room_load\", \"R3\", 1], [\"room_load\", \"R4\", 1]], \"expected\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0]], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R2\", 1], [\"room_load\", \"R3\", 0], [\"room_load\", \"R3\", 1], [\"room_load\", \"R4\", 2]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 0]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.672,"exit_code":0,"observations":[{"actual":[],"check":"regression: room load distinct 1","expected":[],"passed":true},{"actual":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"]],"check":"regression variant: room load distinct 2","expected":[["multi_period","CHEM120"],["multi_period","MATH101"],["split_buildings","MATH101"]],"passed":true},{"actual":[],"check":"partial repair guard 3","expected":[],"passed":true},{"actual":[["multi_period","A"]],"check":"boundary control 4","expected":[["multi_period","A"]],"passed":true},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0]],"check":"normal control 6","expected":[["multi_period","MATH101"],["split_buildings","MATH101"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0]],"passed":true},{"actual":[],"check":"normal control 7","expected":[],"passed":true},{"actual":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R3",0]],"check":"normal control 8","expected":[["multi_period","CHEM120"],["split_buildings","CHEM120"],["multi_period","MATH101H"],["split_buildings","MATH101H"],["room_load","R2",0],["room_load","R3",0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: room load distinct 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"regression variant: room load distinct 2\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"]], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [[\"multi_period\", \"A\"]], \"expected\": [[\"multi_period\", \"A\"]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0]], \"expected\": [[\"multi_period\", \"MATH101\"], [\"split_buildings\", \"MATH101\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0]], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 0]], \"expected\": [[\"multi_period\", \"CHEM120\"], [\"split_buildings\", \"CHEM120\"], [\"multi_period\", \"MATH101H\"], [\"split_buildings\", \"MATH101H\"], [\"room_load\", \"R2\", 0], [\"room_load\", \"R3\", 0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}