public void Sort_Comparison_WithoutDuplicates(int count) { PooledList <T> list = GenericListFactory(count); IComparer <T> iComparer = GetIComparer(); int comparer(T first, T second) { return(iComparer.Compare(first, second)); } list.Sort(comparer); Assert.All(Enumerable.Range(0, count - 2), i => { Assert.True(iComparer.Compare(list[i], list[i + 1]) < 0); }); }
public void BinarySearch_ForEveryItemWithDuplicates(int count) { if (count > 0) { PooledList <T> list = GenericListFactory(count); list.Add(list[0]); list.Sort(); PooledList <T> beforeList = list.ToPooledList(); Assert.All(Enumerable.Range(0, list.Count), index => { Assert.True(list.BinarySearch(beforeList[index]) >= 0); Assert.True(list.BinarySearch(beforeList[index], GetIComparer()) >= 0); Assert.Equal(beforeList[index], list[index]); }); list.Dispose(); } }
public void Sort_intintIComparer_WithoutDuplicates(int count) { PooledList <T> unsortedList = GenericListFactory(count); IComparer <T> comparer = GetIComparer(); for (int startIndex = 0; startIndex < count - 2; startIndex++) { for (int sortCount = 1; sortCount < count - startIndex; sortCount++) { using (var list = new PooledList <T>(unsortedList)) { list.Sort(startIndex, sortCount + 1, comparer); for (int i = startIndex; i < sortCount; i++) { Assert.InRange(comparer.Compare(list[i], list[i + 1]), int.MinValue, 0); } } } } unsortedList.Dispose(); }
public void BinarySearch_ForEveryItemWithoutDuplicates(int count) { PooledList <T> list = GenericListFactory(count); foreach (T item in list) { while (list.Count((value) => value.Equals(item)) > 1) { list.Remove(item); } } list.Sort(); PooledList <T> beforeList = list.ToPooledList(); Assert.All(Enumerable.Range(0, list.Count), index => { Assert.Equal(index, list.BinarySearch(beforeList[index])); Assert.Equal(index, list.BinarySearch(beforeList[index], GetIComparer())); Assert.Equal(beforeList[index], list[index]); }); list.Dispose(); }