### Question:
ORCSchemaUtil { static boolean hasIds(TypeDescription orcSchema) { return OrcSchemaVisitor.visit(orcSchema, new HasIds()); } private  ORCSchemaUtil(); static TypeDescription convert(Schema schema); static Schema convert(TypeDescription orcSchema); static TypeDescription buildOrcProjection(Schema schema,
                                                   TypeDescription originalOrcSchema); static Map<Integer, String> idToOrcName(Schema schema); static final String ICEBERG_BINARY_TYPE_ATTRIBUTE; static final String ICEBERG_LONG_TYPE_ATTRIBUTE; }### Answer:
@Test public void testHasIds() { Schema schema = new Schema( optional(1, "data", Types.StructType.of( optional(10, "entries", Types.MapType.ofOptional(11, 12, Types.StringType.get(), Types.DateType.get())) )), optional(2, "intCol", Types.IntegerType.get()), optional(3, "longCol", Types.LongType.get()), optional(4, "listCol", Types.ListType.ofOptional(40, Types.DoubleType.get())) ); TypeDescription orcSchema = ORCSchemaUtil.removeIds(ORCSchemaUtil.convert(schema)); assertFalse("Should not have Ids", ORCSchemaUtil.hasIds(orcSchema)); TypeDescription map2Col = TypeDescription.createMap(TypeDescription.createString(), TypeDescription.createBinary()); map2Col.setAttribute(ICEBERG_ID_ATTRIBUTE, "4"); orcSchema.addField("map2Col", map2Col); assertTrue("Should have Ids after adding one type with Id", ORCSchemaUtil.hasIds(orcSchema)); }