@Test
public void testClone() throws Exception {

  TernaryExpr te = makeTernary();
  TernaryExpr te2 = te.clone();
  assertNotSame(te, te2);
  assertNotSame(te.getTest(), te2.getTest());
  assertNotSame(te.getThenExpr(), te2.getThenExpr());
  assertNotSame(te.getElseExpr(), te2.getElseExpr());
  assertEquals(((VariableIdentifierExpr) te.getTest()).getName(),
      ((VariableIdentifierExpr) te2.getTest()).getName());
  assertEquals(((VariableIdentifierExpr) te.getThenExpr()).getName(),
      ((VariableIdentifierExpr) te2.getThenExpr()).getName());
  assertEquals(((VariableIdentifierExpr) te.getElseExpr()).getName(),
      ((VariableIdentifierExpr) te2.getElseExpr()).getName());
}