public void CanCalculateLinkedReturnsWithCumReturnsMonthToEnd() { var janSP500returns = sp500 .Where(r => r.EffectiveDate.Month == 1) .Select(r => r.TotalReturn) .ToList(); var cumReturns = FinCalcs.ReturnsToMonthEnd(janSP500returns); var longCalc = FinCalcs.LinkedReturns( periodReturns: janSP500returns, startPeriod: 0, endPeriod: janSP500returns.Count() - 1); var quickCalc = FinCalcs.LinkedReturns( returnToMonthEnd: cumReturns, startingPeriodReturn: janSP500returns.ElementAt(0), startPeriod: 0, endPeriod: janSP500returns.Count() - 1 ); Assert.AreEqual( Math.Round(longCalc, 6), Math.Round(quickCalc, 6)); }
public void CanCalculateLinkedReturnsFromList() { var janreturnRU1000 = FinCalcs.LinkedReturns( ru1000 .Where(r => r.EffectiveDate.Month == 1) .Select(r => r.TotalReturn) .ToList()); Assert.AreEqual(-0.000101m, Math.Round(janreturnRU1000, 6)); }
public void CanCalculatePartialMonthReturns() { var janreturnSP500 = FinCalcs.LinkedReturns( sp500 .Where( r => r.EffectiveDate.Month == 1 && r.EffectiveDate.Day >= 15 ) .Select(r => r.TotalReturn) .ToList()); Assert.AreEqual(-0.017554m, Math.Round(janreturnSP500, 6)); }