Flatten budget-app contents into repo root
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from decimal import Decimal
|
||||
|
||||
import pytest
|
||||
|
||||
from app.calc import ExpressionError, evaluate, even_spread
|
||||
|
||||
|
||||
@pytest.mark.parametrize("text,expected", [
|
||||
("=5512*12", "66144"),
|
||||
("3292.56+(12*839.67)+(12*148.19)", "15146.88"),
|
||||
("4 839,65", "4839.65"),
|
||||
("1.234,50", "1234.50"),
|
||||
("1,234.50", "1234.50"),
|
||||
("", "0"),
|
||||
("-10/4", "-2.5"),
|
||||
])
|
||||
def test_evaluate(text, expected):
|
||||
assert evaluate(text) == Decimal(expected)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("text", ["__import__('os')", "2**10", "1/0", "abc", "1;2"])
|
||||
def test_evaluate_rejects(text):
|
||||
with pytest.raises(ExpressionError):
|
||||
evaluate(text)
|
||||
|
||||
|
||||
def test_even_spread_adds_up():
|
||||
months = even_spread(Decimal("100.00"))
|
||||
assert sum(months) == Decimal("100.00")
|
||||
assert months[0] == Decimal("8.33") and months[-1] == Decimal("8.37")
|
||||
Reference in New Issue
Block a user