public void MustCalculateNetPayableTaxWithAnnualSalaryOtherIncomesAndChapter6Investments()
{
var taxPayer = new User(50000, true, Gender.Female);
TaxSlabs ts = TaxSlabs.GetInstance();
AnnualSalary asal = new AnnualSalary
{
Basic = 800000.50,
Hra = 1000,
ProfessionalTax = 100,
SpecialAllowance = 10
};
OtherIncomes otherIncomes = new OtherIncomes();
otherIncomes.Add(new OtherIncomeItem("Income from Interest", 4000.0));
otherIncomes.Add(new OtherIncomeItem("Income from House Rent", 8000.0));
Chapter6Investments investments = new Chapter6Investments();
investments.Add(new LifeInsurance(50000));
investments.Add(new Elss(60000));
TaxStatement stmt = new TaxStatement(asal,taxPayer);
stmt.OtherIncomes = otherIncomes;
stmt.Chapter6Investments = investments;
double totalIncome = ((asal.GetTaxableSalary() + otherIncomes.CalculateTotalAmount())
-
(asal.CalculateHraExemption(taxPayer.FromMetro, taxPayer.RentPaid)));
double totalInvestments = (asal.Epf + investments.GetTotal());
totalIncome -= totalInvestments <= Chapter6Investments.Cap
? totalInvestments
: Chapter6Investments.Cap;
Assert.AreEqual(120473,
stmt.CalculateNetPayableTax(),2);
}