public void When_The_Start_Less_Than_Zero() { var instance = new FibonacciSequenceCalculator(); var result = instance.Evaluate(-1, 10); result.ToArray(); Assert.Fail("Should have exceptioned..."); }
public void canProduceCorrectFibonacciNthNumber() { Tuple <int, BigInteger>[] correctNthFibonacciNumbers = { Tuple.Create(1, (BigInteger)1), Tuple.Create(2, (BigInteger)1), Tuple.Create(3, (BigInteger)2), Tuple.Create(4, (BigInteger)3), Tuple.Create(5, (BigInteger)5), Tuple.Create(6, (BigInteger)8), Tuple.Create(7, (BigInteger)13), Tuple.Create(8, (BigInteger)21), Tuple.Create(9, (BigInteger)34), Tuple.Create(10, (BigInteger)55), Tuple.Create(99, BigInteger.Parse("218922995834555169026")), Tuple.Create(100, BigInteger.Parse("354224848179261915075")), }; var calculator = new FibonacciSequenceCalculator(); foreach (var nPair in correctNthFibonacciNumbers) { var result = calculator.CalculateNthNumber(nPair.Item1); Assert.AreEqual(nPair.Item2, result); } }
public void canHandleInvalidInput() { int[] sampleInvalidInputData = { int.MinValue, -1, 0, 101, int.MaxValue }; var calculator = new FibonacciSequenceCalculator(); foreach (var n in sampleInvalidInputData) { var result = calculator.CalculateNthNumber(n); Assert.AreEqual(-1, result); } }
public void When_A_Simple_Small_Range_Is_Selected() { var instance = new FibonacciSequenceCalculator(); var result = instance.Evaluate(0, 11); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); Assert.AreEqual("0", result.First()); Assert.AreEqual("8", result.Last()); Assert.AreEqual(7, result.Count()); Assert.AreEqual("0, 1, 1, 2, 3, 5, 8", String.Join(", ", result.ToArray())); }
public void Then_The_Fibonacci_Values_Before_The_Start_Are_Skipped() { var instance = new FibonacciSequenceCalculator(); var result = instance.Evaluate(10, 10000); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); Assert.AreEqual("13", result.First()); Assert.AreEqual("6765", result.Last()); // https://www.mathsisfun.com/numbers/fibonacci-sequence.html Assert.AreEqual("13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765", String.Join(", ", result.ToArray())); }
public void When_A_Larger_Range_Is_Selected() { var instance = new FibonacciSequenceCalculator(); var result = instance.Evaluate(0, 10000); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); Assert.AreEqual("0", result.First()); Assert.AreEqual("6765", result.Last()); // https://www.mathsisfun.com/numbers/fibonacci-sequence.html Assert.AreEqual("0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765", String.Join(", ", result.ToArray())); }