Beispiel #1
0
        public void CalculateXIRRShouldReturnNoValueForBadDoubleNegativeCashflows()
        {
            var service = new InterestRateCalculatorService();
            var irr     = service.CalculateXIRR(_badDoubleNegative, Tolerance, MaxIters);

            irr.Kind.Should().Be(ApproximateResultKind.NoSolutionWithinTolerance);
        }
Beispiel #2
0
        public void CalculateXIRRShouldReturnNoValueForSameDayButDifferentCashflows()
        {
            var service = new InterestRateCalculatorService();
            var irr     = service.CalculateXIRR(_samedaydifferentcfs, Tolerance, MaxIters);

            irr.Kind.Should().Be(ApproximateResultKind.NoSolutionWithinTolerance);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }