"""_match_value — exakter Beleg-Wert pro Pflichtangabe.

Die Pflichtangaben-Tabelle soll GENAU den Treffer zeigen (nur die E-Mail unter
Email, nur die Anschrift unter Anschrift) — nicht die umgebende Textpassage.
Regression: bei Impressum-Texten ohne Zeilenumbrüche (z.B. BMW als ein Block)
wurde vorher für jede MC derselbe Anfangssatz / ein breites Fenster gezeigt.
"""

from __future__ import annotations

from compliance.services.specialist_agents.impressum.agent import _match_value


def test_match_value_is_exact_not_context():
    text = "X" * 200 + "kontakt@bmw.de" + "Y" * 200
    s = text.index("kontakt@bmw.de")
    assert _match_value(text, s, s + len("kontakt@bmw.de")) == "kontakt@bmw.de"


def test_match_value_normalizes_whitespace_and_caps():
    assert _match_value("A  B\tC", 0, 6) == "A B C"
    assert len(_match_value("z" * 300, 0, 300)) == 120
