|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m56s
CI / backend-tests (pull_request) Successful in 17m8s
`synthesize_teap_from_buildability` проверяла параметры только на `> 0`. Процент застройки 150 давал пятно БОЛЬШЕ участка (10 000 м² → 15 000 м²), а дальше — жилую площадь, число квартир и выручку: физически невозможные числа, поданные как обычные цифры финмодели. КСИТ 500 давал GFA 5 000 000 м² на гектаре. Параметры приходят из ПЗЗ-регламента (`zone_regulation_cache`) — внешние разобранные данные, то есть граница доверия. Невозможное значение ОТБРАСЫВАЕТСЯ, а не роняет расчёт: если рядом есть КСИТ, GFA считается по нему и остаётся верной. Лучше отсутствие параметра, чем неверный. Если вменяемых не осталось — None, и caller штатно показывает отсутствие финоценки с caveat, а не ноль. Границы взяты с запасом к реальным данным прода 20.08.2026 (33 строки zone_regulation_cache: pct 0..100, far 1..4, floors 0..5): pct ≤ 100, far ≤ 30, этажей ≤ 100 — сито против порчи разбора, а не норматив. ВТОРОЙ дефект, найденный этими же тестами и существовавший до правки: ветка «нет ни процента, ни этажности → пятно = GFA» неявно предполагает один этаж, и при КСИТ > 1 давала пятно больше участка (10 000 м² с far=2 → 20 000 м²). Добавлен физический инвариант «пятно ≤ участок» — не эвристика, а геометрия, и стоит он ОДИН раз после всех ветвей, чтобы держаться и для будущих способов оценки пятна. GFA при этом не меняется. Двусторонне: против origin/main четыре теста красные с конкретными невозможными значениями («пятно 15000.0 больше участка 10000.0», «GFA=5000000.0»). Восемь контролей зелёные с обеих сторон — среди них пять сочетаний (pct, far, floors), взятых ДОСЛОВНО с прода, и граница 100 % застройки, которая законна и на проде есть. pytest test_parcel_financial + services/generative + новый файл — 185 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| test_2464_capacity_savepoints.py | ||
| test_2464_default_profile_order.py | ||
| test_2464_heat_loader_tx.py | ||
| test_2464_ird_lookups_savepoint.py | ||
| test_2464_teap_input_sanity.py | ||
| test_2464a_savepoint_regressions.py | ||
| test_best_layouts.py | ||
| test_competitor_relevance.py | ||
| test_competitors_avg_price_sql.py | ||
| test_competitors_parking.py | ||
| test_competitors_sold_count_sql.py | ||
| test_connection_capacity_savepoint.py | ||
| test_developer_attribution.py | ||
| test_district_resolver.py | ||
| test_future_supply.py | ||
| test_locations.py | ||
| test_macro.py | ||
| test_market_metrics.py | ||
| test_okn_lookup.py | ||
| test_own_portfolio.py | ||
| test_parcel_financial.py | ||
| test_pat_subzones.py | ||
| test_permits_nearby.py | ||
| test_premises_lookup.py | ||
| test_program_optimizer.py | ||
| test_quarter_dump_savepoint.py | ||
| test_riasurt_lookup.py | ||
| test_supply_layers.py | ||