Beispiel #1
0
        public void AdvisedLine()
        {
            DateTime start       = November(20, 2003);
            DateTime expiry      = November(20, 2010);
            Loan     advisedLine = Loan.NewAdvisedLine(LOAN_AMOUNT, start, expiry, LOW_RISK_RATING);

            Assert.AreEqual(7.0, advisedLine.Duration(), PENNY_PRECISION, "duration");
            Assert.AreEqual(15.75, advisedLine.Capital(), PENNY_PRECISION, "capital");
        }
Beispiel #2
0
        public void RevolverNoPayments()
        {
            DateTime start    = November(20, 2003);
            DateTime expiry   = November(20, 2010);
            Loan     revolver = Loan.NewRevolver(LOAN_AMOUNT, start, expiry, HIGH_RISK_RATING);

            Assert.AreEqual(7.0, revolver.Duration(), PENNY_PRECISION, "duration");
            Assert.AreEqual(609.00, revolver.Capital(), PENNY_PRECISION, "capital");
        }
Beispiel #3
0
        public void TestTermLoanSamePayments()
        {
            Date start    = new Date(2003, 11, 20);
            Date maturity = new Date(2006, 11, 20);
            Loan termLoan = Loan.NewTermLoan(3000, start, maturity, 1);

            termLoan.Payment(1000.00, new Date(2004, 11, 20));
            termLoan.Payment(1000.00, new Date(2005, 11, 20));
            termLoan.Payment(1000.00, new Date(2006, 11, 20));
            Assert.AreEqual(2.0, termLoan.Duration(), 0.01);
            Assert.AreEqual(210.00, termLoan.Capital(), 0.01);
        }
Beispiel #4
0
        public void TestRevolverSamePayments()
        {
            Date start       = new Date(2003, 11, 20);
            Date maturity    = new Date(2006, 11, 20);
            Loan advisedLine = Loan.NewRevolver(3000, start, maturity, 0);

            advisedLine.Payment(1000.00, new Date(2004, 11, 20));
            advisedLine.Payment(1000.00, new Date(2005, 11, 20));
            advisedLine.Payment(1000.00, new Date(2006, 11, 20));
            Assert.AreEqual(3.0, advisedLine.Duration(), 0.01);
            Assert.AreEqual(315, advisedLine.Capital(), 0.01);
        }
Beispiel #5
0
        public void TermLoanDifferentPayments()
        {
            DateTime start    = November(20, 2003);
            DateTime maturity = November(20, 2006);
            Loan     termLoan = Loan.NewTermLoan(LOAN_AMOUNT, start, maturity, HIGH_RISK_RATING);

            termLoan.payment(500.00, November(20, 2004));
            termLoan.payment(1500.00, November(20, 2005));
            termLoan.payment(1000.00, November(20, 2006));
            Assert.AreEqual(2.16, termLoan.Duration(), PENNY_PRECISION, "duration");
            Assert.AreEqual(227.50, termLoan.Capital(), PENNY_PRECISION, "capital");
        }
Beispiel #6
0
        public void test_advised_line_loan_same_payments()
        {
            DateTime start  = November(20, 2003);
            DateTime expiry = November(20, 2007);

            Loan advisedLineLoan = LoanBuilder.Create(LOAN_AMOUNT, start, expiry, LOW_RISK_TAKING, StrategyEnum.AvisedLine);

            advisedLineLoan.Payment(1000.00, November(20, 2004));
            advisedLineLoan.Payment(1000.00, November(20, 2005));
            advisedLineLoan.Payment(1000.00, November(20, 2006));

            Assert.Equal(40027, advisedLineLoan.Duration(), (int)TWO_DIGIT_PRECISION);
            Assert.Equal(1200810, advisedLineLoan.Capital(), (int)TWO_DIGIT_PRECISION);
        }
Beispiel #7
0
        public void test_revolver_loan_same_payments()
        {
            DateTime start  = November(20, 2003);
            DateTime expiry = November(20, 2007);

            Loan revolverLoan = LoanBuilder.Create(LOAN_AMOUNT, start, expiry, HIGH_RISK_TAKING, StrategyEnum.Revolver);

            revolverLoan.Payment(1000.00, November(20, 2004));
            revolverLoan.Payment(1000.00, November(20, 2005));
            revolverLoan.Payment(1000.00, November(20, 2006));

            Assert.Equal(40027, revolverLoan.Duration(), (int)TWO_DIGIT_PRECISION);
            Assert.Equal(4002700, revolverLoan.Capital(), (int)TWO_DIGIT_PRECISION);
        }
Beispiel #8
0
        public void test_term_loan_same_payments()
        {
            DateTime start    = November(20, 2003);
            DateTime maturity = November(20, 2006);

            Loan termLoan = LoanBuilder.Create(LOAN_AMOUNT, start, maturity, HIGH_RISK_TAKING, StrategyEnum.Term);

            termLoan.Payment(1000.00, November(20, 2004));
            termLoan.Payment(1000.00, November(20, 2005));
            termLoan.Payment(1000.00, November(20, 2006));

            Assert.Equal(20027, termLoan.Duration(), (int)TWO_DIGIT_PRECISION);
            Assert.Equal(6008100, termLoan.Capital(), (int)TWO_DIGIT_PRECISION);
        }
Beispiel #9
0
        public void test_revolver_loan_same_payments()
        {
            DateTime start  = November(20, 2003);
            DateTime expiry = November(20, 2007);

            Loan revolverLoan = Loan.NewRevolver(this.LOAN_AMOUNT, start, expiry, this.HIGH_RISK_TAKING);

            revolverLoan.Payment(1000.00, November(20, 2004));
            revolverLoan.Payment(1000.00, November(20, 2005));
            revolverLoan.Payment(1000.00, November(20, 2006));

            Assert.Multiple(() => {
                Assert.AreEqual(40027, revolverLoan.Duration(), this.TWO_DIGIT_PRECISION);
                Assert.AreEqual(4002700, revolverLoan.Capital(), this.TWO_DIGIT_PRECISION);
            });
        }
Beispiel #10
0
        public void test_term_loan_same_payments()
        {
            DateTime start    = November(20, 2003);
            DateTime maturity = November(20, 2006);

            Loan termLoan = Loan.NewTermLoan(this.LOAN_AMOUNT, start, maturity, this.HIGH_RISK_TAKING);

            termLoan.Payment(1000.00, November(20, 2004));
            termLoan.Payment(1000.00, November(20, 2005));
            termLoan.Payment(1000.00, November(20, 2006));

            Assert.Multiple(() => {
                Assert.AreEqual(20027, termLoan.Duration(), this.TWO_DIGIT_PRECISION);
                Assert.AreEqual(6008100, termLoan.Capital(), this.TWO_DIGIT_PRECISION);
            });
        }
Beispiel #11
0
        public void test_advised_line_loan_same_payments()
        {
            DateTime start    = November(20, 2003);
            DateTime maturity = November(20, 2006);
            DateTime expiry   = November(20, 2007);

            Loan advisedLineLoan = Loan.NewAdvisedLine(this.LOAN_AMOUNT, start, expiry, this.LOW_RISK_TAKING);

            advisedLineLoan.Payment(1000.00, November(20, 2004));
            advisedLineLoan.Payment(1000.00, November(20, 2005));
            advisedLineLoan.Payment(1000.00, November(20, 2006));

            Assert.Multiple(() => {
                Assert.AreEqual(40027, advisedLineLoan.Duration(), this.TWO_DIGIT_PRECISION);
                Assert.AreEqual(1200810, advisedLineLoan.Capital(), this.TWO_DIGIT_PRECISION);
            });
        }