public static UWhileLoop create(UExpression condition, UStatement body) {
    return new AutoValue_UWhileLoop(condition, (USimpleStatement) body);
  }
@Test
  public void equality() {
    new EqualsTester()
        .addEqualityGroup(
            UWhileLoop.create(
                UParens.create(
                    UMethodInvocation.create(
                        UMemberSelect.create(
                            UFreeIdent.create("itr"),
                            "hasNext",
                            UMethodType.create(UPrimitiveType.BOOLEAN)))),
                UBlock.create(
                    UExpressionStatement.create(
                        UMethodInvocation.create(
                            UMemberSelect.create(
                                UFreeIdent.create("itr"),
                                "next",
                                UMethodType.create(UTypeVar.create("E"))))))))
        .addEqualityGroup(
            UWhileLoop.create(
                UParens.create(
                    UMethodInvocation.create(
                        UMemberSelect.create(
                            UFreeIdent.create("elements"),
                            "hasNext",
                            UMethodType.create(UPrimitiveType.BOOLEAN)))),
                UBlock.create(
                    UExpressionStatement.create(
                        UMethodInvocation.create(
                            UMemberSelect.create(
                                UFreeIdent.create("elements"),
                                "next",
                                UMethodType.create(UTypeVar.create("E"))))))))
        .testEquals();
  }