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.ThenBy(i => i); break; case 2: ordered = ordered.ThenBy(i => 0).ThenBy(i => i); break; case 3: ordered = ordered.ThenBy(i => 0).ThenBy(i => 0).ThenBy(i => i); break; } Assert.Equal(expected, ordered); }
public void OrderByIsCovariantTestWithCast() { var ordered = Enumerable.Range(0, 100).Select(i => i.ToString()).OrderBy(i => i.Length); System.Linq.IOrderedEnumerable <IComparable> covariantOrdered = ordered; covariantOrdered = covariantOrdered.ThenBy(i => i); string[] expected = Enumerable.Range(0, 100).Select(i => i.ToString()).OrderBy(i => i.Length).ThenBy(i => i).ToArray(); Assert.Equal(expected, covariantOrdered); }
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.ThenBy(i => i); break; case 2: orderedEnumerable = orderedEnumerable.ThenBy(i => 0).ThenBy(i => i); break; case 3: orderedEnumerable = orderedEnumerable.ThenBy(i => 0).ThenBy(i => 0).ThenBy(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.ThenBy(i => i, null)); }
public void NullSource() { System.Linq.IOrderedEnumerable <int> source = null; AssertExtensions.Throws <ArgumentNullException>("source", () => source.ThenBy(i => i)); }