Akka.Streams.Tests.Dsl.GraphBalanceSpec.A_Balance_must_fairly_balance_between_three_outputs C# (CSharp) Method

A_Balance_must_fairly_balance_between_three_outputs() private method

        public void A_Balance_must_fairly_balance_between_three_outputs()
        {
            this.AssertAllStagesStopped(() =>
            {
                var probe = this.SinkProbe<int>();
                var t = RunnableGraph.FromGraph(GraphDsl.Create(probe, probe, probe, Tuple.Create,
                    (b, o1, o2, o3) =>
                    {
                        var balance = b.Add(new Balance<int>(3));
                        var source =
                            Source.From(Enumerable.Range(1,7))
                                .MapMaterializedValue<Tuple<TestSubscriber.Probe<int>, TestSubscriber.Probe<int>, TestSubscriber.Probe<int>>>(_ => null);
                        b.From(source).To(balance.In);
                        b.From(balance.Out(0)).To(o1);
                        b.From(balance.Out(1)).To(o2);
                        b.From(balance.Out(2)).To(o3);
                        return ClosedShape.Instance;
                    })).Run(Materializer);
                var p1 = t.Item1;
                var p2 = t.Item2;
                var p3 = t.Item3;

                p1.RequestNext(1);
                p2.RequestNext(2);
                p3.RequestNext(3);
                p2.RequestNext(4);
                p1.RequestNext(5);
                p3.RequestNext(6);
                p1.RequestNext(7);

                p1.ExpectComplete();
                p2.ExpectComplete();
                p3.ExpectComplete();
            }, Materializer);
        }