22 города Московской области в покрытии #3536

Merged
lekss361 merged 1 commit from feat/mo-cities-coverage into main 2026-09-16 16:42:08 +00:00

1 commit

Author SHA1 Message Date
bot-backend
f6dd426494 feat(trade-in): 22 города Московской области в покрытии
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m34s
CI Trade-In / backend-tests (pull_request) Successful in 5m7s
Тестировщику по области было нечего выбрать: реестр городов во фронте знал
только Свердловскую область и Москву, а подмосковные населённые пункты
лежали в _COVERAGE_NEGATIVE_CENTROIDS_DEG — намеренно, решением от
11.09.2026 «центроид без порога = город не определён».

Решение пересмотрено на замере, а не на желании открыть регион. Метрика —
та же, которой Москве выбирали жёлтый тир: 120 проб на город, радиус 8 км
от центра, когорта = is_active + точные комнаты + площадь ±15% +
scraped_at > now()-14d + ST_DWithin 1000 м. Результат: медиана когорты по
городам области 17-51, доля проб с >=12 аналогов 0.63-0.92. У Москвы,
которая уже жёлтая, медиана 14 и доля 0.57; у Нижнего Тагила (тоже
жёлтый) — 11 и 0.473. То есть каждый город области плотнее Москвы, и
жёлтый порог для них — консервативный выбор, а не натяжка.

Парность реестра и порогов сохранена (гейт test_public_mera_api): 22
города добавлены и во фронт, и в _COVERAGE_CITY_THRESHOLDS с
COVERAGE_YELLOW_MIN_N, и в _CITY_CENTROIDS_DEG. 12 центроидов перенесены
из негативного списка (32 -> 20 записей, ключи двух словарей не
пересекаются), 10 взяты из MOSCOW_OBLAST_CITY_ANCHORS — там они
резолвлены Nominatim.

MOSCOW_CITY больше не берётся по индексу последнего элемента: список
перестал заканчиваться Москвой, и молчаливая поломка стоила бы дорого —
теперь поиск по id с явным throw.

Тесты сетки покрытия переписаны по факту, а не подогнаны: 12 промоутнутых
координат раньше держали утверждение «здесь город не определён».
Контрольные точки пересчитаны (Пушкино теперь резолвится в Королёв,
контроль бесконечного радиуса переехал с точки в 22.9 км от Коломны).
2026-09-16 19:14:46 +03:00