def testGehaltAndSonderzahlungMonatlich(self): self.givenGehalt(2012, AllGuS.E10_3, 8., 75.) s = Stelle(AllGuS.E10_3, date(2012, 1, 1), dec(40.)) self.assertAlmostEqual(dec(1.3 * 8. * .4), self.ötv.monatsGesamt(2012, s)) self.assertAlmostEqual(dec(1.3 * 8. * .4 * .75), self.ötv.sonderzahlung(2012, s))
def testLaufendSimple(self): s = Stelle(AllGuS.E10_3, date(2019, 7, 1)) # NB: Enddatum ist nicht der letzte Tag im Monat, daher ist Sep nicht dabei anst = Anstellung(s, date(2019, 7, 1), date(2019, 9, 13)) expected = [(date(2019, 7, 31), s), (date(2019, 8, 31), s)] self.assertEqual(expected, anst.monatsListe)
def testLaufendJahresWechsel(self): s = Stelle(AllGuS.E10_3, date(2019, 7, 1)) anst = Anstellung(s, date(2019, 12, 1), date(2020, 2, 29)) expected = [(date(2019, 12, 31), s), (date(2020, 1, 31), s), (date(2020, 2, 29), s)] self.assertEqual(expected, anst.monatsListe)
def testE10MitVorgeschichte(self): self.givenGehalt(2019, AllGuS.E10_3, 6., 50.) lCalc = Summierer(self.ötv).calcSonderzahlung anst = Anstellung(Stelle(AllGuS.E10_3, date(2019, 1, 1)), date(2019, 1, 1), date(2020, 1, 1)) self.assertAlmostEqual(Decimal(1.3 * 3.), lCalc(date(2019, 11, 1), anst))
def testNovemberAndDezember(self): self.givenGehalt(2019, AllGuS.E10_3, 12., 75.) lCalc = Summierer(self.ötv).calcSonderzahlung anst = Anstellung(Stelle(AllGuS.E10_3, date(2019, 1, 1)), date(2019, 1, 1), date(2019, 12, 31)) self.assertAlmostEqual(Decimal(1.3 * 9.), lCalc(date(2019, 11, 1), anst))
def testFalscheArgumente(self): s = Stelle(AllGuS.E10_3, date(2019, 7, 1)) try: Anstellung(s, date(2019, 5, 1), date(2019, 8, 1)) except AssertionError as e: assert "liegt nach dem Anfangsdatum" in str(e), "Got: {}".format(e) else: self.fail("Expected AssertionError") try: Anstellung(s, date(2019, 8, 1), date(2019, 7, 1)) except AssertionError as e: assert "liegt nach dem Enddatum" in str(e), "Got: {}".format(e) else: self.fail("Expected AssertionError")
def berechne(self): vonDate = qDate2date(self.beschäftigung.vonPicker.date()) bisDate = qDate2date(self.beschäftigung.bisPicker.date()) gruppe = self.beschäftigung.gruppe.currentItem() stufe = self.weiterOderNeu.stufe.currentItem() umfang = dec(self.beschäftigung.umfang.value()) stufenStart = qDate2date(self.weiterOderNeu.seit( )) if self.weiterOderNeu.istWeiter() else vonDate anst = Anstellung(Stelle(GuS(gruppe, stufe), stufenStart, umfang), vonDate, bisDate) summe, details = self.summierer.calc(anst) self.details.clear() for monatsKosten in details: self.details.addDetail(monatsKosten) self.summe.total.setText("{0:n} €".format(summe))
def testNovemberButNoDezember(self): anst = Anstellung(Stelle(AllGuS.E10_3, date(2019, 1, 1)), date(2019, 1, 1), date(2019, 11, 30)) self.assertEqual(Decimal(0.), trivialCalc(date(2019, 11, 1), anst))
def testAmEndstufe(self): start = Stelle(AllGuS.E10_6, date(2019, 1, 1)) self.assertEqual(start, start.am(date(2043, 3, 4)))
def testAmÜbersprung(self): start = Stelle(AllGuS.E10_1, date(2019, 1, 1)) self.assertEqual(Stelle(AllGuS.E10_3, date(2022, 1, 1)), start.am(date(2023, 3, 4)))
def testAmRandfall(self): start = Stelle(AllGuS.E10_1, date(2019, 1, 1)) self.assertEqual(Stelle(AllGuS.E10_2, date(2020, 1, 1)), start.am(date(2020, 1, 1)))
def testAmAufstieg(self): start = Stelle(AllGuS.E10_1, date(2019, 1, 1)) self.assertEqual(Stelle(AllGuS.E10_2, date(2020, 1, 1)), start.am(date(2020, 2, 17)))
def testFindBaseStellenSprungImAugust(self): s1 = Stelle(AllGuS.E10_1, date(2019, 8, 1)) s2 = Stelle(AllGuS.E10_2, date(2020, 8, 1)) anst = Anstellung(s1, date(2019, 8, 1), date(2021, 3, 31)) self.assertEqual([s1, s2, s2], anst.findBaseStellen(2020))
def testFindBaseStellenNurNovember(self): s = Stelle(AllGuS.E10_3, date(2019, 11, 1)) anst = Anstellung(s, date(2019, 11, 1), date(2020, 3, 31)) self.assertEqual([s], anst.findBaseStellen(2019))
def testFindBaseStellenEinfachesGanzesJahr(self): s = Stelle(AllGuS.E10_3, date(2019, 1, 1)) anst = Anstellung(s, date(2019, 1, 1), date(2020, 3, 31)) self.assertEqual([s, s, s], anst.findBaseStellen(2019))
def testAmEinfach(self): start = Stelle(AllGuS.E10_2, date(2019, 1, 1)) self.assertEqual(start, start.am(date(2019, 2, 1)))
def testLetzterTagImMonat(self): s = Stelle(AllGuS.E10_3, date(2019, 7, 1)) anst = Anstellung(s, date(2019, 7, 1), date(2019, 8, 31)) expected = [(date(2019, 7, 31), s), (date(2019, 8, 31), s)] self.assertEqual(expected, anst.monatsListe)