SplitInput extends AbstractJob { public void splitDirectory() throws IOException, ClassNotFoundException, InterruptedException { this.splitDirectory(inputDirectory); }  @Override int run(String[] args); static void main(String[] args); void splitDirectory(); void splitDirectory(Path inputDir); void splitDirectory(Configuration conf, Path inputDir); void splitFile(Path inputFile); int getTestSplitSize(); void setTestSplitSize(int testSplitSize); int getTestSplitPct(); void setTestSplitPct(int testSplitPct); void setKeepPct(int keepPct); void setUseMapRed(boolean useMapRed); void setMapRedOutputDirectory(Path mapRedOutputDirectory); int getSplitLocation(); void setSplitLocation(int splitLocation); Charset getCharset(); void setCharset(Charset charset); Path getInputDirectory(); void setInputDirectory(Path inputDir); Path getTrainingOutputDirectory(); void setTrainingOutputDirectory(Path trainingOutputDir); Path getTestOutputDirectory(); void setTestOutputDirectory(Path testOutputDir); SplitCallback getCallback(); void setCallback(SplitCallback callback); int getTestRandomSelectionSize(); void setTestRandomSelectionSize(int testRandomSelectionSize); int getTestRandomSelectionPct(); void setTestRandomSelectionPct(int randomSelectionPct); void validate(); static int countLines(FileSystem fs, Path inputFile, Charset charset);  }
@Test public void testSplitDirectory() throws Exception { writeMultipleInputFiles(); final int testSplitSize = 1; si.setTestSplitSize(testSplitSize); si.setCallback(new SplitInput.SplitCallback() { @Override public void splitComplete(Path inputFile, int lineCount, int trainCount, int testCount, int testSplitStart) { int trainingLines = countMap.get(inputFile.getName()) - testSplitSize; assertSplit(fs, inputFile, charset, testSplitSize, trainingLines, tempTrainingDirectory, tempTestDirectory); } }); si.splitDirectory(tempInputDirectory); }