public void TestCompositeStageProvider()
        {
            var stageProvider0 = CreateStageProvider(3);
            var stageProvider1 = CreateStageProvider(3);
            var stageProvider  = new CompositeStageProvider(stageProvider0, stageProvider1);

            Assert.AreEqual(stageProvider0.Count + stageProvider1.Count, stageProvider.AsEnumerable().Count());
        }
        public void TestBreak0()
        {
            var stageProvider0 = CreateStageProvider(3);
            var stageProvider1 = CreateStageProvider(3);
            var stageProvider  = new CompositeStageProvider(stageProvider0, stageProvider1);

            stageProvider.Next();
            stageProvider0.Break();
            Assert.AreEqual(3, stageProvider.AsEnumerable().Count());
        }
        public void TestBreak1()
        {
            var stageProvider0 = CreateStageProvider(3);
            var stageProvider1 = CreateStageProvider(3);
            var stageProvider  = new CompositeStageProvider(stageProvider0, stageProvider1);

            for (var i = 0; i < 4; i++)
            {
                stageProvider.Next();
            }
            stageProvider1.Break();
            Assert.AreEqual(0, stageProvider.AsEnumerable().Count());
        }