"""Tests: Textnormalisierung und FTS-Query-Bau.""" from agent.normalize import fts_query, normalize_text, tokenize def test_normalize_folds_german_diacritics(): assert normalize_text("Gehälter Ärger Größe Übung Ökonomie") == ( "gehalter arger grosse ubung okonomie" ) def test_normalize_keeps_digits_and_section_sign(): assert normalize_text("AZG § 19e (Stand 2026-01)") == "azg § 19e (stand 2026-01)" def test_tokenize_splits_alphanumeric(): assert tokenize("Lohnausgleich, AZG §19e") == ["lohnausgleich", "azg", "19e"] def test_fts_query_drops_stopwords_and_quotes_terms(): q = fts_query("Wie hoch ist die SV-Beitragsgrundlage?") assert '"beitragsgrundlage"' in q assert '"sv"' in q assert '"wie"' not in q assert '"ist"' not in q def test_fts_query_empty_and_stopword_only(): assert fts_query("") == "" assert fts_query("Wie ist der die das?") == ""