@Override
  public Type field(StructField field, Type typeResult) {
    return typeResult;
  }
@Test
  public void testNestedTypeConversion() {
    Type converted =
        DeltaLakeDataTypeVisitor.visit(
            deltaNestedSchema, new DeltaLakeTypeToType(deltaNestedSchema));
    Schema convertedSchema = new Schema(converted.asNestedType().asStructType().fields());

    assertThat(convertedSchema.findType(INNER_ATOMIC_SCHEMA)).isInstanceOf(Types.StructType.class);
    assertThat(convertedSchema.findField(INNER_ATOMIC_SCHEMA).isOptional()).isTrue();
    assertThat(
            convertedSchema
                .findType(INNER_ATOMIC_SCHEMA)
                .asStructType()
                .fieldType(OPTIONAL_BOOLEAN_TYPE))
        .isInstanceOf(Types.BooleanType.class);
    assertThat(
            convertedSchema
                .findType(INNER_ATOMIC_SCHEMA)
                .asStructType()
                .fieldType(REQUIRED_BINARY_TYPE))
        .isInstanceOf(Types.BinaryType.class);
    assertThat(
            convertedSchema
                .findType(INNER_ATOMIC_SCHEMA)
                .asStructType()
                .field(REQUIRED_BINARY_TYPE)
                .isRequired())
        .isTrue();
    assertThat(convertedSchema.findType(STRING_LONG_MAP_TYPE)).isInstanceOf(Types.MapType.class);
    assertThat(convertedSchema.findType(STRING_LONG_MAP_TYPE).asMapType().keyType())
        .isInstanceOf(Types.StringType.class);
    assertThat(convertedSchema.findType(STRING_LONG_MAP_TYPE).asMapType().valueType())
        .isInstanceOf(Types.LongType.class);
    assertThat(convertedSchema.findType(DOUBLE_ARRAY_TYPE)).isInstanceOf(Types.ListType.class);
    assertThat(convertedSchema.findField(DOUBLE_ARRAY_TYPE).isRequired()).isTrue();
    assertThat(convertedSchema.findType(DOUBLE_ARRAY_TYPE).asListType().isElementOptional())
        .isTrue();
    assertThat(convertedSchema.findType(STRUCT_ARRAY_TYPE)).isInstanceOf(Types.ListType.class);
    assertThat(convertedSchema.findField(STRUCT_ARRAY_TYPE).isRequired()).isTrue();
    assertThat(convertedSchema.findType(STRUCT_ARRAY_TYPE).asListType().isElementOptional())
        .isTrue();
    assertThat(convertedSchema.findType(STRUCT_ARRAY_TYPE).asListType().elementType())
        .isInstanceOf(Types.StructType.class);
    assertThat(
            convertedSchema
                .findType(STRUCT_ARRAY_TYPE)
                .asListType()
                .elementType()
                .asStructType()
                .fieldType(OPTIONAL_BOOLEAN_TYPE))
        .isInstanceOf(Types.BooleanType.class);
    assertThat(
            convertedSchema
                .findType(STRUCT_ARRAY_TYPE)
                .asListType()
                .elementType()
                .asStructType()
                .field(OPTIONAL_BOOLEAN_TYPE)
                .isOptional())
        .isTrue();
    assertThat(
            convertedSchema
                .findType(STRUCT_ARRAY_TYPE)
                .asListType()
                .elementType()
                .asStructType()
                .fieldType(REQUIRED_BINARY_TYPE))
        .isInstanceOf(Types.BinaryType.class);
    assertThat(
            convertedSchema
                .findType(STRUCT_ARRAY_TYPE)
                .asListType()
                .elementType()
                .asStructType()
                .field(REQUIRED_BINARY_TYPE)
                .isRequired())
        .isTrue();
  }