public void testInternal(int effort) throws IOException, InterruptedException {

		File tmpDirectory = TestUtil.directoriesToFile("tmp", "SnzOutputStreamTest");
		tmpDirectory.mkdirs();
		
		for(File org : testdataDirectory.listFiles()) {
			if(org.isFile()) {
				System.out.println("compressing " + org.getName());				
				SnzOutputStream sos = new SnzOutputStream(new FileOutputStream(new File(tmpDirectory, org.getName() + ".snz")));
				sos.setCompressionEffort(effort);
				FileInputStream fis = new FileInputStream(org);
				TestUtil.pipe(fis, sos);
				fis.close();
				sos.close();
			}
		}
		
		ProcessBuilder pb = new ProcessBuilder(snzipExecutable, "-d", "*");
		pb.directory(tmpDirectory);
		pb.redirectErrorStream(true);
		Process p = pb.start();
		TestUtil.pipe(p.getInputStream(), System.out);
		int snzReturnCode = p.waitFor();
		if(snzReturnCode != 0) {
			Assert.fail("snzip exited with return code " + snzReturnCode);
		}
		
		for(File org : testdataDirectory.listFiles()) {
			if(org.isFile()) {
				System.out.println("comparing " + org.getName());
				byte[] originalData = TestUtil.readFully(org);
				byte[] processedData = TestUtil.readFully(new File(tmpDirectory, org.getName()));
				Assert.assertArrayEquals(originalData, processedData);
			}
		}

	}