public void testBranchingSourceMultipleTimes() {
try {
// construct the plan
FileDataSource sourceA = new FileDataSource(new DummyInputFormat(), IN_FILE);
JoinOperator mat1 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceA)
.input2(sourceA)
.build();
JoinOperator mat2 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceA)
.input2(mat1)
.build();
JoinOperator mat3 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceA)
.input2(mat2)
.build();
JoinOperator mat4 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceA)
.input2(mat3)
.build();
JoinOperator mat5 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceA)
.input2(mat4)
.build();
MapOperator ma = MapOperator.builder(new IdentityMap()).input(sourceA).build();
JoinOperator mat6 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(ma)
.input2(ma)
.build();
JoinOperator mat7 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(ma)
.input2(mat6)
.build();
JoinOperator mat8 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(ma)
.input2(mat7)
.build();
JoinOperator mat9 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(ma)
.input2(mat8)
.build();
JoinOperator mat10 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(ma)
.input2(mat9)
.build();
CoGroupOperator co = CoGroupOperator.builder(new DummyCoGroupStub(), IntValue.class, 0, 0)