public void CountPossibleWaysTest(int nStairs, long expectedWays) { // Act var time1 = DateTime.Now; long resultRecursion = Question_8_1.CountPossibleWaysRecursion(nStairs); var time2 = DateTime.Now; long resultMemoization = Question_8_1.CountPossibleWaysMemoization(nStairs); 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."); }
private static void Validate(int expected, int numberOfSteps) { var result = Question_8_1.NumberOfWays(numberOfSteps); Assert.AreEqual(expected, result); }
public void Question_8_1_InvalidCases() { TestHelpers.AssertExceptionThrown(() => Question_8_1.NumberOfWays(-1), typeof(ArgumentOutOfRangeException)); }