Files
Leonid Pershin aa20534b77 Add tests that lesson-consequence promises were missing.
Teacher action must not cancel gain, a missing warmth need matches full warmth, snow on the street must reach DayPlans, and a lazy pupil still appears closer to the bell.
2026-08-20 17:11:06 +03:00

40 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 53. Погода на дороге
## Зависимости
- [Фаза 18](../05-ai/18-presence-walking.md)
- [Фаза 32](../07-inventory/32-weather-warmth.md)
## Зачем
В январе опаздывают чаще, чем в мае. Черта уже двигает запас на дорогу; осадки — тоже.
## Задачи
- [x] `BehaviorDef.commuteRainMinutes` и `commuteSnowMinutes`; ваниль 3 и 6
- [x] Валидатор: не отрицательные
- [x] `DayPlans.Build` принимает уже посчитанные лишние минуты; `HSchool.Ai` не знает осадков
- [x] Симуляция при сборке плана дня подставляет минуты из текущей улицы
- [x] Лог на каждого не пишем — опоздание видно местом
- [x] В [`inventory.md`](../../design/07-inventory/inventory.md) поправка: погода влияет на дорогу, не только
на переодевание
## Тесты, без которых фаза не закрыта
- [x] Снег → `AppearAt` раньше на `commuteSnowMinutes` относительно ясного того же дня
(тот же человек, сид, дата без осадков)
- [x] Дождь → на `commuteRainMinutes`
- [x] Ясно → минуты как сейчас, только черты и бросок
- [x] Пак без полей — 0 лишних минут, каталог не падает
- [x] Тот же сид и снег → тот же `AppearAt`
## Критерий готовности
- Снежным утром `AppearAt` раньше на `commuteSnowMinutes` (запас на дорогу, не более медленная
ходьба); ленивый по-прежнему ближе к звонку
- `dotnet test` проходит
## Стоп
Не мочить одежду. Не пропускать день из-за мороза. Не бампить кадр часов.