/[lohnrechner]/trunk/test_Lohnsteuer2008.py
ViewVC logotype

Contents of /trunk/test_Lohnsteuer2008.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 74 - (show annotations)
Tue Jan 15 10:24:39 2008 UTC (17 years, 3 months ago) by wilde
File MIME type: text/x-python
File size: 4527 byte(s)
Tests für LST2008 hinzugefügt.
Enthält die neue offizielle Jahreslohnsteuer Prüftabelle.
1 # -*- coding: latin-1 -*-
2 # --------------------------------------------------------------------
3 # UnitTest für die Lohnsteuerberechnung in LST2005
4 # $Id$
5 # --------------------------------------------------------------------
6 #
7 # Copyright (c) 2005, 2006, 2007, 2008 by Intevation GmbH
8 # Authors:
9 # Sascha Wilde <[email protected]>
10 #
11 # This program is free software under the GPL (>=v2)
12 # Read the file COPYING coming with this package for details.
13
14 """Unit Test für die Lohnsteuerberechnung in LST2008. Benutzt die
15 Daten aus der Prüftabelle zum offiziellen Programmablaufplan zur
16 maschinellen Jahreslohnsteuerberechnung 2008."""
17
18 # ACHTUNG: die Prüftabelle liefert nur Referenzwerte für die
19 # Berechnung der Lohnsteuer auf ein Jahr, andere Berechnungßeiträume
20 # werden nicht berücksichtigt.
21
22 import unittest
23 from LST2008 import *
24
25 class TestGetLohnsteuer(unittest.TestCase):
26
27 def SetUp(self):
28 """Offizielle Prüftabelle und LStRechner2008 einrichten"""
29 self.prueftabelle = {
30 5000 : [ 0.0, 0.0, 0.0, 0.0, 612.0, 750.0 ],
31 7500 : [ 0.0, 0.0, 0.0, 0.0, 987.0, 1125.0 ],
32 10000: [ 0.0, 0.0, 0.0, 0.0, 1362.0, 1739.0 ],
33 12500: [ 232.0, 18.0, 0.0, 232.0, 2403.0, 2789.0 ],
34 15000: [ 714.0, 444.0, 0.0, 714.0, 3400.0, 3722.0 ],
35 17500: [ 1362.0, 1043.0, 0.0, 1362.0, 4266.0, 4576.0 ],
36 20000: [ 2027.0, 1693.0, 0.0, 2027.0, 5126.0, 5458.0 ],
37 22500: [ 2667.0, 2318.0, 264.0, 2667.0, 6044.0, 6398.0 ],
38 25000: [ 3334.0, 2970.0, 628.0, 3334.0, 7020.0, 7394.0 ],
39 27500: [ 4027.0, 3649.0, 1104.0, 4027.0, 8052.0, 8438.0 ],
40 30000: [ 4747.0, 4354.0, 1634.0, 4747.0, 9102.0, 9488.0 ],
41 32500: [ 5494.0, 5087.0, 2240.0, 5494.0, 10152.0, 10538.0 ],
42 35000: [ 6268.0, 5846.0, 2952.0, 6268.0, 11202.0, 11588.0 ],
43 37500: [ 7068.0, 6632.0, 3670.0, 7068.0, 12252.0, 12638.0 ],
44 40000: [ 7895.0, 7445.0, 4294.0, 7895.0, 13302.0, 13688.0 ],
45 42500: [ 8749.0, 8285.0, 4932.0, 8749.0, 14352.0, 14738.0 ],
46 45000: [ 9631.0, 9151.0, 5584.0, 9631.0, 15402.0, 15788.0 ],
47 47500: [ 10538.0, 10044.0, 6248.0, 10538.0, 16452.0, 16838.0 ],
48 50000: [ 11473.0, 10965.0, 6926.0, 11473.0, 17502.0, 17888.0 ],
49 52500: [ 12434.0, 11911.0, 7618.0, 12434.0, 18552.0, 18938.0 ],
50 55000: [ 13422.0, 12885.0, 8324.0, 13422.0, 19602.0, 19988.0 ],
51 57500: [ 14435.0, 13885.0, 9042.0, 14435.0, 20652.0, 21038.0 ],
52 60000: [ 15451.0, 14902.0, 9774.0, 15451.0, 21702.0, 22088.0 ]
53 }
54 self.t = LStRechner2008()
55 self.t.SetZeitraum(JAHR)
56
57 def test_lohnsteuer(self):
58 """Testet GetLohnsteuer gegen die offizielle Prüftabelle"""
59 self.SetUp()
60 for lohn in self.prueftabelle.keys():
61 for stkl in range(1, 7):
62 self.t.SetLohn(lohn)
63 self.t.SetSteuerklasse(stkl)
64 self.t.Calc()
65 self.assertEquals(self.t.GetLohnsteuer(),
66 self.prueftabelle[lohn][stkl - 1])
67
68 def test_api_lohnaequi(self):
69 """Testet SetLohn GetLohn Äquivalenz"""
70 self.SetUp()
71 for val in (0, 1, 1234.56, 2000.01, 2000.10, 2000.30, 2000.50, 3000,
72 3000.01, 50000, 70000, 90000, 1000000.01, 100000000000.01):
73 self.t.SetLohn(val)
74 self.assertEquals(self.t.GetLohn(), val)
75
76 def test_api_zeitraumaequi(self):
77 """Testet SetZeitraum GetZeitraum Äquivalenz"""
78 self.SetUp()
79 for val in (JAHR, MONAT, WOCHE, TAG):
80 self.t.SetZeitraum(val)
81 self.assertEquals(self.t.GetZeitraum(), val)
82
83 def test_api_steuerklasseaequi(self):
84 """Testet SetSteuerklasse GetSteuerklasse Äquivalenz"""
85 self.SetUp()
86 for val in (I, II, III, IV, V, VI):
87 self.t.SetSteuerklasse(val)
88 self.assertEquals(self.t.GetSteuerklasse(), val)
89
90 def test_api_kirchensteueraequi(self):
91 """Testet SetKirchensteuer GetKirchensteuer Äquivalenz"""
92 self.SetUp()
93 for val in (0, 1, 5.5, 14.32, 8, 9, 50.50, 87.65, 100):
94 self.t.SetKirchensteuerProzent(val)
95 self.assertEquals(self.t.GetKirchensteuerProzent(), val)
96
97
98 if __name__ == "__main__":
99 unittest.main()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26