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 f21df3cd165c44507ca3c98b4bb63d1172785fcb..62eb2458e7611abac6c6d21c61b4af34261cb370 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 862c02f34436b7e7f59ba220159274b7ec898c98..d55494e24e7617fe87c8c499f5a0e1ff7bd6e9f1 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 8ae5d95e42e7948856cae7e733b67b485c93a425..d21771f1e6c6f31325a03e4b6a9e291cc88e0183 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;