assertEquals(LeafUpdateCode.efficiency, observerHelper.getUpdateObjects().get(1));
assertEquals(LeafUpdateCode.energy, observerHelper.getUpdateObjects().get(2));
assertEquals(LeafUpdateCode.efficiency, observerHelper.getUpdateObjects().get(3));
assertEquals(LeafUpdateCode.energy, observerHelper.getUpdateObjects().get(4));
assertEquals(new Percent(new BigDecimal("1")), leaf.getEfficiency());
assertEquals(10.2666997332, leaf.getEnergy().doubleValue(), 0.000001);
assertEquals(5.7131972868, leaf.collectFreeEnergy().doubleValue(), 0.000001);
// can not collect the free energy more than once
assertEquals(new BigDecimal(0), leaf.collectFreeEnergy());
assertEquals(16, leaf.getAge());