Akka.Streams.Tests.Dsl.FlowSelectAsyncSpec.A_Flow_with_SelectAsync_must_not_run_more_futures_than_requested_parallelism C# (CSharp) Метод

A_Flow_with_SelectAsync_must_not_run_more_futures_than_requested_parallelism() приватный Метод

        public void A_Flow_with_SelectAsync_must_not_run_more_futures_than_requested_parallelism()
        {
            var probe = CreateTestProbe();
            var c = TestSubscriber.CreateManualProbe<int>(this);
            Source.From(Enumerable.Range(1, 20))
                .SelectAsync(8, n => Task.Run(() => 
                {
                    probe.Ref.Tell(n);
                    return n;
                }))
                .RunWith(Sink.FromSubscriber(c), Materializer);
            var sub = c.ExpectSubscription();
            probe.ExpectNoMsg(TimeSpan.FromMilliseconds(500));
            sub.Request(1);
            probe.ReceiveN(9).ShouldAllBeEquivalentTo(Enumerable.Range(1, 9));
            probe.ExpectNoMsg(TimeSpan.FromMilliseconds(500));
            sub.Request(2);
            probe.ReceiveN(2).ShouldAllBeEquivalentTo(Enumerable.Range(10, 2));
            probe.ExpectNoMsg(TimeSpan.FromMilliseconds(500));
            sub.Request(10);
            probe.ReceiveN(9).ShouldAllBeEquivalentTo(Enumerable.Range(12, 9));
            probe.ExpectNoMsg(TimeSpan.FromMilliseconds(200));

            Enumerable.Range(1, 13).ForEach(n => c.ExpectNext(n));
            c.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
        }