Add timetable planning and related tests to school simulation
- 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:
@@ -9,6 +9,7 @@
|
||||
Protocol — ни на кого из игровых проектов (только байты)
|
||||
Content — ни на Protocol, ни на Simulation, ни на ASP.NET
|
||||
People → Content (defs, карта, склонения; без Arch и хоста)
|
||||
Schedule → Content (раскладка уроков; без Arch и хоста)
|
||||
Simulation → People, Content (ростер в World; без HTTP)
|
||||
Server → Protocol, Simulation, People, Content
|
||||
Client — своя сторона Protocol (TS) + HTTP
|
||||
@@ -22,6 +23,7 @@ Client — своя сторона Protocol (TS) + HTTP
|
||||
| --- | --- | --- |
|
||||
| **HSchool.Content** | Типы def, JSONC-загрузчик, наследование, патчи, слияние локалей, граф карты, валидация связности | Arch, часы, HTTP, потоки, пути `mods/` с диска хоста |
|
||||
| **HSchool.People** | Генерация ростера: семьи, классы, тело/навыки/черты из каталога и сида | Arch, ASP.NET, сокеты, `DateTime.Now`, файлы сейва |
|
||||
| **HSchool.Schedule** | Раскладка учебного плана в таблицу уроков вокруг закреплённых правок | Arch, ASP.NET, сокеты, `DateTime.Now`, файлы сейва |
|
||||
| **HSchool.Simulation** | `School`, `GameClock`, Arch `World`, тик, применение раскладки к миру | Kestrel, сокеты, `Directory.Enumerate`, сейв-файлы |
|
||||
| **HSchool.Server** | Хост, супервизор, работник-поток, `mods/` и `saves/` из конфига, HTTP/WS, DTO запросов | Правила «комната должна быть связана», схема Chair |
|
||||
| **HSchool.Protocol** | Кадры сокета, в том числе снимок карты и locale в Hello | Имена комнат, JSONC |
|
||||
@@ -49,6 +51,7 @@ Arch и фиксированный тик — про живую школу. Па
|
||||
|
||||
- `tests/HSchool.Content.Tests` — фикстуры JSONC, коллизии имён, дырявый граф, двор обязателен.
|
||||
- `tests/HSchool.People.Tests` — тот же сид даёт тот же ростер; места и должности заполнены.
|
||||
- `tests/HSchool.Schedule.Tests` — тот же штат и карта дают ту же таблицу; четыре запрета.
|
||||
- `HSchool.Simulation.Tests` — часы, тик, «школа с таким каталогом живёт».
|
||||
- `HSchool.AppHost.Tests` — create с картой, рестарт, сейв на диске.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user