def test_pay_owing_to_awards(self): """ Breakdown of the calendar monthly paid employees totals. """ _, funct = MWSSTransformer.ops()["171"] return_value = funct("171", {"171": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("171", {"171": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("171", {"171": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("171", {"171": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["172"] return_value = funct("172", {"172": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("172", {"172": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("172", {"172": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("172", {"172": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["173"] return_value = funct("173", {"173": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("173", {"173": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("173", {"173": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("173", {"173": "-19200.49"}, 0) self.assertEqual(0, return_value)
def test_percentage_increase_new_pay_rates(self): """ Breakdown of percentage increase pay rates """ _, funct = MWSSTransformer.ops()["200"] return_value = funct("200", {"200w5": "1600"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w5": "19200.49"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w5": "19200.5"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w5": "-19200.49"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w5": ""}, 0) self.assertEqual(False, return_value) _, funct = MWSSTransformer.ops()["200"] return_value = funct("200", {"200w4": "1600"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": "19200.49"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": "19200.5"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": "-19200.49"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w5": ""}, 0) self.assertEqual(False, return_value)
def test_pay_bonus_commission_annual_profit(self): """ Breakdown of the calendar monthly paid employees totals. """ _, funct = MWSSTransformer.ops()["181"] return_value = funct("181", {"181": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("181", {"181": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("181", {"181": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("181", {"181": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["182"] return_value = funct("182", {"182": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("182", {"182": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("182", {"182": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("182", {"182": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["173"] return_value = funct("173", {"173": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("173", {"173": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("173", {"173": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("173", {"173": "-19200.49"}, 0) self.assertEqual(0, return_value)
def test_gross_calendar_pay(self): """ Total gross calendar monthly pay """ _, funct = MWSSTransformer.ops()["151"] return_value = funct("151", {"151": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("151", {"151": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("151", {"151": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("151", {"151": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["152"] return_value = funct("152", {"152": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("152", {"152": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("152", {"152": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("152", {"152": "-19200.49"}, 0) self.assertEqual(0, return_value) _, funct = MWSSTransformer.ops()["153"] return_value = funct("153", {"153": "1600"}, 0) self.assertEqual(1600, return_value) return_value = funct("153", {"153": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("153", {"153": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("153", {"153": "-19200.49"}, 0) self.assertEqual(0, return_value)
def test_aggregate_fortnightly_bonuses(self): """ Fortnightly holiday pay (60f), arrears of pay (70f) and bonuses (80f) are divided by 2 and added to question_id 60, 70, 80 respectively. """ _, funct = MWSSTransformer.ops()["60"] return_value = funct("60", {"60f": "360"}, 0) self.assertEqual(180, return_value) return_value = funct("60", {"60": "4600", "60f": "360"}, 0) self.assertEqual(4780, return_value) return_value = funct("60", {"60": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("60", {"60": "19200.5", "60f": "1600.5"}, 0) self.assertEqual(20001, return_value) return_value = funct("60", {"60": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("60", {"60": "19200.02", "60f": "1600.02"}, 0) self.assertEqual(20000, return_value) _, funct = MWSSTransformer.ops()["70"] return_value = funct("70", {"70f": "1280"}, 0) self.assertEqual(640, return_value) return_value = funct("70", {"70": "7360", "70f": "1280"}, 0) self.assertEqual(8000, return_value) return_value = funct("70", {"70": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("70", {"70": "19200.5", "70f": "1600.5"}, 0) self.assertEqual(20001, return_value) return_value = funct("70", {"70": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("70", {"70": "19200.02", "70f": "1600.02"}, 0) self.assertEqual(20000, return_value) _, funct = MWSSTransformer.ops()["80"] return_value = funct("80", {"80f": "5000"}, 0) self.assertEqual(2500, return_value) return_value = funct("80", {"80": "15000", "80f": "5000"}, 0) self.assertEqual(17500, return_value) return_value = funct("80", {"80": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("80", {"80": "19200.5", "80f": "1600.5"}, 0) self.assertEqual(20001, return_value) return_value = funct("80", {"80": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("80", {"80": "19200.02", "80f": "1600.02"}, 0) self.assertEqual(20000, return_value)
def test_weekly_increase(self): """ Increase in weekly pay (100). """ _, funct = MWSSTransformer.ops()["100"] return_value = funct("100", {"100": "6.0"}, 0) self.assertEqual(6, return_value)
def test_aggregate_weekly_paid_employees(self): """ question_id 40, 40f are added to give a value for weekly paid employees (40). """ _, funct = MWSSTransformer.ops()["40"] return_value = funct("40", {"40": "125000"}, 0) self.assertEqual(125000, return_value) return_value = funct("40", {"40": "125000", "40f": "25000"}, 0) self.assertEqual(150000, return_value)
def test_aggregate_monthly_paid_employees(self): """ question_id 140m, 140w4, 140w5 are added to give a value for monthly paid employees (140). """ _, funct = MWSSTransformer.ops()["140"] return_value = funct("140", {"140w4": "125000"}, 0) self.assertEqual(125000, return_value) for question_id in ("140m", "140w4", "140w5"): return_value = funct("140", {"140": "125000", question_id: "25000"}, 0) self.assertEqual(150000, return_value)
def test_aggregate_fiveweekly_increase_date(self): """ Date of increase in fiveweekly pay (210w5); aggregated with monthly (210). """ _, funct = MWSSTransformer.ops()["210"] return_value = funct( "210", {"210": "2017-01-09", "210w5": "2017-01-11"}, datetime.date.today(), ) self.assertEqual(9, return_value[0].day) self.assertEqual(11, return_value[1].day)
def test_aggregate_fortnightly_increase_date(self): """ Date of increase in Fortnightly pay (110f); aggregated with weekly (110). """ _, funct = MWSSTransformer.ops()["110"] return_value = funct( "110", {"110": "2017-01-09", "110f": "2017-01-11"}, datetime.date.today(), ) self.assertEqual(9, return_value[0].day) self.assertEqual(11, return_value[1].day)
def test_aggregate_weekly_comments(self): """ question_id 300w, 300f, 300m, 300w4 & 300w5; all aggregated as 300. """ _, funct = MWSSTransformer.ops()["300"] for question_id in ("300w", "300f", "300m", "300w4", "300w5"): with self.subTest(question_id=question_id): return_value = funct("300", {question_id: "Single comment"}, "") self.assertEqual("Single comment", return_value) return_value = funct("300", {"300": "First comment", question_id: "Second comment"}, "") self.assertEqual(["First comment", "Second comment"], return_value.splitlines())
def test_aggregate_fortnightly_increase(self): """ Increase in Fortnightly pay (100f); aggregated with weekly increase (100). """ _, funct = MWSSTransformer.ops()["100"] return_value = funct("100", {"100f": "6.0"}, 0) self.assertEqual(6, return_value) return_value = funct("100", {"100": "7.0", "100f": "6.0"}, 0) self.assertEqual(6, return_value) # Integer default return_value = funct("100", {"100": "7.0", "100f": "6.0"}, 0.0) self.assertEqual(6.5, return_value) # Float default
def test_aggregate_fourweekly_increase(self): """ Increase in fourweekly pay (200w4); aggregated with monthly increase (200). """ _, funct = MWSSTransformer.ops()["200"] return_value = funct("200", {"200w4": "6.0"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200": "7.0", "200w4": "6.0"}, 0) self.assertEqual(True, return_value) # Integer default return_value = funct("200", {"200": "7.0", "200w4": "6.0"}, 0.0) self.assertEqual(True, return_value) # Float default
def test_aggregate_fiveweekly_changes(self): """ question_id 190w5 used for fiveweekly changes question; aggregates to 190. """ _, funct = MWSSTransformer.ops()["190"] return_value = funct("190", {"190w5": ""}, True) self.assertFalse(return_value) return_value = funct("190", {"190w5": "No"}, True) self.assertFalse(return_value) return_value = funct("190", {"190w5": "Yes"}, False) self.assertTrue(return_value)
def test_aggregate_weekly_changes(self): """ question_id 90w weekly changes question; aggregates to 90. """ _, funct = MWSSTransformer.ops()["90"] return_value = funct("90", {"90w": ""}, True) self.assertFalse(return_value) return_value = funct("90", {"90w": "No"}, True) self.assertFalse(return_value) return_value = funct("90", {"90w": "Yes"}, False) self.assertTrue(return_value)
def test_aggregate_fiveweekly_increase_employees(self): """ Employees with increase in fiveweekly pay (220w5); aggregated with monthly increase (220). """ _, funct = MWSSTransformer.ops()["220"] return_value = funct("220", {"220w5": "60"}, 0) self.assertEqual(60, return_value) return_value = funct("220", {"220": "40", "220w5": "41"}, 0) self.assertEqual(40, return_value) # Integer default return_value = funct("220", {"220": "40", "220w5": "41"}, 0.0) self.assertEqual(40.5, return_value) # Float default
def test_aggregate_fortnightly_increase_employees(self): """ Employees with increase in Fortnightly pay (120f); aggregated with weekly increase (120). """ _, funct = MWSSTransformer.ops()["120"] return_value = funct("120", {"120f": "60"}, 0) self.assertEqual(60, return_value) return_value = funct("120", {"120": "40", "120f": "41"}, 0) self.assertEqual(40, return_value) # Integer default return_value = funct("120", {"120": "40", "120f": "41"}, 0.0) self.assertEqual(40.5, return_value) # Float default
def test_aggregate_fiveweekly_increase(self): """ Increase in fiveweekly pay (200w5); aggregated with monthly increase (200). """ _, funct = MWSSTransformer.ops()["200"] return_value = funct("200", {"200w5": "6.0"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": "7.0"}, 0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": "7.0"}, 0.0) self.assertEqual(True, return_value) return_value = funct("200", {"200w4": ""}, 0.0) self.assertEqual(False, return_value)
def test_aggregate_fortnightly_gross_pay(self): """ Fortnightly gross pay (50f) is divided by 2 and added to the value for question_id 50. """ _, funct = MWSSTransformer.ops()["50"] return_value = funct("50", {"50f": "1600"}, 0) self.assertEqual(800, return_value) return_value = funct("50", {"50": "19200", "50f": "1600"}, 0) self.assertEqual(20000, return_value) return_value = funct("50", {"50": "19200.5"}, 0) self.assertEqual(19201, return_value) return_value = funct("50", {"50": "19200.5", "50f": "1600.5"}, 0) self.assertEqual(20001, return_value) return_value = funct("50", {"50": "19200.49"}, 0) self.assertEqual(19200, return_value) return_value = funct("50", {"50": "19200.02", "50f": "1600.02"}, 0) self.assertEqual(20000, return_value)