public void Iterators_Empty_ReturnsNoRows() { using (var iterator = new EmptyIterator()) { AssertEmpty(iterator); } }
public void CanDisjunctionIterator() { var l1 = new[] { 1, 2, 3, 4, 5, 6, 7 }; var l2 = new[] { 1, 3, 5, 7, 9 }; var l3 = new[] { 3, 4, 5 }; var r1 = new DisjunctionIterator().GetAll().ToList(); Assert.True(Enumerable.Empty <int>().SequenceEqual(r1)); var p1 = new ListIterator(l1); var r2 = new DisjunctionIterator(p1).GetAll().ToList(); Assert.True(l1.SequenceEqual(r2)); var p2 = new ListIterator(l2, "P2"); var p3 = new ListIterator(l3, "P3"); var r3 = new DisjunctionIterator(p2, p3).GetAll().ToList(); Assert.True(new[] { 1, 3, 4, 5, 7, 9 }.SequenceEqual(r3)); p1 = new ListIterator(l1, "P1"); p2 = new ListIterator(l2, "P2"); p3 = new ListIterator(l3, "P3"); var r4 = new DisjunctionIterator(p1, p2, p3).GetAll().ToList(); Assert.True(new[] { 1, 2, 3, 4, 5, 6, 7, 9 }.SequenceEqual(r4)); p1 = new ListIterator(l1); var empty = new EmptyIterator(); var r5 = new DisjunctionIterator(p1, empty).GetAll().ToList(); Assert.True(l1.SequenceEqual(r5)); }
public void CanConjunctionIterator() { var l1 = new[] { 1, 2, 3, 4, 5, 6, 7 }; var l2 = new[] { 1, 3, 5, 7, 9 }; var l3 = new[] { 3, 4, 5 }; // ReSharper disable ObjectCreationAsStatement Assert.Throws <ArgumentException>(() => new ConjunctionIterator()); Assert.Throws <ArgumentNullException>(() => new ConjunctionIterator(null)); // ReSharper restore ObjectCreationAsStatement var r1 = new ConjunctionIterator(new ListIterator(l1)).GetAll(); Assert.True(l1.SequenceEqual(r1)); var p1 = new ListIterator(l1, "P1"); var p2 = new ListIterator(l2, "P2"); var p3 = new ListIterator(l3, "P3"); var r2 = new ConjunctionIterator(p3, p1, p2).GetAll().ToList(); Assert.True(new[] { 3, 5 }.SequenceEqual(r2)); p1 = new ListIterator(l1); p2 = new ListIterator(l2); var empty = new EmptyIterator(); var r3 = new ConjunctionIterator(p1, p2, empty).GetAll().ToList(); Assert.Empty(r3); }
public void CanButNotIterator() { var l1 = new[] { 1, 2, 3, 4, 5, 6, 7 }; var l2 = new[] { 1, 3, 5, 7, 9 }; var p1 = new ListIterator(l1); var p2 = new ListIterator(l2); var r1 = new ButNotIterator(p1, p2).GetAll().ToList(); Assert.True(new[] { 2, 4, 6 }.SequenceEqual(r1)); p1 = new ListIterator(l1, "P1"); p2 = new ListIterator(l2, "P2"); var r2 = new ButNotIterator(p2, p1).GetAll().ToList(); Assert.True(new[] { 9 }.SequenceEqual(r2)); p1 = new ListIterator(l1); var r3 = new ButNotIterator(p1, null).GetAll().ToList(); Assert.True(l1.SequenceEqual(r3)); p2 = new ListIterator(l2); var r4 = new ButNotIterator(null, p2).GetAll().ToList(); Assert.Empty(r4); var r5 = new ButNotIterator(null, null).GetAll().ToList(); Assert.Empty(r5); p1 = new ListIterator(l1); var empty = new EmptyIterator(); var r6 = new ButNotIterator(p1, empty).GetAll().ToList(); Assert.True(l1.SequenceEqual(r6)); empty = new EmptyIterator(); p2 = new ListIterator(l2); var r7 = new ButNotIterator(empty, p2).GetAll().ToList(); Assert.Empty(r7); }