public void SortsLargeDescendingEnumerableCorrectly(int thenBys) { const int Items = 100_000; IEnumerable <int> expected = NumberRangeGuaranteedNotCollectionType(0, Items); IEnumerable <int> unordered = expected.Select(i => Items - i - 1); System.Linq.IOrderedEnumerable <int> ordered = unordered.OrderBy(_ => 0); switch (thenBys) { case 1: ordered = ordered.ThenByDescending(i => - i); break; case 2: ordered = ordered.ThenByDescending(i => 0).ThenByDescending(i => - i); break; case 3: ordered = ordered.ThenByDescending(i => 0).ThenByDescending(i => 0).ThenByDescending(i => - i); break; } Assert.Equal(expected, ordered); }
public void SortsLargeRandomizedEnumerableCorrectly(int thenBys) { const int Items = 100_000; var r = new Random(42); int[] randomized = Enumerable.Range(0, Items).Select(i => r.Next()).ToArray(); System.Linq.IOrderedEnumerable <int> orderedEnumerable = randomized.OrderBy(_ => 0); switch (thenBys) { case 1: orderedEnumerable = orderedEnumerable.ThenByDescending(i => - i); break; case 2: orderedEnumerable = orderedEnumerable.ThenByDescending(i => 0).ThenByDescending(i => - i); break; case 3: orderedEnumerable = orderedEnumerable.ThenByDescending(i => 0).ThenByDescending(i => 0).ThenByDescending(i => - i); break; } int[] ordered = orderedEnumerable.ToArray(); Array.Sort(randomized, (a, b) => a - b); Assert.Equal(randomized, orderedEnumerable); }
// [Fact] public void NullSourceComparer() { System.Linq.IOrderedEnumerable <int> source = null; Assert.Throws <ArgumentNullException>("source", () => source.ThenByDescending(i => i, null)); }
public void NullSource() { System.Linq.IOrderedEnumerable <int> source = null; AssertExtensions.Throws <ArgumentNullException>("source", () => source.ThenByDescending(i => i)); }