public void GeneratesPayslipWithCorrectData(Employee employee, PayPeriod payPeriod, Payslip expected)
        {
            var taxCalculator           = new TaxCalculator(SetUpTestTaxTable());
            var monthlyPayslipGenerator = new MonthlyPayslipGenerator(taxCalculator);
            var actual = monthlyPayslipGenerator.Generate(employee, payPeriod);

            Assert.Equal(expected.GrossIncome, actual.GrossIncome);
        }
        public void CanCalculateTaxForPayPeriod_RoundsTo5DecimalPlaces(string startDateStr, string endDateStr, decimal annualTax, decimal expected)
        {
            var startDate = DateTime.ParseExact(startDateStr, "d/M/yyyy", CultureInfo.InvariantCulture);
            var endDate   = DateTime.ParseExact(endDateStr, "d/M/yyyy", CultureInfo.InvariantCulture);
            var payPeriod = new PayPeriod(startDate, endDate);
            var actual    = MonthlyPayslipGenerator.CalculateTaxForPayPeriod(annualTax, payPeriod);

            Assert.Equal(expected, actual);
        }