public void half_way_balances() { var lt = new HalfWayLoanType(); var balances = lt.GetBalances(1000, 3).ToArray(); Assert.That(balances.Length, Is.EqualTo(3)); Assert.That(balances[0], Is.EqualTo(1000)); Assert.That(balances[1], Is.EqualTo(500)); Assert.That(balances[2], Is.EqualTo(0)); }
public void next_early_payment_for_halfway_loan() { var now = new DateTime(2013, 01, 01); var type = new HalfWayLoanType(); var loan = new Loan() { LoanType = type, LoanAmount = 1000, Date = now }; var schedule = _calculator.Calculate(1000m, loan, now); Console.WriteLine(loan); var pc = new LoanRepaymentScheduleCalculator(loan, now, 0); var ep = pc.NextEarlyPayment(); Assert.That(ep, Is.EqualTo(500)); }
public void paying_late() { var now = Parse("2012-10-27 00:00:00.000"); var type = new HalfWayLoanType(); var loan = new Loan() { LoanType = type, LoanAmount = 1000, Date = now }; _calculator.Calculate(1000m, loan, now); Console.WriteLine(loan); MakePayment(loan, 658.71m, Parse("2013-01-16 14:35:25.000")); Assert.That(loan.Schedule[0].Status, Is.EqualTo(LoanScheduleStatus.Paid)); Assert.That(loan.Schedule[1].Status, Is.EqualTo(LoanScheduleStatus.Paid)); Assert.That(loan.Schedule[2].Status, Is.EqualTo(LoanScheduleStatus.StillToPay)); }
public void interest_only_payments_can_be_late() { var now = Parse("2012-10-27 00:00:00.000"); var type = new HalfWayLoanType(); var loan = new Loan() { LoanType = type, LoanAmount = 1000, Date = now }; _calculator.Calculate(1000m, loan, now); var pc = new LoanRepaymentScheduleCalculator(loan, Parse("2013-01-16 00:00:00.000"), 0); var ep = pc.NextEarlyPayment(); Console.WriteLine(loan); Assert.That(loan.Schedule[0].Status, Is.EqualTo(LoanScheduleStatus.Late)); Assert.That(loan.Schedule[1].Status, Is.EqualTo(LoanScheduleStatus.Late)); Assert.That(loan.Schedule[2].Status, Is.EqualTo(LoanScheduleStatus.StillToPay)); }
public void build_model_for_halfway_loan() { var now = new DateTime(2013, 01, 01); var type = new HalfWayLoanType(); var loan = new Loan() { LoanType = type, LoanAmount = 1000, Date = now }; var schedule = _calculator.Calculate(1000m, loan, now); Console.WriteLine(loan); var pc = new LoanRepaymentScheduleCalculator(loan, now, 0); var model = LoanModel.FromLoan(loan, pc); Console.WriteLine(loan); Assert.That(schedule[0].Interest, Is.EqualTo(60)); Assert.That(schedule[1].Interest, Is.EqualTo(60)); }