Add timetable planning and related tests to school simulation
ci / server (push) Failing after 3m33s
ci / client (push) Successful in 13s

- Introduced a new project for timetable planning, dependent on HSchool.Content.
- Updated documentation to reflect the addition of timetable planning and its dependencies.
- Added tests for timetable planning to ensure deterministic behavior with the same staff and map.
- Revised architecture documentation to include the new HSchool.Schedule component and its interactions.
This commit is contained in:
Leonid Pershin
2026-08-19 00:55:02 +03:00
parent 2ebc783585
commit 2011d12b1d
12 changed files with 731 additions and 16 deletions
+13 -13
View File
@@ -12,24 +12,24 @@
## Задачи
- [ ] Новый проект рядом с `HSchool.People`: зависит только на `HSchool.Content`, без Arch и
- [x] Новый проект рядом с `HSchool.People`: зависит только на `HSchool.Content`, без Arch и
ASP.NET; отдаёт простую таблицу уроков
- [ ] Раскладка часов учебного плана по слотам недели для каждого класса
- [ ] Кабинет урока: требование предмета, иначе кабинет класса
- [ ] Четыре запрета соблюдаются: учитель, класс и кабинет не заняты дважды, класс влезает в кабинет
- [ ] Непокрытые часы не ставятся, а возвращаются отдельным списком — их покажет «Управление»
- [ ] Закреплённые игроком уроки принимаются на вход и переживают перестроение; остальное
- [x] Раскладка часов учебного плана по слотам недели для каждого класса
- [x] Кабинет урока: требование предмета, иначе кабинет класса
- [x] Четыре запрета соблюдаются: учитель, класс и кабинет не заняты дважды, класс влезает в кабинет
- [x] Непокрытые часы не ставятся, а возвращаются отдельным списком — их покажет «Управление»
- [x] Закреплённые игроком уроки принимаются на вход и переживают перестроение; остальное
раскладывается вокруг них
- [ ] Детерминированность: те же штат, назначения и карта дают ту же таблицу
- [x] Детерминированность: те же штат, назначения и карта дают ту же таблицу
## Тесты, без которых фаза не закрыта
- [ ] Один спортзал на одиннадцать классов — физкультура разъезжается по слотам, а не дублируется
- [ ] Учитель с двумя предметами не стоит в двух местах в одном слоте
- [ ] Класс на 16 не попадает в кабинет на 12
- [ ] Предмет без учителя даёт дыру и запись в непокрытых
- [ ] Закреплённый урок остаётся на месте после найма ещё одного учителя
- [ ] Те же входы — та же таблица
- [x] Один спортзал на одиннадцать классов — физкультура разъезжается по слотам, а не дублируется
- [x] Учитель с двумя предметами не стоит в двух местах в одном слоте
- [x] Класс на 16 не попадает в кабинет на 12
- [x] Предмет без учителя даёт дыру и запись в непокрытых
- [x] Закреплённый урок остаётся на месте после найма ещё одного учителя
- [x] Те же входы — та же таблица
## Критерий готовности