public void A_Partition_must_work_with_merge()
{
this.AssertAllStagesStopped(() =>
{
var s = Sink.Seq<int>();
var input = new[] {5, 2, 9, 1, 1, 1, 10};
var task = RunnableGraph.FromGraph(GraphDsl.Create(s, (b, sink) =>
{
var partition = b.Add(new Partition<int>(2, i => i < 4 ? 0 : 1));
var merge = b.Add(new Merge<int>(2));
var source = Source.From(input).MapMaterializedValue<Task<IImmutableList<int>>>(_ => null);
b.From(source).To(partition.In);
b.From(partition.Out(0)).To(merge.In(0));
b.From(partition.Out(1)).To(merge.In(1));
b.From(merge.Out).To(sink.Inlet);
return ClosedShape.Instance;
})).Run(Materializer);
task.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
task.Result.ShouldAllBeEquivalentTo(input);
}, Materializer);
}