ParenExpr extends Expr { @Override public ParenExpr clone() { return new ParenExpr(expr.clone()); } ParenExpr(Expr expr); Expr getExpr(); @Override void accept(IAstVisitor visitor); @Override ParenExpr clone(); @Override boolean hasChild(IAstNode candidateChild); @Override Expr getChild(int index); @Override void setChild(int index, Expr expr); @Override int getNumChildren();  }
@Test public void testClone() { ParenExpr pe2 = pe.clone(); assertNotSame(pe, pe2); assertNotSame(pe.getExpr(), pe2.getExpr()); assertEquals(((VariableIdentifierExpr) pe.getExpr()).getName(), ((VariableIdentifierExpr) pe2.getExpr()).getName()); }