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);
 }