public void TestEmptyList()
 {
     var insertionSorter = new InsertionSorter();
     var list = new List<int> { };
     insertionSorter.Sort(list);
     Assert.AreEqual(0, list.Count);
 }
 public void TestProperList()
 {
     var insertionSorter = new InsertionSorter();
     var list = new List<int> { 3, 2, 1, 9, 7 };
     insertionSorter.Sort(list);
     Assert.AreEqual(5, list.Count);
     Assert.IsTrue(list.SequenceEqual(new List<int> { 1, 2, 3, 7, 9 }));
 }
        public void InsertionSorter_Sort(int[] elements)
        {
            var insertionSorter = new InsertionSorter();
            var sortedElements = insertionSorter.Sort(elements);

            for (int i = 1; i < sortedElements.Length-1; i++)
            {
                Assert.IsTrue(sortedElements[i] > sortedElements[i-1]);
            }
        }
        public void SortExample()
        {
            var sorter = new InsertionSorter<int>();

            var list = new List<int> {13, 5, 77, 9, 12};

            sorter.Sort(list, Comparer<int>.Default);

            Assert.AreEqual(5, list[0]);
            Assert.AreEqual(9, list[1]);
            Assert.AreEqual(12, list[2]);
            Assert.AreEqual(13, list[3]);
            Assert.AreEqual(77, list[4]);
        }
Beispiel #5
0
        public void Test_InsertionSorter_ShouldSortCorrectly()
        {
            var insertionSorter = new InsertionSorter<int>();
            collection.Sort(insertionSorter);

            bool isSortedCorrectly = true;
            for (int i = 0; i < collection.Items.Count - 1; i++)
            {
                if (collection.Items[i].CompareTo(collection.Items[i + 1]) > 0)
                {
                    isSortedCorrectly = false;
                    break;
                }
            }

            Assert.IsTrue(isSortedCorrectly, "InsertionSorter should sort correctly.");
        }
        public void TestWithRepeatingItemShouldReturnFirstDiscoveredIndex()
        {
            var collection = new SortableCollection<int>(0, 3, 3, 3, 3, 7, 7, 7, 7, 7, 7);
            var sorter = new InsertionSorter<int>();
            collection.Sort(sorter);
            var sortedArray = collection.ToArray(); 
            var result = collection.InterpolationSearch(sortedArray, 3);

            Assert.AreEqual(4, result);
        }
Beispiel #7
0
 public void Test_InsertionSorter_ShouldThrowExceptionWhenCollectionIsNull()
 {
     var sorter = new InsertionSorter<int>();
     var emptyCollection = new SortableCollection<int>(null);
     emptyCollection.Sort(sorter);
 }
Beispiel #8
0
 public void ShiftTest()
 {
     int[] mass = new[] { 1, 2, 3 };
     InsertionSorter.Shift(mass, 2, 0);
     Assert.IsTrue(Enumerable.SequenceEqual(mass, new[] { 1, 1, 2 }));
 }
Beispiel #9
0
            public void ExceptionNullComparer1()
            {
                var sorter = new InsertionSorter <int>();

                sorter.Sort(new List <int>(), (IComparer <int>)null);
            }
Beispiel #10
0
            public void ExceptionNullList3()
            {
                var sorter = new InsertionSorter <int>();

                sorter.Sort(null, SortOrder.Ascending);
            }
Beispiel #11
0
            public void ExceptionNullList2()
            {
                var sorter = new InsertionSorter <int>();

                sorter.Sort(null, Comparer <int> .Default);
            }
Beispiel #12
0
            public void ExceptionNullList1()
            {
                var sorter = new InsertionSorter <int>();

                sorter.Sort(null);
            }
Beispiel #13
0
            public void Simple()
            {
                var sorter = new InsertionSorter <int>();

                TestSorter(sorter);
            }
Beispiel #14
0
        static void SortDemo()
        {
            // seven custom algorithms;
            // for each algorithm prepare copies of the same array to sort
            Random rd = new Random();

            int[] z1 = new int[50000];
            for (int i = 0; i < z1.Length; i++)
            {
                z1[i] = rd.Next(0, z1.Length);
            }

            int[] z2 = new int[z1.Length];
            z1.CopyTo(z2, 0);

            int[] z3 = new int[z1.Length];
            z1.CopyTo(z3, 0);

            int[] z4 = new int[z1.Length];
            z1.CopyTo(z4, 0);

            int[] z5 = new int[z1.Length];
            z1.CopyTo(z5, 0);

            int[] z6 = new int[z1.Length];
            z1.CopyTo(z6, 0);

            int[] z7 = new int[z1.Length];
            z1.CopyTo(z7, 0);
            // ----------------------------------------------------------

            Console.WriteLine("Selection Sort:");

            ISorter <int> sorter = new SelectionSorter();

            DateTime dt1 = DateTime.Now;

            sorter.Sort(z1, 0, z1.Length - 1);
            DateTime dt2 = DateTime.Now;

            Console.WriteLine("Time: {0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z1.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Bubble sort");

            sorter = new BubbleSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z2, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z2.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Insertion sort");

            sorter = new InsertionSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z3, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z3.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Shaker sort");

            sorter = new ShakerSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z4, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z4.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Shell sort");

            sorter = new ShellSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z5, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z5.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Counting sort");

            sorter = new CountingSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z6, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z6.Take(20))
            {
                Console.Write(elem + " ");
            }


            Console.WriteLine();
            Console.WriteLine("Quicksort");

            sorter = new QuickSorter();

            dt1 = DateTime.Now;
            sorter.Sort(z7, 0, z1.Length - 1);
            dt2 = DateTime.Now;
            Console.WriteLine("{0}:{1}", (dt2 - dt1).Seconds, (dt2 - dt1).Milliseconds);

            Console.WriteLine("First 20 elements:");
            foreach (int elem in z7.Take(20))
            {
                Console.Write(elem + " ");
            }

            Console.WriteLine();

            Console.ReadKey();
            Console.Clear();
        }
 public void TestNullList()
 {
     var insertionSorter = new InsertionSorter();
     insertionSorter.Sort<int>(null);
 }