|
18 | 18 | namespace MoreLinq.Test |
19 | 19 | { |
20 | 20 | using NUnit.Framework; |
| 21 | + using NUnit.Framework.Interfaces; |
| 22 | + using System.Collections.Generic; |
21 | 23 |
|
22 | 24 | [TestFixture] |
23 | 25 | public class SkipUntilTest |
@@ -57,5 +59,25 @@ public void SkipUntilEvaluatesPredicateLazily() |
57 | 59 | var sequence = Enumerable.Range(-2, 5).SkipUntil(x => 1 / x == -1); |
58 | 60 | sequence.AssertSequenceEqual(0, 1, 2); |
59 | 61 | } |
| 62 | + |
| 63 | + public static readonly IEnumerable<ITestCaseData> TestData = |
| 64 | + from e in new[] |
| 65 | + { |
| 66 | + new { Source = new int[0] , Min = 0, Expected = new int[0] }, // empty sequence |
| 67 | + new { Source = new[] { 0 }, Min = 0, Expected = new int[0] }, // one-item sequence, predicate succeed |
| 68 | + new { Source = new[] { 0 }, Min = 1, Expected = new int[0] }, // one-item sequence, predicate don't succeed |
| 69 | + new { Source = new[] { 1, 2, 3 }, Min = 0, Expected = new[] { 2, 3 } }, // predicate succeed on first item |
| 70 | + new { Source = new[] { 1, 2, 3 }, Min = 1, Expected = new[] { 2, 3 } }, |
| 71 | + new { Source = new[] { 1, 2, 3 }, Min = 2, Expected = new[] { 3 } }, |
| 72 | + new { Source = new[] { 1, 2, 3 }, Min = 3, Expected = new int[0] }, // predicate succeed on last item |
| 73 | + new { Source = new[] { 1, 2, 3 }, Min = 4, Expected = new int[0] } // predicate never succeed |
| 74 | + } |
| 75 | + select new TestCaseData(e.Source, e.Min).Returns(e.Expected); |
| 76 | + |
| 77 | + [Test, TestCaseSource(nameof(TestData))] |
| 78 | + public int[] TestSkipUntil(int[] source, int min) |
| 79 | + { |
| 80 | + return source.AsTestingSequence().SkipUntil(v => v >= min).ToArray(); |
| 81 | + } |
60 | 82 | } |
61 | 83 | } |
0 commit comments