public void FunctionalLifeSpanTest_ShouldProduceDesiredResults()
        {
            // Arrange.
            var firstTerm   = 3d;
            var commonRatio = 2d;

            // Act.
            var target = new GeometricSequence(firstTerm, commonRatio);

            // Assert.
            target.CalculatedTermCount.Should().Be(1);
            target[0].Should().Be(firstTerm);
            target[1].Should().Be(6);
            target[2].Should().Be(12);
            target[3].Should().Be(24);
            target[4].Should().Be(48);
            target.CalculatedTermCount.Should().Be(5);
            target[5].Should().Be(96);
            target[6].Should().Be(192);
            target[7].Should().Be(384);
            target[8].Should().Be(768);
            target[9].Should().Be(1536);
            target.CalculatedTermCount.Should().Be(10);
            target.Reset();
            target.CalculatedTermCount.Should().Be(1);
            target[0].Should().Be(firstTerm);
            target[1].Should().Be(6);
            target[2].Should().Be(12);
        }
        public void Constructor_ShouldRaiseArgumentOutOfRangeException_ForZeroCommonRatioArgument()
        {
            // Arrange.
            var firstTerm   = 3d;
            var commonRatio = 0d;

            // Act.
            var action = new Action(() =>
            {
                var target = new GeometricSequence(firstTerm, commonRatio);
            });

            // Assert.
            action.Should().Throw <ArgumentOutOfRangeException>();
        }
Example #3
0
        public void GeometricSequence()
        {
            var g1 = new GeometricSequence
            {
                InitialTerm = 2,
                CommonRatio = 3
            };

            Assert.AreEqual(486, g1.NTerm(5));

            var g2 = new GeometricSequence
            {
                InitialTerm = 2,
                CommonRatio = 0.5
            };

            Assert.AreEqual(4, g2.InfiniteSum());
        }