private static IGraph<FlowShape<int, string>, NotUsed> PartialGraph()
{
return GraphDsl.Create(b =>
{
var source2 = Source.From(Enumerable.Range(4, 6));
var source3 = Source.Empty<int>();
var source4 = Source.Empty<string>();
var inMerge = b.Add(new Merge<int>(2));
var outMerge = b.Add(new Merge<string>(2));
var m2 = b.Add(new Merge<int>(2));
b.From(inMerge.Out).Via(Flow.Create<int>().Select(x => x * 2)).To(m2.In(0));
b.From(m2.Out).Via(Flow.Create<int>().Select(x => x / 2).Select(i => (i + 1).ToString())).To(outMerge.In(0));
b.From(source2).To(inMerge.In(0));
b.From(source3).To(m2.In(1));
b.From(source4).To(outMerge.In(1));
return new FlowShape<int, string>(inMerge.In(1), outMerge.Out);
});
}