public void SortDescending() { var values = RandomHelper.CreateData(100000).ToArray(); var actual = TimeHelper.Measure(() => PQ1 <int> .Create(values, true)); var a = new int[values.Length]; TimeHelper.Measure(() => { for (var i = 0; i < a.Length; i++, actual.Pop()) { a[i] = actual.First; } }); var e = TimeHelper.Measure(() => values.OrderByDescending(x => x).ToArray()); CollectionAssert.AreEqual(e, a); }
public void SortDescending_String() { var values = RandomHelper.CreateData(100000).ToArray(); var actual = TimeHelper.Measure(() => PQ1 <int> .Create(x => x.ToString(), values, true)); var a = new List <int>(); TimeHelper.Measure(() => { while (actual.Any) { a.Add(actual.Pop()); } }); var e = TimeHelper.Measure(() => values.OrderByDescending(x => x.ToString()).ToArray()); CollectionAssert.AreEqual(e, a); }
public void Sort() { var values = RandomHelper.CreateData(100000).ToArray(); var actual = TimeHelper.Measure(() => PQ1 <int> .Create(values)); var a = new int[values.Length]; TimeHelper.Measure(() => { for (var i = 0; i < a.Length; i++) { a[i] = actual.Pop(); } }); var e = (int[])values.Clone(); TimeHelper.Measure(() => Array.Sort(e)); CollectionAssert.AreEqual(e, a); }
public void SortTake() { var values = RandomHelper.CreateData(100000).ToArray(); var actual = TimeHelper.Measure(() => { var pq = PQ1 <int> .Create(values); var a = new int[100]; for (var i = 0; i < a.Length; i++) { a[i] = pq.Pop(); } return(a); }); var expected = TimeHelper.Measure(() => values.OrderBy(x => x).Take(100).ToArray()); CollectionAssert.AreEqual(expected, actual); }