Exemple #1
0
        /// <summary>
        /// Gets the nth element in the Fibonacci sequence.
        /// </summary>
        /// <param name="element">The index of the element to get the value from.</param>
        /// <returns>The value of the nth element in the Fibonacci sequence.</returns>
        public FibonacciResult Calculate(int element)
        {
            var value  = _calculator.Fibonacci(element);
            var result = new FibonacciResult();

            result.Element = element;
            result.Value   = value;
            return(result);
        }
        public void FibonacciResultAddMethodAdds10ConsecutiveNumbers()
        {
            var expectedResult = "0 1 2 3 4 5 6 7 8 9";
            var fibonacciResult = new FibonacciResult();

            for (uint i = 0; i < 10; i++)
            {
                fibonacciResult.Add(i);
            }

            Assert.AreEqual(expectedResult, fibonacciResult.Get, false);
        }
Exemple #3
0
        public void Length_IntMaxValue_BadRequestAndArgumentException()
        {
            // Arrange
            _mockService
            .Setup(s => s.GetFibonacciSequenceWithLength(int.MaxValue))
            .Throws(new ArgumentException());

            // Act
            var response = _controller.Length(int.MaxValue);

            // Assert
            BadRequestObjectResult badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(response.Result);

            Assert.Equal(400, badRequestObjectResult.StatusCode);

            FibonacciResult result = Assert.IsType <FibonacciResult>(badRequestObjectResult.Value);

            Assert.True(result.HasError);
        }
Exemple #4
0
        public void Length_Nothing_OkAndData()
        {
            // Arrange
            _mockService
            .Setup(s => s.GetFibonacciSequenceWithLength(10))
            .Returns(new int[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 });

            // Act
            var response = _controller.Length();

            // Assert
            OkObjectResult okObjectResult = Assert.IsType <OkObjectResult>(response.Result);

            Assert.Equal(200, okObjectResult.StatusCode);

            FibonacciResult result = Assert.IsType <FibonacciResult>(okObjectResult.Value);

            Assert.False(result.HasError);
        }
        public static FibonacciResult GetNumbers(int iterations)
        {
            var result = new FibonacciResult();
            if (!(iterations > 0)) return result;

            ulong previousNumber = 0;
            result.AddNumber(previousNumber);
            ulong nextNumber = 1;
            var counter = 1;

            while (counter < iterations)
            {
                result.AddNumber(nextNumber);
                var currentNumber = nextNumber;
                nextNumber += previousNumber;
                previousNumber = currentNumber;
                counter += 1;
            }
            return result;
        }
        public ActionResult <FibonacciResult> Length(int length = 10)
        {
            FibonacciResult fibonacciResult;

            try
            {
                fibonacciResult = new FibonacciResult(_service.GetFibonacciSequenceWithLength(length));
                _log.Create(new Log(ALGORITHM_NAME_LENGTH, length, fibonacciResult));
                return(Ok(fibonacciResult));
            }
            catch (ArgumentException ex)
            {
                fibonacciResult = new FibonacciResult(ex.Message);
                _log.Create(new Log(ALGORITHM_NAME_LENGTH, length, fibonacciResult));
                return(BadRequest(fibonacciResult));
            }
            catch (Exception ex)
            {
                fibonacciResult = new FibonacciResult(ex.Message);
                _log.Create(new Log(ALGORITHM_NAME_LENGTH, length, fibonacciResult));
                return(StatusCode(500, fibonacciResult));
            }
        }
        public ActionResult <FibonacciResult> Until(int limit = 100)
        {
            FibonacciResult fibonacciResult;

            try
            {
                fibonacciResult = new FibonacciResult(_service.GetFibonacciSequenceUntil(limit));
                _log.Create(new Log(ALGORITHM_NAME_UNTIL, limit, fibonacciResult));
                return(Ok(fibonacciResult));
            }
            catch (ArgumentException ex)
            {
                fibonacciResult = new FibonacciResult(ex.Message);
                _log.Create(new Log(ALGORITHM_NAME_UNTIL, limit, fibonacciResult));
                return(BadRequest(fibonacciResult));
            }
            catch (Exception ex)
            {
                fibonacciResult = new FibonacciResult(ex.Message);
                _log.Create(new Log(ALGORITHM_NAME_UNTIL, limit, fibonacciResult));
                return(StatusCode(500, fibonacciResult));
            }
        }
Exemple #8
0
 public FibonacciBase()
 {
     Result = new FibonacciResult();
 }