Golden scan-gateway по контракту 2.0 и arm_statements (scan-gateway#46) #26

Merged
aep merged 1 commits from feat/46-golden-statements-v2 into main 2026-10-19 07:38:15 +03:00
7 changed files with 11708 additions and 2543 deletions

View File

@ -1,6 +1,15 @@
# Эталоны нормализатора scan-gateway (Срез 3a)
# Эталоны нормализатора scan-gateway (golden v2)
`<name>.json` — результат `OcrNormalizer` для набора `ocr/<name>.json` + `ocr/<name>_*.json` в формате контракта 2.0
файла результата: `{schema_version, status, error, metrics, documents}`.
- `documents` — `statementDocument` контракта 2.0 (общий код `arm_statements`): колонки, строки со `line_status`,
`needs_review`, `parent_ref`, значения с `amount`/`string_value`/`is_recognized`, предупреждения и проверки документа.
- `metrics.warnings` — структуры предупреждений файла (`code`, `severity`, `message`, `locator`), например `JSON_FAILED`.
- `error` пишется только при `status = error` (тогда `documents = []`).
- Ключи `job_id`, `file_id`, `service`, `raw_s3_key` не пишутся: `service.statements_version` меняется при каждой
раскладке пакета, а идентификаторы в тестах фиктивные.
`<name>.json` — результат `OcrNormalizer` для набора `ocr/<name>.json` + `ocr/<name>_*.json` в формате
`{status, warnings, metrics, error, documents}` (документы — `statementDocument` контракта v1.2, `exclude_none`).
Обновление: `make golden-update` в scan-gateway; изменения смотреть через `git diff` и объяснять в PR.
Эталоны фиксируют поведение на реальных сканах, включая известные ограничения (решение №12 спеки: `(7744536}` → без минуса).
Эталоны фиксируют поведение на реальных сканах, включая известные ограничения распознавания. Тест
`test_golden.py` дополнительно проверяет полный файл результата по JSON Schema `result`.

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,16 @@
"code": "INVALID_DOCUMENT",
"message": "Не удалось определить тип документа."
},
"metrics": null,
"status": "error",
"warnings": [
"3f1c2b7a-0000-4000-8000-000000000001.json: INVALID_DOCUMENT: Не удалось определить тип документа."
]
"metrics": {
"warnings": [
{
"code": "JSON_FAILED",
"locator": "file:3f1c2b7a-0000-4000-8000-000000000001.json",
"message": "INVALID_DOCUMENT: Не удалось определить тип документа.",
"severity": "error"
}
]
},
"schema_version": "2.0",
"status": "error"
}

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,16 @@
"code": "INVALID_DOCUMENT",
"message": "Не удалось определить тип документа."
},
"metrics": null,
"status": "error",
"warnings": [
"3f1c2b7a-0000-4000-8000-000000000001.json: INVALID_DOCUMENT: Не удалось определить тип документа."
]
"metrics": {
"warnings": [
{
"code": "JSON_FAILED",
"locator": "file:3f1c2b7a-0000-4000-8000-000000000001.json",
"message": "INVALID_DOCUMENT: Не удалось определить тип документа.",
"severity": "error"
}
]
},
"schema_version": "2.0",
"status": "error"
}

File diff suppressed because it is too large Load Diff