package eu.europeana.creative.dataset.pt;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import eu.europeana.api.client.thumbnails.processing.LargeThumbnailsetProcessing;
import eu.europeana.creative.dataset.BaseCreativeDatasetUtil;
import eu.europeana.creative.dataset.IRTestConfigurations;
import eu.europeana.creative.dataset.pt.classification.ColorImageFiltering;
import eu.europeana.service.ir.image.IRConfiguration;
import eu.europeana.service.ir.image.IRConfigurationImpl;
public class ColorThumbnailsFilteringTest extends
BaseCreativeDatasetUtil implements IRTestConfigurations {
private static int blockSize=-2;
private static int limit=-2;
private static int start=-2;
public static final String PREFIX_START="start=";
public static final String PREFIX_LIMIT="limit=";
public static final String PREFIX_BLOCKSIZE="blockSize=";
public static final int DEFAULT_BLOCKSIZE = 1000;
// public static String CLASS_WW1 = "ww1";
public static void main(String[] args) throws Exception {
parseParams(args);
JUnitCore.main(
ColorThumbnailsFilteringTest.class.getCanonicalName());
}
protected static void parseParams(String[] args) {
for (int i = 0; i < args.length; i++) {
if(args[i].startsWith(PREFIX_START)){
start = getValue(PREFIX_START, args[i]);
continue;
}else if(args[i].startsWith(PREFIX_LIMIT)){
limit = getValue(PREFIX_LIMIT, args[i]);
continue;
}else if(args[i].startsWith(PREFIX_BLOCKSIZE)){
blockSize = getValue(PREFIX_BLOCKSIZE, args[i]);
//continue;
}
}
}
protected static int getValue(String argPrefix, final String arg) {
return Integer.parseInt(arg.substring(argPrefix.length()));
}
@Test
public void filterThumbnails() throws FileNotFoundException, IOException {
ensureParmsInit();
IRConfiguration config = getConfig();
File datasetFile = config.getDatasetFile(DATASET_EU_CREATIVE_CLASSIFIED);
File outputFile = config.getDatasetFile(DATASET_EU_CREATIVE_COLOR);
LargeThumbnailsetProcessing datasetCategorization = new LargeThumbnailsetProcessing(datasetFile);
ColorImageFiltering observer = new ColorImageFiltering();
observer.setOutputFile(outputFile);
datasetCategorization.addObserver(observer);
datasetCategorization.processThumbnailset(start, limit, blockSize);
System.out.println("Skipped items: " + datasetCategorization.getFailureCount());
}
private void ensureParmsInit() {
//ensure blocksize set to a positive value
if(blockSize < 0)
blockSize = DEFAULT_BLOCKSIZE;
}
protected IRConfiguration getConfig() {
return new IRConfigurationImpl();
}
}