public void FilteredProgressor() { var source = new Progressor <int>(new[] { 0, 8, 1, 8, 2, 3, 4, 8, 5 }); var progresor = Progressor <int> .CreatedFiltered(source, input => input != 8); int indexA = 0; int indexB = 0; progresor.SubscribeAction ( value => { Assert.AreEqual(value, indexB); indexB++; } ); int item; while (progresor.TryTake(out item)) { Assert.AreEqual(item, indexA); indexA++; } Assert.AreEqual(6, indexA); Assert.AreEqual(indexA, indexB); }