### Question:
Concat extends ERE { @Override public boolean containsEpsilon() { for(ERE child : children) { if(!child.containsEpsilon()) { return false; } } return true; } private  Concat(ERE left, ERE right); static ERE get(ERE left, ERE right); @Override EREType getEREType(); @Override String toString(); @Override ERE copy(); @Override boolean containsEpsilon(); @Override ERE derive(Symbol s);  }### Answer:
@Test public void testContainsEpsilon() { Epsilon epsilon = Epsilon.get(); assertFalse(Concat.get(a, b).containsEpsilon()); assertFalse(Concat.get(a, epsilon).containsEpsilon()); assertFalse(Concat.get(epsilon, b).containsEpsilon()); assertTrue(Concat.get(epsilon, epsilon).containsEpsilon()); }