Нормализатор: разлеплять склеенные строки ИС «1500\n1700» (#16, OQ-156) #17
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/16-split-merged-codes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #16
Проблема
В ответах настоящей ИС по ББ РБ и Счастливочной за 1 кв. 2025 последние строки баланса склеены: код
1500\n1700, суммы917 775\n2 371 333. Строка пропускалась как нечисловой код → в документе не было 1500 (итог раздела V) и 1700 (БАЛАНС).Что сделано
rows.split_merged_row: N ≥ 2 целых кодов через перевод строки и ровно N частей в каждой непустой ячейке значений → N строк до классификации; наименование делится так же (если частей N) или остаётся целым; уверенность — исходной ячейки. Число частей не сходится → поведение прежнее (нечисловой код). Работает и для строк до шапки.строк с несколькими кодами разлеплено: N(документneeds_check— разбивку подтверждает аналитик).design.mdСреза 3a (отклонение от дословного переноса_classify_row), README — таблица предупреждений и раздел про отклонения.05-domain-rules.md§11.1 п. 4 и OQ-156 (RSHB/arm-ka-docs, PR рядом).Результат на реальных ответах
Эталоны
aep_3/5/6/8не изменились.Проверка
make check-fullна чистой инфраструктуре (стенд погашен): ruff/mypy чисто, unit 1042 passed, integration 11 passed,docker buildок.Замечание: при поднятом стенде (
--profile services) интеграционные тесты падают и наmain— шлюз и эмулятор стенда в той же queue group и горячей папке забирают сообщения и файлы тестов.Сливать вместе с RSHB/arm-ka-fixtures (эталоны после разлепления) — иначе golden-тесты разойдутся.
Rulings I made
ordinalисходной строки (уникальность нигде не требуется). Цена: низкая.Найдено попутно (не исправлено)
🤖 Generated with Claude Code
Проверено на чистом стенде (08.10.2026; down -v, migrate, seed-dev; шлюз и эмулятор — образ этой ветки, фронт arm-web test 0897173):