### Question:
UAssign extends UExpression implements AssignmentTree { public static UAssign create(UExpression variable, UExpression expression) { return new AutoValue_UAssign(variable, expression); }  static UAssign create(UExpression variable, UExpression expression); @Override abstract UExpression getVariable(); @Override abstract UExpression getExpression(); @Override JCAssign inline(Inliner inliner); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override Kind getKind(); @Override Choice<Unifier> visitAssignment(AssignmentTree assign, Unifier unifier);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(UAssign.create(UFreeIdent.create("foo"), ULiteral.intLit(5))) .addEqualityGroup(UAssign.create(UFreeIdent.create("bar"), ULiteral.intLit(5))) .addEqualityGroup(UAssign.create(UFreeIdent.create("foo"), ULiteral.intLit(20))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UAssign.create(UFreeIdent.create("foo"), ULiteral.intLit(5))); }