public void ReturnsFalseWhenThereAreNoCycles() { var linkedListManager = new SinglyLinkedListManager <int>(); var headNode = linkedListManager.Create(new[] { 3, 2, 0, -4 }); const bool expectedResult = false; TestImplementations(headNode, expectedResult); }
public void ReturnsFalseForASingleNodeLinkedList() { var linkedListManager = new SinglyLinkedListManager <int>(); var headNode = linkedListManager.Create(new[] { 1 }); const bool expectedResult = false; TestImplementations(headNode, expectedResult); }
public void ReturnsTrueWhenThereIsACycle() { var linkedListManager = new SinglyLinkedListManager <int>(); var headNode = linkedListManager.Create(new[] { 3, 2, 0, -4 }); linkedListManager["-4"].Next = linkedListManager["2"]; const bool expectedResult = true; TestImplementations(headNode, expectedResult); }
private void TestImplementations(IReadOnlyCollection <int> inputData, int n, IReadOnlyCollection <int> expectedResultData) { foreach (var implementation in ImplementationsToTest()) { var headNode = new SinglyLinkedListManager <int>().Create(inputData); var reducedListHeadNode = (Node <int>)implementation.Invoke(null, new object[] { headNode, n }); var actualResultData = SinglyLinkedListManager <int> .GetData(reducedListHeadNode); actualResultData.ShouldBe(expectedResultData); } }