{"abstract":"Same-period clashes inflate the two-in-a-day penalty.","category":"Exam timetabling constraints","checks":8,"contract":"Periods are numbered consecutively with spd slots per day (day = p // spd). For each student and each pair of their distinct exams: same day and adjacent periods counts two-in-a-row; same day and further apart counts two-in-a-day (same-period clashes count neither); periods 1..spread apart count period spread regardless of day. w = [row weight, day weight, spread]. Return [row, day, spread count, weighted total].","evaluation_group":"w2-exam-timetabling-constraints-same-day-proximity-counts","failed_approach":"Allowing distance zero is the same defect.","family":"w2-exam-timetabling-constraints-same-day-proximity-counts-two-in-day-lower-bound","id":"FA-94376","implementations":{"attempt":{"sha256":"e4b0769f79c3035b955556f974271cd9c489e98021e5725d73aeb1e6a1cd9bd3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(enrol, period, spd, w):\n    wr, wd, spread = w\n    by = {}\n    for st, ex in enrol:\n        by.setdefault(st, set()).add(ex)\n    row = day = spr = 0\n    for st in by:\n        ps = sorted(period[e] for e in by[st])\n        for i in range(len(ps)):\n            for j in range(i + 1, len(ps)):\n                a, b = ps[i], ps[j]\n                if a // spd == b // spd:\n                    if b - a == 1:\n                        row += 1\n                    elif b - a >= 0:\n                        day += 1\n                if 0 < b - a <= spread:\n                    spr += 1\n    return [row, day, spr, row * wr + day * wd + spr]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: two in day lower bound 1',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'MATH101H'], ['s5', 'MATH101H'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s3', 'ECON150'],\n     ['s4', 'ECON150'], ['s4', 'HIST140'], ['s3', 'MATH101'], ['s1', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 5, 'HIST140': 5, 'ECON150': 2}, 2,\n    [10, 1, 2]],\n   [1, 0, 2, 12]),\n  ('partial repair guard 3',\n   [[['s5', 'CHEM120'], ['s1', 'ECON150'], ['s5', 'BIO130'], ['s5', 'HIST140'], ['s1', 'PHYS110'],\n     ['s4', 'PHYS110'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s5', 'BIO130'],\n     ['s3', 'BIO130'], ['s3', 'MATH101H'], ['s4', 'HIST140'], ['s2', 'BIO130'], ['s4', 'MATH101'],\n     ['s3', 'MATH101'], ['s2', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 1, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 3, 4]],\n   [3, 0, 16, 46]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 2}, 3, [10, 2, 2]], [0, 1, 1, 3]),\n  ('normal control 5',\n   [[['s1', 'ECON150'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s1', 'HIST140'], ['s5', 'PHYS110'],\n     ['s1', 'MATH101'], ['s1', 'CHEM120']],\n    {'MATH101': 1, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 10, 'BIO130': 1, 'HIST140': 9, 'ECON150': 2}, 4,\n    [10, 2, 4]],\n   [3, 0, 3, 33]),\n  ('normal control 6',\n   [[['s5', 'HIST140'], ['s3', 'PHYS110'], ['s2', 'PHYS110'], ['s2', 'MATH101H'], ['s1', 'HIST140'],\n     ['s3', 'MATH101'], ['s4', 'BIO130'], ['s4', 'CHEM120'], ['s3', 'ECON150'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'BIO130'], ['s5', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 5, 'CHEM120': 1, 'BIO130': 5, 'HIST140': 2, 'ECON150': 4}, 2,\n    [5, 1, 4]],\n   [2, 0, 8, 18]),\n  ('normal control 7',\n   [[['s4', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'PHYS110'], ['s5', 'CHEM120']],\n    {'MATH101': 8, 'MATH101H': 2, 'PHYS110': 7, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 8, 'ECON150': 4}, 4,\n    [10, 1, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s2', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 1, 4]],\n   [0, 0, 0, 0])],\n [('regression: two in day lower bound 1',\n   [[['s1', 'ECON150'], ['s2', 'MATH101'], ['s2', 'PHYS110'], ['s3', 'CHEM120'], ['s2', 'HIST140'],\n     ['s1', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 3, 'CHEM120': 4, 'BIO130': 3, 'HIST140': 1, 'ECON150': 2}, 2,\n    [10, 3, 2]],\n   [0, 0, 4, 4]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101'], ['s2', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'PHYS110'], ['s4', 'CHEM120'],\n     ['s3', 'ECON150'], ['s3', 'BIO130'], ['s1', 'MATH101H'], ['s2', 'PHYS110'], ['s3', 'PHYS110'],\n     ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'MATH101'],\n     ['s4', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 7, 'PHYS110': 11, 'CHEM120': 8, 'BIO130': 0, 'HIST140': 7, 'ECON150': 0}, 4,\n    [10, 1, 2]],\n   [1, 4, 6, 20]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s2', 'ECON150'], ['s1', 'HIST140'], ['s5', 'MATH101H'], ['s4', 'MATH101H'],\n     ['s1', 'CHEM120'], ['s4', 'HIST140'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s3', 'MATH101H'],\n     ['s1', 'BIO130'], ['s4', 'HIST140'], ['s4', 'CHEM120'], ['s2', 'MATH101'], ['s2', 'HIST140'],\n     ['s5', 'CHEM120'], ['s5', 'HIST140']],\n    {'MATH101': 6, 'MATH101H': 3, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 0}, 3,\n    [5, 3, 2]],\n   [0, 6, 8, 26]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 4, [10, 2, 2]], [1, 0, 1, 11]),\n  ('normal control 5',\n   [[['s3', 'MATH101'], ['s1', 'BIO130'], ['s3', 'CHEM120'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s1', 'CHEM120'], ['s3', 'MATH101H'], ['s3', 'BIO130']],\n    {'MATH101': 6, 'MATH101H': 7, 'PHYS110': 5, 'CHEM120': 8, 'BIO130': 2, 'HIST140': 7, 'ECON150': 3}, 3,\n    [5, 2, 2]],\n   [3, 1, 4, 21]),\n  ('normal control 6',\n   [[['s2', 'BIO130'], ['s2', 'PHYS110'], ['s1', 'MATH101'], ['s3', 'PHYS110'], ['s2', 'HIST140'],\n     ['s3', 'BIO130'], ['s3', 'ECON150'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s4', 'MATH101'],\n     ['s1', 'CHEM120'], ['s3', 'CHEM120'], ['s4', 'CHEM120'], ['s1', 'HIST140'], ['s4', 'HIST140'],\n     ['s5', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 0, 'HIST140': 5, 'ECON150': 4}, 2,\n    [5, 2, 4]],\n   [0, 0, 13, 13]),\n  ('normal control 7',\n   [[['s5', 'PHYS110'], ['s2', 'MATH101H'], ['s4', 'HIST140'], ['s1', 'BIO130'], ['s2', 'BIO130'],\n     ['s5', 'CHEM120'], ['s1', 'HIST140'], ['s2', 'HIST140'], ['s5', 'MATH101'], ['s3', 'MATH101'],\n     ['s5', 'BIO130'], ['s4', 'MATH101H'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 8, 'BIO130': 6, 'HIST140': 1, 'ECON150': 2}, 3,\n    [5, 3, 1]],\n   [0, 1, 0, 3]),\n  ('normal control 8',\n   [[['s4', 'MATH101'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s5', 'PHYS110'], ['s1', 'MATH101H'],\n     ['s2', 'CHEM120'], ['s2', 'ECON150'], ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s2', 'ECON150'],\n     ['s4', 'PHYS110'], ['s3', 'ECON150'], ['s1', 'PHYS110'], ['s3', 'PHYS110']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 3, 'HIST140': 4, 'ECON150': 2}, 2,\n    [5, 3, 2]],\n   [3, 0, 8, 23])],\n [('regression: two in day lower bound 1',\n   [[['s2', 'HIST140'], ['s1', 'PHYS110'], ['s1', 'BIO130'], ['s2', 'BIO130'], ['s1', 'HIST140'],\n     ['s2', 'MATH101H'], ['s2', 'MATH101'], ['s2', 'BIO130']],\n    {'MATH101': 2, 'MATH101H': 7, 'PHYS110': 6, 'CHEM120': 4, 'BIO130': 1, 'HIST140': 7, 'ECON150': 8}, 3,\n    [5, 2, 4]],\n   [2, 0, 2, 12]),\n  ('regression variant: two in day lower bound 2',\n   [[['s3', 'ECON150'], ['s1', 'MATH101'], ['s1', 'ECON150'], ['s3', 'HIST140'], ['s3', 'BIO130'],\n     ['s4', 'ECON150'], ['s4', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'CHEM120'], ['s2', 'ECON150'],\n     ['s1', 'HIST140'], ['s1', 'BIO130']],\n    {'MATH101': 5, 'MATH101H': 0, 'PHYS110': 1, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 0, 'ECON150': 4}, 2,\n    [5, 1, 2]],\n   [2, 0, 4, 14]),\n  ('partial repair guard 3',\n   [[['s3', 'CHEM120'], ['s1', 'MATH101'], ['s3', 'HIST140'], ['s1', 'BIO130'], ['s1', 'PHYS110'],\n     ['s2', 'BIO130'], ['s4', 'BIO130'], ['s3', 'PHYS110'], ['s1', 'CHEM120'], ['s2', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 11, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 8, 'HIST140': 5, 'ECON150': 0}, 4,\n    [10, 3, 4]],\n   [0, 0, 3, 3]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 4}, 3, [10, 2, 4]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'MATH101'], ['s3', 'MATH101'], ['s4', 'PHYS110'], ['s3', 'MATH101'], ['s3', 'MATH101H'],\n     ['s5', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'HIST140'], ['s4', 'MATH101']],\n    {'MATH101': 3, 'MATH101H': 1, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 6, 'HIST140': 5, 'ECON150': 11}, 4,\n    [10, 1, 2]],\n   [0, 3, 3, 6]),\n  ('normal control 6',\n   [[['s1', 'MATH101'], ['s2', 'MATH101'], ['s5', 'BIO130'], ['s4', 'PHYS110'], ['s5', 'ECON150'],\n     ['s3', 'ECON150'], ['s4', 'ECON150'], ['s5', 'MATH101'], ['s4', 'CHEM120'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s4', 'MATH101H'], ['s5', 'CHEM120'], ['s2', 'BIO130']],\n    {'MATH101': 8, 'MATH101H': 1, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 0, 'HIST140': 1, 'ECON150': 5}, 3,\n    [10, 3, 4]],\n   [2, 1, 9, 32]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s4', 'PHYS110'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s2', 'HIST140'],\n     ['s5', 'MATH101'], ['s4', 'ECON150'], ['s4', 'MATH101'], ['s2', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 2, 'BIO130': 2, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 1, 2]],\n   [1, 0, 5, 15]),\n  ('normal control 8',\n   [[['s3', 'BIO130'], ['s4', 'MATH101'], ['s5', 'ECON150'], ['s1', 'MATH101H'], ['s1', 'BIO130'],\n     ['s5', 'PHYS110'], ['s5', 'BIO130']],\n    {'MATH101': 1, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 4, 'BIO130': 4, 'HIST140': 3, 'ECON150': 4}, 2,\n    [10, 3, 2]],\n   [1, 0, 1, 11])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'BIO130'], ['s1', 'HIST140'], ['s5', 'PHYS110'], ['s1', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'ECON150']],\n    {'MATH101': 5, 'MATH101H': 3, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 3}, 2,\n    [10, 3, 1]],\n   [0, 0, 1, 1]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101H'], ['s2', 'MATH101H'], ['s5', 'BIO130'], ['s1', 'BIO130'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'CHEM120'], ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'ECON150'],\n     ['s1', 'HIST140'], ['s4', 'HIST140'], ['s4', 'CHEM120']],\n    {'MATH101': 2, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [5, 0, 6, 56]),\n  ('partial repair guard 3',\n   [[['s1', 'MATH101H'], ['s1', 'HIST140'], ['s1', 'MATH101'], ['s1', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 2, 'ECON150': 1}, 2,\n    [5, 2, 1]],\n   [2, 0, 2, 12]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('normal control 5',\n   [[['s5', 'MATH101H'], ['s2', 'PHYS110'], ['s4', 'PHYS110'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 5, 'PHYS110': 0, 'CHEM120': 6, 'BIO130': 1, 'HIST140': 6, 'ECON150': 1}, 3,\n    [10, 3, 4]],\n   [1, 0, 2, 12]),\n  ('normal control 6',\n   [[['s5', 'MATH101'], ['s1', 'CHEM120'], ['s4', 'MATH101H'], ['s4', 'HIST140'], ['s3', 'MATH101'],\n     ['s4', 'ECON150'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 3, 'BIO130': 1, 'HIST140': 9, 'ECON150': 0}, 4,\n    [5, 3, 1]],\n   [0, 2, 0, 6]),\n  ('normal control 7',\n   [[['s2', 'MATH101'], ['s1', 'HIST140'], ['s2', 'ECON150'], ['s1', 'PHYS110'], ['s5', 'CHEM120'],\n     ['s1', 'BIO130'], ['s1', 'BIO130'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 4, 'CHEM120': 5, 'BIO130': 8, 'HIST140': 8, 'ECON150': 5}, 3,\n    [10, 3, 1]],\n   [1, 0, 1, 11]),\n  ('normal control 8',\n   [[['s5', 'MATH101'], ['s5', 'ECON150'], ['s4', 'HIST140'], ['s2', 'MATH101H'], ['s4', 'PHYS110'],\n     ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s3', 'PHYS110'], ['s5', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s5', 'MATH101H'], ['s2', 'BIO130'], ['s3', 'ECON150']],\n    {'MATH101': 0, 'MATH101H': 5, 'PHYS110': 11, 'CHEM120': 4, 'BIO130': 7, 'HIST140': 11, 'ECON150': 2}, 4,\n    [10, 1, 2]],\n   [0, 3, 4, 7])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'MATH101'], ['s5', 'HIST140'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s2', 'PHYS110'],\n     ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'MATH101'], ['s4', 'CHEM120'], ['s3', 'PHYS110'],\n     ['s5', 'PHYS110'], ['s3', 'HIST140'], ['s3', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 5, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 9, 'ECON150': 1}, 4,\n    [5, 1, 1]],\n   [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'ECON150'], ['s1', 'PHYS110'], ['s1', 'MATH101H'], ['s1', 'HIST140'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s2', 'PHYS110']],\n    {'MATH101': 6, 'MATH101H': 8, 'PHYS110': 7, 'CHEM120': 4, 'BIO130': 6, 'HIST140': 8, 'ECON150': 2}, 3,\n    [5, 3, 2]],\n   [3, 0, 3, 18]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s3', 'HIST140'], ['s4', 'MATH101'], ['s1', 'MATH101'], ['s5', 'MATH101'],\n     ['s3', 'MATH101H'], ['s5', 'PHYS110'], ['s5', 'BIO130'], ['s4', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s2', 'CHEM120'], ['s5', 'HIST140'], ['s2', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 1, 2]],\n   [1, 0, 3, 13]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 3, [10, 2, 2]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'CHEM120'], ['s5', 'HIST140'], ['s5', 'MATH101'], ['s5', 'PHYS110'], ['s5', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 2, 'CHEM120': 0, 'BIO130': 2, 'HIST140': 6, 'ECON150': 0}, 3,\n    [5, 3, 4]],\n   [2, 1, 4, 17]),\n  ('normal control 6',\n   [[['s4', 'CHEM120'], ['s1', 'BIO130'], ['s5', 'BIO130'], ['s2', 'MATH101'], ['s2', 'CHEM120'],\n     ['s2', 'BIO130'], ['s4', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'MATH101H'], ['s3', 'MATH101H'],\n     ['s2', 'PHYS110'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 6, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 3, 'HIST140': 10, 'ECON150': 11}, 4,\n    [10, 1, 1]],\n   [3, 1, 3, 34]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s1', 'MATH101']],\n    {'MATH101': 0, 'MATH101H': 1, 'PHYS110': 7, 'CHEM120': 1, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 2, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s4', 'CHEM120'], ['s4', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 0, 'BIO130': 1, 'HIST140': 5, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [0, 0, 0, 0])]]\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":"597cb5bf958a8aa22fc33d9321a3d28249391b71f520a0955c9b90738fefe98b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(enrol, period, spd, w):\n    wr, wd, spread = w\n    by = {}\n    for st, ex in enrol:\n        by.setdefault(st, set()).add(ex)\n    row = day = spr = 0\n    for st in by:\n        ps = sorted(period[e] for e in by[st])\n        for i in range(len(ps)):\n            for j in range(i + 1, len(ps)):\n                a, b = ps[i], ps[j]\n                if a // spd == b // spd:\n                    if b - a == 1:\n                        row += 1\n                    else:\n                        day += 1\n                if 0 < b - a <= spread:\n                    spr += 1\n    return [row, day, spr, row * wr + day * wd + spr]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: two in day lower bound 1',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'MATH101H'], ['s5', 'MATH101H'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s3', 'ECON150'],\n     ['s4', 'ECON150'], ['s4', 'HIST140'], ['s3', 'MATH101'], ['s1', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 5, 'HIST140': 5, 'ECON150': 2}, 2,\n    [10, 1, 2]],\n   [1, 0, 2, 12]),\n  ('partial repair guard 3',\n   [[['s5', 'CHEM120'], ['s1', 'ECON150'], ['s5', 'BIO130'], ['s5', 'HIST140'], ['s1', 'PHYS110'],\n     ['s4', 'PHYS110'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s5', 'BIO130'],\n     ['s3', 'BIO130'], ['s3', 'MATH101H'], ['s4', 'HIST140'], ['s2', 'BIO130'], ['s4', 'MATH101'],\n     ['s3', 'MATH101'], ['s2', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 1, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 3, 4]],\n   [3, 0, 16, 46]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 2}, 3, [10, 2, 2]], [0, 1, 1, 3]),\n  ('normal control 5',\n   [[['s1', 'ECON150'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s1', 'HIST140'], ['s5', 'PHYS110'],\n     ['s1', 'MATH101'], ['s1', 'CHEM120']],\n    {'MATH101': 1, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 10, 'BIO130': 1, 'HIST140': 9, 'ECON150': 2}, 4,\n    [10, 2, 4]],\n   [3, 0, 3, 33]),\n  ('normal control 6',\n   [[['s5', 'HIST140'], ['s3', 'PHYS110'], ['s2', 'PHYS110'], ['s2', 'MATH101H'], ['s1', 'HIST140'],\n     ['s3', 'MATH101'], ['s4', 'BIO130'], ['s4', 'CHEM120'], ['s3', 'ECON150'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'BIO130'], ['s5', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 5, 'CHEM120': 1, 'BIO130': 5, 'HIST140': 2, 'ECON150': 4}, 2,\n    [5, 1, 4]],\n   [2, 0, 8, 18]),\n  ('normal control 7',\n   [[['s4', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'PHYS110'], ['s5', 'CHEM120']],\n    {'MATH101': 8, 'MATH101H': 2, 'PHYS110': 7, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 8, 'ECON150': 4}, 4,\n    [10, 1, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s2', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 1, 4]],\n   [0, 0, 0, 0])],\n [('regression: two in day lower bound 1',\n   [[['s1', 'ECON150'], ['s2', 'MATH101'], ['s2', 'PHYS110'], ['s3', 'CHEM120'], ['s2', 'HIST140'],\n     ['s1', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 3, 'CHEM120': 4, 'BIO130': 3, 'HIST140': 1, 'ECON150': 2}, 2,\n    [10, 3, 2]],\n   [0, 0, 4, 4]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101'], ['s2', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'PHYS110'], ['s4', 'CHEM120'],\n     ['s3', 'ECON150'], ['s3', 'BIO130'], ['s1', 'MATH101H'], ['s2', 'PHYS110'], ['s3', 'PHYS110'],\n     ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'MATH101'],\n     ['s4', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 7, 'PHYS110': 11, 'CHEM120': 8, 'BIO130': 0, 'HIST140': 7, 'ECON150': 0}, 4,\n    [10, 1, 2]],\n   [1, 4, 6, 20]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s2', 'ECON150'], ['s1', 'HIST140'], ['s5', 'MATH101H'], ['s4', 'MATH101H'],\n     ['s1', 'CHEM120'], ['s4', 'HIST140'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s3', 'MATH101H'],\n     ['s1', 'BIO130'], ['s4', 'HIST140'], ['s4', 'CHEM120'], ['s2', 'MATH101'], ['s2', 'HIST140'],\n     ['s5', 'CHEM120'], ['s5', 'HIST140']],\n    {'MATH101': 6, 'MATH101H': 3, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 0}, 3,\n    [5, 3, 2]],\n   [0, 6, 8, 26]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 4, [10, 2, 2]], [1, 0, 1, 11]),\n  ('normal control 5',\n   [[['s3', 'MATH101'], ['s1', 'BIO130'], ['s3', 'CHEM120'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s1', 'CHEM120'], ['s3', 'MATH101H'], ['s3', 'BIO130']],\n    {'MATH101': 6, 'MATH101H': 7, 'PHYS110': 5, 'CHEM120': 8, 'BIO130': 2, 'HIST140': 7, 'ECON150': 3}, 3,\n    [5, 2, 2]],\n   [3, 1, 4, 21]),\n  ('normal control 6',\n   [[['s2', 'BIO130'], ['s2', 'PHYS110'], ['s1', 'MATH101'], ['s3', 'PHYS110'], ['s2', 'HIST140'],\n     ['s3', 'BIO130'], ['s3', 'ECON150'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s4', 'MATH101'],\n     ['s1', 'CHEM120'], ['s3', 'CHEM120'], ['s4', 'CHEM120'], ['s1', 'HIST140'], ['s4', 'HIST140'],\n     ['s5', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 0, 'HIST140': 5, 'ECON150': 4}, 2,\n    [5, 2, 4]],\n   [0, 0, 13, 13]),\n  ('normal control 7',\n   [[['s5', 'PHYS110'], ['s2', 'MATH101H'], ['s4', 'HIST140'], ['s1', 'BIO130'], ['s2', 'BIO130'],\n     ['s5', 'CHEM120'], ['s1', 'HIST140'], ['s2', 'HIST140'], ['s5', 'MATH101'], ['s3', 'MATH101'],\n     ['s5', 'BIO130'], ['s4', 'MATH101H'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 8, 'BIO130': 6, 'HIST140': 1, 'ECON150': 2}, 3,\n    [5, 3, 1]],\n   [0, 1, 0, 3]),\n  ('normal control 8',\n   [[['s4', 'MATH101'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s5', 'PHYS110'], ['s1', 'MATH101H'],\n     ['s2', 'CHEM120'], ['s2', 'ECON150'], ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s2', 'ECON150'],\n     ['s4', 'PHYS110'], ['s3', 'ECON150'], ['s1', 'PHYS110'], ['s3', 'PHYS110']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 3, 'HIST140': 4, 'ECON150': 2}, 2,\n    [5, 3, 2]],\n   [3, 0, 8, 23])],\n [('regression: two in day lower bound 1',\n   [[['s2', 'HIST140'], ['s1', 'PHYS110'], ['s1', 'BIO130'], ['s2', 'BIO130'], ['s1', 'HIST140'],\n     ['s2', 'MATH101H'], ['s2', 'MATH101'], ['s2', 'BIO130']],\n    {'MATH101': 2, 'MATH101H': 7, 'PHYS110': 6, 'CHEM120': 4, 'BIO130': 1, 'HIST140': 7, 'ECON150': 8}, 3,\n    [5, 2, 4]],\n   [2, 0, 2, 12]),\n  ('regression variant: two in day lower bound 2',\n   [[['s3', 'ECON150'], ['s1', 'MATH101'], ['s1', 'ECON150'], ['s3', 'HIST140'], ['s3', 'BIO130'],\n     ['s4', 'ECON150'], ['s4', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'CHEM120'], ['s2', 'ECON150'],\n     ['s1', 'HIST140'], ['s1', 'BIO130']],\n    {'MATH101': 5, 'MATH101H': 0, 'PHYS110': 1, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 0, 'ECON150': 4}, 2,\n    [5, 1, 2]],\n   [2, 0, 4, 14]),\n  ('partial repair guard 3',\n   [[['s3', 'CHEM120'], ['s1', 'MATH101'], ['s3', 'HIST140'], ['s1', 'BIO130'], ['s1', 'PHYS110'],\n     ['s2', 'BIO130'], ['s4', 'BIO130'], ['s3', 'PHYS110'], ['s1', 'CHEM120'], ['s2', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 11, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 8, 'HIST140': 5, 'ECON150': 0}, 4,\n    [10, 3, 4]],\n   [0, 0, 3, 3]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 4}, 3, [10, 2, 4]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'MATH101'], ['s3', 'MATH101'], ['s4', 'PHYS110'], ['s3', 'MATH101'], ['s3', 'MATH101H'],\n     ['s5', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'HIST140'], ['s4', 'MATH101']],\n    {'MATH101': 3, 'MATH101H': 1, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 6, 'HIST140': 5, 'ECON150': 11}, 4,\n    [10, 1, 2]],\n   [0, 3, 3, 6]),\n  ('normal control 6',\n   [[['s1', 'MATH101'], ['s2', 'MATH101'], ['s5', 'BIO130'], ['s4', 'PHYS110'], ['s5', 'ECON150'],\n     ['s3', 'ECON150'], ['s4', 'ECON150'], ['s5', 'MATH101'], ['s4', 'CHEM120'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s4', 'MATH101H'], ['s5', 'CHEM120'], ['s2', 'BIO130']],\n    {'MATH101': 8, 'MATH101H': 1, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 0, 'HIST140': 1, 'ECON150': 5}, 3,\n    [10, 3, 4]],\n   [2, 1, 9, 32]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s4', 'PHYS110'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s2', 'HIST140'],\n     ['s5', 'MATH101'], ['s4', 'ECON150'], ['s4', 'MATH101'], ['s2', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 2, 'BIO130': 2, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 1, 2]],\n   [1, 0, 5, 15]),\n  ('normal control 8',\n   [[['s3', 'BIO130'], ['s4', 'MATH101'], ['s5', 'ECON150'], ['s1', 'MATH101H'], ['s1', 'BIO130'],\n     ['s5', 'PHYS110'], ['s5', 'BIO130']],\n    {'MATH101': 1, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 4, 'BIO130': 4, 'HIST140': 3, 'ECON150': 4}, 2,\n    [10, 3, 2]],\n   [1, 0, 1, 11])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'BIO130'], ['s1', 'HIST140'], ['s5', 'PHYS110'], ['s1', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'ECON150']],\n    {'MATH101': 5, 'MATH101H': 3, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 3}, 2,\n    [10, 3, 1]],\n   [0, 0, 1, 1]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101H'], ['s2', 'MATH101H'], ['s5', 'BIO130'], ['s1', 'BIO130'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'CHEM120'], ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'ECON150'],\n     ['s1', 'HIST140'], ['s4', 'HIST140'], ['s4', 'CHEM120']],\n    {'MATH101': 2, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [5, 0, 6, 56]),\n  ('partial repair guard 3',\n   [[['s1', 'MATH101H'], ['s1', 'HIST140'], ['s1', 'MATH101'], ['s1', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 2, 'ECON150': 1}, 2,\n    [5, 2, 1]],\n   [2, 0, 2, 12]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('normal control 5',\n   [[['s5', 'MATH101H'], ['s2', 'PHYS110'], ['s4', 'PHYS110'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 5, 'PHYS110': 0, 'CHEM120': 6, 'BIO130': 1, 'HIST140': 6, 'ECON150': 1}, 3,\n    [10, 3, 4]],\n   [1, 0, 2, 12]),\n  ('normal control 6',\n   [[['s5', 'MATH101'], ['s1', 'CHEM120'], ['s4', 'MATH101H'], ['s4', 'HIST140'], ['s3', 'MATH101'],\n     ['s4', 'ECON150'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 3, 'BIO130': 1, 'HIST140': 9, 'ECON150': 0}, 4,\n    [5, 3, 1]],\n   [0, 2, 0, 6]),\n  ('normal control 7',\n   [[['s2', 'MATH101'], ['s1', 'HIST140'], ['s2', 'ECON150'], ['s1', 'PHYS110'], ['s5', 'CHEM120'],\n     ['s1', 'BIO130'], ['s1', 'BIO130'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 4, 'CHEM120': 5, 'BIO130': 8, 'HIST140': 8, 'ECON150': 5}, 3,\n    [10, 3, 1]],\n   [1, 0, 1, 11]),\n  ('normal control 8',\n   [[['s5', 'MATH101'], ['s5', 'ECON150'], ['s4', 'HIST140'], ['s2', 'MATH101H'], ['s4', 'PHYS110'],\n     ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s3', 'PHYS110'], ['s5', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s5', 'MATH101H'], ['s2', 'BIO130'], ['s3', 'ECON150']],\n    {'MATH101': 0, 'MATH101H': 5, 'PHYS110': 11, 'CHEM120': 4, 'BIO130': 7, 'HIST140': 11, 'ECON150': 2}, 4,\n    [10, 1, 2]],\n   [0, 3, 4, 7])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'MATH101'], ['s5', 'HIST140'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s2', 'PHYS110'],\n     ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'MATH101'], ['s4', 'CHEM120'], ['s3', 'PHYS110'],\n     ['s5', 'PHYS110'], ['s3', 'HIST140'], ['s3', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 5, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 9, 'ECON150': 1}, 4,\n    [5, 1, 1]],\n   [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'ECON150'], ['s1', 'PHYS110'], ['s1', 'MATH101H'], ['s1', 'HIST140'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s2', 'PHYS110']],\n    {'MATH101': 6, 'MATH101H': 8, 'PHYS110': 7, 'CHEM120': 4, 'BIO130': 6, 'HIST140': 8, 'ECON150': 2}, 3,\n    [5, 3, 2]],\n   [3, 0, 3, 18]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s3', 'HIST140'], ['s4', 'MATH101'], ['s1', 'MATH101'], ['s5', 'MATH101'],\n     ['s3', 'MATH101H'], ['s5', 'PHYS110'], ['s5', 'BIO130'], ['s4', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s2', 'CHEM120'], ['s5', 'HIST140'], ['s2', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 1, 2]],\n   [1, 0, 3, 13]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 3, [10, 2, 2]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'CHEM120'], ['s5', 'HIST140'], ['s5', 'MATH101'], ['s5', 'PHYS110'], ['s5', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 2, 'CHEM120': 0, 'BIO130': 2, 'HIST140': 6, 'ECON150': 0}, 3,\n    [5, 3, 4]],\n   [2, 1, 4, 17]),\n  ('normal control 6',\n   [[['s4', 'CHEM120'], ['s1', 'BIO130'], ['s5', 'BIO130'], ['s2', 'MATH101'], ['s2', 'CHEM120'],\n     ['s2', 'BIO130'], ['s4', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'MATH101H'], ['s3', 'MATH101H'],\n     ['s2', 'PHYS110'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 6, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 3, 'HIST140': 10, 'ECON150': 11}, 4,\n    [10, 1, 1]],\n   [3, 1, 3, 34]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s1', 'MATH101']],\n    {'MATH101': 0, 'MATH101H': 1, 'PHYS110': 7, 'CHEM120': 1, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 2, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s4', 'CHEM120'], ['s4', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 0, 'BIO130': 1, 'HIST140': 5, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [0, 0, 0, 0])]]\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":"b70e938899ec8a1b7ace6135af06902df5ac5f9cd406bb4cf11a1474439131dc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(enrol, period, spd, w):\n    wr, wd, spread = w\n    by = {}\n    for st, ex in enrol:\n        by.setdefault(st, set()).add(ex)\n    row = day = spr = 0\n    for st in by:\n        ps = sorted(period[e] for e in by[st])\n        for i in range(len(ps)):\n            for j in range(i + 1, len(ps)):\n                a, b = ps[i], ps[j]\n                if a // spd == b // spd:\n                    if b - a == 1:\n                        row += 1\n                    elif b - a > 1:\n                        day += 1\n                if 0 < b - a <= spread:\n                    spr += 1\n    return [row, day, spr, row * wr + day * wd + spr]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: two in day lower bound 1',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'MATH101H'], ['s5', 'MATH101H'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s3', 'ECON150'],\n     ['s4', 'ECON150'], ['s4', 'HIST140'], ['s3', 'MATH101'], ['s1', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 5, 'HIST140': 5, 'ECON150': 2}, 2,\n    [10, 1, 2]],\n   [1, 0, 2, 12]),\n  ('partial repair guard 3',\n   [[['s5', 'CHEM120'], ['s1', 'ECON150'], ['s5', 'BIO130'], ['s5', 'HIST140'], ['s1', 'PHYS110'],\n     ['s4', 'PHYS110'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s5', 'BIO130'],\n     ['s3', 'BIO130'], ['s3', 'MATH101H'], ['s4', 'HIST140'], ['s2', 'BIO130'], ['s4', 'MATH101'],\n     ['s3', 'MATH101'], ['s2', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 1, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 3, 4]],\n   [3, 0, 16, 46]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 2}, 3, [10, 2, 2]], [0, 1, 1, 3]),\n  ('normal control 5',\n   [[['s1', 'ECON150'], ['s5', 'HIST140'], ['s3', 'MATH101H'], ['s1', 'HIST140'], ['s5', 'PHYS110'],\n     ['s1', 'MATH101'], ['s1', 'CHEM120']],\n    {'MATH101': 1, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 10, 'BIO130': 1, 'HIST140': 9, 'ECON150': 2}, 4,\n    [10, 2, 4]],\n   [3, 0, 3, 33]),\n  ('normal control 6',\n   [[['s5', 'HIST140'], ['s3', 'PHYS110'], ['s2', 'PHYS110'], ['s2', 'MATH101H'], ['s1', 'HIST140'],\n     ['s3', 'MATH101'], ['s4', 'BIO130'], ['s4', 'CHEM120'], ['s3', 'ECON150'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'BIO130'], ['s5', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 5, 'CHEM120': 1, 'BIO130': 5, 'HIST140': 2, 'ECON150': 4}, 2,\n    [5, 1, 4]],\n   [2, 0, 8, 18]),\n  ('normal control 7',\n   [[['s4', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'PHYS110'], ['s5', 'CHEM120']],\n    {'MATH101': 8, 'MATH101H': 2, 'PHYS110': 7, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 8, 'ECON150': 4}, 4,\n    [10, 1, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s2', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 1, 4]],\n   [0, 0, 0, 0])],\n [('regression: two in day lower bound 1',\n   [[['s1', 'ECON150'], ['s2', 'MATH101'], ['s2', 'PHYS110'], ['s3', 'CHEM120'], ['s2', 'HIST140'],\n     ['s1', 'ECON150'], ['s2', 'BIO130']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 3, 'CHEM120': 4, 'BIO130': 3, 'HIST140': 1, 'ECON150': 2}, 2,\n    [10, 3, 2]],\n   [0, 0, 4, 4]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101'], ['s2', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'PHYS110'], ['s4', 'CHEM120'],\n     ['s3', 'ECON150'], ['s3', 'BIO130'], ['s1', 'MATH101H'], ['s2', 'PHYS110'], ['s3', 'PHYS110'],\n     ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'MATH101'],\n     ['s4', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 7, 'PHYS110': 11, 'CHEM120': 8, 'BIO130': 0, 'HIST140': 7, 'ECON150': 0}, 4,\n    [10, 1, 2]],\n   [1, 4, 6, 20]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s2', 'ECON150'], ['s1', 'HIST140'], ['s5', 'MATH101H'], ['s4', 'MATH101H'],\n     ['s1', 'CHEM120'], ['s4', 'HIST140'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s3', 'MATH101H'],\n     ['s1', 'BIO130'], ['s4', 'HIST140'], ['s4', 'CHEM120'], ['s2', 'MATH101'], ['s2', 'HIST140'],\n     ['s5', 'CHEM120'], ['s5', 'HIST140']],\n    {'MATH101': 6, 'MATH101H': 3, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 0}, 3,\n    [5, 3, 2]],\n   [0, 6, 8, 26]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 4, [10, 2, 2]], [1, 0, 1, 11]),\n  ('normal control 5',\n   [[['s3', 'MATH101'], ['s1', 'BIO130'], ['s3', 'CHEM120'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s1', 'CHEM120'], ['s3', 'MATH101H'], ['s3', 'BIO130']],\n    {'MATH101': 6, 'MATH101H': 7, 'PHYS110': 5, 'CHEM120': 8, 'BIO130': 2, 'HIST140': 7, 'ECON150': 3}, 3,\n    [5, 2, 2]],\n   [3, 1, 4, 21]),\n  ('normal control 6',\n   [[['s2', 'BIO130'], ['s2', 'PHYS110'], ['s1', 'MATH101'], ['s3', 'PHYS110'], ['s2', 'HIST140'],\n     ['s3', 'BIO130'], ['s3', 'ECON150'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s4', 'MATH101'],\n     ['s1', 'CHEM120'], ['s3', 'CHEM120'], ['s4', 'CHEM120'], ['s1', 'HIST140'], ['s4', 'HIST140'],\n     ['s5', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 0, 'HIST140': 5, 'ECON150': 4}, 2,\n    [5, 2, 4]],\n   [0, 0, 13, 13]),\n  ('normal control 7',\n   [[['s5', 'PHYS110'], ['s2', 'MATH101H'], ['s4', 'HIST140'], ['s1', 'BIO130'], ['s2', 'BIO130'],\n     ['s5', 'CHEM120'], ['s1', 'HIST140'], ['s2', 'HIST140'], ['s5', 'MATH101'], ['s3', 'MATH101'],\n     ['s5', 'BIO130'], ['s4', 'MATH101H'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 8, 'BIO130': 6, 'HIST140': 1, 'ECON150': 2}, 3,\n    [5, 3, 1]],\n   [0, 1, 0, 3]),\n  ('normal control 8',\n   [[['s4', 'MATH101'], ['s1', 'ECON150'], ['s4', 'BIO130'], ['s5', 'PHYS110'], ['s1', 'MATH101H'],\n     ['s2', 'CHEM120'], ['s2', 'ECON150'], ['s5', 'HIST140'], ['s1', 'CHEM120'], ['s2', 'ECON150'],\n     ['s4', 'PHYS110'], ['s3', 'ECON150'], ['s1', 'PHYS110'], ['s3', 'PHYS110']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 3, 'HIST140': 4, 'ECON150': 2}, 2,\n    [5, 3, 2]],\n   [3, 0, 8, 23])],\n [('regression: two in day lower bound 1',\n   [[['s2', 'HIST140'], ['s1', 'PHYS110'], ['s1', 'BIO130'], ['s2', 'BIO130'], ['s1', 'HIST140'],\n     ['s2', 'MATH101H'], ['s2', 'MATH101'], ['s2', 'BIO130']],\n    {'MATH101': 2, 'MATH101H': 7, 'PHYS110': 6, 'CHEM120': 4, 'BIO130': 1, 'HIST140': 7, 'ECON150': 8}, 3,\n    [5, 2, 4]],\n   [2, 0, 2, 12]),\n  ('regression variant: two in day lower bound 2',\n   [[['s3', 'ECON150'], ['s1', 'MATH101'], ['s1', 'ECON150'], ['s3', 'HIST140'], ['s3', 'BIO130'],\n     ['s4', 'ECON150'], ['s4', 'ECON150'], ['s4', 'MATH101H'], ['s3', 'CHEM120'], ['s2', 'ECON150'],\n     ['s1', 'HIST140'], ['s1', 'BIO130']],\n    {'MATH101': 5, 'MATH101H': 0, 'PHYS110': 1, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 0, 'ECON150': 4}, 2,\n    [5, 1, 2]],\n   [2, 0, 4, 14]),\n  ('partial repair guard 3',\n   [[['s3', 'CHEM120'], ['s1', 'MATH101'], ['s3', 'HIST140'], ['s1', 'BIO130'], ['s1', 'PHYS110'],\n     ['s2', 'BIO130'], ['s4', 'BIO130'], ['s3', 'PHYS110'], ['s1', 'CHEM120'], ['s2', 'HIST140']],\n    {'MATH101': 3, 'MATH101H': 11, 'PHYS110': 3, 'CHEM120': 3, 'BIO130': 8, 'HIST140': 5, 'ECON150': 0}, 4,\n    [10, 3, 4]],\n   [0, 0, 3, 3]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 0, 'PHYS110': 4}, 3, [10, 2, 4]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'MATH101'], ['s3', 'MATH101'], ['s4', 'PHYS110'], ['s3', 'MATH101'], ['s3', 'MATH101H'],\n     ['s5', 'CHEM120'], ['s5', 'PHYS110'], ['s1', 'HIST140'], ['s4', 'MATH101']],\n    {'MATH101': 3, 'MATH101H': 1, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 6, 'HIST140': 5, 'ECON150': 11}, 4,\n    [10, 1, 2]],\n   [0, 3, 3, 6]),\n  ('normal control 6',\n   [[['s1', 'MATH101'], ['s2', 'MATH101'], ['s5', 'BIO130'], ['s4', 'PHYS110'], ['s5', 'ECON150'],\n     ['s3', 'ECON150'], ['s4', 'ECON150'], ['s5', 'MATH101'], ['s4', 'CHEM120'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s4', 'MATH101H'], ['s5', 'CHEM120'], ['s2', 'BIO130']],\n    {'MATH101': 8, 'MATH101H': 1, 'PHYS110': 3, 'CHEM120': 1, 'BIO130': 0, 'HIST140': 1, 'ECON150': 5}, 3,\n    [10, 3, 4]],\n   [2, 1, 9, 32]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s4', 'PHYS110'], ['s4', 'HIST140'], ['s2', 'CHEM120'], ['s2', 'HIST140'],\n     ['s5', 'MATH101'], ['s4', 'ECON150'], ['s4', 'MATH101'], ['s2', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 2, 'BIO130': 2, 'HIST140': 3, 'ECON150': 5}, 2,\n    [10, 1, 2]],\n   [1, 0, 5, 15]),\n  ('normal control 8',\n   [[['s3', 'BIO130'], ['s4', 'MATH101'], ['s5', 'ECON150'], ['s1', 'MATH101H'], ['s1', 'BIO130'],\n     ['s5', 'PHYS110'], ['s5', 'BIO130']],\n    {'MATH101': 1, 'MATH101H': 5, 'PHYS110': 4, 'CHEM120': 4, 'BIO130': 4, 'HIST140': 3, 'ECON150': 4}, 2,\n    [10, 3, 2]],\n   [1, 0, 1, 11])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'BIO130'], ['s1', 'HIST140'], ['s5', 'PHYS110'], ['s1', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'ECON150']],\n    {'MATH101': 5, 'MATH101H': 3, 'PHYS110': 4, 'CHEM120': 2, 'BIO130': 0, 'HIST140': 0, 'ECON150': 3}, 2,\n    [10, 3, 1]],\n   [0, 0, 1, 1]),\n  ('regression variant: two in day lower bound 2',\n   [[['s4', 'MATH101H'], ['s2', 'MATH101H'], ['s5', 'BIO130'], ['s1', 'BIO130'], ['s3', 'MATH101H'],\n     ['s5', 'MATH101'], ['s2', 'CHEM120'], ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'ECON150'],\n     ['s1', 'HIST140'], ['s4', 'HIST140'], ['s4', 'CHEM120']],\n    {'MATH101': 2, 'MATH101H': 1, 'PHYS110': 0, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [5, 0, 6, 56]),\n  ('partial repair guard 3',\n   [[['s1', 'MATH101H'], ['s1', 'HIST140'], ['s1', 'MATH101'], ['s1', 'PHYS110']],\n    {'MATH101': 0, 'MATH101H': 2, 'PHYS110': 3, 'CHEM120': 5, 'BIO130': 5, 'HIST140': 2, 'ECON150': 1}, 2,\n    [5, 2, 1]],\n   [2, 0, 2, 12]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 1, 'PHYS110': 1}, 3, [10, 2, 2]], [0, 0, 0, 0]),\n  ('normal control 5',\n   [[['s5', 'MATH101H'], ['s2', 'PHYS110'], ['s4', 'PHYS110'], ['s4', 'BIO130'], ['s1', 'HIST140'],\n     ['s5', 'HIST140'], ['s1', 'PHYS110'], ['s3', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 5, 'PHYS110': 0, 'CHEM120': 6, 'BIO130': 1, 'HIST140': 6, 'ECON150': 1}, 3,\n    [10, 3, 4]],\n   [1, 0, 2, 12]),\n  ('normal control 6',\n   [[['s5', 'MATH101'], ['s1', 'CHEM120'], ['s4', 'MATH101H'], ['s4', 'HIST140'], ['s3', 'MATH101'],\n     ['s4', 'ECON150'], ['s4', 'CHEM120']],\n    {'MATH101': 4, 'MATH101H': 0, 'PHYS110': 10, 'CHEM120': 3, 'BIO130': 1, 'HIST140': 9, 'ECON150': 0}, 4,\n    [5, 3, 1]],\n   [0, 2, 0, 6]),\n  ('normal control 7',\n   [[['s2', 'MATH101'], ['s1', 'HIST140'], ['s2', 'ECON150'], ['s1', 'PHYS110'], ['s5', 'CHEM120'],\n     ['s1', 'BIO130'], ['s1', 'BIO130'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 8, 'PHYS110': 4, 'CHEM120': 5, 'BIO130': 8, 'HIST140': 8, 'ECON150': 5}, 3,\n    [10, 3, 1]],\n   [1, 0, 1, 11]),\n  ('normal control 8',\n   [[['s5', 'MATH101'], ['s5', 'ECON150'], ['s4', 'HIST140'], ['s2', 'MATH101H'], ['s4', 'PHYS110'],\n     ['s2', 'MATH101H'], ['s3', 'CHEM120'], ['s3', 'PHYS110'], ['s5', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s5', 'MATH101H'], ['s2', 'BIO130'], ['s3', 'ECON150']],\n    {'MATH101': 0, 'MATH101H': 5, 'PHYS110': 11, 'CHEM120': 4, 'BIO130': 7, 'HIST140': 11, 'ECON150': 2}, 4,\n    [10, 1, 2]],\n   [0, 3, 4, 7])],\n [('regression: two in day lower bound 1',\n   [[['s5', 'MATH101'], ['s5', 'HIST140'], ['s5', 'MATH101H'], ['s2', 'MATH101H'], ['s2', 'PHYS110'],\n     ['s3', 'MATH101'], ['s1', 'CHEM120'], ['s1', 'MATH101'], ['s4', 'CHEM120'], ['s3', 'PHYS110'],\n     ['s5', 'PHYS110'], ['s3', 'HIST140'], ['s3', 'PHYS110']],\n    {'MATH101': 9, 'MATH101H': 5, 'PHYS110': 1, 'CHEM120': 7, 'BIO130': 10, 'HIST140': 9, 'ECON150': 1}, 4,\n    [5, 1, 1]],\n   [0, 0, 0, 0]),\n  ('regression variant: two in day lower bound 2',\n   [[['s2', 'ECON150'], ['s1', 'PHYS110'], ['s1', 'MATH101H'], ['s1', 'HIST140'], ['s2', 'MATH101H'],\n     ['s1', 'MATH101H'], ['s2', 'PHYS110']],\n    {'MATH101': 6, 'MATH101H': 8, 'PHYS110': 7, 'CHEM120': 4, 'BIO130': 6, 'HIST140': 8, 'ECON150': 2}, 3,\n    [5, 3, 2]],\n   [3, 0, 3, 18]),\n  ('partial repair guard 3',\n   [[['s2', 'BIO130'], ['s3', 'HIST140'], ['s4', 'MATH101'], ['s1', 'MATH101'], ['s5', 'MATH101'],\n     ['s3', 'MATH101H'], ['s5', 'PHYS110'], ['s5', 'BIO130'], ['s4', 'BIO130'], ['s3', 'HIST140'],\n     ['s4', 'MATH101H'], ['s2', 'CHEM120'], ['s5', 'HIST140'], ['s2', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 0, 'CHEM120': 3, 'BIO130': 4, 'HIST140': 4, 'ECON150': 4}, 2,\n    [10, 1, 2]],\n   [1, 0, 3, 13]),\n  ('boundary control 4',\n   [[['s1', 'MATH101'], ['s1', 'PHYS110']], {'MATH101': 2, 'PHYS110': 3}, 3, [10, 2, 2]], [0, 0, 1, 1]),\n  ('normal control 5',\n   [[['s5', 'CHEM120'], ['s5', 'HIST140'], ['s5', 'MATH101'], ['s5', 'PHYS110'], ['s5', 'HIST140']],\n    {'MATH101': 1, 'MATH101H': 4, 'PHYS110': 2, 'CHEM120': 0, 'BIO130': 2, 'HIST140': 6, 'ECON150': 0}, 3,\n    [5, 3, 4]],\n   [2, 1, 4, 17]),\n  ('normal control 6',\n   [[['s4', 'CHEM120'], ['s1', 'BIO130'], ['s5', 'BIO130'], ['s2', 'MATH101'], ['s2', 'CHEM120'],\n     ['s2', 'BIO130'], ['s4', 'HIST140'], ['s1', 'CHEM120'], ['s1', 'MATH101H'], ['s3', 'MATH101H'],\n     ['s2', 'PHYS110'], ['s1', 'ECON150']],\n    {'MATH101': 7, 'MATH101H': 6, 'PHYS110': 1, 'CHEM120': 2, 'BIO130': 3, 'HIST140': 10, 'ECON150': 11}, 4,\n    [10, 1, 1]],\n   [3, 1, 3, 34]),\n  ('normal control 7',\n   [[['s1', 'HIST140'], ['s1', 'MATH101']],\n    {'MATH101': 0, 'MATH101H': 1, 'PHYS110': 7, 'CHEM120': 1, 'BIO130': 1, 'HIST140': 3, 'ECON150': 8}, 3,\n    [10, 2, 1]],\n   [0, 0, 0, 0]),\n  ('normal control 8',\n   [[['s4', 'CHEM120'], ['s4', 'MATH101H']],\n    {'MATH101': 3, 'MATH101H': 3, 'PHYS110': 3, 'CHEM120': 0, 'BIO130': 1, 'HIST140': 5, 'ECON150': 4}, 2,\n    [10, 2, 2]],\n   [0, 0, 0, 0])]]\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-same-day-proximity-counts-two-in-day-lower-bound","generated_at":"2026-09-29T14:52:03.878152+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Proximity soft constraints are what exam timetabling quality is judged on; each counter has its own boundary.","repair":"Count two-in-a-day only for same-day pairs more than one period apart.","root_cause":"The same-day fallback branch also catches distance zero.","sha256":"8f5bae863b336436028295efb440305372b12d831eb82dc6d4f4acde6cf11ba0","title":"Clashing pair counted as two-in-a-day · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.372,"exit_code":1,"observations":[{"actual":[0,1,0,2],"check":"regression: two in day lower bound 1","expected":[0,0,0,0],"passed":false},{"actual":[1,1,2,13],"check":"regression variant: two in day lower bound 2","expected":[1,0,2,12],"passed":false},{"actual":[3,1,16,49],"check":"partial repair guard 3","expected":[3,0,16,46],"passed":false},{"actual":[0,1,1,3],"check":"boundary control 4","expected":[0,1,1,3],"passed":true},{"actual":[3,0,3,33],"check":"normal control 5","expected":[3,0,3,33],"passed":true},{"actual":[2,2,8,20],"check":"normal control 6","expected":[2,0,8,18],"passed":false},{"actual":[0,1,0,1],"check":"normal control 7","expected":[0,0,0,0],"passed":false},{"actual":[0,0,0,0],"check":"normal control 8","expected":[0,0,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: two in day lower bound 1\", \"actual\": [0, 1, 0, 2], \"expected\": [0, 0, 0, 0], \"passed\": false}, {\"check\": \"regression variant: two in day lower bound 2\", \"actual\": [1, 1, 2, 13], \"expected\": [1, 0, 2, 12], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [3, 1, 16, 49], \"expected\": [3, 0, 16, 46], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [0, 1, 1, 3], \"expected\": [0, 1, 1, 3], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [3, 0, 3, 33], \"expected\": [3, 0, 3, 33], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [2, 2, 8, 20], \"expected\": [2, 0, 8, 18], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [0, 1, 0, 1], \"expected\": [0, 0, 0, 0], \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.785,"exit_code":1,"observations":[{"actual":[0,1,0,2],"check":"regression: two in day lower bound 1","expected":[0,0,0,0],"passed":false},{"actual":[1,1,2,13],"check":"regression variant: two in day lower bound 2","expected":[1,0,2,12],"passed":false},{"actual":[3,1,16,49],"check":"partial repair guard 3","expected":[3,0,16,46],"passed":false},{"actual":[0,1,1,3],"check":"boundary control 4","expected":[0,1,1,3],"passed":true},{"actual":[3,0,3,33],"check":"normal control 5","expected":[3,0,3,33],"passed":true},{"actual":[2,2,8,20],"check":"normal control 6","expected":[2,0,8,18],"passed":false},{"actual":[0,1,0,1],"check":"normal control 7","expected":[0,0,0,0],"passed":false},{"actual":[0,0,0,0],"check":"normal control 8","expected":[0,0,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: two in day lower bound 1\", \"actual\": [0, 1, 0, 2], \"expected\": [0, 0, 0, 0], \"passed\": false}, {\"check\": \"regression variant: two in day lower bound 2\", \"actual\": [1, 1, 2, 13], \"expected\": [1, 0, 2, 12], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [3, 1, 16, 49], \"expected\": [3, 0, 16, 46], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [0, 1, 1, 3], \"expected\": [0, 1, 1, 3], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [3, 0, 3, 33], \"expected\": [3, 0, 3, 33], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [2, 2, 8, 20], \"expected\": [2, 0, 8, 18], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [0, 1, 0, 1], \"expected\": [0, 0, 0, 0], \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.664,"exit_code":0,"observations":[{"actual":[0,0,0,0],"check":"regression: two in day lower bound 1","expected":[0,0,0,0],"passed":true},{"actual":[1,0,2,12],"check":"regression variant: two in day lower bound 2","expected":[1,0,2,12],"passed":true},{"actual":[3,0,16,46],"check":"partial repair guard 3","expected":[3,0,16,46],"passed":true},{"actual":[0,1,1,3],"check":"boundary control 4","expected":[0,1,1,3],"passed":true},{"actual":[3,0,3,33],"check":"normal control 5","expected":[3,0,3,33],"passed":true},{"actual":[2,0,8,18],"check":"normal control 6","expected":[2,0,8,18],"passed":true},{"actual":[0,0,0,0],"check":"normal control 7","expected":[0,0,0,0],"passed":true},{"actual":[0,0,0,0],"check":"normal control 8","expected":[0,0,0,0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: two in day lower bound 1\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}, {\"check\": \"regression variant: two in day lower bound 2\", \"actual\": [1, 0, 2, 12], \"expected\": [1, 0, 2, 12], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [3, 0, 16, 46], \"expected\": [3, 0, 16, 46], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [0, 1, 1, 3], \"expected\": [0, 1, 1, 3], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [3, 0, 3, 33], \"expected\": [3, 0, 3, 33], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [2, 0, 8, 18], \"expected\": [2, 0, 8, 18], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [0, 0, 0, 0], \"expected\": [0, 0, 0, 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}