Beispiel #1
0
        public void ReturnsFalseWhenThereAreNoCycles()
        {
            var        linkedListManager = new SinglyLinkedListManager <int>();
            var        headNode          = linkedListManager.Create(new[] { 3, 2, 0, -4 });
            const bool expectedResult    = false;

            TestImplementations(headNode, expectedResult);
        }
Beispiel #2
0
        public void ReturnsFalseForASingleNodeLinkedList()
        {
            var        linkedListManager = new SinglyLinkedListManager <int>();
            var        headNode          = linkedListManager.Create(new[] { 1 });
            const bool expectedResult    = false;

            TestImplementations(headNode, expectedResult);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
            }
        }