|
All checks were successful
CI / changes (push) Successful in 6s
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (push) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (push) Successful in 6m40s
CI / backend-tests (pull_request) Successful in 6m37s
Degenerate price band (own_min==own_max или c_lo==c_hi, оба разрешены CHECK 148 и Pydantic) внутри другой вилки возвращали 0.0 вместо 1.0: фильтр w>0 выкидывал нулевую ширину → 0/positive=0.0. Это рвало докстринг 'полное накрытие узкого = 1.0' и давало разрыв: [148k,152k]→1.0 vs [150k,150k]→0.0, занижая среднее каннибализации. Patch: вырожденные ширины обрабатываются ДО нормирования. lo<=hi → точка внутри другой вилки → 1.0, вне → 0.0. +inf-обе-премиум ветка перенесена в начало (избежать inf-inf=nan). +7 новых тестов в TestPriceOverlap. 220 special_indices тестов зелёные. Closes #1224 |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| affordability.py | ||
| confidence_engine.py | ||
| demand_normalization.py | ||
| demand_supply_forecast.py | ||
| macro_coefficient.py | ||
| macro_series.py | ||
| normalize.py | ||
| orchestrator.py | ||
| product_scoring.py | ||
| rate_sensitivity.py | ||
| recommendation.py | ||
| regression.py | ||
| report.py | ||
| report_assembler.py | ||
| sales_series.py | ||
| scenarios.py | ||
| special_indices.py | ||
| what_to_build.py | ||