public void AddOneElementTest()
        {
            var List = new ChainList <int> {
                1
            };

            Assert.Equal(new int[] { 1 }, List);
        }
        public void InsertAtExceptionTest()
        {
            var List = new ChainList <int> {
                1, 2, 3
            };

            Assert.Throws <ArgumentOutOfRangeException>(() => List.InsertAt(4, 8));
        }
        public void AddOneElement4Test()
        {
            var List = new ChainList <int> {
                1, 2, 3, 4, 5
            };

            Assert.Equal(new int[] { 5, 4, 3, 2, 1 }, List.GetReverseEnumerator());
        }
        public void DeleteExceptionTest()
        {
            var List = new ChainList <int> {
                1, 2, 3, 4
            };

            List.Delete(10);
            Assert.Equal(new int[] { 1, 2, 3, 4 }, List);
        }
        public void InsertAtTest()
        {
            var List = new ChainList <int> {
                1, 2, 3
            };

            List.InsertAt(0, 8);

            Assert.Equal(new int[] { 1, 8, 2, 3 }, List);
        }
        public void AddFirstTest()
        {
            var List = new ChainList <int> {
                1, 2, 3
            };

            List.AddFirst(8);

            Assert.Equal(new int[] { 8, 1, 2, 3 }, List);
        }
        public void FindFromEndTest()
        {
            var List = new ChainList <int> {
                1, 2, 3, 4
            };

            Node <int> result   = new Node <int>(2);
            Node <int> expected = List.FindFromEnd(2);

            Assert.Equal(result.Value, expected.Value);
        }