public void FiniteYielderExtensionTake() { var yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v).Take(6); var taken = yielder.Take(5); Assert.Equal(1, taken.Next()); Assert.Equal(4, taken.Next()); Assert.Equal(9, taken.Next()); Assert.Equal(16, taken.Next()); Assert.True(taken.HasNext()); Assert.Equal(25, taken.Next()); Assert.False(taken.HasNext()); Assert.False(taken.HasNext()); yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v).Take(6); taken = yielder.Take(7); Assert.Equal(1, taken.Next()); Assert.Equal(4, taken.Next()); Assert.Equal(9, taken.Next()); Assert.Equal(16, taken.Next()); Assert.Equal(25, taken.Next()); Assert.True(taken.HasNext()); Assert.Equal(36, taken.Next()); Assert.False(taken.HasNext()); Assert.False(taken.HasNext()); }
public void YielderExtensionFilterAndMap() { var yielder = Yielder.NaturalNumber().Map(v => v * 2 + 3); var selected = yielder.Filter(v => v % 3 < 2).Map(v => v + 4); Assert.Equal(7, selected.Next()); Assert.Equal(11, selected.Next()); Assert.Equal(13, selected.Next()); Assert.Equal(17, selected.Next()); }
public void YielderExtensionMap() { var yielder = Yielder.NaturalNumber().Map(v => v * 2 + 3); var mapped = yielder.Map(v => v % 3); Assert.Equal(0, mapped.Next()); Assert.Equal(2, mapped.Next()); Assert.Equal(1, mapped.Next()); Assert.Equal(0, mapped.Next()); }
public void YielderExtensionSkip() { var yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v); var skipped = yielder.Skip(5); Assert.Equal(36, skipped.Next()); Assert.Equal(49, skipped.Next()); Assert.Equal(64, skipped.Next()); Assert.Equal(81, skipped.Next()); Assert.Equal(100, skipped.Next()); }
public void YielderExtensionTakeWhile() { var yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v); var taken = yielder.TakeWhile(v => v < 25); Assert.Equal(1, taken.Next()); Assert.Equal(4, taken.Next()); Assert.Equal(9, taken.Next()); Assert.Equal(16, taken.Next()); Assert.False(taken.HasNext()); }
public void FiniteYielderExtensionFilterAndMap() { var yielder = Yielder.NaturalNumber().Map(v => v * 2 + 3).Take(4); var selected = yielder.Filter(v => v % 3 < 2).Map(v => v + 4); Assert.Equal(7, selected.Next()); Assert.Equal(11, selected.Next()); Assert.True(selected.HasNext()); Assert.Equal(13, selected.Next()); Assert.False(selected.HasNext()); Assert.False(selected.HasNext()); }
public void FiniteYielderExtensionMap() { var yielder = Yielder.NaturalNumber().Map(v => v * 2 + 1).Take(4); var mapped = yielder.Map(v => v % 3); Assert.Equal(1, mapped.Next()); Assert.Equal(0, mapped.Next()); Assert.Equal(2, mapped.Next()); Assert.True(mapped.HasNext()); Assert.Equal(1, mapped.Next()); Assert.False(mapped.HasNext()); Assert.False(mapped.HasNext()); }
public void FiniteYielderExtensionSkip() { var yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v).Take(10); var skipped = yielder.Skip(5); Assert.Equal(36, skipped.Next()); Assert.Equal(49, skipped.Next()); Assert.Equal(64, skipped.Next()); Assert.Equal(81, skipped.Next()); Assert.True(skipped.HasNext()); Assert.Equal(100, skipped.Next()); Assert.False(skipped.HasNext()); Assert.False(skipped.HasNext()); yielder = Yielder.NaturalNumber().Skip(1).Map(v => v * v).Take(10); skipped = yielder.Skip(12); Assert.False(skipped.HasNext()); Assert.False(skipped.HasNext()); }
public void YielderExtensionZip() { var yielderA = Yielder.NaturalNumber().Filter(x => x % 2 == 0); var yielderB = Yielder.NaturalNumber().Filter(x => x % 2 != 0); var zipped = yielderA.Zip(yielderB, (a, b) => a + b); Assert.Equal(1, zipped.Next()); Assert.Equal(5, zipped.Next()); Assert.Equal(9, zipped.Next()); Assert.Equal(13, zipped.Next()); zipped = yielderA.Zip(yielderB, (a, b) => a - b); Assert.Equal(-1, zipped.Next()); Assert.Equal(-1, zipped.Next()); Assert.Equal(-1, zipped.Next()); Assert.Equal(-1, zipped.Next()); }
public void FiniteYielderExtensionContains() { Assert.True(Yielder.NaturalNumber().Map(v => v * 2 + 3).Take(4).Contains(7)); Assert.False(Yielder.NaturalNumber().Map(v => v * 2 + 3).Take(4).Contains(11)); }
public void FiniteYielderExtensionCount() { Assert.Equal(3, Yielder.NaturalNumber().Map(v => v * 2 + 3).Take(4).Filter(v => v % 3 < 2).Count()); }
public void FiniteYielderExtensionAny() { Assert.False(Yielder.NaturalNumber().Map(v => v * 2 + 1).Take(2).Any(v => v % 3 == 2)); Assert.True(Yielder.NaturalNumber().Map(v => v * 2 + 1).Take(3).Any(v => v % 3 == 2)); }