/// <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); }
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); }
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)); } }
public FibonacciBase() { Result = new FibonacciResult(); }