public double ComputeTax(double taxableIncome, User taxPayer)
{
ValidateTaxComponents(taxableIncome, taxPayer);
var slabsInUse = GetAppropriateTaxSlabs(taxPayer);
var tax = 0.00;
foreach (var slab in slabsInUse){
tax += slab.GetTax(taxableIncome);
taxableIncome = taxableIncome - slab.SlabValue;
if (taxableIncome <= 0)
break;
}
return tax;
}