test: add validation harness (scripts/corpus.py + bridge baseline) to prevent Phase B regression

This commit is contained in:
2026-08-21 01:06:05 +03:00
parent f17ee78061
commit fa71240d92
4 changed files with 234 additions and 0 deletions
+18
View File
@@ -34,6 +34,24 @@ dry/wet → FFT-conv) расшифрована и live-таблицы извле
## 1. Порядок работ (обязательный порядок; каждый шаг валидируется отдельно)
> **ВАЛИДАЦИЯ (обязательно, НЕ пропускать).** Чтобы не повторить регресс Phase B,
> есть защитный харнесс `scripts/corpus.py` + зафиксированный bridge-базлайн
> `scripts/baseline_bridge.json` (62 случая, правильная 24-bit метрика):
> ```bash
> cmake --build dsp/build --target framed_test
> python3 scripts/corpus.py # полный корпус, текущая сборка
> python3 scripts/corpus.py --compare scripts/baseline_bridge.json --tol 0.25
> ```
> `--compare` фейлит (exit≠0), если любая группа регрессирует по mean|err| больше tol.
> Правило: структурная цепь (Шаг 1-2) должна НЕ регрессировать ниже bridge на
> однополосных (t1kq/t1k/al/res/dual) и ЖЕЛАТЕЛЬНО улучшать comb. Каждый под-шаг
> (IIR1 → blend → combine → warp → IIR3) коммитить отдельно и прогонять `--compare` —
> если конкретный под-шаг регрессирует, откатить именно его, а не всё сразу.
> Существующие `dsp/*_check.cpp` (twin/tables/leveltrack/levelpath/exp2/fftconv) —
> модульные чёрные проверки на бит-парность под-функций; тоже гонять: `cmake --build
> dsp/build` после правок.
### Шаг 1 — Реализовать полную структурную mono-цепочку FUN_180529fe0 (КОРЕНЬ)
Заменить bridge (эмпирическую погону) на точную транскрипцию. Реализовать в
`dsp/framed_model.cpp` (или отдельном `dsp/fn529fe0.cpp`) по NOTES_LEVEL:820-840: