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]); }
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); }
public void Test_InsertionSorter_ShouldThrowExceptionWhenCollectionIsNull() { var sorter = new InsertionSorter<int>(); var emptyCollection = new SortableCollection<int>(null); emptyCollection.Sort(sorter); }
public void ShiftTest() { int[] mass = new[] { 1, 2, 3 }; InsertionSorter.Shift(mass, 2, 0); Assert.IsTrue(Enumerable.SequenceEqual(mass, new[] { 1, 1, 2 })); }
public void ExceptionNullComparer1() { var sorter = new InsertionSorter <int>(); sorter.Sort(new List <int>(), (IComparer <int>)null); }
public void ExceptionNullList3() { var sorter = new InsertionSorter <int>(); sorter.Sort(null, SortOrder.Ascending); }
public void ExceptionNullList2() { var sorter = new InsertionSorter <int>(); sorter.Sort(null, Comparer <int> .Default); }
public void ExceptionNullList1() { var sorter = new InsertionSorter <int>(); sorter.Sort(null); }
public void Simple() { var sorter = new InsertionSorter <int>(); TestSorter(sorter); }
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); }