МЕРА: тест якоря «тот же дом» проверяет веса на месте вызова (#2381)
Ревью #3556: подмена rooms_boost=1.0 на месте вызова _compute_same_building_anchor проходила весь сьют — тест значений держит только число в константе. Новый тест оборачивает расчёт якоря и требует боевые sigma/rooms_boost/floor_sigma/min_comps/ mad_k (прод 17.09.2026). SB_GUARDRAIL_TOL, FSD_K, SB_GATE_MAX_FSD и сдвиг ANCHOR_TIER_C_CORRIDOR_MULT вниз по-прежнему без поведенческих тестов. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
bc7fe9b0b9
commit
228c5f58f9
1 changed files with 23 additions and 0 deletions
|
|
@ -501,6 +501,29 @@ def test_estimate_premium_lift_real_in_range() -> None:
|
||||||
assert est.range_high_rub >= int(real * 0.9)
|
assert est.range_high_rub >= int(real * 0.9)
|
||||||
|
|
||||||
|
|
||||||
|
def test_estimate_anchor_gets_prod_weights() -> None:
|
||||||
|
"""#2381: веса якоря доходят до расчёта боевыми (прод 17.09.2026).
|
||||||
|
|
||||||
|
Тест значений констант держит только число в estimator.py. Подмена
|
||||||
|
rooms_boost/floor_sigma на месте вызова (например, 1.0) проходила весь сьют:
|
||||||
|
веса сдвигают headline внутри тех же допусков, что проверяют тесты выше.
|
||||||
|
"""
|
||||||
|
with patch(
|
||||||
|
"app.services.estimator._compute_same_building_anchor",
|
||||||
|
wraps=_compute_same_building_anchor,
|
||||||
|
) as spy:
|
||||||
|
est = _run_estimate(anchor_comps=_SB_COMPS_PREMIUM, anchor_tier="A")
|
||||||
|
assert est.median_price_per_m2 >= 450_000 # якорь сработал, а не радиус
|
||||||
|
kw = spy.call_args.kwargs
|
||||||
|
assert {k: kw[k] for k in ("sigma", "rooms_boost", "floor_sigma", "min_comps", "mad_k")} == {
|
||||||
|
"sigma": 0.18,
|
||||||
|
"rooms_boost": 1.6,
|
||||||
|
"floor_sigma": 0.25,
|
||||||
|
"min_comps": 4,
|
||||||
|
"mad_k": 3.5,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_estimate_anchor_fires_without_radius_analogs() -> None:
|
def test_estimate_anchor_fires_without_radius_analogs() -> None:
|
||||||
"""#691: радиусных аналогов НЕТ (median=0, прод-кейс провала ST_DWithin), но
|
"""#691: радиусных аналогов НЕТ (median=0, прод-кейс провала ST_DWithin), но
|
||||||
same-building комплы есть → якорь обязан сработать и дать median>0.
|
same-building комплы есть → якорь обязан сработать и дать median>0.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue