Example #1
0
        public void DLLe_Insert_Element_Inside()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <int>();

            // Act
            list.AddFirst(0);
            list.InsertAt(1, 0);
            list.InsertAt(2, 1);

            // Assert
            var items = new List <int>();

            list.ForEach(items.Add);
            CollectionAssert.AreEqual(items, new List <int>()
            {
                1, 2, 0
            });
        }
Example #2
0
        public void DLLe_AddFirst_EmptyList_ShouldAddElement()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <int>();

            // Act
            list.AddFirst(5);

            // Assert
            Assert.AreEqual(1, list.Count);

            var items = new List <int>();

            list.ForEach(items.Add);
            CollectionAssert.AreEqual(items, new List <int>()
            {
                5
            });
        }
Example #3
0
        public void DLLe_AddFirst_SeveralElements_ShouldAddElementsCorrectly()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <int>();

            // Act
            list.AddFirst(10);
            list.AddFirst(5);
            list.AddFirst(3);

            // Assert
            Assert.AreEqual(3, list.Count);

            var items = new List <int>();

            list.ForEach(items.Add);
            CollectionAssert.AreEqual(items, new List <int>()
            {
                3, 5, 10
            });
        }
Example #4
0
        public void DLLe_ForEach_MultipleElements_ShouldEnumerateElementsCorrectly()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <string>();

            list.AddLast("Five");
            list.AddLast("Six");
            list.AddLast("Seven");

            // Act
            var items = new List <string>();

            list.ForEach(items.Add);

            // Assert
            CollectionAssert.AreEqual(items,
                                      new List <string>()
            {
                "Five", "Six", "Seven"
            });
        }
Example #5
0
        public void DLLe_RemoveLast_OneElement_ShouldMakeListEmpty()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <int>();

            list.AddFirst(5);

            // Act
            var element = list.RemoveLast();

            // Assert
            Assert.AreEqual(5, element);
            Assert.AreEqual(0, list.Count);

            var items = new List <int>();

            list.ForEach(items.Add);
            CollectionAssert.AreEqual(items, new List <int>()
            {
            });
        }
    public T this[int index]
    {
        get
        {
            if (index >= this.Count || index < 0)
            {
                throw new IndexOutOfRangeException();
            }

            int currentPosition = 0;
            DoublyLinkedListExpanded <T> .ListNode <T> currentNode = this.head;

            while (currentPosition < index)
            {
                currentNode = currentNode.NextNode;
                currentPosition++;
            }
            return(currentNode.Value);
        }

        set
        {
            if (index >= this.Count || index < 0)
            {
                throw new IndexOutOfRangeException();
            }

            int currentPosition = 0;
            DoublyLinkedListExpanded <T> .ListNode <T> currentNode = this.head;

            while (currentPosition < index)
            {
                currentNode = currentNode.NextNode;
                currentPosition++;
            }
            currentNode.Value = value;
        }
    }
Example #7
0
        public void DLLe_IEnumerable_NonGeneric_MultipleElements()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <object>();

            list.AddLast("Five");
            list.AddLast(6);
            list.AddLast(7.77);

            // Act
            var enumerator = ((IEnumerable)list).GetEnumerator();
            var items      = new List <object>();

            while (enumerator.MoveNext())
            {
                items.Add(enumerator.Current);
            }

            // Assert
            CollectionAssert.AreEqual(items, new List <object>()
            {
                "Five", 6, 7.77
            });
        }
Example #8
0
        public void DLLe_IEnumerable_Foreach_MultipleElements()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <string>();

            list.AddLast("Five");
            list.AddLast("Six");
            list.AddLast("Seven");

            // Act
            var items = new List <string>();

            foreach (var element in list)
            {
                items.Add(element);
            }

            // Assert
            CollectionAssert.AreEqual(items,
                                      new List <string>()
            {
                "Five", "Six", "Seven"
            });
        }
Example #9
0
        public void DLLe_RemoveLast_SeveralElements_ShouldRemoveElementsCorrectly()
        {
            // Arrange
            var list = new DoublyLinkedListExpanded <int>();

            list.AddFirst(10);
            list.AddFirst(9);
            list.AddFirst(8);

            // Act
            var element = list.RemoveLast();

            // Assert
            Assert.AreEqual(10, element);
            Assert.AreEqual(2, list.Count);

            var items = new List <int>();

            list.ForEach(items.Add);
            CollectionAssert.AreEqual(items, new List <int>()
            {
                8, 9
            });
        }