public void Generate_Test2() { CollectionAssert.AreEqual( new[] { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 }, EnumerableExtras .Generate(1, n => n * 2) .Take(16) .ToArray() ); var rules = new Regex("[AB]"); CollectionAssert.AreEqual( new[] { "A", "B-A-B", "A+B+A-B-A-B-A+B+A", "B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B", "A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+" + "B+A-B-A-B-A+B+A-B-A-B+A+B+A+B-A-B-A+B+A-B-A-B-A+B+A+B-A-B+A+B+A+B-A-B+A+B+" + "A-B-A-B-A+B+A" }, EnumerableExtras .Generate( "A", str => rules.Replace( str, m => m.Value[0] switch { 'A' => "B-A-B", 'B' => "A+B+A", _ => "" }
public void Generate_Test1() { var i = 0; CollectionAssert.AreEqual( new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, EnumerableExtras .Generate(() => i++) .Take(21) .ToArray() ); Assert.ThrowsException <ArgumentNullException>( () => EnumerableExtras.Generate <int>(null) .GetEnumerator() .MoveNext() ); }