### Question:
VcfGeneticVariantMeta implements GeneticVariantMeta { @Override public Type getRecordType(String recordId) { boolean found = false; for (String record : vcfRecordFormat) { found = record.equals(recordId); if (found) { break; } } if (!found) { return null; } VcfMetaFormat format = vcfMeta.getFormatMeta(recordId); if (format == null) { return null; } String number = format.getNumber(); boolean isListValue = number.equals("A") || number.equals("R") || number.equals("G") || number.equals(".") || Integer.valueOf(number) > 1; switch (format.getType()) { case CHARACTER: return isListValue ? Type.CHAR_LIST : Type.CHAR; case FLOAT: return isListValue ? Type.FLOAT_LIST : Type.FLOAT; case INTEGER: return isListValue ? Type.INTEGER_LIST : Type.INTEGER; case STRING: return isListValue ? Type.STRING_LIST : Type.STRING; default: throw new IllegalArgumentException("invalid vcf format type [" + format.getType() + "]"); } } VcfGeneticVariantMeta(VcfMeta vcfMeta, Iterable<String> vcfRecordFormat); @Override Iterable<String> getRecordIds(); @Override Type getRecordType(String recordId);  }### Answer:
@Test public void getRecordType() { assertEquals(GeneticVariantMeta.Type.STRING, vcfGeneticVariantMeta.getRecordType("GT")); assertEquals(GeneticVariantMeta.Type.INTEGER, vcfGeneticVariantMeta.getRecordType("DP")); assertEquals(GeneticVariantMeta.Type.INTEGER_LIST, vcfGeneticVariantMeta.getRecordType("EC")); assertEquals(GeneticVariantMeta.Type.FLOAT_LIST, vcfGeneticVariantMeta.getRecordType("CONFS")); assertNull(vcfGeneticVariantMeta.getRecordType("invalid")); }