public void TestIfRealRepayCurveCorrectlyCalculate() { int forecastDays = 10; DateTime date = new DateTime(2006, 1, 1); List <KeyValuePair <DateTime, decimal> > cashToRepayByDay = new List <KeyValuePair <DateTime, decimal> > { new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 1), 100), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 2), 184), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 4), 3944), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 5), 5978), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 7), 6000), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 8), 6001), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 10), 6876) }; mockContractManagement.SetReturnValue("CalculateCashToRepayByDay", cashToRepayByDay); contractManagement = (LoanManager)mockContractManagement.MockInstance; this.graphServices = new GraphServices(contractManagement); double[] realPrevision = new double[forecastDays]; realPrevision = this.graphServices.CalculateRealRepayCurve(date, forecastDays); Assert.AreEqual(100, realPrevision[0]); Assert.AreEqual(284, realPrevision[1]); Assert.AreEqual(284, realPrevision[2]); Assert.AreEqual(4228, realPrevision[3]); Assert.AreEqual(10206, realPrevision[4]); Assert.AreEqual(10206, realPrevision[5]); Assert.AreEqual(16206, realPrevision[6]); Assert.AreEqual(22207, realPrevision[7]); Assert.AreEqual(22207, realPrevision[8]); Assert.AreEqual(29083, realPrevision[9]); }
public void TestIfRealDisbursmentCurveCorrectlyCalculate() { int forecastDays = 8; DateTime date = new DateTime(2006, 1, 1); List <KeyValuePair <DateTime, decimal> > list = new List <KeyValuePair <DateTime, decimal> > { new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 1), 100), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 2), 200), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 4), 400), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 6), 1233), new KeyValuePair <DateTime, decimal>(new DateTime(2006, 1, 9), 4876) }; mockContractManagement.SetReturnValue("CalculateCashToDisburseByDay", list); contractManagement = (LoanManager)mockContractManagement.MockInstance; this.graphServices = new GraphServices(contractManagement); double[] disbursmentState = new double[forecastDays]; disbursmentState = this.graphServices.CalculateRealDisbursmentCurve(date, forecastDays); Assert.AreEqual(100, disbursmentState[0]); Assert.AreEqual(300, disbursmentState[1]); Assert.AreEqual(300, disbursmentState[2]); Assert.AreEqual(700, disbursmentState[3]); Assert.AreEqual(700, disbursmentState[4]); Assert.AreEqual(1933, disbursmentState[5]); Assert.AreEqual(1933, disbursmentState[6]); Assert.AreEqual(1933, disbursmentState[7]); }