public void FibonacciSequenceWithLimitShouldReturnAnEmptySequenceWith0Limit()
        {
            // Arrange
            Ex3.FibonacciSequence fs = new Ex3.FibonacciSequence(0);

            // Act
            IEnumerator<int> fsEnum = fs.GetEnumerator();

            // Assert
            Assert.IsFalse(fsEnum.MoveNext());
        }
        public void FibonacciSequenceWithLimitShouldReturnFiniteAndCorrectValues()
        {
            const int LIMIT = 20;
            // Arrange
            Ex3.FibonacciSequence fs = new Ex3.FibonacciSequence(LIMIT);

            // Act
            IEnumerator<int> fsEnum = fs.GetEnumerator();

            // Assert
            Assert.AreEqual(LIMIT, CheckFibonacciValues(fsEnum, LIMIT));
        }
        public void FibonacciSequenceWithoutLimitShouldReturnInfiniteAndCorrectValues()
        {
            // Arrange
            Ex3.FibonacciSequence fs = new Ex3.FibonacciSequence();

            // Act
            IEnumerator<int> fsEnum = fs.GetEnumerator();

            // Assert
            // Infinite is a lot. Lets check the first 100. Should be enough.
            const int LIMIT = 100;
            Assert.AreEqual(LIMIT, CheckFibonacciValues(fsEnum, LIMIT));
        }