Exemplo n.º 1
0
        private void Validate(int expected, int amount, List <int> denominations)
        {
            var cache  = new Dictionary <Tuple <int, int>, int>();
            var result = Question_8_11.MakeChangeDynamic(amount, denominations, 0, cache);

            Assert.AreEqual(expected, result);
        }
        public void CountPossibleCombinationsTest(int nCents, long expectedWays)
        {
            // Act
            var  time1             = DateTime.Now;
            long resultRecursion   = Question_8_11.CountPossibleCombinationsRecursion(nCents);
            var  time2             = DateTime.Now;
            long resultMemoization = Question_8_11.CountPossibleCombinationsMemoization(nCents);
            var  time3             = DateTime.Now;

            Console.WriteLine($"Recursion method took {time2.Subtract(time1).TotalMilliseconds} ms.");
            Console.WriteLine($"Memoization method took {time3.Subtract(time2).TotalMilliseconds} ms.");

            // Assert
            Assert.AreEqual(expectedWays, resultRecursion, "CountPossibleWays test failed - Recursion.");
            Assert.AreEqual(expectedWays, resultMemoization, "CountPossibleWays test failed - Memoization.");
        }