public IncomeTaxTable() { _taxTable = new List <IncomeTaxTableEntry>() { IncomeTaxTableEntry.CreateWith(0, 18200, 0, 0M), IncomeTaxTableEntry.CreateWith(18201, 37000, 0, 0.19m), IncomeTaxTableEntry.CreateWith(37001, 80000, 3572, 0.325m), IncomeTaxTableEntry.CreateWith(80001, 180000, 17547, 0.37m), IncomeTaxTableEntry.CreateWith(180001, decimal.MaxValue, 54547, 0.45m), }; }
public static IncomeTaxTableEntry CreateWith(decimal minThreshold, decimal maxThreshold, decimal accumulatedTaxFromPreviousBracket, decimal marginalTaxRate) { EnsureValidValues(minThreshold, maxThreshold); var incomeThreshold = CalculateIncomeThreshold(minThreshold); var taxBracket = new IncomeTaxBracket(accumulatedTaxFromPreviousBracket, marginalTaxRate, incomeThreshold); var taxTableEntry = new IncomeTaxTableEntry(minThreshold, maxThreshold, taxBracket); return(taxTableEntry); }