from decimal import Decimal from app.formats import DE_LABELS, de_label, eur def test_eur_basisformat(): assert eur(Decimal("2474.00")) == "2.474,00" def test_eur_negativ_mit_mehreren_tausenderpunkten(): assert eur(Decimal("-1234567.5")) == "-1.234.567,50" def test_eur_null_und_kleinbetraege(): assert eur(Decimal("0")) == "0,00" assert eur(Decimal("-0.5")) == "-0,50" assert eur(Decimal("999.99")) == "999,99" def test_eur_rundung_half_up(): assert eur(Decimal("1.005")) == "1,01" assert eur(Decimal("-1.005")) == "-1,01" def test_eur_akzeptiert_strings_und_int(): # Templates reichen teils DB-Werte als str/int durch (z.B. Suggestions). assert eur("1234.5") == "1.234,50" assert eur(7) == "7,00" def test_de_label_bekannte_und_unbekannte_werte(): assert de_label("monthly") == "monatlich" assert de_label("quarterly") == "vierteljährlich" assert de_label("yearly") == "jährlich" assert de_label("annuity") == "Annuität" assert de_label("bullet") == "endfällig" assert de_label("percent") == "Prozent" assert de_label("absolute") == "Absolut" assert de_label("remove") == "Entfällt" assert de_label("ende") == "Ende" assert de_label("weirdvalue") == "weirdvalue" assert set(DE_LABELS) == {"monthly", "quarterly", "yearly", "annuity", "bullet", "percent", "absolute", "remove", "ende"}