From 6df6f92a2bd5d19ba6f50e8ca1c3cd663f42ac21 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 12 Sep 2026 02:39:28 +0500 Subject: [PATCH] =?UTF-8?q?test(estimator):=20=D0=BF=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D1=81=D0=B0=20=D0=BF=D0=BB=D0=BE=D1=89=D0=B0=D0=B4=D0=B8=20?= =?UTF-8?q?=E2=80=94=20=D0=B5=D0=B4=D0=B8=D0=BD=D1=81=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=85=D0=BE=D0=B6=D0=B5=D1=81=D1=82=D0=B8,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D0=BE=20?= =?UTF-8?q?=C2=AB=D0=B5=D1=81=D1=82=D1=8C=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `test_dkp_corridor_keeps_full_area_band` проверял только присутствие полосы ±15% в bind-параметрах — она есть и на origin/main, и на варианте с бакет-ключом, поэтому тест был зелёным по построению и ничего не охранял (мутационная проверка: при восстановлении предиката он оставался зелёным, пока остальные 4 краснели). Утверждение усилено до «полоса единственная»: тест дополнительно требует отсутствия предиката по rooms рядом с ней. На origin/main фильтров по площади ДВА (полоса и бакет через d.rooms), итоговое окно — их пересечение, поэтому теперь тест краснеет значением вместе с остальными. Refs #3256 --- tradein-mvp/backend/tests/test_3256_deals_rooms_key.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tradein-mvp/backend/tests/test_3256_deals_rooms_key.py b/tradein-mvp/backend/tests/test_3256_deals_rooms_key.py index 63f5ce26..01228160 100644 --- a/tradein-mvp/backend/tests/test_3256_deals_rooms_key.py +++ b/tradein-mvp/backend/tests/test_3256_deals_rooms_key.py @@ -108,11 +108,17 @@ def test_dkp_corridor_has_no_rooms_predicate() -> None: assert _rooms_binds(db) == [] -def test_dkp_corridor_keeps_full_area_band() -> None: - """Полоса ±15% доходит до SQL целиком — это единственный фильтр «похожести».""" +def test_dkp_corridor_area_band_is_the_only_similarity_filter() -> None: + """Полоса ±15% доходит до SQL целиком И остаётся ЕДИНСТВЕННЫМ фильтром похожести. + + Вторая половина утверждения — та, что краснеет: на origin/main рядом с полосой + стоит `d.rooms = ...`, т.е. фильтров по площади там два (полоса и бакет), и + итоговое окно — их пересечение. + """ db = _RecordingDB() _fetch_dkp_corridor(db, address=_EKB_ADDRESS, rooms=2, area=50.0, city="екатеринбург") assert _area_bands(db) == [(50.0 * 0.85, 50.0 * 1.15)] + assert _rooms_predicates(db) == [] def test_dkp_corridor_five_room_client_is_reachable() -> None: