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.ThumbnailSelector;
import eu.europeana.service.ir.image.IRConfiguration;
import eu.europeana.service.ir.image.IRConfigurationImpl;
public class WebDemoSetSelectionTest 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(
WebDemoSetSelectionTest.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 selectThumbnails() throws FileNotFoundException, IOException {
ensureParmsInit();
IRConfiguration config = getConfig();
File datasetFile = config.getDatasetFile(DATASET_EU_CREATIVE_COLOR);
File outputFile = config.getDatasetUrlsFile(getDataset());
cleanOutFile(outputFile);
LargeThumbnailsetProcessing thumbnailSetSelector = new LargeThumbnailsetProcessing(datasetFile);
ThumbnailSelector observer = new ThumbnailSelector(5);
observer.setOutputFile(outputFile);
thumbnailSetSelector.addObserver(observer);
thumbnailSetSelector.processThumbnailset(start, limit, blockSize);
System.out.println("Items selected: " + observer.getSelectedItemsCount());
System.out.println("from: " + observer.getItemCounter());
}
protected void cleanOutFile(File outputFile) {
System.out.println("Output file deleted: " +outputFile.delete());
}
private void ensureParmsInit() {
//ensure blocksize set to a positive value
if(blockSize < 0)
blockSize = DEFAULT_BLOCKSIZE;
setDataset(DATASET_EU_CREATIVE);
}
protected IRConfiguration getConfig() {
return new IRConfigurationImpl();
}
}