### Question:
UArrayTypeTree extends UExpression implements ArrayTypeTree { public static UArrayTypeTree create(UExpression elementType) { return new AutoValue_UArrayTypeTree(elementType); }  static UArrayTypeTree create(UExpression elementType); @Override abstract UExpression getType(); @Override @Nullable Choice<Unifier> visitArrayType(ArrayTypeTree tree, @Nullable Unifier unifier); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override JCArrayTypeTree inline(Inliner inliner);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(UArrayTypeTree.create(UPrimitiveTypeTree.INT)) .addEqualityGroup(UArrayTypeTree.create(UClassIdent.create("java.lang.String"))) .addEqualityGroup(UArrayTypeTree.create(UArrayTypeTree.create(UPrimitiveTypeTree.INT))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert(UArrayTypeTree.create(UPrimitiveTypeTree.INT)); }