Commit Graph

26 Commits

Author SHA1 Message Date
a41d1cd469 Remove min by shift type boundaries, improve logging, add more tests, add logs in tests, move fixtures in separate file, move restrictions_violated logic into valid_residents of next slot 2026-02-21 23:46:26 +02:00
c291328bfa Shuffle once and keep order, use SmallRng
time:   [98.196 µs 100.64 µs 103.56 µs]
change: [−13.633% −10.629% −7.6947%] (p = 0.00 < 0.05)
2026-02-10 22:46:31 +02:00
f84d812602 Add custom errors with thiserror, log thread id 2026-02-03 23:02:44 +02:00
2e5568fccb Store tracker info from solution thread, sort by lowest type count first 2026-02-02 00:00:57 +02:00
318b7f6450 Hold config state from the generated schedule; avoids desync issues when changing configs and re-exporting data without generating new schedule 2026-02-01 23:23:27 +02:00
98cb9f7f3e Parallelize DFS, use an AtomicBool for short-circuiting
time:   [73.407 µs 76.145 µs 79.345 µs]
change: [−40.126% −24.679% −3.8062%] (p = 0.04 < 0.05)
2026-02-01 22:53:04 +02:00
c9e1d3ab67 Avoid automatic open of generated docx in unit tests 2026-01-21 19:40:25 +02:00
334b009749 Resolve lint warnings 2026-01-18 00:03:18 +02:00
33de9720bf Improve error handling, logging 2026-01-18 00:02:11 +02:00
125ddc3117 Change ResidentId(String) to ResidentId(u8), impl Copy for ShiftType, use u8 for all UserConfig params 2026-01-17 19:27:35 +02:00
5bad63e8a7 Use maps to track workload progress instead of recalculating them at every step of the search, calculate total days/slots once, add integration tests, add log folder 2026-01-17 18:41:43 +02:00
908f114e54 Add justfile 2026-01-17 11:38:22 +02:00
af95cc2f5c Add missing shift type check 2026-01-14 23:52:42 +02:00
7713318d01 Improve type system with ResidentId and ToxicPair structs 2026-01-14 23:37:58 +02:00
70de9bcbf1 Impl Default trait 2026-01-14 21:19:14 +02:00
1ce55675db Move valid_residents to the scheduler impl and simplify it 2026-01-14 21:15:57 +02:00
2febcb7344 Create struct scheduler to encapsulate the search logic 2026-01-14 00:34:48 +02:00
d7d4b109c3 Separate user configs from resident workload bounds 2026-01-14 00:07:20 +02:00
8865f0b95a Replace from_dto fn with From trait impl 2026-01-13 23:11:44 +02:00
4b49b4b54e Export result to txt/docx 2026-01-13 21:08:24 +02:00
e9ca378099 Add fairness for each shift type count 2026-01-13 21:08:03 +02:00
db7623528c Remove bind of project month in resident calendar options 2026-01-13 21:02:25 +02:00
92a9c6d704 Implement DTOs, add managed state for schedule, export to txt 2026-01-11 22:28:10 +02:00
53f8695572 Complete backtracking, restriction violations, split model.rs into multiple files 2026-01-11 10:44:25 +02:00
e11e1376eb Sync progress 2025-12-28 21:32:08 +02:00
8f8fc50310 Init project 2025-12-26 11:25:45 +02:00