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 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()));
        }