/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.lmu.ifi.dbs.jfeaturelib.utils; import de.lmu.ifi.dbs.jfeaturelib.utils.Extractor; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; import java.util.HashMap; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; /** * * @author Franz */ public class ExtractorTest { private Path imgDir; private Path maskDir; private File imgFile; private File maskFile; public ExtractorTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() throws IOException { imgDir = Files.createTempDirectory("junit_imgDir"); maskDir = Files.createTempDirectory("junit_maskDir"); // prepare image and mask file imgFile = new File(imgDir.toFile(), "image.jpg"); imgFile.createNewFile(); maskFile = new File(maskDir.toFile(), "image.png"); maskFile.createNewFile(); } @After public void tearDown() throws IOException { // delete directories recursively FileUtils.deleteDirectory(imgDir.toFile()); FileUtils.deleteDirectory(maskDir.toFile()); } @Test public void testFindTuples() throws IOException { Extractor extractor = new Extractor(); extractor.maskDirectory = maskDir.toFile(); extractor.imageDirectory = imgDir.toFile(); Collection<File> imageList = extractor.createFileList(imgDir.toFile()); assertEquals("image list must not be empty", 1, imageList.size()); Collection<File> maskList = extractor.createFileList(maskDir.toFile()); assertEquals("mask list must not be empty", 1, maskList.size()); HashMap<File, File> tuples = extractor.findTuples(imageList, maskList); assertEquals("must contain 1 tuple", 1, tuples.size()); assertTrue(tuples.keySet().iterator().next().toString().endsWith("image.jpg")); assertTrue(tuples.values().iterator().next().toString().endsWith("image.png")); } @Test public void testFindTuples2() throws IOException { // NOW start the actual test Extractor extractor = new Extractor(); extractor.maskDirectory = maskDir.toFile(); extractor.imageDirectory = imgDir.toFile(); maskFile.delete(); Collection<File> imageList = extractor.createFileList(imgDir.toFile()); assertEquals("image list must not be empty", 1, imageList.size()); Collection<File> maskList = extractor.createFileList(maskDir.toFile()); assertEquals("mask list must be empty", 0, maskList.size()); HashMap<File, File> tuples = extractor.findTuples(imageList, maskList); assertEquals("must contain 1 tuple", 1, tuples.size()); assertTrue(tuples.keySet().iterator().next().toString().endsWith("image.jpg")); assertNull(tuples.values().iterator().next()); } }