public void Sort(string sorterName, int n)
        {
            List <int> list = new List <int>();
            List <int> listCopy;
            Sorter     sorter;

            System.Random random = new System.Random();

            // Arrange
            if (sorterName == "InsertionSort")
            {
                sorter = DSBuilder.CreateInsertionSorter();
            }
            else if (sorterName == "MergeSort")
            {
                sorter = DSBuilder.CreateMergeSorter();
            }
            else if (sorterName == "ShellSort")
            {
                sorter = DSBuilder.CreateShellSorter();
            }
            else
            {
                sorter = null;
            }
            Assert.IsNotNull(sorter != null);

            // Arrange
            for (int i = 0; i < n; i++)
            {
                list.Add(random.Next(0, 100000));
            }
            listCopy = new List <int>(list);
            listCopy.Sort();

            // Act
            sorter.Sort(list);

            // Assert
            bool equal = list.SequenceEqual(listCopy);

            Assert.IsTrue(equal);
        }