### Question:
UForLoop extends USimpleStatement implements ForLoopTree { public static UForLoop create( Iterable<? extends UStatement> initializer, @Nullable UExpression condition, Iterable<? extends UExpressionStatement> update, UStatement statement) { return new AutoValue_UForLoop( ImmutableList.copyOf(initializer), condition, ImmutableList.copyOf(update), (USimpleStatement) statement); }  static UForLoop create(
      Iterable<? extends UStatement> initializer,
      @Nullable UExpression condition,
      Iterable<? extends UExpressionStatement> update,
      UStatement statement); @Override abstract ImmutableList<UStatement> getInitializer(); @Override @Nullable abstract UExpression getCondition(); @Override abstract ImmutableList<UExpressionStatement> getUpdate(); @Override abstract USimpleStatement getStatement(); @Override @Nullable Choice<Unifier> visitForLoop(ForLoopTree loop, @Nullable Unifier unifier); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override Kind getKind(); @Override JCForLoop inline(Inliner inliner);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup( UForLoop.create( ImmutableList.of( UVariableDecl.create("i", UPrimitiveTypeTree.INT, UFreeIdent.create("from"))), UBinary.create(Kind.LESS_THAN, ULocalVarIdent.create("i"), UFreeIdent.create("to")), ImmutableList.of( UExpressionStatement.create( UUnary.create(Kind.POSTFIX_INCREMENT, ULocalVarIdent.create("i")))), UBlock.create())) .addEqualityGroup( UForLoop.create( ImmutableList.of( UVariableDecl.create("i", UPrimitiveTypeTree.INT, UFreeIdent.create("from"))), UBinary.create(Kind.LESS_THAN, ULocalVarIdent.create("i"), UFreeIdent.create("to")), ImmutableList.<UExpressionStatement>of(), UBlock.create( UExpressionStatement.create( UUnary.create(Kind.POSTFIX_INCREMENT, ULocalVarIdent.create("i")))))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UForLoop.create( ImmutableList.of( UVariableDecl.create("i", UPrimitiveTypeTree.INT, UFreeIdent.create("from"))), UBinary.create(Kind.LESS_THAN, ULocalVarIdent.create("i"), UFreeIdent.create("to")), ImmutableList.of( UExpressionStatement.create( UUnary.create(Kind.POSTFIX_INCREMENT, ULocalVarIdent.create("i")))), UBlock.create())); }