### Question:
USynchronized extends USimpleStatement implements SynchronizedTree { public static USynchronized create(UExpression expression, UBlock block) { return new AutoValue_USynchronized(expression, block); }  static USynchronized create(UExpression expression, UBlock block); @Override abstract UExpression getExpression(); @Override abstract UBlock getBlock(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override Kind getKind(); @Override JCSynchronized inline(Inliner inliner); @Override Choice<Unifier> visitSynchronized(SynchronizedTree synced, Unifier unifier);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(USynchronized.create(UFreeIdent.create("foo"), UBlock.create())) .addEqualityGroup(USynchronized.create(UFreeIdent.create("bar"), UBlock.create())) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( USynchronized.create(UFreeIdent.create("foo"), UBlock.create())); }