public static Builder builder() {
    return new Builder();
  }
@Test
  public void testLogicalType() {
    Schema schema1 =
        Schema.builder().addLogicalTypeField("logical", new TestType("id", "arg")).build();
    Schema schema2 =
        Schema.builder().addLogicalTypeField("logical", new TestType("id", "arg")).build();
    assertEquals(schema1, schema2); // Logical types are the same.

    Schema schema3 =
        Schema.builder()
            .addNullableField("logical", Schema.FieldType.logicalType(new TestType("id", "arg")))
            .build();
    assertNotEquals(schema1, schema3); // schema1 and schema3 differ in Nullability

    Schema schema4 =
        Schema.builder().addLogicalTypeField("logical", new TestType("id2", "arg")).build();
    assertNotEquals(schema1, schema4); // Logical type id is different.

    Schema schema5 =
        Schema.builder().addLogicalTypeField("logical", new TestType("id", "arg2")).build();
    assertNotEquals(schema1, schema5); // Logical type arg is different.
  }