Akka.Streams.Tests.Dsl.FlowSkipWithinSpec.A_SkipWithin_must_deliver_elements_after_the_duration_but_not_before C# (CSharp) Method

A_SkipWithin_must_deliver_elements_after_the_duration_but_not_before() private method

        public void A_SkipWithin_must_deliver_elements_after_the_duration_but_not_before()
        {
            var input = Enumerable.Range(1, 200).GetEnumerator();
            var p = TestPublisher.CreateManualProbe<int>(this);
            var c = TestSubscriber.CreateManualProbe<int>(this);
            Source.FromPublisher(p)
                .SkipWithin(TimeSpan.FromSeconds(1))
                .To(Sink.FromSubscriber(c))
                .Run(Materializer);
            var pSub = p.ExpectSubscription();
            var cSub = c.ExpectSubscription();
            cSub.Request(100);
            var demand1 = pSub.ExpectRequest();
            Enumerable.Range(1, (int)demand1).ForEach(_ =>
            {
                input.MoveNext();
                pSub.SendNext(input.Current);
            });
            var demand2 = pSub.ExpectRequest();
            Enumerable.Range(1, (int)demand2).ForEach(_ =>
            {
                input.MoveNext();
                pSub.SendNext(input.Current);
            });
            var demand3 = pSub.ExpectRequest();
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(1500));
            Enumerable.Range(1, (int)demand3).ForEach(_ =>
            {
                input.MoveNext();
                pSub.SendNext(input.Current);
            });
            Enumerable.Range((int) (demand1 + demand2 + 1), (int)demand3)
                .ForEach(n => c.ExpectNext(n));
            pSub.SendComplete();
            c.ExpectComplete();
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
        }