public class Runit {
    public static void main(String args[]){
	RecipeBlock rba = new RecipeBlock(1, "A");
	RecipeBlock rbb = new RecipeBlock(4, "B");
	RecipeBlock rbc = new RecipeBlock(8, "C");
	RecipeBlock rbd = new RecipeBlock(10, "D");
	RecipeBlock rbe = new RecipeBlock(10, "E");
	RecipeBlock rbf = new RecipeBlock(10, "F");
	RecipeBlock rbg = new RecipeBlock(0, "G");

	rba.addResource("chef");
	rbb.addResource("chef");
	rbc.addResource("chef");
	rbd.addResource("chef");
	rbe.addResource("chef");
	rbf.addResource("chef");
	rbg.addResource("chef");

	rba.addWait(rbe, 4);
	rbb.addWait(rbe, 4);
	rbc.addWait(rbe, 12);
	rbd.addWait(rbf, 40);

	rbe.addPrereq(rba);
	rbe.addPrereq(rbb);
	rbe.addPrereq(rbc);
	rbe.addWait(rbf, 3);

	rbf.addPrereq(rbd);
	rbf.addPrereq(rbe);
	rbf.addWait(rbg, 1);

	rbg.addPrereq(rbf);
	
	Recipe r = new Recipe();
	r.addBlock(rba);
	r.addBlock(rbb);
	r.addBlock(rbc);
	r.addBlock(rbd);
	r.addBlock(rbe);
	r.addBlock(rbf);
	r.addBlock(rbg);

	RecipeScheduler rs = new RecipeScheduler();
	rs.addRecipe(r);

	rs.schedule(new RecipePlan());
	rs.print();
    }
}
