hackathon_code4change / tests /test_invariants.py
RoyAalekh's picture
refactored project structure. renamed scheduler dir to src
6a28f91
from datetime import date
from src.core.case import Case
from src.core.courtroom import Courtroom
from src.utils.calendar import CourtCalendar
def test_calendar_excludes_weekends():
cal = CourtCalendar()
saturday = date(2025, 2, 1)
monday = date(2025, 2, 3)
assert cal.is_working_day(saturday) is False
assert cal.is_working_day(monday) is True
def test_courtroom_capacity_not_exceeded():
room = Courtroom(courtroom_id=1, judge_id="J001", daily_capacity=10)
d = date(2025, 2, 3)
for i in range(12):
if room.can_schedule(d, f"C{i}"):
room.schedule_case(d, f"C{i}")
assert len(room.get_daily_schedule(d)) <= room.daily_capacity
def test_min_gap_between_hearings():
c = Case(case_id="X", case_type="RSA", filed_date=date(2025, 1, 1))
first = date(2025, 1, 7)
c.record_hearing(first, was_heard=True, outcome="heard")
c.update_age(date(2025, 1, 10))
assert c.is_ready_for_scheduling(min_gap_days=7) is False
c.update_age(date(2025, 1, 15))
assert c.is_ready_for_scheduling(min_gap_days=7) is True