public void RoundValueTest()
        {
            decimal value = 8.56m;

            DecimalExtensionMethods.RoundValue(value);
            Assert.AreEqual(Math.Round(value, 1), 8.6m);
            Assert.AreEqual(Math.Round(value, 0), 9m);
        }
Esempio n. 2
0
        public decimal CalculateMonthlyPayableIncomeTax(decimal annualTaxableIncome)
        {
            Validator.IsValidValue(annualTaxableIncome);

            var taxBracket       = GetTaxBracket(annualTaxableIncome);
            var marginalTax      = CalculateMarginalTax(annualTaxableIncome, taxBracket);
            var monthlyIncomeTax = (taxBracket.AccumulatedTaxFromPreviousBracket + marginalTax) / Constants.MonthsInYear;

            return(DecimalExtensionMethods.RoundValue(monthlyIncomeTax));
        }
Esempio n. 3
0
        public PayslipInfo Calculate(PayslipInput payslipInput)
        {
            TaxCalculator taxCalculator = new TaxCalculator();

            var salary      = payslipInput.Salary;
            var grossIncome = DecimalExtensionMethods.RoundValue(CalculateMonthlyTaxableIncomeFrom(salary));
            var incomeTax   = taxCalculator.CalculateMonthlyPayableIncomeTax(salary);

            return(new PayslipInfo(payslipInput.Employee,
                                   payslipInput.PayPeriod,
                                   payslipInput.SuperRate,
                                   grossIncome,
                                   incomeTax,
                                   grossIncome - incomeTax,
                                   DecimalExtensionMethods.RoundValue(grossIncome * payslipInput.SuperRate)));
        }
Esempio n. 4
0
        public void CalculateMonthlyPayableIncomeTaxTest()
        {
            decimal expected            = 922m;
            decimal annualTaxableIncome = 60050;

            TaxCalculator taxCalculator = new TaxCalculator();
            var           taxBracket    = taxCalculator.GetTaxBracket(annualTaxableIncome);

            var marginalTax = taxCalculator.CalculateMarginalTax(annualTaxableIncome, taxBracket);

            var monthlyIncomeTax = (taxBracket.AccumulatedTaxFromPreviousBracket + marginalTax) / Constants.MonthsInYear;

            decimal actual = DecimalExtensionMethods.RoundValue(monthlyIncomeTax);

            Assert.AreEqual(expected, actual);
        }