@Test
public void testBasic() throws Exception {

  final Injector injector = Tang.Factory.getTang().newInjector();
  final PhysicalPlanGenerator physicalPlanGenerator = injector.getInstance(PhysicalPlanGenerator.class);
  final IRVertex v0 = newIRVertex(0, 5);
  final IRVertex v1 = newIRVertex(0, 3);
  final IRDAG irDAG = new IRDAG(new DAGBuilder<IRVertex, IREdge>()
    .addVertex(v0)
    .addVertex(v1)
    .connectVertices(newIREdge(v0, v1, CommunicationPatternProperty.Value.ONE_TO_ONE,
      DataFlowProperty.Value.PULL))
    .buildWithoutSourceSinkCheck());
  final DAG<Stage, StageEdge> stageDAG = physicalPlanGenerator.apply(irDAG);
  final Iterator<Stage> stages = stageDAG.getVertices().iterator();
  final Stage s0 = stages.next();
  final Stage s1 = stages.next();
}