/**
* {@link FlowBlock#compaction()}
*/
@Test
public void compaction_deadOut() {
FlowGraphGenerator gen = new FlowGraphGenerator();
gen.defineInput("in1");
gen.defineInput("in2");
gen.defineOperator("op1", "in1 in2", "out1 out2");
gen.defineOutput("out1");
gen.defineOutput("out2");
gen.connect("in1", "op1.in1").connect("op1.out1", "out1");
gen.connect("in2", "op1.in2").connect("op1.out2", "out2");
FlowBlock bin = FlowBlock.fromPorts(
0,
gen.toGraph(),
new ArrayList<FlowElementInput>(gen.inputs()),
Arrays.asList(gen.output("in1"), gen.output("in2")),
gen.getAsSet("in1", "in2"));
FlowBlock b1 = FlowBlock.fromPorts(
0,
gen.toGraph(),
Arrays.asList(gen.input("op1.in1"), gen.input("op1.in2")),
Arrays.asList(gen.output("op1.out1"), gen.output("op1.out2")),
gen.getAsSet("op1"));
FlowBlock bout = FlowBlock.fromPorts(
0,
gen.toGraph(),
Arrays.asList(gen.input("out1"), gen.input("out2")),
new ArrayList<FlowElementOutput>(gen.outputs()),
gen.getAsSet("out1", "out2"));
FlowBlock.connect(bin.getBlockOutputs().get(0), b1.getBlockInputs().get(0));
FlowBlock.connect(bin.getBlockOutputs().get(1), b1.getBlockInputs().get(1));
FlowBlock.connect(b1.getBlockOutputs().get(0), bout.getBlockInputs().get(0));
bin.detach();
b1.detach();