44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
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"}
|