[Lohnrechner-commits] r74 - trunk

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Jan 15 11:24:39 CET 2008


Author: wilde
Date: 2008-01-15 11:24:39 +0100 (Tue, 15 Jan 2008)
New Revision: 74

Added:
   trunk/test_Lohnsteuer2008.py
Log:
Tests f?\195?\188r LST2008 hinzugef?\195?\188gt.
Enth?\195?\164lt die neue offizielle Jahreslohnsteuer Pr?\195?\188ftabelle.

Copied: trunk/test_Lohnsteuer2008.py (from rev 73, trunk/test_Lohnsteuer2007.py)
===================================================================
--- trunk/test_Lohnsteuer2007.py	2007-01-26 11:50:39 UTC (rev 73)
+++ trunk/test_Lohnsteuer2008.py	2008-01-15 10:24:39 UTC (rev 74)
@@ -0,0 +1,99 @@
+# -*- coding: latin-1 -*-
+# --------------------------------------------------------------------
+# UnitTest für die Lohnsteuerberechnung in LST2005
+# $Id$
+# --------------------------------------------------------------------
+#
+# Copyright (c) 2005, 2006, 2007, 2008 by Intevation GmbH
+# Authors:
+# Sascha Wilde <wilde at intevation.de>
+#
+# This program is free software under the GPL (>=v2)
+# Read the file COPYING coming with this package for details.
+
+"""Unit Test für die Lohnsteuerberechnung in LST2008.  Benutzt die
+Daten aus der Prüftabelle zum offiziellen Programmablaufplan zur
+maschinellen Jahreslohnsteuerberechnung 2008."""
+
+# ACHTUNG: die Prüftabelle liefert nur Referenzwerte für die
+# Berechnung der Lohnsteuer auf ein Jahr, andere Berechnungßeiträume
+# werden nicht berücksichtigt.
+
+import unittest
+from LST2008 import *
+
+class TestGetLohnsteuer(unittest.TestCase):
+
+    def SetUp(self):
+        """Offizielle Prüftabelle und LStRechner2008 einrichten"""
+        self.prueftabelle = {
+            5000 : [     0.0,     0.0,     0.0,     0.0,   612.0,   750.0 ],
+            7500 : [     0.0,     0.0,     0.0,     0.0,   987.0,  1125.0 ],
+            10000: [     0.0,     0.0,     0.0,     0.0,  1362.0,  1739.0 ],
+            12500: [   232.0,    18.0,     0.0,   232.0,  2403.0,  2789.0 ],
+            15000: [   714.0,   444.0,     0.0,   714.0,  3400.0,  3722.0 ],
+            17500: [  1362.0,  1043.0,     0.0,  1362.0,  4266.0,  4576.0 ],
+            20000: [  2027.0,  1693.0,     0.0,  2027.0,  5126.0,  5458.0 ],
+            22500: [  2667.0,  2318.0,   264.0,  2667.0,  6044.0,  6398.0 ],
+            25000: [  3334.0,  2970.0,   628.0,  3334.0,  7020.0,  7394.0 ],
+            27500: [  4027.0,  3649.0,  1104.0,  4027.0,  8052.0,  8438.0 ],
+            30000: [  4747.0,  4354.0,  1634.0,  4747.0,  9102.0,  9488.0 ],
+            32500: [  5494.0,  5087.0,  2240.0,  5494.0, 10152.0, 10538.0 ],
+            35000: [  6268.0,  5846.0,  2952.0,  6268.0, 11202.0, 11588.0 ],
+            37500: [  7068.0,  6632.0,  3670.0,  7068.0, 12252.0, 12638.0 ],
+            40000: [  7895.0,  7445.0,  4294.0,  7895.0, 13302.0, 13688.0 ],
+            42500: [  8749.0,  8285.0,  4932.0,  8749.0, 14352.0, 14738.0 ],
+            45000: [  9631.0,  9151.0,  5584.0,  9631.0, 15402.0, 15788.0 ],
+            47500: [ 10538.0, 10044.0,  6248.0, 10538.0, 16452.0, 16838.0 ],
+            50000: [ 11473.0, 10965.0,  6926.0, 11473.0, 17502.0, 17888.0 ],
+            52500: [ 12434.0, 11911.0,  7618.0, 12434.0, 18552.0, 18938.0 ],
+            55000: [ 13422.0, 12885.0,  8324.0, 13422.0, 19602.0, 19988.0 ],
+            57500: [ 14435.0, 13885.0,  9042.0, 14435.0, 20652.0, 21038.0 ],
+            60000: [ 15451.0, 14902.0,  9774.0, 15451.0, 21702.0, 22088.0 ]
+            }
+        self.t = LStRechner2008()
+        self.t.SetZeitraum(JAHR)
+
+    def test_lohnsteuer(self):
+        """Testet GetLohnsteuer gegen die offizielle Prüftabelle"""
+        self.SetUp()
+        for lohn in self.prueftabelle.keys():
+            for stkl in range(1, 7):
+                self.t.SetLohn(lohn)
+                self.t.SetSteuerklasse(stkl)
+                self.t.Calc()
+                self.assertEquals(self.t.GetLohnsteuer(),
+                                  self.prueftabelle[lohn][stkl - 1])
+
+    def test_api_lohnaequi(self):
+        """Testet SetLohn GetLohn Äquivalenz"""
+        self.SetUp()
+        for val in (0, 1, 1234.56, 2000.01, 2000.10, 2000.30, 2000.50, 3000,
+                    3000.01, 50000, 70000, 90000, 1000000.01, 100000000000.01):
+            self.t.SetLohn(val)
+            self.assertEquals(self.t.GetLohn(), val)
+
+    def test_api_zeitraumaequi(self):
+        """Testet SetZeitraum GetZeitraum Äquivalenz"""
+        self.SetUp()
+        for val in (JAHR, MONAT, WOCHE, TAG):
+            self.t.SetZeitraum(val)
+            self.assertEquals(self.t.GetZeitraum(), val)
+
+    def test_api_steuerklasseaequi(self):
+        """Testet SetSteuerklasse GetSteuerklasse Äquivalenz"""
+        self.SetUp()
+        for val in (I, II, III, IV, V, VI):
+            self.t.SetSteuerklasse(val)
+            self.assertEquals(self.t.GetSteuerklasse(), val)
+
+    def test_api_kirchensteueraequi(self):
+        """Testet SetKirchensteuer GetKirchensteuer Äquivalenz"""
+        self.SetUp()
+        for val in (0, 1, 5.5, 14.32, 8, 9, 50.50, 87.65, 100):
+            self.t.SetKirchensteuerProzent(val)
+            self.assertEquals(self.t.GetKirchensteuerProzent(), val)
+
+
+if __name__ == "__main__":
+    unittest.main()



More information about the Lohnrechner-commits mailing list