From ac97eb909f14d1de6f8f926c6faa065bf40ffbcb Mon Sep 17 00:00:00 2001
From: Nikolaus Krismer <nikolaus.krismer@uibk.ac.at>
Date: Tue, 26 Aug 2014 11:50:10 +0200
Subject: [PATCH] fixed tests

---
 .../isochrone/network/AlgorithmHelper.java    | 12 ++++++
 .../inf/isochrone/network/ComparisonTest.java | 41 +++++++++++--------
 .../inf/isochrone/network/ExpirationTest.java | 21 +++++++---
 3 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java
index f21df3cd..62eb2458 100644
--- a/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java
+++ b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java
@@ -5,6 +5,9 @@ import it.unibz.inf.isochrone.config.ConfigDataset;
 import it.unibz.inf.isochrone.util.Query;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 import org.testng.Assert;
 
@@ -37,6 +40,15 @@ final class AlgorithmHelper {
 
 	// Public static methods
 
+	public static Collection<Integer> getDistinctIds(final Collection<? extends NetworkEntity> l1) {
+		final SortedSet<Integer> i1 = new TreeSet<>();
+		for (final NetworkEntity l : l1) {
+			i1.add(l.getId());
+		}
+
+		return i1;
+	}
+
 	public static AlgorithmResult run(final Class<? extends Isochrone> algorithmClass, final TestParameters params) {
 		return run(algorithmClass, params, true);
 	}
diff --git a/src/test/java/it/unibz/inf/isochrone/network/ComparisonTest.java b/src/test/java/it/unibz/inf/isochrone/network/ComparisonTest.java
index 862c02f3..d55494e2 100644
--- a/src/test/java/it/unibz/inf/isochrone/network/ComparisonTest.java
+++ b/src/test/java/it/unibz/inf/isochrone/network/ComparisonTest.java
@@ -16,7 +16,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.SortedSet;
 import java.util.TreeSet;
 
 import org.slf4j.Logger;
@@ -75,17 +74,32 @@ public final class ComparisonTest {
 
 	@Test
 	public void testDijkstraMineX() {
-		runForAllDatasets(MDijkstra.class, MineX.class);
+		runForAllDatasets(MDijkstra.class, MineX.class, false);
+	}
+
+	@Test
+	public void testDijkstraMineXExpiring() {
+		runForAllDatasets(MDijkstra.class, MineX.class, true);
 	}
 
 	@Test
 	public void testDijkstraMrneX() {
-		runForAllDatasets(MDijkstra.class, MrneX.class);
+		runForAllDatasets(MDijkstra.class, MrneX.class, false);
+	}
+
+	@Test
+	public void testDijkstraMrneXExpiring() {
+		runForAllDatasets(MDijkstra.class, MrneX.class, true);
 	}
 
 	@Test
 	public void testMineXMrneX() {
-		runForAllDatasets(MineX.class, MrneX.class);
+		runForAllDatasets(MineX.class, MrneX.class, false);
+	}
+
+	@Test
+	public void testMineXMrneXExpiring() {
+		runForAllDatasets(MineX.class, MrneX.class, true);
 	}
 
 	// Private static methods
@@ -147,7 +161,7 @@ public final class ComparisonTest {
 		}
 	}
 
-	private static void runForAllDatasets(final Class<? extends Isochrone> clazz1, final Class<? extends Isochrone> clazz2) {
+	private static void runForAllDatasets(final Class<? extends Isochrone> clazz1, final Class<? extends Isochrone> clazz2, final boolean expireNodes) {
 		final String n1 = clazz1.getSimpleName();
 		final String n2 = clazz2.getSimpleName();
 		final Set<String> datasetNames = datasets.keySet();
@@ -157,22 +171,15 @@ public final class ComparisonTest {
 			final Collection<TestParameters> dsParams = datasets.get(dsName);
 			for (final TestParameters params : dsParams) {
 				LOGGER.debug(" - comparing for isochrone duration: " + params.getDuration());
-				final MemoryOutput o1 = AlgorithmHelper.run(clazz1, params).getOutput();
-				final MemoryOutput o2 = AlgorithmHelper.run(clazz2, params).getOutput();
-				Assert.assertEquals(getIds(o1.getNodes()), getIds(o2.getNodes()),  "Nodes for class \"" + n1 + "\"" + " != nodes for class \"" + n2 + "\"");
-				Assert.assertEquals(getIds(o1.getLinks()), getIds(o2.getLinks()),  "Links for class \"" + n1 + "\"" + " != links for class \"" + n2 + "\"");
+				final MemoryOutput o1 = AlgorithmHelper.run(clazz1, params, expireNodes).getOutput();
+				final MemoryOutput o2 = AlgorithmHelper.run(clazz2, params, expireNodes).getOutput();
+				final Collection<Integer> l1 = AlgorithmHelper.getDistinctIds(o1.getLinks());
+				final Collection<Integer> l2 = AlgorithmHelper.getDistinctIds(o2.getLinks());
+				Assert.assertEquals(l1, l2,  "Links for class \"" + n1 + "\"" + " != links for class \"" + n2 + "\"");
 			}
 			LOGGER.info("-----------------------------");
 		}
 	}
 
-	private static Collection<Integer> getIds(final Collection<? extends NetworkEntity> l1) {
-		final SortedSet<Integer> i1 = new TreeSet<>();
-		for (final NetworkEntity l : l1) {
-			i1.add(l.getId());
-		}
-
-		return i1;
-	}
 }
 
diff --git a/src/test/java/it/unibz/inf/isochrone/network/ExpirationTest.java b/src/test/java/it/unibz/inf/isochrone/network/ExpirationTest.java
index 8ae5d95e..d21771f1 100644
--- a/src/test/java/it/unibz/inf/isochrone/network/ExpirationTest.java
+++ b/src/test/java/it/unibz/inf/isochrone/network/ExpirationTest.java
@@ -8,6 +8,7 @@ import it.unibz.inf.isochrone.config.ConfigDataset;
 import it.unibz.inf.isochrone.network.AlgorithmHelper.AlgorithmResult;
 
 import java.util.Calendar;
+import java.util.Collection;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,12 +62,20 @@ public class ExpirationTest {
 		final AlgorithmResult result = AlgorithmHelper.run(algorithmClass, TEST_PARAMETER, expireNodes);
 		final long runTime = Calendar.getInstance().getTimeInMillis() - startTime;
 		final int nrNodesMemory = result.getAlgorithm().getNodes().size();
-		final int nrNodesOutput = result.getOutput().getNodes().size();
-		final int nrLinksOutput = result.getOutput().getLinks().size();
-		LOGGER.info(" - runtime: \"" + TEST_PARAMETER.getDuration() + "\": " + runTime + "msec");
-		LOGGER.info(" - nodes (in memory): \"" + nrNodesMemory + "");
-		LOGGER.info(" - nodes (in output): \"" + nrNodesOutput + "");
-		LOGGER.info(" - links: \"" + nrLinksOutput + "");
+
+		final Collection<Node> nodes = result.getOutput().getNodes();
+		final Collection<Link> links = result.getOutput().getLinks();
+		final int nrNodesDistinct = AlgorithmHelper.getDistinctIds(nodes).size();
+		final int nrLinksDistinct = AlgorithmHelper.getDistinctIds(links).size();
+		final int nrNodes = nodes.size();
+		final int nrLinks = links.size();
+
+		LOGGER.info(" - runtime \"" + TEST_PARAMETER.getDuration() + "\": " + runTime + "msec");
+		LOGGER.info(" - nodes (in memory): " + nrNodesMemory);
+		LOGGER.info(" - nodes (in output): " + nrNodes);
+		LOGGER.info(" - nodes (in output; distinct): " + nrNodesDistinct);
+		LOGGER.info(" - links (in output): " + nrLinks);
+		LOGGER.info(" - links (in output; distinct): " + nrLinksDistinct);
 		LOGGER.info("-----------------------------");
 
 		return nrNodesMemory;
-- 
GitLab