{"abstract":"A repeated registration row pushes a student over the daily limit.","category":"Exam timetabling constraints","checks":8,"contract":"sits [student, exam, start minute] (rows may repeat an exam). A student violates the limit if more than limit distinct exams start inside some half-open 24-hour window [t, t + 1440). Return [student, maximum count] for violators, by student.","evaluation_group":"w2-exam-timetabling-constraints-rolling-day-exam-load","failed_approach":"Deduplicating start times merges two different exams at the same time.","family":"w2-exam-timetabling-constraints-rolling-day-exam-load-repeated-exam-rows","id":"FA-94511","implementations":{"attempt":{"sha256":"22ae4c3cb1399cde4f25e470546d0271be92fab74fbd3c95f28ae2ca5a259ad9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(sits, limit):\n    by = {}\n    for st, ex, t in sits:\n        by.setdefault(st, []).append(t)\n    out = []\n    for st in sorted(by):\n        ts = sorted(set(by[st]))\n        best = 0\n        j = 0\n        for i in range(len(ts)):\n            while ts[i] - ts[j] >= 1440:\n                j += 1\n            best = max(best, i - j + 1)\n        if best > limit:\n            out.append([st, best])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: repeated exam rows 1', [[['s1', 'A', 600], ['s1', 'A', 600], ['s1', 'B', 900]], 1],\n   [['s1', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'ECON150', 1560], ['s4', 'BIO130', 2221], ['s3', 'MATH101H', 1740], ['s3', 'CHEM120', 840],\n     ['s2', 'CHEM120', 720], ['s2', 'MATH101H', 540], ['s4', 'HIST140', 600], ['s3', 'MATH101', 840],\n     ['s4', 'PHYS110', 3662], ['s3', 'ECON150', 1560], ['s3', 'BIO130', 540], ['s4', 'MATH101', 2041]],\n    2],\n   [['s3', 5]]),\n  ('partial repair guard 3',\n   [[['s1', 'PHYS110', 540], ['s2', 'PHYS110', 900], ['s2', 'HIST140', 600], ['s1', 'ECON150', 1800],\n     ['s1', 'CHEM120', 540]],\n    2],\n   [['s1', 3]]),\n  ('normal control 4',\n   [[['s2', 'BIO130', 540], ['s3', 'ECON150', 540], ['s2', 'MATH101', 1380], ['s3', 'MATH101H', 2100],\n     ['s3', 'PHYS110', 1260]],\n    3],\n   []),\n  ('normal control 5',\n   [[['s3', 'MATH101H', 2041], ['s3', 'BIO130', 600], ['s3', 'PHYS110', 3301], ['s3', 'ECON150', 4561],\n     ['s3', 'ECON150', 4561]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s4', 'MATH101', 4680], ['s4', 'CHEM120', 540], ['s5', 'BIO130', 600], ['s5', 'CHEM120', 2040],\n     ['s4', 'BIO130', 7381], ['s4', 'HIST140', 6121], ['s4', 'MATH101H', 1800], ['s4', 'MATH101', 4680]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'ECON150', 4861], ['s3', 'HIST140', 540], ['s1', 'PHYS110', 1981], ['s1', 'BIO130', 540],\n     ['s3', 'CHEM120', 540], ['s3', 'MATH101', 1800], ['s1', 'MATH101H', 4861]],\n    2],\n   [['s3', 3]]),\n  ('normal control 8',\n   [[['s3', 'CHEM120', 2039], ['s1', 'PHYS110', 540], ['s3', 'MATH101H', 600], ['s1', 'MATH101H', 2280],\n     ['s1', 'MATH101H', 2280], ['s1', 'ECON150', 540], ['s3', 'BIO130', 3478], ['s2', 'BIO130', 540],\n     ['s1', 'CHEM120', 1020], ['s2', 'ECON150', 720], ['s1', 'BIO130', 840]],\n    1],\n   [['s1', 4], ['s2', 2], ['s3', 2]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'MATH101H', 600], ['s5', 'MATH101', 780], ['s5', 'MATH101', 780]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 1800], ['s2', 'HIST140', 1860], ['s5', 'MATH101', 3240], ['s2', 'ECON150', 600],\n     ['s5', 'HIST140', 3240], ['s2', 'CHEM120', 2160], ['s5', 'MATH101H', 1800], ['s5', 'CHEM120', 1800],\n     ['s4', 'BIO130', 540], ['s2', 'BIO130', 3420], ['s5', 'BIO130', 540], ['s4', 'CHEM120', 3060],\n     ['s4', 'CHEM120', 3060]],\n    1],\n   [['s2', 2], ['s4', 2], ['s5', 3]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1979], ['s1', 'C', 1990]], 2], []),\n  ('normal control 5',\n   [[['s4', 'MATH101', 600], ['s4', 'MATH101H', 4919], ['s2', 'HIST140', 6479], ['s2', 'PHYS110', 6179],\n     ['s2', 'MATH101', 600], ['s4', 'MATH101', 600], ['s2', 'BIO130', 1860], ['s4', 'HIST140', 3480],\n     ['s2', 'CHEM120', 4740]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s3', 'CHEM120', 600], ['s3', 'MATH101H', 7202], ['s3', 'HIST140', 5761], ['s1', 'MATH101H', 3420],\n     ['s3', 'BIO130', 4320], ['s3', 'MATH101', 3480], ['s1', 'BIO130', 540]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s5', 'ECON150', 1980], ['s5', 'CHEM120', 3000], ['s2', 'MATH101H', 2041], ['s2', 'HIST140', 2761],\n     ['s2', 'BIO130', 600], ['s1', 'PHYS110', 540], ['s2', 'CHEM120', 3601], ['s1', 'HIST140', 1380],\n     ['s5', 'MATH101H', 540], ['s5', 'PHYS110', 2280]],\n    2],\n   [['s5', 3]]),\n  ('normal control 8',\n   [[['s1', 'CHEM120', 5400], ['s2', 'PHYS110', 840], ['s4', 'HIST140', 540], ['s4', 'BIO130', 2520],\n     ['s2', 'CHEM120', 540], ['s1', 'MATH101H', 540], ['s1', 'ECON150', 540], ['s1', 'BIO130', 2520],\n     ['s2', 'MATH101', 2279], ['s1', 'MATH101', 1800], ['s4', 'MATH101', 1260]],\n    3],\n   [])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 600], ['s5', 'HIST140', 600], ['s5', 'MATH101H', 1440]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s4', 'BIO130', 540], ['s3', 'PHYS110', 840], ['s1', 'PHYS110', 1440], ['s3', 'CHEM120', 540],\n     ['s1', 'MATH101', 1440], ['s4', 'PHYS110', 1380], ['s1', 'MATH101H', 1440], ['s3', 'ECON150', 1680],\n     ['s3', 'CHEM120', 540], ['s1', 'ECON150', 600]],\n    1],\n   [['s1', 4], ['s3', 3], ['s4', 2]]),\n  ('boundary control 3', [[['s1', 'A', 600], ['s1', 'B', 600], ['s1', 'C', 900]], 2], [['s1', 3]]),\n  ('normal control 4',\n   [[['s1', 'HIST140', 840], ['s4', 'MATH101H', 2280], ['s4', 'MATH101', 1440], ['s4', 'ECON150', 1440],\n     ['s4', 'PHYS110', 600], ['s4', 'BIO130', 3721], ['s1', 'PHYS110', 540]],\n    2],\n   [['s4', 3]]),\n  ('normal control 5',\n   [[['s3', 'ECON150', 1860], ['s3', 'MATH101', 600], ['s5', 'MATH101', 3600], ['s5', 'BIO130', 3600],\n     ['s5', 'MATH101H', 720], ['s5', 'MATH101', 3600], ['s5', 'ECON150', 540], ['s5', 'PHYS110', 5041],\n     ['s3', 'PHYS110', 600]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s2', 'BIO130', 3721], ['s2', 'CHEM120', 2881], ['s2', 'PHYS110', 600], ['s2', 'HIST140', 2041]], 2],\n   []),\n  ('normal control 7',\n   [[['s5', 'HIST140', 780], ['s4', 'PHYS110', 600], ['s5', 'BIO130', 600], ['s4', 'MATH101', 2039],\n     ['s5', 'PHYS110', 1500]],\n    3],\n   []),\n  ('normal control 8', [[['s1', 'PHYS110', 600], ['s1', 'CHEM120', 1860]], 2], [])],\n [('regression: repeated exam rows 1',\n   [[['s3', 'HIST140', 2039], ['s3', 'BIO130', 600], ['s3', 'HIST140', 2039], ['s3', 'MATH101', 3299]], 2],\n   []),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'MATH101', 3480], ['s3', 'MATH101H', 3780], ['s3', 'PHYS110', 600], ['s3', 'BIO130', 5040],\n     ['s3', 'ECON150', 6479], ['s3', 'BIO130', 5040]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s5', 'HIST140', 540], ['s5', 'MATH101', 4859], ['s1', 'HIST140', 540], ['s1', 'ECON150', 1260],\n     ['s5', 'ECON150', 3420], ['s1', 'MATH101H', 1260]],\n    2],\n   [['s1', 3]]),\n  ('boundary control 4', [[['s1', 'A', 1300], ['s1', 'B', 1500], ['s1', 'C', 1600]], 2], [['s1', 3]]),\n  ('normal control 5', [[['s4', 'HIST140', 1260], ['s4', 'CHEM120', 540], ['s4', 'MATH101H', 2520]], 1],\n   [['s4', 2]]),\n  ('normal control 6',\n   [[['s2', 'MATH101', 4259], ['s2', 'ECON150', 540], ['s5', 'BIO130', 2760], ['s2', 'CHEM120', 1979],\n     ['s2', 'BIO130', 5700], ['s5', 'CHEM120', 600], ['s5', 'MATH101H', 1320], ['s2', 'MATH101H', 2819]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 600], ['s4', 'ECON150', 540], ['s1', 'HIST140', 2760], ['s1', 'BIO130', 1320],\n     ['s4', 'HIST140', 540], ['s1', 'CHEM120', 4200], ['s4', 'MATH101H', 1560], ['s4', 'PHYS110', 840],\n     ['s4', 'CHEM120', 840], ['s3', 'HIST140', 540], ['s3', 'MATH101H', 3240], ['s3', 'PHYS110', 1980],\n     ['s3', 'BIO130', 1800], ['s1', 'ECON150', 3480]],\n    3],\n   [['s4', 5]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 2760], ['s5', 'ECON150', 600], ['s5', 'MATH101', 1860], ['s5', 'CHEM120', 1860],\n     ['s5', 'HIST140', 2760], ['s5', 'BIO130', 2580]],\n    2],\n   [['s5', 4]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'BIO130', 1979], ['s1', 'CHEM120', 540], ['s1', 'ECON150', 3418], ['s1', 'BIO130', 1979],\n     ['s1', 'MATH101H', 4138]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s2', 'HIST140', 2039], ['s3', 'MATH101', 2279], ['s3', 'BIO130', 540], ['s2', 'HIST140', 2039],\n     ['s3', 'HIST140', 3718], ['s2', 'MATH101', 2339], ['s1', 'PHYS110', 540], ['s3', 'ECON150', 4018],\n     ['s1', 'MATH101', 2640], ['s2', 'BIO130', 600], ['s2', 'CHEM120', 2339], ['s1', 'ECON150', 3480],\n     ['s1', 'HIST140', 1800], ['s3', 'MATH101H', 840]],\n    1],\n   [['s1', 2], ['s2', 3], ['s3', 2]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1980], ['s1', 'C', 2000]], 2], []),\n  ('normal control 5',\n   [[['s5', 'HIST140', 2821], ['s1', 'PHYS110', 600], ['s5', 'ECON150', 1981], ['s1', 'CHEM120', 2040],\n     ['s3', 'CHEM120', 600], ['s3', 'MATH101H', 960], ['s5', 'MATH101H', 540], ['s3', 'BIO130', 780]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s5', 'PHYS110', 6181], ['s5', 'MATH101', 600], ['s2', 'MATH101H', 540], ['s2', 'ECON150', 4680],\n     ['s4', 'MATH101', 5099], ['s5', 'ECON150', 2041], ['s2', 'MATH101', 3420], ['s4', 'ECON150', 3660],\n     ['s4', 'MATH101H', 6540], ['s5', 'BIO130', 4921], ['s4', 'PHYS110', 3480], ['s5', 'CHEM120', 2041],\n     ['s4', 'CHEM120', 600], ['s2', 'HIST140', 6420], ['s2', 'CHEM120', 6120]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s2', 'MATH101', 4500], ['s2', 'MATH101H', 3480], ['s4', 'PHYS110', 540], ['s4', 'CHEM120', 1980],\n     ['s3', 'MATH101', 600], ['s3', 'PHYS110', 4561], ['s2', 'BIO130', 4320], ['s2', 'CHEM120', 2039],\n     ['s3', 'MATH101H', 2881], ['s2', 'HIST140', 600], ['s3', 'ECON150', 3721], ['s3', 'CHEM120', 1440]],\n    3],\n   []),\n  ('normal control 8',\n   [[['s2', 'MATH101H', 600], ['s2', 'HIST140', 3780], ['s1', 'CHEM120', 1980], ['s1', 'PHYS110', 2160],\n     ['s2', 'CHEM120', 600], ['s1', 'MATH101H', 2160], ['s3', 'MATH101', 540], ['s3', 'CHEM120', 3119],\n     ['s3', 'HIST140', 840], ['s2', 'MATH101', 900], ['s1', 'BIO130', 540], ['s3', 'MATH101H', 2279],\n     ['s3', 'BIO130', 4379]],\n    3],\n   [])]]\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":"91dc316a850b251f59102e7408f3a591c1bd3b1380875a19d688b419877ca987","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(sits, limit):\n    by = {}\n    for st, ex, t in sits:\n        by.setdefault(st, []).append(t)\n    out = []\n    for st in sorted(by):\n        ts = sorted(by[st])\n        best = 0\n        j = 0\n        for i in range(len(ts)):\n            while ts[i] - ts[j] >= 1440:\n                j += 1\n            best = max(best, i - j + 1)\n        if best > limit:\n            out.append([st, best])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: repeated exam rows 1', [[['s1', 'A', 600], ['s1', 'A', 600], ['s1', 'B', 900]], 1],\n   [['s1', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'ECON150', 1560], ['s4', 'BIO130', 2221], ['s3', 'MATH101H', 1740], ['s3', 'CHEM120', 840],\n     ['s2', 'CHEM120', 720], ['s2', 'MATH101H', 540], ['s4', 'HIST140', 600], ['s3', 'MATH101', 840],\n     ['s4', 'PHYS110', 3662], ['s3', 'ECON150', 1560], ['s3', 'BIO130', 540], ['s4', 'MATH101', 2041]],\n    2],\n   [['s3', 5]]),\n  ('partial repair guard 3',\n   [[['s1', 'PHYS110', 540], ['s2', 'PHYS110', 900], ['s2', 'HIST140', 600], ['s1', 'ECON150', 1800],\n     ['s1', 'CHEM120', 540]],\n    2],\n   [['s1', 3]]),\n  ('normal control 4',\n   [[['s2', 'BIO130', 540], ['s3', 'ECON150', 540], ['s2', 'MATH101', 1380], ['s3', 'MATH101H', 2100],\n     ['s3', 'PHYS110', 1260]],\n    3],\n   []),\n  ('normal control 5',\n   [[['s3', 'MATH101H', 2041], ['s3', 'BIO130', 600], ['s3', 'PHYS110', 3301], ['s3', 'ECON150', 4561],\n     ['s3', 'ECON150', 4561]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s4', 'MATH101', 4680], ['s4', 'CHEM120', 540], ['s5', 'BIO130', 600], ['s5', 'CHEM120', 2040],\n     ['s4', 'BIO130', 7381], ['s4', 'HIST140', 6121], ['s4', 'MATH101H', 1800], ['s4', 'MATH101', 4680]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'ECON150', 4861], ['s3', 'HIST140', 540], ['s1', 'PHYS110', 1981], ['s1', 'BIO130', 540],\n     ['s3', 'CHEM120', 540], ['s3', 'MATH101', 1800], ['s1', 'MATH101H', 4861]],\n    2],\n   [['s3', 3]]),\n  ('normal control 8',\n   [[['s3', 'CHEM120', 2039], ['s1', 'PHYS110', 540], ['s3', 'MATH101H', 600], ['s1', 'MATH101H', 2280],\n     ['s1', 'MATH101H', 2280], ['s1', 'ECON150', 540], ['s3', 'BIO130', 3478], ['s2', 'BIO130', 540],\n     ['s1', 'CHEM120', 1020], ['s2', 'ECON150', 720], ['s1', 'BIO130', 840]],\n    1],\n   [['s1', 4], ['s2', 2], ['s3', 2]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'MATH101H', 600], ['s5', 'MATH101', 780], ['s5', 'MATH101', 780]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 1800], ['s2', 'HIST140', 1860], ['s5', 'MATH101', 3240], ['s2', 'ECON150', 600],\n     ['s5', 'HIST140', 3240], ['s2', 'CHEM120', 2160], ['s5', 'MATH101H', 1800], ['s5', 'CHEM120', 1800],\n     ['s4', 'BIO130', 540], ['s2', 'BIO130', 3420], ['s5', 'BIO130', 540], ['s4', 'CHEM120', 3060],\n     ['s4', 'CHEM120', 3060]],\n    1],\n   [['s2', 2], ['s4', 2], ['s5', 3]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1979], ['s1', 'C', 1990]], 2], []),\n  ('normal control 5',\n   [[['s4', 'MATH101', 600], ['s4', 'MATH101H', 4919], ['s2', 'HIST140', 6479], ['s2', 'PHYS110', 6179],\n     ['s2', 'MATH101', 600], ['s4', 'MATH101', 600], ['s2', 'BIO130', 1860], ['s4', 'HIST140', 3480],\n     ['s2', 'CHEM120', 4740]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s3', 'CHEM120', 600], ['s3', 'MATH101H', 7202], ['s3', 'HIST140', 5761], ['s1', 'MATH101H', 3420],\n     ['s3', 'BIO130', 4320], ['s3', 'MATH101', 3480], ['s1', 'BIO130', 540]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s5', 'ECON150', 1980], ['s5', 'CHEM120', 3000], ['s2', 'MATH101H', 2041], ['s2', 'HIST140', 2761],\n     ['s2', 'BIO130', 600], ['s1', 'PHYS110', 540], ['s2', 'CHEM120', 3601], ['s1', 'HIST140', 1380],\n     ['s5', 'MATH101H', 540], ['s5', 'PHYS110', 2280]],\n    2],\n   [['s5', 3]]),\n  ('normal control 8',\n   [[['s1', 'CHEM120', 5400], ['s2', 'PHYS110', 840], ['s4', 'HIST140', 540], ['s4', 'BIO130', 2520],\n     ['s2', 'CHEM120', 540], ['s1', 'MATH101H', 540], ['s1', 'ECON150', 540], ['s1', 'BIO130', 2520],\n     ['s2', 'MATH101', 2279], ['s1', 'MATH101', 1800], ['s4', 'MATH101', 1260]],\n    3],\n   [])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 600], ['s5', 'HIST140', 600], ['s5', 'MATH101H', 1440]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s4', 'BIO130', 540], ['s3', 'PHYS110', 840], ['s1', 'PHYS110', 1440], ['s3', 'CHEM120', 540],\n     ['s1', 'MATH101', 1440], ['s4', 'PHYS110', 1380], ['s1', 'MATH101H', 1440], ['s3', 'ECON150', 1680],\n     ['s3', 'CHEM120', 540], ['s1', 'ECON150', 600]],\n    1],\n   [['s1', 4], ['s3', 3], ['s4', 2]]),\n  ('boundary control 3', [[['s1', 'A', 600], ['s1', 'B', 600], ['s1', 'C', 900]], 2], [['s1', 3]]),\n  ('normal control 4',\n   [[['s1', 'HIST140', 840], ['s4', 'MATH101H', 2280], ['s4', 'MATH101', 1440], ['s4', 'ECON150', 1440],\n     ['s4', 'PHYS110', 600], ['s4', 'BIO130', 3721], ['s1', 'PHYS110', 540]],\n    2],\n   [['s4', 3]]),\n  ('normal control 5',\n   [[['s3', 'ECON150', 1860], ['s3', 'MATH101', 600], ['s5', 'MATH101', 3600], ['s5', 'BIO130', 3600],\n     ['s5', 'MATH101H', 720], ['s5', 'MATH101', 3600], ['s5', 'ECON150', 540], ['s5', 'PHYS110', 5041],\n     ['s3', 'PHYS110', 600]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s2', 'BIO130', 3721], ['s2', 'CHEM120', 2881], ['s2', 'PHYS110', 600], ['s2', 'HIST140', 2041]], 2],\n   []),\n  ('normal control 7',\n   [[['s5', 'HIST140', 780], ['s4', 'PHYS110', 600], ['s5', 'BIO130', 600], ['s4', 'MATH101', 2039],\n     ['s5', 'PHYS110', 1500]],\n    3],\n   []),\n  ('normal control 8', [[['s1', 'PHYS110', 600], ['s1', 'CHEM120', 1860]], 2], [])],\n [('regression: repeated exam rows 1',\n   [[['s3', 'HIST140', 2039], ['s3', 'BIO130', 600], ['s3', 'HIST140', 2039], ['s3', 'MATH101', 3299]], 2],\n   []),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'MATH101', 3480], ['s3', 'MATH101H', 3780], ['s3', 'PHYS110', 600], ['s3', 'BIO130', 5040],\n     ['s3', 'ECON150', 6479], ['s3', 'BIO130', 5040]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s5', 'HIST140', 540], ['s5', 'MATH101', 4859], ['s1', 'HIST140', 540], ['s1', 'ECON150', 1260],\n     ['s5', 'ECON150', 3420], ['s1', 'MATH101H', 1260]],\n    2],\n   [['s1', 3]]),\n  ('boundary control 4', [[['s1', 'A', 1300], ['s1', 'B', 1500], ['s1', 'C', 1600]], 2], [['s1', 3]]),\n  ('normal control 5', [[['s4', 'HIST140', 1260], ['s4', 'CHEM120', 540], ['s4', 'MATH101H', 2520]], 1],\n   [['s4', 2]]),\n  ('normal control 6',\n   [[['s2', 'MATH101', 4259], ['s2', 'ECON150', 540], ['s5', 'BIO130', 2760], ['s2', 'CHEM120', 1979],\n     ['s2', 'BIO130', 5700], ['s5', 'CHEM120', 600], ['s5', 'MATH101H', 1320], ['s2', 'MATH101H', 2819]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 600], ['s4', 'ECON150', 540], ['s1', 'HIST140', 2760], ['s1', 'BIO130', 1320],\n     ['s4', 'HIST140', 540], ['s1', 'CHEM120', 4200], ['s4', 'MATH101H', 1560], ['s4', 'PHYS110', 840],\n     ['s4', 'CHEM120', 840], ['s3', 'HIST140', 540], ['s3', 'MATH101H', 3240], ['s3', 'PHYS110', 1980],\n     ['s3', 'BIO130', 1800], ['s1', 'ECON150', 3480]],\n    3],\n   [['s4', 5]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 2760], ['s5', 'ECON150', 600], ['s5', 'MATH101', 1860], ['s5', 'CHEM120', 1860],\n     ['s5', 'HIST140', 2760], ['s5', 'BIO130', 2580]],\n    2],\n   [['s5', 4]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'BIO130', 1979], ['s1', 'CHEM120', 540], ['s1', 'ECON150', 3418], ['s1', 'BIO130', 1979],\n     ['s1', 'MATH101H', 4138]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s2', 'HIST140', 2039], ['s3', 'MATH101', 2279], ['s3', 'BIO130', 540], ['s2', 'HIST140', 2039],\n     ['s3', 'HIST140', 3718], ['s2', 'MATH101', 2339], ['s1', 'PHYS110', 540], ['s3', 'ECON150', 4018],\n     ['s1', 'MATH101', 2640], ['s2', 'BIO130', 600], ['s2', 'CHEM120', 2339], ['s1', 'ECON150', 3480],\n     ['s1', 'HIST140', 1800], ['s3', 'MATH101H', 840]],\n    1],\n   [['s1', 2], ['s2', 3], ['s3', 2]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1980], ['s1', 'C', 2000]], 2], []),\n  ('normal control 5',\n   [[['s5', 'HIST140', 2821], ['s1', 'PHYS110', 600], ['s5', 'ECON150', 1981], ['s1', 'CHEM120', 2040],\n     ['s3', 'CHEM120', 600], ['s3', 'MATH101H', 960], ['s5', 'MATH101H', 540], ['s3', 'BIO130', 780]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s5', 'PHYS110', 6181], ['s5', 'MATH101', 600], ['s2', 'MATH101H', 540], ['s2', 'ECON150', 4680],\n     ['s4', 'MATH101', 5099], ['s5', 'ECON150', 2041], ['s2', 'MATH101', 3420], ['s4', 'ECON150', 3660],\n     ['s4', 'MATH101H', 6540], ['s5', 'BIO130', 4921], ['s4', 'PHYS110', 3480], ['s5', 'CHEM120', 2041],\n     ['s4', 'CHEM120', 600], ['s2', 'HIST140', 6420], ['s2', 'CHEM120', 6120]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s2', 'MATH101', 4500], ['s2', 'MATH101H', 3480], ['s4', 'PHYS110', 540], ['s4', 'CHEM120', 1980],\n     ['s3', 'MATH101', 600], ['s3', 'PHYS110', 4561], ['s2', 'BIO130', 4320], ['s2', 'CHEM120', 2039],\n     ['s3', 'MATH101H', 2881], ['s2', 'HIST140', 600], ['s3', 'ECON150', 3721], ['s3', 'CHEM120', 1440]],\n    3],\n   []),\n  ('normal control 8',\n   [[['s2', 'MATH101H', 600], ['s2', 'HIST140', 3780], ['s1', 'CHEM120', 1980], ['s1', 'PHYS110', 2160],\n     ['s2', 'CHEM120', 600], ['s1', 'MATH101H', 2160], ['s3', 'MATH101', 540], ['s3', 'CHEM120', 3119],\n     ['s3', 'HIST140', 840], ['s2', 'MATH101', 900], ['s1', 'BIO130', 540], ['s3', 'MATH101H', 2279],\n     ['s3', 'BIO130', 4379]],\n    3],\n   [])]]\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":"20dbe5739d64f43484877ecfea82dbaacd052f842c879f5f34b1ebd2fec25b9c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(sits, limit):\n    by = {}\n    for st, ex, t in sits:\n        by.setdefault(st, {})[ex] = t\n    out = []\n    for st in sorted(by):\n        ts = sorted(by[st].values())\n        best = 0\n        j = 0\n        for i in range(len(ts)):\n            while ts[i] - ts[j] >= 1440:\n                j += 1\n            best = max(best, i - j + 1)\n        if best > limit:\n            out.append([st, best])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: repeated exam rows 1', [[['s1', 'A', 600], ['s1', 'A', 600], ['s1', 'B', 900]], 1],\n   [['s1', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'ECON150', 1560], ['s4', 'BIO130', 2221], ['s3', 'MATH101H', 1740], ['s3', 'CHEM120', 840],\n     ['s2', 'CHEM120', 720], ['s2', 'MATH101H', 540], ['s4', 'HIST140', 600], ['s3', 'MATH101', 840],\n     ['s4', 'PHYS110', 3662], ['s3', 'ECON150', 1560], ['s3', 'BIO130', 540], ['s4', 'MATH101', 2041]],\n    2],\n   [['s3', 5]]),\n  ('partial repair guard 3',\n   [[['s1', 'PHYS110', 540], ['s2', 'PHYS110', 900], ['s2', 'HIST140', 600], ['s1', 'ECON150', 1800],\n     ['s1', 'CHEM120', 540]],\n    2],\n   [['s1', 3]]),\n  ('normal control 4',\n   [[['s2', 'BIO130', 540], ['s3', 'ECON150', 540], ['s2', 'MATH101', 1380], ['s3', 'MATH101H', 2100],\n     ['s3', 'PHYS110', 1260]],\n    3],\n   []),\n  ('normal control 5',\n   [[['s3', 'MATH101H', 2041], ['s3', 'BIO130', 600], ['s3', 'PHYS110', 3301], ['s3', 'ECON150', 4561],\n     ['s3', 'ECON150', 4561]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s4', 'MATH101', 4680], ['s4', 'CHEM120', 540], ['s5', 'BIO130', 600], ['s5', 'CHEM120', 2040],\n     ['s4', 'BIO130', 7381], ['s4', 'HIST140', 6121], ['s4', 'MATH101H', 1800], ['s4', 'MATH101', 4680]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'ECON150', 4861], ['s3', 'HIST140', 540], ['s1', 'PHYS110', 1981], ['s1', 'BIO130', 540],\n     ['s3', 'CHEM120', 540], ['s3', 'MATH101', 1800], ['s1', 'MATH101H', 4861]],\n    2],\n   [['s3', 3]]),\n  ('normal control 8',\n   [[['s3', 'CHEM120', 2039], ['s1', 'PHYS110', 540], ['s3', 'MATH101H', 600], ['s1', 'MATH101H', 2280],\n     ['s1', 'MATH101H', 2280], ['s1', 'ECON150', 540], ['s3', 'BIO130', 3478], ['s2', 'BIO130', 540],\n     ['s1', 'CHEM120', 1020], ['s2', 'ECON150', 720], ['s1', 'BIO130', 840]],\n    1],\n   [['s1', 4], ['s2', 2], ['s3', 2]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'MATH101H', 600], ['s5', 'MATH101', 780], ['s5', 'MATH101', 780]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('partial repair guard 3',\n   [[['s4', 'PHYS110', 1800], ['s2', 'HIST140', 1860], ['s5', 'MATH101', 3240], ['s2', 'ECON150', 600],\n     ['s5', 'HIST140', 3240], ['s2', 'CHEM120', 2160], ['s5', 'MATH101H', 1800], ['s5', 'CHEM120', 1800],\n     ['s4', 'BIO130', 540], ['s2', 'BIO130', 3420], ['s5', 'BIO130', 540], ['s4', 'CHEM120', 3060],\n     ['s4', 'CHEM120', 3060]],\n    1],\n   [['s2', 2], ['s4', 2], ['s5', 3]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1979], ['s1', 'C', 1990]], 2], []),\n  ('normal control 5',\n   [[['s4', 'MATH101', 600], ['s4', 'MATH101H', 4919], ['s2', 'HIST140', 6479], ['s2', 'PHYS110', 6179],\n     ['s2', 'MATH101', 600], ['s4', 'MATH101', 600], ['s2', 'BIO130', 1860], ['s4', 'HIST140', 3480],\n     ['s2', 'CHEM120', 4740]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s3', 'CHEM120', 600], ['s3', 'MATH101H', 7202], ['s3', 'HIST140', 5761], ['s1', 'MATH101H', 3420],\n     ['s3', 'BIO130', 4320], ['s3', 'MATH101', 3480], ['s1', 'BIO130', 540]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s5', 'ECON150', 1980], ['s5', 'CHEM120', 3000], ['s2', 'MATH101H', 2041], ['s2', 'HIST140', 2761],\n     ['s2', 'BIO130', 600], ['s1', 'PHYS110', 540], ['s2', 'CHEM120', 3601], ['s1', 'HIST140', 1380],\n     ['s5', 'MATH101H', 540], ['s5', 'PHYS110', 2280]],\n    2],\n   [['s5', 3]]),\n  ('normal control 8',\n   [[['s1', 'CHEM120', 5400], ['s2', 'PHYS110', 840], ['s4', 'HIST140', 540], ['s4', 'BIO130', 2520],\n     ['s2', 'CHEM120', 540], ['s1', 'MATH101H', 540], ['s1', 'ECON150', 540], ['s1', 'BIO130', 2520],\n     ['s2', 'MATH101', 2279], ['s1', 'MATH101', 1800], ['s4', 'MATH101', 1260]],\n    3],\n   [])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 600], ['s5', 'HIST140', 600], ['s5', 'MATH101H', 1440]], 1], [['s5', 2]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s4', 'BIO130', 540], ['s3', 'PHYS110', 840], ['s1', 'PHYS110', 1440], ['s3', 'CHEM120', 540],\n     ['s1', 'MATH101', 1440], ['s4', 'PHYS110', 1380], ['s1', 'MATH101H', 1440], ['s3', 'ECON150', 1680],\n     ['s3', 'CHEM120', 540], ['s1', 'ECON150', 600]],\n    1],\n   [['s1', 4], ['s3', 3], ['s4', 2]]),\n  ('boundary control 3', [[['s1', 'A', 600], ['s1', 'B', 600], ['s1', 'C', 900]], 2], [['s1', 3]]),\n  ('normal control 4',\n   [[['s1', 'HIST140', 840], ['s4', 'MATH101H', 2280], ['s4', 'MATH101', 1440], ['s4', 'ECON150', 1440],\n     ['s4', 'PHYS110', 600], ['s4', 'BIO130', 3721], ['s1', 'PHYS110', 540]],\n    2],\n   [['s4', 3]]),\n  ('normal control 5',\n   [[['s3', 'ECON150', 1860], ['s3', 'MATH101', 600], ['s5', 'MATH101', 3600], ['s5', 'BIO130', 3600],\n     ['s5', 'MATH101H', 720], ['s5', 'MATH101', 3600], ['s5', 'ECON150', 540], ['s5', 'PHYS110', 5041],\n     ['s3', 'PHYS110', 600]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s2', 'BIO130', 3721], ['s2', 'CHEM120', 2881], ['s2', 'PHYS110', 600], ['s2', 'HIST140', 2041]], 2],\n   []),\n  ('normal control 7',\n   [[['s5', 'HIST140', 780], ['s4', 'PHYS110', 600], ['s5', 'BIO130', 600], ['s4', 'MATH101', 2039],\n     ['s5', 'PHYS110', 1500]],\n    3],\n   []),\n  ('normal control 8', [[['s1', 'PHYS110', 600], ['s1', 'CHEM120', 1860]], 2], [])],\n [('regression: repeated exam rows 1',\n   [[['s3', 'HIST140', 2039], ['s3', 'BIO130', 600], ['s3', 'HIST140', 2039], ['s3', 'MATH101', 3299]], 2],\n   []),\n  ('regression variant: repeated exam rows 2',\n   [[['s3', 'MATH101', 3480], ['s3', 'MATH101H', 3780], ['s3', 'PHYS110', 600], ['s3', 'BIO130', 5040],\n     ['s3', 'ECON150', 6479], ['s3', 'BIO130', 5040]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s5', 'HIST140', 540], ['s5', 'MATH101', 4859], ['s1', 'HIST140', 540], ['s1', 'ECON150', 1260],\n     ['s5', 'ECON150', 3420], ['s1', 'MATH101H', 1260]],\n    2],\n   [['s1', 3]]),\n  ('boundary control 4', [[['s1', 'A', 1300], ['s1', 'B', 1500], ['s1', 'C', 1600]], 2], [['s1', 3]]),\n  ('normal control 5', [[['s4', 'HIST140', 1260], ['s4', 'CHEM120', 540], ['s4', 'MATH101H', 2520]], 1],\n   [['s4', 2]]),\n  ('normal control 6',\n   [[['s2', 'MATH101', 4259], ['s2', 'ECON150', 540], ['s5', 'BIO130', 2760], ['s2', 'CHEM120', 1979],\n     ['s2', 'BIO130', 5700], ['s5', 'CHEM120', 600], ['s5', 'MATH101H', 1320], ['s2', 'MATH101H', 2819]],\n    2],\n   []),\n  ('normal control 7',\n   [[['s1', 'PHYS110', 600], ['s4', 'MATH101', 600], ['s4', 'ECON150', 3480], ['s4', 'HIST140', 2040],\n     ['s2', 'MATH101', 1860], ['s1', 'ECON150', 900], ['s2', 'HIST140', 4740], ['s2', 'ECON150', 600],\n     ['s2', 'MATH101', 1860], ['s4', 'MATH101H', 2220]],\n    1],\n   [['s1', 2], ['s2', 2], ['s4', 2]]),\n  ('normal control 8',\n   [[['s1', 'MATH101', 600], ['s4', 'ECON150', 540], ['s1', 'HIST140', 2760], ['s1', 'BIO130', 1320],\n     ['s4', 'HIST140', 540], ['s1', 'CHEM120', 4200], ['s4', 'MATH101H', 1560], ['s4', 'PHYS110', 840],\n     ['s4', 'CHEM120', 840], ['s3', 'HIST140', 540], ['s3', 'MATH101H', 3240], ['s3', 'PHYS110', 1980],\n     ['s3', 'BIO130', 1800], ['s1', 'ECON150', 3480]],\n    3],\n   [['s4', 5]])],\n [('regression: repeated exam rows 1',\n   [[['s5', 'HIST140', 2760], ['s5', 'ECON150', 600], ['s5', 'MATH101', 1860], ['s5', 'CHEM120', 1860],\n     ['s5', 'HIST140', 2760], ['s5', 'BIO130', 2580]],\n    2],\n   [['s5', 4]]),\n  ('regression variant: repeated exam rows 2',\n   [[['s1', 'BIO130', 1979], ['s1', 'CHEM120', 540], ['s1', 'ECON150', 3418], ['s1', 'BIO130', 1979],\n     ['s1', 'MATH101H', 4138]],\n    2],\n   []),\n  ('partial repair guard 3',\n   [[['s2', 'HIST140', 2039], ['s3', 'MATH101', 2279], ['s3', 'BIO130', 540], ['s2', 'HIST140', 2039],\n     ['s3', 'HIST140', 3718], ['s2', 'MATH101', 2339], ['s1', 'PHYS110', 540], ['s3', 'ECON150', 4018],\n     ['s1', 'MATH101', 2640], ['s2', 'BIO130', 600], ['s2', 'CHEM120', 2339], ['s1', 'ECON150', 3480],\n     ['s1', 'HIST140', 1800], ['s3', 'MATH101H', 840]],\n    1],\n   [['s1', 2], ['s2', 3], ['s3', 2]]),\n  ('boundary control 4', [[['s1', 'A', 540], ['s1', 'B', 1980], ['s1', 'C', 2000]], 2], []),\n  ('normal control 5',\n   [[['s5', 'HIST140', 2821], ['s1', 'PHYS110', 600], ['s5', 'ECON150', 1981], ['s1', 'CHEM120', 2040],\n     ['s3', 'CHEM120', 600], ['s3', 'MATH101H', 960], ['s5', 'MATH101H', 540], ['s3', 'BIO130', 780]],\n    3],\n   []),\n  ('normal control 6',\n   [[['s5', 'PHYS110', 6181], ['s5', 'MATH101', 600], ['s2', 'MATH101H', 540], ['s2', 'ECON150', 4680],\n     ['s4', 'MATH101', 5099], ['s5', 'ECON150', 2041], ['s2', 'MATH101', 3420], ['s4', 'ECON150', 3660],\n     ['s4', 'MATH101H', 6540], ['s5', 'BIO130', 4921], ['s4', 'PHYS110', 3480], ['s5', 'CHEM120', 2041],\n     ['s4', 'CHEM120', 600], ['s2', 'HIST140', 6420], ['s2', 'CHEM120', 6120]],\n    3],\n   []),\n  ('normal control 7',\n   [[['s2', 'MATH101', 4500], ['s2', 'MATH101H', 3480], ['s4', 'PHYS110', 540], ['s4', 'CHEM120', 1980],\n     ['s3', 'MATH101', 600], ['s3', 'PHYS110', 4561], ['s2', 'BIO130', 4320], ['s2', 'CHEM120', 2039],\n     ['s3', 'MATH101H', 2881], ['s2', 'HIST140', 600], ['s3', 'ECON150', 3721], ['s3', 'CHEM120', 1440]],\n    3],\n   []),\n  ('normal control 8',\n   [[['s2', 'MATH101H', 600], ['s2', 'HIST140', 3780], ['s1', 'CHEM120', 1980], ['s1', 'PHYS110', 2160],\n     ['s2', 'CHEM120', 600], ['s1', 'MATH101H', 2160], ['s3', 'MATH101', 540], ['s3', 'CHEM120', 3119],\n     ['s3', 'HIST140', 840], ['s2', 'MATH101', 900], ['s1', 'BIO130', 540], ['s3', 'MATH101H', 2279],\n     ['s3', 'BIO130', 4379]],\n    3],\n   [])]]\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-rolling-day-exam-load-repeated-exam-rows","generated_at":"2026-09-29T14:52:05.181007+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Maximum-exams-per-day rules are stated as rolling windows; calendar bucketing and inclusive windows both misreport.","repair":"Keep one start per distinct exam.","root_cause":"Starts are collected per row instead of per distinct exam.","sha256":"3d844c1dfa14d0939d9c48149f7b0227f509ed3710a68d9cbae0710f9c29d583","title":"Duplicated sitting rows count as extra exams · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.948,"exit_code":1,"observations":[{"actual":[["s1",2]],"check":"regression: repeated exam rows 1","expected":[["s1",2]],"passed":true},{"actual":[["s3",4]],"check":"regression variant: repeated exam rows 2","expected":[["s3",5]],"passed":false},{"actual":[],"check":"partial repair guard 3","expected":[["s1",3]],"passed":false},{"actual":[],"check":"normal control 4","expected":[],"passed":true},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[],"check":"normal control 6","expected":[],"passed":true},{"actual":[],"check":"normal control 7","expected":[["s3",3]],"passed":false},{"actual":[["s1",3],["s2",2],["s3",2]],"check":"normal control 8","expected":[["s1",4],["s2",2],["s3",2]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeated exam rows 1\", \"actual\": [[\"s1\", 2]], \"expected\": [[\"s1\", 2]], \"passed\": true}, {\"check\": \"regression variant: repeated exam rows 2\", \"actual\": [[\"s3\", 4]], \"expected\": [[\"s3\", 5]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [], \"expected\": [[\"s1\", 3]], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [], \"expected\": [[\"s3\", 3]], \"passed\": false}, {\"check\": \"normal control 8\", \"actual\": [[\"s1\", 3], [\"s2\", 2], [\"s3\", 2]], \"expected\": [[\"s1\", 4], [\"s2\", 2], [\"s3\", 2]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.652,"exit_code":1,"observations":[{"actual":[["s1",3]],"check":"regression: repeated exam rows 1","expected":[["s1",2]],"passed":false},{"actual":[["s3",6]],"check":"regression variant: repeated exam rows 2","expected":[["s3",5]],"passed":false},{"actual":[["s1",3]],"check":"partial repair guard 3","expected":[["s1",3]],"passed":true},{"actual":[],"check":"normal control 4","expected":[],"passed":true},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[],"check":"normal control 6","expected":[],"passed":true},{"actual":[["s3",3]],"check":"normal control 7","expected":[["s3",3]],"passed":true},{"actual":[["s1",4],["s2",2],["s3",2]],"check":"normal control 8","expected":[["s1",4],["s2",2],["s3",2]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeated exam rows 1\", \"actual\": [[\"s1\", 3]], \"expected\": [[\"s1\", 2]], \"passed\": false}, {\"check\": \"regression variant: repeated exam rows 2\", \"actual\": [[\"s3\", 6]], \"expected\": [[\"s3\", 5]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"s1\", 3]], \"expected\": [[\"s1\", 3]], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[\"s3\", 3]], \"expected\": [[\"s3\", 3]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"s1\", 4], [\"s2\", 2], [\"s3\", 2]], \"expected\": [[\"s1\", 4], [\"s2\", 2], [\"s3\", 2]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.52,"exit_code":0,"observations":[{"actual":[["s1",2]],"check":"regression: repeated exam rows 1","expected":[["s1",2]],"passed":true},{"actual":[["s3",5]],"check":"regression variant: repeated exam rows 2","expected":[["s3",5]],"passed":true},{"actual":[["s1",3]],"check":"partial repair guard 3","expected":[["s1",3]],"passed":true},{"actual":[],"check":"normal control 4","expected":[],"passed":true},{"actual":[],"check":"normal control 5","expected":[],"passed":true},{"actual":[],"check":"normal control 6","expected":[],"passed":true},{"actual":[["s3",3]],"check":"normal control 7","expected":[["s3",3]],"passed":true},{"actual":[["s1",4],["s2",2],["s3",2]],"check":"normal control 8","expected":[["s1",4],["s2",2],["s3",2]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: repeated exam rows 1\", \"actual\": [[\"s1\", 2]], \"expected\": [[\"s1\", 2]], \"passed\": true}, {\"check\": \"regression variant: repeated exam rows 2\", \"actual\": [[\"s3\", 5]], \"expected\": [[\"s3\", 5]], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"s1\", 3]], \"expected\": [[\"s1\", 3]], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[\"s3\", 3]], \"expected\": [[\"s3\", 3]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"s1\", 4], [\"s2\", 2], [\"s3\", 2]], \"expected\": [[\"s1\", 4], [\"s2\", 2], [\"s3\", 2]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}