public static FibonacciGenerator BuildGenerator(Type dictType) { var generator = new FibonacciGenerator(); switch (dictType) { case Type.Sorted: generator._cache = new SortedDictionary <int, BigInteger>(); break; case Type.Hash: generator._cache = new Dictionary <int, BigInteger>(); break; case Type.ConcurrentHash: generator._cache = new ConcurrentDictionary <int, BigInteger>(); break; } return(generator); }
public void Iteration() { Assert.AreEqual(Result, FibonacciGenerator.FibonacciNumber(N)); }
public void HashConcurrent() { var gen = FibonacciGenerator.BuildGenerator(Type.ConcurrentHash); Assert.AreEqual(Result, gen.FibFromCache(N)); }
public void Sorted() { var gen = FibonacciGenerator.BuildGenerator(Type.Sorted); Assert.AreEqual(Result, gen.FibFromCache(N)); }
public void Recursive() { Assert.AreEqual(Result, (BigInteger)FibonacciGenerator.Fib(N)); }