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."); }