FA-94600 / Exam timetabling constraints / Member archive
Double-duty check shared across invigilators · case 05
Two different invigilators in the same period are reported as double-booked.
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: double duty key 1 | [["ann", "BIO-201", "daily_max"], ["ann", "BIOL-300", "busy"], ["bob", "BIO-201", "busy"], ["bob", "CHEM-110", "daily_max"], ["cy", "CHEM-110", "busy"], ["cy", "CHEM-110", "daily_max"], ["cy", "CHEM-110", "double"]] | [["ann", "BIO-201", "daily_max"], ["ann", "BIOL-300", "busy"], ["bob", "BIO-201", "busy"], ["bob", "CHEM-110", "daily_max"], ["cy", "CHEM-110", "busy"], ["cy", "CHEM-110", "daily_max"]] | 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 ↗