Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
41 lines
2.2 KiB
Python
41 lines
2.2 KiB
Python
"""Совпадение наименований §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
|