public void CalculateXIRRShouldReturnNoValueForBadDoubleNegativeCashflows() { var service = new InterestRateCalculatorService(); var irr = service.CalculateXIRR(_badDoubleNegative, Tolerance, MaxIters); irr.Kind.Should().Be(ApproximateResultKind.NoSolutionWithinTolerance); }
public void CalculateXIRRShouldReturnNoValueForSameDayButDifferentCashflows() { var service = new InterestRateCalculatorService(); var irr = service.CalculateXIRR(_samedaydifferentcfs, Tolerance, MaxIters); irr.Kind.Should().Be(ApproximateResultKind.NoSolutionWithinTolerance); }
public void CalculateXNPVShouldCalculateCorrectWithSmallAndBigCashflows() { var service = new InterestRateCalculatorService(); service.CalculateXNPV(_cfs, R).Should().Be(2086.6476020315416570634272814m); service.CalculateXNPV(_negcfs, 0.5).Should().Be(-10.148147600710372651326920258m); service.CalculateXNPV(_bigcfs, 0.3).Should().Be(4.9923725815954514810351876895m); }
public void CalculateXIRRShouldReturnCorrectValueForDoubleNegativeCashflows() { var service = new InterestRateCalculatorService(); var irr = service.CalculateXIRR(_doubleNegative, Tolerance, MaxIters); irr.Value.Should().BeApproximately(-0.537055, 0.001); irr.Kind.Should().Be(ApproximateResultKind.ApproximateSolution); }
public void CalculateXIRRShouldReturnCorrectValueForBigRateCashflows() { var service = new InterestRateCalculatorService(); var irr = service.CalculateXIRR(_bigratecfs, Tolerance, MaxIters); irr.Value.Should().BeApproximately(4.40140, 0.001); irr.Kind.Should().Be(ApproximateResultKind.ApproximateSolution); }
public void FindBracketsShouldFindBracketWithSmallAndBigCashflows() { var service = new InterestRateCalculatorService(); var brackets = service.FindBrackets(service.CalculateXNPV, _cfs); brackets.First.Should().BeLessThan(0.3733); brackets.Second.Should().BeGreaterThan(0.3733); brackets = service.FindBrackets(service.CalculateXNPV, _bigcfs); brackets.First.Should().BeLessThan(0.5196); brackets.Second.Should().BeGreaterThan(0.5196); brackets = service.FindBrackets(service.CalculateXNPV, _negcfs); brackets.First.Should().BeLessThan(-0.6059); brackets.Second.Should().BeGreaterThan(-0.6059); }