fix: коэффициенты времени суток по методичке ПСО «Экстремум» (§12.3.3, §12.3.5)

Сверка с методикой ПСР ред. 12.17 (Евдокимов, Лейтес):
- ночь: 0.5 → 0.0 — методичка §12.3.5 прямо даёт «ночь = 0 км»:
  без фонаря в лесу ночью пострадавший не перемещается.
  Ранее 0.5 ЗАВЫШАЛО радиус ночного поиска.
- сумерки/вечер: 0.7 → 0.5 — «за час до заката скорость 50% от обычной».
  B5 переносил 0.7 из старого фронта вопреки методичке.
- get_base_speed: документирована семантика «скорость смещения»
  (не асфальтовая НормС из §12.3.2) — оператору не нужно вводить
  асфальтовую скорость, она уже свёрнута; СП = поправка конкретной
  местности поверх базового среднего леса.

Тесты обновлены под методичку, добавлен тест ночи = 0.
201 passed, 0 failed.
This commit is contained in:
2026-09-09 11:11:34 +03:00
parent 1119793145
commit 2d264a5779
2 changed files with 32 additions and 14 deletions
+8 -6
View File
@@ -85,8 +85,9 @@ class TestCalculateMaxDistance:
distance = calculate_max_distance(case_data)
# 3 * 1.5 * 0.2 * 0.85 * 0.5 * 0.7 = 0.27 km
assert distance == pytest.approx(0.27, rel=0.01)
# 3 * 1.5 * 0.2 * 0.85 * 0.0(ночь) * 0.7 = 0.0 км —
# методичка §12.3.5: без фонаря ночью движение = 0
assert distance == pytest.approx(0.0, rel=0.01)
def test_adult_heavy_rain_field(self):
"""Test for adult in heavy rain on field."""
@@ -193,12 +194,13 @@ class TestTimeOfDayCoefficient:
assert get_time_of_day_coefficient('день') == 1.0
def test_night(self):
assert get_time_of_day_coefficient('ночь') == 0.5
# Методичка §12.3.5: ночь = 0 (без фонаря движение прекращается)
assert get_time_of_day_coefficient('ночь') == 0.0
def test_twilight(self):
# B5: сумерки/вечер = 0.7 (было 0.5 — канон фронта)
assert get_time_of_day_coefficient('сумерки') == 0.7
assert get_time_of_day_coefficient('вечер') == 0.7
# Методичка §12.3.3: за час до заката скорость 50% от обычной
assert get_time_of_day_coefficient('сумерки') == 0.5
assert get_time_of_day_coefficient('вечер') == 0.5
class TestWeatherCoefficient: