"""Совпадение наименований §11.9 (спека «Совпадение наименований»).""" import pytest from src.domain.statement_names import names_match, normalize, section_number @pytest.mark.parametrize( ("recognized", "references", "expected"), [ ("Нематериальные активы", ["Результаты исследований и разработок"], False), ( "НДС, начисленный по отгрузке", ["Налог на добавленную стоимость по приобретенным ценностям", "НДС, начисленный по отгрузке"], True, ), ("Итого по разделу I", ["Итого по разделу II"], False), ("Итого по разделу V1", ["Итого по разделу V"], True), ("Итого по разделу V /", ["Итого по разделу V"], True), ("Итого по разделу", ["Итого по разделу II"], False), ("АКТИВ I. Внеоборотные активы Гудвил", ["Гудвил"], True), ("Расчёты", ["Расчеты"], True), ("", ["Запасы"], False), (None, ["Запасы"], False), ("Запасы", [], False), ("Итого по разделу х", ["Итого по разделу X"], True), ("Итого по разделу", ["Итого по разделу"], True), ("Итого по разделу II", ["Итого по разделу IV"], False), ("Запасы", ["Основные средства"], False), ], ) def test_names_match(recognized: str | None, references: list[str], expected: bool) -> None: assert names_match(recognized, references) is expected def test_normalize_and_section_number() -> None: assert normalize(" Расчёты,\tс (покупателями)_ ") == "расчеты с покупателями" assert section_number(normalize("Итого по разделу VІ")) == "vi" assert section_number("запасы") is None assert section_number("итого по разделу") is None