Example #1
0
        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",
                _ => ""
            }
Example #2
0
        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()
                );
        }