diff --git a/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..6cddf3e3f7dd1558697f79ab671e88940ca80b5c --- /dev/null +++ b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmHelper.java @@ -0,0 +1,39 @@ +package it.unibz.inf.isochrone.network; + +import it.unibz.inf.isochrone.algorithm.Isochrone; +import it.unibz.inf.isochrone.config.ConfigDataset; +import it.unibz.inf.isochrone.util.Query; + +import java.lang.reflect.InvocationTargetException; + +import org.testng.Assert; + +final class AlgorithmHelper { + + // Constructor + + private AlgorithmHelper() { + } + + // Public static methods + + public static void run(final Class<? extends Isochrone> algorithmClass, final TestParameters params) { + run(algorithmClass, params, true); + } + + public static void run(final Class<? extends Isochrone> algorithmClass, final TestParameters params, final boolean expireNodes) { + Query query = new Query(params.getDirection(), params.getWalkingSpeed(), params.getRuntime(), params.getDate(), expireNodes, params.getMode()); + query.setNodes(params.getNodeId()); + + Isochrone algorithm = null; + try { + algorithm = algorithmClass.getConstructor(ConfigDataset.class, Query.class).newInstance(params.getDataset(), query); + } catch (final InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { + Assert.fail(e.getMessage()); + } + + algorithm.compute(); + } + + +} diff --git a/src/test/java/it/unibz/inf/isochrone/network/AlgorithmTest.java b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmTest.java index c97ec44aa995051fc5b84b69eed75b4c676a9606..563dfc5ccc113a22f56a8b0d13ffb78cc63ad8d3 100644 --- a/src/test/java/it/unibz/inf/isochrone/network/AlgorithmTest.java +++ b/src/test/java/it/unibz/inf/isochrone/network/AlgorithmTest.java @@ -1,20 +1,15 @@ package it.unibz.inf.isochrone.network; -import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; -import it.unibz.inf.isochrone.config.ConfigDataset; import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isochrone.util.EnumContainer.Mode; -import it.unibz.inf.isochrone.util.Query; -import java.lang.reflect.InvocationTargetException; import java.util.Calendar; import java.util.GregorianCalendar; -import org.testng.Assert; import org.testng.annotations.Test; public class AlgorithmTest { @@ -26,37 +21,23 @@ public class AlgorithmTest { @Test public void testMDijkstra() { - run(MDijkstra.class, false); + AlgorithmHelper.run(MDijkstra.class, getParams(), false); } @Test public void testMineX() { - run(MineX.class); + AlgorithmHelper.run(MineX.class, getParams()); } @Test public void testMrneX() { - run(MrneX.class); + AlgorithmHelper.run(MrneX.class, getParams()); } // Private methods - private static void run(final Class<? extends Isochrone> algorithmClass) { - run(algorithmClass, true); - } - - private static void run(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) { - final Query query = new Query(Direction.INCOMING, WALKING_SPEED, DURATION, TIME, expireNodes, Mode.MULTIMODAL); - query.setNodes(NODE_ID); - - Isochrone algorithm = null; - try { - algorithm = algorithmClass.getConstructor(ConfigDataset.class, Query.class).newInstance(ConfigDataset.getInstance(TEST_DATASET), query); - } catch (final InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - Assert.fail(e.getLocalizedMessage()); - } - - algorithm.compute(); + private static TestParameters getParams() { + return new TestParameters(WALKING_SPEED, DURATION, TIME, Mode.MULTIMODAL, NODE_ID, TEST_DATASET, Integer.MAX_VALUE, Direction.INCOMING); } } diff --git a/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java b/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java index b3e96a34722842adfd2f055b03c56fe56ec0be0a..7afdf0ba471664eb652f0c9385ce3487a35377b4 100644 --- a/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java +++ b/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java @@ -4,17 +4,14 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; -import it.unibz.inf.isochrone.config.ConfigDataset; import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isochrone.util.EnumContainer.Mode; -import it.unibz.inf.isochrone.util.Query; import java.io.BufferedWriter; import java.io.File; import java.io.IOException; import java.io.PrintWriter; -import java.lang.reflect.InvocationTargetException; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; @@ -27,7 +24,6 @@ import java.util.TreeSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -40,7 +36,6 @@ import org.testng.annotations.Test; */ public final class RuntimeComplex { private static final Logger LOGGER = LoggerFactory.getLogger(RuntimeComplex.class); - private static final Dataset TEST_DATASET = Dataset.BZ; private static final int REPEAT_COUNT = 5; private static final int BZ_NODE_ID = 2000500; private static final Calendar BZ_TIME = new GregorianCalendar(2011, 5, 10, 10, 10, 0); @@ -142,7 +137,7 @@ public final class RuntimeComplex { final Collection<TestParameters> allParams = datasets.values(); for (final TestParameters params : allParams) { long startTime = Calendar.getInstance().getTimeInMillis(); - runWithParams(clazz, params); + AlgorithmHelper.run(clazz, params); long runTime = Calendar.getInstance().getTimeInMillis() - startTime; LOGGER.debug(" - runtime \"" + params.getRuntime() + "\": " + runTime + "msec"); @@ -169,20 +164,6 @@ public final class RuntimeComplex { } } - private static void runWithParams(final Class<? extends Isochrone> algorithmClass, final TestParameters params) { - Query query = new Query(params.getDirection(), params.getWalkingSpeed(), params.getRuntime(), params.getDate(), true, params.getMode()); - query.setNodes(params.getNodeId()); - - Isochrone algorithm = null; - try { - algorithm = algorithmClass.getConstructor(ConfigDataset.class, Query.class).newInstance(ConfigDataset.getInstance(TEST_DATASET), query); - } catch (final InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - Assert.fail(e.getMessage()); - } - - algorithm.compute(); - } - private static void writeMapToXML(final File file, final Set<Entry<String, Map<String, Long>>> resultSet, final int repeatCount) { BufferedWriter fw = null; try { diff --git a/src/test/java/it/unibz/inf/isochrone/network/RuntimeSimple.java b/src/test/java/it/unibz/inf/isochrone/network/RuntimeSimple.java index 031194b4a1cc77c8ee7172af4af5df551547d614..5a2a9b4bc4c684fc75a097603799ff653688e665 100644 --- a/src/test/java/it/unibz/inf/isochrone/network/RuntimeSimple.java +++ b/src/test/java/it/unibz/inf/isochrone/network/RuntimeSimple.java @@ -4,16 +4,11 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; -import it.unibz.inf.isochrone.config.ConfigDataset; -import it.unibz.inf.isochrone.util.EnumContainer.Dataset; -import it.unibz.inf.isochrone.util.Query; -import java.lang.reflect.InvocationTargetException; import java.util.Calendar; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.Assert; import org.testng.annotations.Test; /** @@ -26,7 +21,6 @@ import org.testng.annotations.Test; */ public final class RuntimeSimple { private static final Logger LOGGER = LoggerFactory.getLogger(RuntimeSimple.class); - private static final Dataset TEST_DATASET = Dataset.BZ; @Test public void runMDijkstra() { @@ -49,24 +43,10 @@ public final class RuntimeSimple { LOGGER.info("Executing \"" + algorithmClass.getSimpleName() + "\""); final TestParameters params = new TestParameters(); long startTime = Calendar.getInstance().getTimeInMillis(); - runWithParams(algorithmClass, params); + AlgorithmHelper.run(algorithmClass, params); long runTime = Calendar.getInstance().getTimeInMillis() - startTime; LOGGER.info(" - runtime: \"" + params.getRuntime() + "\": " + runTime + "msec"); LOGGER.info("-----------------------------"); } - private static void runWithParams(final Class<? extends Isochrone> algorithmClass, final TestParameters params) { - Query query = new Query(params.getDirection(), params.getWalkingSpeed(), params.getRuntime(), params.getDate(), true, params.getMode()); - query.setNodes(params.getNodeId()); - - Isochrone algorithm = null; - try { - algorithm = algorithmClass.getConstructor(ConfigDataset.class, Query.class).newInstance(ConfigDataset.getInstance(TEST_DATASET), query); - } catch (final InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { - Assert.fail(e.getLocalizedMessage()); - } - - algorithm.compute(); - } - }