Fixed tax calculator
This commit is contained in:
parent
e68fc13254
commit
64965f1ae8
|
@ -25,19 +25,27 @@ class TaxRates:
|
||||||
def add_rate(self, above, rate):
|
def add_rate(self, above, rate):
|
||||||
self.rates[int(above)] = int(rate)
|
self.rates[int(above)] = int(rate)
|
||||||
|
|
||||||
def get_rate(self, income):
|
def get_taxes(self, income):
|
||||||
rate = 0
|
taxes = 0
|
||||||
|
ratelist = list(self.rates.items())
|
||||||
|
|
||||||
for level in sorted(self.rates.items()):
|
for rate in range(len(ratelist)):
|
||||||
if level[0] < income:
|
running = None
|
||||||
rate = level[1]
|
|
||||||
else:
|
try:
|
||||||
|
if income > ratelist[rate + 1][0]:
|
||||||
|
running = ratelist[rate + 1][0] - ratelist[rate][0]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
running = running or (income - ratelist[rate][0])
|
||||||
|
|
||||||
|
if running < 0:
|
||||||
break
|
break
|
||||||
|
|
||||||
return rate
|
taxes += running / 100 * ratelist[rate][1]
|
||||||
|
|
||||||
def get_taxes(self, income):
|
return taxes
|
||||||
return income / 100 * self.get_rate(income)
|
|
||||||
|
|
||||||
def get_taxes(income):
|
def get_taxes(income):
|
||||||
return TaxRates().get_taxes(income)
|
return TaxRates().get_taxes(income)
|
||||||
|
|
|
@ -2,6 +2,6 @@ from einkommenssteuer import get_taxes
|
||||||
|
|
||||||
def test_get_taxes():
|
def test_get_taxes():
|
||||||
assert get_taxes(5000) == 0
|
assert get_taxes(5000) == 0
|
||||||
assert get_taxes(1000000) == 500000
|
assert get_taxes(40000) == 10080
|
||||||
assert get_taxes(31500) == 31500 * 42 / 100
|
assert get_taxes(564000) == 269880
|
||||||
assert "nobody needs 10 fucking tests for this"
|
assert "nobody needs 10 fucking tests for this"
|
||||||
|
|
Loading…
Reference in a new issue