Ejemplo n.º 1
0
        public FibonacciWithCaching(IBigIntegerCache cache, IFibonacciGenerator generator)
        {
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }

            if (generator == null)
            {
                throw new ArgumentNullException(nameof(generator));
            }

            _cache     = cache;
            _generator = generator;
        }
Ejemplo n.º 2
0
        public void SetUp()
        {
            _argumentValidator = MockRepository.GenerateStub<IArgumentValidator>();

            _fibonacciGenerator = new FibonacciGenerator.FibonacciGenerator(_argumentValidator);
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            var defaultInput = 30;
            var sw           = new Stopwatch();
            IFibonacciGenerator generator = null;

            while (true)
            {
                PrintMenu(defaultInput);
                var input = Console.ReadLine().Split(' ');

                switch (input[0])
                {
                case "n":
                    if (input.Length == 1 || !Int32.TryParse(input[1], out defaultInput))
                    {
                        Console.WriteLine("Syntax Error: to set n to 30 please use the following example");
                        Console.WriteLine("n 30");
                        break;
                    }

                    if (defaultInput < 0)
                    {
                        Console.WriteLine("Please enter only positive n");
                        defaultInput = 1;
                    }

                    break;

                case "exit":
                case "q":
                    return;

                default:
                    generator = GetGenerator(input[0]);
                    break;
                }

                if (generator != null)
                {
                    sw.Reset();
                    sw.Start();
                    var result = 0UL;
                    try
                    {
                        result = generator.Fibonacci(defaultInput);
                    }
                    catch (OverflowException)
                    {
                        continue;
                    }
                    finally
                    {
                        generator = null;
                    }

                    sw.Stop();
                    Console.WriteLine($"Fibonacci({defaultInput}) = {result:N0}");
                    Console.WriteLine($"Time spend = {sw.ElapsedMilliseconds:N0} ms");
                }
                else
                {
                    Console.WriteLine("Invalid Input");
                }
            }
        }
Ejemplo n.º 4
0
 public CachedFibonacciGenerator(IFibonacciGenerator generator, ICache cache)
 {
     _generator = generator;
     _cache     = cache;
 }
Ejemplo n.º 5
0
 private static void NthValue(IFibonacciGenerator fib, int range)
 {
     fib.NthNumber(range);
 }
Ejemplo n.º 6
0
 private static void DisplayAllValues(IFibonacciGenerator fib, int range)
 {
     fib.FibFrom(range);
 }
 public MathController(IFibonacciGenerator fibonacciGenerator)
 {
     this.FibonacciGenerator = fibonacciGenerator;
 }
 public FibonacciController(ILogger <FibonacciController> logger, IFibonacciGenerator fibonacci)
 {
     _logger    = logger;
     _fibonacci = fibonacci;
 }