FA-94590 / Exam timetabling constraints / Member archive
Daily duty count grouped by slot number · case 05
Morning duties on different days are counted as one day.
Case contract
duties [invigilator, exam, period]; teach invigilator -> busy periods; subj invigilator -> subject code; exam subject is the part of the exam id before "-". Findings: busy (duty in a busy period), own_subject, double (same invigilator already on duty that period), daily_max (reported once, on the first duty that exceeds maxday on a day = period // spd). Return sorted [invigilator, exam, finding] rows.
Why this case matters
Invigilation rosters must respect teaching commitments, conflict-of-interest rules and daily limits.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: duty day index 1 | [["ann", "BIO-201", "busy"], ["ann", "BIO-201", "double"], ["ann", "BIOL-300", "own_subject"], ["ann", "CHEM-110", "busy"], ["cy", "MATH-101", "busy"]] | [["ann", "BIO-201", "busy"], ["ann", "BIO-201", "double"], ["ann", "BIOL-300", "own_subject"], ["ann", "CHEM-110", "busy"], ["ann", "MATH-101", "daily_max"], ["cy", "MATH-101", "busy"]] | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗