public void ReturnKthToLastTest(int k, int expected) { var testList = new LinkedList(new int[] { 1, 2, 3, 2, 1, 4, 5, 6, 5, 4, 3, 2, 1, 10, 1 }); int result = Question_2_2.ReturnKthToLast(testList, k); Assert.AreEqual(expected, result, $"{k}th element {expected} is expected but got {result}."); result = Question_2_2.ReturnKthToLastRecursive(testList, k); Assert.AreEqual(expected, result, $"{k}th element {expected} is expected but got {result} - recursive."); result = Question_2_2.ReturnKthToLastOnePass(testList, k); Assert.AreEqual(expected, result, $"{k}th element {expected} is expected but got {result} - one pass."); }
public void ReturnKthToLastRecursiveTest_InvalidCases() { try { int k = 2; Question_2_2.ReturnKthToLastRecursive(new LinkedList(new int[] { 1 }), k); Assert.Fail($"ArgumentOutOfRangeException was not thrown for invalid k={k}."); } catch (ArgumentOutOfRangeException) { } try { int k = -1; Question_2_2.ReturnKthToLastRecursive(new LinkedList(new int[] { 1 }), k); Assert.Fail($"ArgumentOutOfRangeException was not thrown for invalid k={k}."); } catch (ArgumentOutOfRangeException) { } }