public void TestCalculateSavingInterestOnTransactionLessThan1000() { Transaction[] trx = new [] { new Transaction(500,new DateTime(1970,1,1)), }; SavingInterestCalculator calculator = new SavingInterestCalculator(); Assert.AreEqual(500.0 * 0.001, calculator.Calculate(trx,DateTime.MaxValue), DOUBLE_DELTA); }
public void TestCalculateSavingInterestOnIntervals() { Transaction[] trx = new [] { new Transaction(500,new DateTime(1970,1,1)), new Transaction(500,new DateTime(1970,2,1)), new Transaction(500,new DateTime(1970,3,1)), new Transaction(500,new DateTime(1970,4,1)), new Transaction(-1000,new DateTime(1970,5,1)), }; SavingInterestCalculator calculator = new SavingInterestCalculator(); Assert.AreEqual(1000.0 * 0.001, calculator.Calculate(trx, DateTime.MaxValue), DOUBLE_DELTA); Assert.AreEqual(1 + 1000 * 0.002, calculator.Calculate(trx, new DateTime(1970,4,15)), DOUBLE_DELTA); }
public void TestCalculateMaxiSavingInterestWithdrawalOlderThen10Days() { Transaction[] trx = new[] { new Transaction(2000,new DateTime(1970,1,1)), new Transaction(-1000, new DateTime(1970,6,30)) }; MaxiSavingInterestCalculator calculator = new MaxiSavingInterestCalculator(); double amount = calculator.Calculate(trx, new DateTime(1970, 12, 27)); double expected = 2000.0.DailyInterest(5.0, 180) + 1000.0.DailyInterest(5.0,180); Assert.AreEqual(expected, amount, DOUBLE_DELTA); }
public void TestCalculateMaxiSavingInterestFor180DAnd360ays() { Transaction[] trx = new[] { new Transaction(1000,new DateTime(1970,1,1)), new Transaction(1000,new DateTime(1970,6,30)), }; MaxiSavingInterestCalculator calculator = new MaxiSavingInterestCalculator(); double amount = calculator.Calculate(trx, new DateTime(1970, 12, 27)); Assert.AreEqual(75, amount, DOUBLE_DELTA); }