示例#1
0
 public static Loan CreateTermLoan(decimal amount, DateTime start, DateTime maturity, Rating riskRating, IRiskFactor factors)
 {
     var loan = new Loan(null, maturity, amount, amount, factors, null);
     loan.riskRating = riskRating;
     loan.start = start;
     return loan;
 }
示例#2
0
        public void TermLoanSamePayments()
        {
            IRiskFactor riskFactors = MockRepository.GenerateMock <IRiskFactor>();

            riskFactors.Stub(x => x.GetFactorsForRating(Rating.Cranberry)).Return(.035m).IgnoreArguments();
            DateTime start    = new DateTime(2003, 11, 20);
            DateTime maturity = new DateTime(2006, 11, 20);
            var      testLoan = Loan.CreateTermLoan(3000, start, maturity, Rating.Cranberry, riskFactors);

            testLoan.Payments = new List <Payment>
            {
                new Payment {
                    Amount = 1000, Date = new DateTime(2004, 11, 20)
                },
                new Payment {
                    Amount = 1000, Date = new DateTime(2005, 11, 20)
                },
                new Payment {
                    Amount = 1000, Date = new DateTime(2006, 11, 20)
                },
            };
            var duration = decimal.Round(testLoan.Duration(), 2, MidpointRounding.AwayFromZero);
            var capital  = decimal.Round(testLoan.Capital(), 2, MidpointRounding.AwayFromZero);

            Assert.That(duration, Is.EqualTo(2));
            Assert.That(capital, Is.EqualTo(210.29));
        }
示例#3
0
 public Loan(DateTime? expiry, DateTime? maturity, decimal commitment, decimal outstanding,
     IRiskFactor riskFactors, IRiskFactor unusedRiskFactors)
 {
     this.expiry = expiry;
     this.maturity = maturity;
     this.commitment = commitment;
     this.outstanding = outstanding;
     this.riskFactors = riskFactors;
     this.unusedRiskFactors = unusedRiskFactors;
 }
示例#4
0
 public Loan(DateTime?expiry, DateTime?maturity, decimal commitment, decimal outstanding,
             IRiskFactor riskFactors, IRiskFactor unusedRiskFactors)
 {
     this.expiry            = expiry;
     this.maturity          = maturity;
     this.commitment        = commitment;
     this.outstanding       = outstanding;
     this.riskFactors       = riskFactors;
     this.unusedRiskFactors = unusedRiskFactors;
 }
示例#5
0
        public void NotTermLoanTest()
        {
            IRiskFactor riskFactors = MockRepository.GenerateMock <IRiskFactor>();

            riskFactors.Stub(x => x.GetFactorsForRating(Rating.Cranberry)).Return(.01m).IgnoreArguments();
            Loan testLoan = new Loan(DateTime.Today.AddYears(5), null, 1000, 100, riskFactors, null);
            var  capital  = decimal.Round(testLoan.Capital(), 2, MidpointRounding.AwayFromZero);

            Assert.That(capital, Is.EqualTo(45.02));
        }
示例#6
0
        public static Loan CreateTermLoan(decimal amount, DateTime start, DateTime maturity, Rating riskRating, IRiskFactor factors)
        {
            var loan = new Loan(null, maturity, amount, amount, factors, null);

            loan.riskRating = riskRating;
            loan.start      = start;
            return(loan);
        }