### Question:
UBlock extends USimpleStatement implements BlockTree { public static UBlock create(List<UStatement> statements) { return new AutoValue_UBlock(ImmutableList.copyOf(statements)); }  static UBlock create(List<UStatement> statements); static UBlock create(UStatement... statements); @Override abstract ImmutableList<UStatement> getStatements(); @Override Choice<Unifier> visitBlock(BlockTree block, Unifier unifier); @Override JCBlock inline(Inliner inliner); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override boolean isStatic();  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(UBlock.create()) .addEqualityGroup( UBlock.create( UExpressionStatement.create( UMethodInvocation.create( UStaticIdent.create( "java.lang.System", "exit", UMethodType.create(UPrimitiveType.VOID, UPrimitiveType.INT)), ULiteral.intLit(0))))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UBlock.create( UExpressionStatement.create( UMethodInvocation.create( UStaticIdent.create( "java.lang.System", "exit", UMethodType.create(UPrimitiveType.VOID, UPrimitiveType.INT)), ULiteral.intLit(0))))); }