public void RemoveElementInCustomLinkedList()
        {
            var item1 = new TestReferenceValue()
            {
                Name = "Test1"
            };
            var item2 = new TestReferenceValue()
            {
                Name = "Test2"
            };
            var item3 = new TestReferenceValue()
            {
                Name = "Test3"
            };
            CustomLinkedList <TestReferenceValue> list = new CustomLinkedList <TestReferenceValue>
            {
                item1,
                item2,
                item3
            };

            list.Remove(item2);

            int expectedCount = 2;
            TestReferenceValue expectedItem1 = item1;
            TestReferenceValue expectedItem2 = item3;

            Assert.AreEqual(expectedCount, list.Count);
            Assert.AreEqual(expectedItem1, list.First.Value);
            Assert.AreEqual(expectedItem2, list.First.NextNode.Value);
        }
        public void CopyOfCustomLinkedList()
        {
            var item1 = new TestReferenceValue()
            {
                Name = "Test1"
            };
            var item2 = new TestReferenceValue()
            {
                Name = "Test2"
            };

            CustomLinkedList <TestReferenceValue> list1 = new CustomLinkedList <TestReferenceValue>
            {
                item1,
                item2
            };

            CustomLinkedList <TestReferenceValue> list2 = new CustomLinkedList <TestReferenceValue>();

            foreach (var item in list1)
            {
                list2.Add(item);
            }

            list2.Remove(list2.First.Value);

            Assert.AreEqual(item1, list1.First.Value);

            foreach (var item in list1)
            {
                System.Console.WriteLine(item.Name);
            }
            foreach (var item in list2)
            {
                System.Console.WriteLine(item.Name);
            }
        }