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

Diff of /trunk/test_Lohnsteuer2008.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/RCS/test_Lohnsteuer.py revision 5 by wilde, Wed Jan 12 17:16:34 2005 UTC trunk/test_Lohnsteuer2008.py revision 74 by wilde, Tue Jan 15 10:24:39 2008 UTC
# Line 1  Line 1 
1    # -*- coding: latin-1 -*-
2  # --------------------------------------------------------------------  # --------------------------------------------------------------------
3  # UnitTest f�r die Lohnsteuerberechnung in LST2005  # UnitTest f�r die Lohnsteuerberechnung in LST2005
4  # $Id$  # $Id$
5  # --------------------------------------------------------------------  # --------------------------------------------------------------------
6  #  #
7  # Copyright (c) 2005 by Intevation GmbH  # Copyright (c) 2005, 2006, 2007, 2008 by Intevation GmbH
8  # Authors:  # Authors:
9  # Sascha Wilde <[email protected]>  # Sascha Wilde <[email protected]>
10  #  #
11  # This program is free software under the GPL (>=v2)  # This program is free software under the GPL (>=v2)
12  # Read the file COPYING coming with this package for details.  # Read the file COPYING coming with this package for details.
13    
14  """Unit Test f�r die Lohnsteuerberechnung in LST2005.  Benutzt die  """Unit Test f�r die Lohnsteuerberechnung in LST2008.  Benutzt die
15  Daten aus der Pr�ftabelle zum offiziellen Programmablaufplan zur  Daten aus der Pr�ftabelle zum offiziellen Programmablaufplan zur
16  maschinellen Jahreslohnste�rberechnung 2005."""  maschinellen Jahreslohnsteuerberechnung 2008."""
17    
18  # ACHTUNG: die Pr�ftabelle liefert nur Referenzwerte f�r die  # ACHTUNG: die Pr�ftabelle liefert nur Referenzwerte f�r die
19  # Berechnung der Lohnsteuer auf ein Jahr, andere Berechnung�eitr�ume  # Berechnung der Lohnsteuer auf ein Jahr, andere Berechnung�eitr�ume
20  # werden nicht ber�cksichtigt.  # werden nicht ber�cksichtigt.
21    
22  import unittest  import unittest
23  from LST2005 import *  from LST2008 import *
24    
25  class TestGetLohnsteuer(unittest.TestCase):  class TestGetLohnsteuer(unittest.TestCase):
26    
27      def SetUp(self):      def SetUp(self):
28          """Offizielle Pr�ftabelle und LStRechner2005 einrichten"""          """Offizielle Pr�ftabelle und LStRechner2008 einrichten"""
29          self.prueftabelle = {          self.prueftabelle = {
30              5000 : [     0.0,     0.0,     0.0,     0.0,   612.0,   750.0 ],              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 ],              7500 : [     0.0,     0.0,     0.0,     0.0,   987.0,  1125.0 ],
# Line 32  class TestGetLohnsteuer(unittest.TestCas Line 33  class TestGetLohnsteuer(unittest.TestCas
33              12500: [   232.0,    18.0,     0.0,   232.0,  2403.0,  2789.0 ],              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 ],              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 ],              17500: [  1362.0,  1043.0,     0.0,  1362.0,  4266.0,  4576.0 ],
36              20000: [  2063.0,  1727.0,     0.0,  2063.0,  5126.0,  5458.0 ],              20000: [  2027.0,  1693.0,     0.0,  2027.0,  5126.0,  5458.0 ],
37              22500: [  2725.0,  2375.0,   264.0,  2725.0,  6044.0,  6398.0 ],              22500: [  2667.0,  2318.0,   264.0,  2667.0,  6044.0,  6398.0 ],
38              25000: [  3417.0,  3051.0,   628.0,  3417.0,  7020.0,  7394.0 ],              25000: [  3334.0,  2970.0,   628.0,  3334.0,  7020.0,  7394.0 ],
39              27500: [  4126.0,  3746.0,  1104.0,  4126.0,  8052.0,  8438.0 ],              27500: [  4027.0,  3649.0,  1104.0,  4027.0,  8052.0,  8438.0 ],
40              30000: [  4860.0,  4465.0,  1634.0,  4860.0,  9102.0,  9488.0 ],              30000: [  4747.0,  4354.0,  1634.0,  4747.0,  9102.0,  9488.0 ],
41              32500: [  5620.0,  5211.0,  2240.0,  5620.0, 10152.0, 10538.0 ],              32500: [  5494.0,  5087.0,  2240.0,  5494.0, 10152.0, 10538.0 ],
42              35000: [  6408.0,  5984.0,  2952.0,  6408.0, 11202.0, 11588.0 ],              35000: [  6268.0,  5846.0,  2952.0,  6268.0, 11202.0, 11588.0 ],
43              37500: [  7224.0,  6785.0,  3684.0,  7224.0, 12252.0, 12638.0 ],              37500: [  7068.0,  6632.0,  3670.0,  7068.0, 12252.0, 12638.0 ],
44              40000: [  8068.0,  7614.0,  4364.0,  8068.0, 13302.0, 13688.0 ],              40000: [  7895.0,  7445.0,  4294.0,  7895.0, 13302.0, 13688.0 ],
45              42500: [  8938.0,  8470.0,  5026.0,  8938.0, 14352.0, 14738.0 ],              42500: [  8749.0,  8285.0,  4932.0,  8749.0, 14352.0, 14738.0 ],
46              45000: [  9836.0,  9354.0,  5700.0,  9836.0, 15402.0, 15788.0 ],              45000: [  9631.0,  9151.0,  5584.0,  9631.0, 15402.0, 15788.0 ],
47              47500: [ 10762.0, 10265.0,  6390.0, 10762.0, 16452.0, 16838.0 ],              47500: [ 10538.0, 10044.0,  6248.0, 10538.0, 16452.0, 16838.0 ],
48              50000: [ 11715.0, 11203.0,  7094.0, 11715.0, 17502.0, 17888.0 ],              50000: [ 11473.0, 10965.0,  6926.0, 11473.0, 17502.0, 17888.0 ],
49              52500: [ 12696.0, 12169.0,  7806.0, 12696.0, 18552.0, 18938.0 ],              52500: [ 12434.0, 11911.0,  7618.0, 12434.0, 18552.0, 18938.0 ],
50              55000: [ 13704.0, 13163.0,  8524.0, 13704.0, 19602.0, 19988.0 ],              55000: [ 13422.0, 12885.0,  8324.0, 13422.0, 19602.0, 19988.0 ],
51              57500: [ 14733.0, 14183.0,  9254.0, 14733.0, 20652.0, 21038.0 ],              57500: [ 14435.0, 13885.0,  9042.0, 14435.0, 20652.0, 21038.0 ],
52              60000: [ 15763.0, 15213.0, 10000.0, 15763.0, 21702.0, 22088.0 ]              60000: [ 15451.0, 14902.0,  9774.0, 15451.0, 21702.0, 22088.0 ]
53              }              }
54          self.t = LStRechner2005()          self.t = LStRechner2008()
55          self.t.SetZeitraum(JAHR)          self.t.SetZeitraum(JAHR)
56    
57      def test_lohnsteuer(self):      def test_lohnsteuer(self):
58          """Testet GetLohnsteuer gegen die offizielle Pr�ftabelle"""                  """Testet GetLohnsteuer gegen die offizielle Pr�ftabelle"""
59          self.SetUp()          self.SetUp()
60          for lohn in self.prueftabelle.keys():          for lohn in self.prueftabelle.keys():
61              for stkl in range(1, 7):              for stkl in range(1, 7):
# Line 64  class TestGetLohnsteuer(unittest.TestCas Line 65  class TestGetLohnsteuer(unittest.TestCas
65                  self.assertEquals(self.t.GetLohnsteuer(),                  self.assertEquals(self.t.GetLohnsteuer(),
66                                    self.prueftabelle[lohn][stkl - 1])                                    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__":  if __name__ == "__main__":
99      unittest.main()      unittest.main()

Legend:
Removed from v.5  
changed lines
  Added in v.74

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26