package it.unito.geosummly; import static org.junit.Assert.assertEquals; import it.unito.geosummly.tools.EvaluationTools; import it.unito.geosummly.utils.Pair; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Vector; import org.apache.commons.io.FileUtils; import org.junit.Test; public class JaccardTest { @Test public void read() { List<Pair<?,?>> pairs = new ArrayList<>(); try { String jaccard_log = FileUtils.readFileToString(new File("tests/jaccard.log")); String[] folds = jaccard_log.split("_END_F0.*"); assertEquals(3, folds.length); for (String fold : folds) { String[] holds = fold.trim().split("_END_H.*"); assertEquals(2, holds.length); Map<String, Vector<Integer>> first = createHoldOutSet(holds[0]); Map<String, Vector<Integer>> second = createHoldOutSet(holds[1]); pairs.add(new Pair(first, second)); } EvaluationTools et = new EvaluationTools(); StringBuilder out = et.computeJaccard2(pairs); FileUtils.writeStringToFile(new File("tests/jaccard.out"), out.toString()); } catch (IOException e) { e.printStackTrace(); } } public HashMap<String, Vector<Integer>> createHoldOutSet (String hold) { HashMap<String, Vector<Integer>> result = new HashMap<>(); String[] lines = hold.trim().split("\n"); for (String line : lines) { String[] items = line.trim().split(";"); String cluster_name = items[0]; String[] os = items[1].trim().split(" "); Vector<Integer> objects = new Vector<>(); for (String o : os) { objects.add(Integer.parseInt(o)); } result.put(cluster_name, objects); } return result; } }