### Question:
ElasticsearchGlueTypeMapper implements GlueFieldLexer.BaseTypeMapper { @Override public Field getField(String name, String type) { if (getType(type) == null) { Matcher scaledFloat = scaledFloatPattern.matcher(type.toLowerCase()); if (scaledFloat.find() && scaledFloat.group().length() == type.length()) { Matcher scalingFactor = scalingFactorPattern.matcher(scaledFloat.group()); if (scalingFactor.find()) { return new Field(name, new FieldType(true, Types.MinorType.BIGINT.getType(), null, Collections.singletonMap(SCALING_FACTOR, scalingFactor.group())), null); } } return null; } return FieldBuilder.newBuilder(name, getType(type)).build(); }  @Override ArrowType getType(String type); @Override Field getField(String name, String type);  }### Answer:
@Test public void getFieldTest() { logger.info("getFieldTest: enter"); ElasticsearchGlueTypeMapper glueTypeMapper = new ElasticsearchGlueTypeMapper(); Field field; field = glueTypeMapper.getField("myscaled", "SCALED_FLOAT(100.0)"); logger.info("Field: {}, metadata: {}", field, field.getMetadata()); assertEquals("Field's name is invalid: ", "myscaled", field.getName()); assertEquals("Field's type is invalid: ", Types.MinorType.BIGINT.getType(), field.getType()); assertEquals("Field's scaling factor is invalid: ", "100.0", field.getMetadata().get("scaling_factor")); field = glueTypeMapper.getField("myscaled", "SCALED_FLOAT(100)"); logger.info("Field: {}, metadata: {}", field, field.getMetadata()); assertEquals("Field's name is invalid: ", "myscaled", field.getName()); assertEquals("Field's type is invalid: ", Types.MinorType.BIGINT.getType(), field.getType()); assertEquals("Field's scaling factor is invalid: ", "100", field.getMetadata().get("scaling_factor")); field = glueTypeMapper.getField("myscaled", "INT"); logger.info("Field: {}, metadata: {}", field, field.getMetadata()); assertEquals("Field's name is invalid: ", "myscaled", field.getName()); assertEquals("Field's type is invalid: ", Types.MinorType.INT.getType(), field.getType()); assertTrue("Fields metadata is invalid: ", field.getMetadata().isEmpty()); logger.info("getFieldTest: exit"); }