@Test public void testReadDoubleMultiFiles() throws Exception { String dirPath = "src/test/resources/multi_file_double"; ArrayList<String> correctAnswer = readAllFiles(dirPath); Collections.sort( correctAnswer, new Comparator<String>() { @Override public int compare(String o1, String o2) { try { Double d1 = Double.parseDouble(o1); Double d2 = Double.parseDouble(o2); return d1.compareTo(d2); } catch (NumberFormatException e) { e.printStackTrace(); return 0; } } }); SortedColumnDFSFile column = new SortedColumnDFSFile(qualify(dirPath + "/"), DataType.getType("double")); IDictionaryValueEnumerator e = new TableColumnValueEnumerator(column.getReader(), -1); ArrayList<String> output = new ArrayList<>(); while (e.moveNext()) { System.out.println(new String(e.current())); output.add(new String(e.current())); } System.out.println(correctAnswer.size()); assertTrue(correctAnswer.size() == output.size()); for (int i = 0; i < correctAnswer.size(); i++) { assertEquals(correctAnswer.get(i), output.get(i)); } }
@Test public void testEmptyDir() throws Exception { String dirPath = "src/test/resources/empty_dir"; new File(dirPath).mkdirs(); SortedColumnDFSFile column = new SortedColumnDFSFile(qualify(dirPath + "/"), DataType.getType("varchar")); IDictionaryValueEnumerator e = new TableColumnValueEnumerator(column.getReader(), -1); ArrayList<String> output = new ArrayList<>(); while (e.moveNext()) { System.out.println(new String(e.current())); output.add(new String(e.current())); } System.out.println(output.size()); }
@Test public void testReadStringMultiFile() throws Exception { String dirPath = "src/test/resources/multi_file_str"; ArrayList<String> correctAnswer = readAllFiles(dirPath); Collections.sort(correctAnswer, new ByteComparator<String>(new StringBytesConverter())); SortedColumnDFSFile column = new SortedColumnDFSFile(qualify(dirPath + "/"), DataType.getType("varchar")); IDictionaryValueEnumerator e = new TableColumnValueEnumerator(column.getReader(), -1); ArrayList<String> output = new ArrayList<>(); while (e.moveNext()) { output.add(new String(e.current())); } System.out.println(correctAnswer.size()); assertTrue(correctAnswer.size() == output.size()); for (int i = 0; i < correctAnswer.size(); i++) { assertEquals(correctAnswer.get(i), output.get(i)); } }