### Question:
ParserHelper { public static JDBCType deriveJDBCDataType(List<String> values) { JDBCType guess = null; if (values != null) { for (String v : values) { if (!StringUtils.isEmpty(v)) { JDBCType currentPass; try { Integer.parseInt(v); currentPass = JDBCType.INTEGER; } catch (NumberFormatException e) { try { Double.parseDouble(v); currentPass = JDBCType.DOUBLE; } catch (NumberFormatException ex) { return JDBCType.VARCHAR; } } if (guess == null || currentPass == JDBCType.DOUBLE) { guess = currentPass; } } } } return (guess == null ? JDBCType.VARCHAR : guess); }  static String sqlTypeToHiveType(Integer type); static String sqlTypeToHiveType(JDBCType jdbcType); static JDBCType deriveJDBCDataType(List<String> values); static void deriveDataTypes(TableSchemaType type, List<? extends Field> fields); static DataTypeDescriptor hiveTypeToDescriptor(String hiveType); static String toNativeType(Integer dataType);  }### Answer:
@Test public void testDeriveJDBCDataType() throws Exception { assertEquals("DOUBLE", ParserHelper.deriveJDBCDataType(Arrays.asList("1.0", "20000", "-64.2001")).getName()); assertEquals("INTEGER", ParserHelper.deriveJDBCDataType(Arrays.asList("1", "20000", "64")).getName()); assertEquals("VARCHAR", ParserHelper.deriveJDBCDataType(Arrays.asList("1L", "200,00", "64")).getName()); assertEquals("VARCHAR", ParserHelper.deriveJDBCDataType(Arrays.asList("BOB", "20", "64")).getName()); assertEquals("VARCHAR", ParserHelper.deriveJDBCDataType(null).getName()); }