public void Constructor(int[] data)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>(data);

            Assert.AreEqual(data.Length, ll.Count);
            for (int i = 0; i < data.Length; i++)
            {
                Assert.AreEqual(data[i], ll[i]);
            }
        }
        public void InsertAt_Exception(int[] data, int number, int position)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            ll.InsertAt(number, position);
        }
        public void Indexer_Exception(int[] data, int idx)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            var actual = ll[idx];
        }
        public void Delete_Exception(int[] data, int toDelete)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            ll.Delete(toDelete);
        }
        public void IndexOf_Exception(int[] data, int number, int start)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            var actual = ll.IndexOf(start, number);
        }
        public void IndexOf(int[] data, int number, int start, int expected)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            var actual = ll.IndexOf(start, number);

            Assert.AreEqual(actual, expected);
        }
        public void Indexer(int[] data, int idx)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            var actual = ll[idx];

            Assert.AreEqual(data[idx], actual);
        }
        public void Add(int[] data)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            Assert.AreEqual(data.Length, ll.Count);
            for (int i = 0; i < data.Length; i++)
            {
                Assert.AreEqual(data[i], ll[i]);
            }
        }
        public void InsertAt(int[] data, int number, int position, int[] expected)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            ll.InsertAt(number, position);

            Assert.AreEqual(expected.Length, ll.Count);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], ll[i]);
            }
        }
        public void Delete(int[] data, int toDelete, int[] expected)
        {
            var ll = new CrackingTheCodingInterview.DataStructures.LinkedLists.LinkedList <int>();

            foreach (var item in data)
            {
                ll.Add(item);
            }

            ll.Delete(toDelete);

            Assert.AreEqual(expected.Length, ll.Count);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], ll[i]);
            }
        }