Skip to content
Snippets Groups Projects
Commit 9578a001 authored by User expired's avatar User expired
Browse files

added initialization tasks (find ConfigDatasets) into setup method of

tests
improved test logging (added start markers for each class)
parent e2c4dd7b
No related branches found
No related tags found
No related merge requests found
...@@ -2,15 +2,25 @@ package it.unibz.inf.isochrone.config; ...@@ -2,15 +2,25 @@ package it.unibz.inf.isochrone.config;
import java.util.Collection; import java.util.Collection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class ConfigDatasetTest { public class ConfigDatasetTest {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigDatasetTest.class);
private static final int EXPECTED_NUM_DATASETS = 4; private static final int EXPECTED_NUM_DATASETS = 4;
private static final int EXPECTED_NUM_DATASETS_FILTERED = 2; private static final int EXPECTED_NUM_DATASETS_FILTERED = 2;
private static final String[] EXPECTED_DATASETS = new String[] {"bz", "it", "sf", "st"}; private static final String[] EXPECTED_DATASETS = new String[] {"bz", "it", "sf", "st"};
private static final String[] EXPECTED_DATASETS_FILTERED = new String[] {"bz"}; private static final String[] EXPECTED_DATASETS_FILTERED = new String[] {"bz"};
@BeforeClass
public void setup() {
LOGGER.info("Starting test(s) in class \"" + ConfigDatasetTest.class.getSimpleName() + "\"");
LOGGER.info("-----------------------------");
}
@Test @Test
public void testDatasetCount() { public void testDatasetCount() {
final Collection<String> datasetCollection = ConfigDataset.getAvailableDatasets(false); final Collection<String> datasetCollection = ConfigDataset.getAvailableDatasets(false);
......
package it.unibz.inf.isochrone.config; package it.unibz.inf.isochrone.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
...@@ -9,6 +11,7 @@ import org.testng.annotations.Test; ...@@ -9,6 +11,7 @@ import org.testng.annotations.Test;
* @version 3 * @version 3
*/ */
public class ConfigIsochroneTest { public class ConfigIsochroneTest {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigIsochroneTest.class);
private static final int EXPECTED_MAX_CONNECTION = 50; private static final int EXPECTED_MAX_CONNECTION = 50;
private static final int EXPECTED_BACTH_SIZE = 250; private static final int EXPECTED_BACTH_SIZE = 250;
private static final int EXPECTED_PORT = 5432; private static final int EXPECTED_PORT = 5432;
...@@ -16,7 +19,9 @@ public class ConfigIsochroneTest { ...@@ -16,7 +19,9 @@ public class ConfigIsochroneTest {
@BeforeClass @BeforeClass
public void initConfiguration() { public void initConfiguration() {
LOGGER.info("Starting test(s) in class \"" + ConfigIsochroneTest.class.getSimpleName() + "\"");
config = ConfigIsochrone.getInstance(); config = ConfigIsochrone.getInstance();
LOGGER.info("-----------------------------");
}; };
@Test @Test
......
...@@ -12,16 +12,19 @@ import java.util.LinkedHashMap; ...@@ -12,16 +12,19 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class DatabaseTest { public class DatabaseTest {
private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseTest.class);
private static final int EXPECTED_LINK_COUNT = 7287; private static final int EXPECTED_LINK_COUNT = 7287;
private static final int EXPECTED_NODE_COUNT = 2687; private static final int EXPECTED_NODE_COUNT = 2687;
private static final int LINK_ID = 1846; private static final int LINK_ID = 1846;
private static final int NODE_ID = 5013; private static final int NODE_ID = 5013;
private static final String TEST_DATASET = "bz"; private static final String TEST_DATASET = "bz";
/** /**
* Private inner class that reads the network on initialization and encapsulated the database object for easier use. * Private inner class that reads the network on initialization and encapsulated the database object for easier use.
*/ */
...@@ -44,6 +47,14 @@ public class DatabaseTest { ...@@ -44,6 +47,14 @@ public class DatabaseTest {
} }
} }
@BeforeClass
public void setup() {
LOGGER.info("Starting test(s) in class \"" + DatabaseTest.class.getSimpleName() + "\"");
LOGGER.info("-----------------------------");
}
// Public methods
@Test @Test
public void testCreateDatabaseObject() { public void testCreateDatabaseObject() {
final ConfigDataset config = ConfigDataset.getInstance(TEST_DATASET); final ConfigDataset config = ConfigDataset.getInstance(TEST_DATASET);
......
...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; ...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone;
import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MDijkstra;
import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MineX;
import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.algorithm.MrneX;
import it.unibz.inf.isochrone.config.ConfigDataset;
import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isochrone.util.EnumContainer.Direction;
import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.EnumContainer.Mode;
...@@ -110,8 +111,10 @@ public final class AlgorithmRuntimeTest { ...@@ -110,8 +111,10 @@ public final class AlgorithmRuntimeTest {
@BeforeClass(alwaysRun = true) @BeforeClass(alwaysRun = true)
public void initTimeAndParamSet() { public void initTimeAndParamSet() {
LOGGER.info("Starting test(s) in class \"" + AlgorithmRuntimeTest.class.getSimpleName() + "\"");
initTimeSet(); initTimeSet();
initDatasets(); initDatasets();
LOGGER.info("-----------------------------");
} }
// Public methods // Public methods
...@@ -164,6 +167,9 @@ public final class AlgorithmRuntimeTest { ...@@ -164,6 +167,9 @@ public final class AlgorithmRuntimeTest {
final Collection<String> datasetNames = datasetParams.keySet(); final Collection<String> datasetNames = datasetParams.keySet();
for (final String dsName : datasetNames) { for (final String dsName : datasetNames) {
addDataset(dsName); addDataset(dsName);
// loads dataset configurations (we do this before testing, so timings are correct)
ConfigDataset.getInstance(dsName);
} }
} }
......
...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; ...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone;
import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MDijkstra;
import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MineX;
import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.algorithm.MrneX;
import it.unibz.inf.isochrone.config.ConfigDataset;
import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isochrone.util.EnumContainer.Direction;
import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.EnumContainer.Mode;
...@@ -12,6 +13,7 @@ import java.util.GregorianCalendar; ...@@ -12,6 +13,7 @@ import java.util.GregorianCalendar;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class AlgorithmTest { public class AlgorithmTest {
...@@ -25,6 +27,18 @@ public class AlgorithmTest { ...@@ -25,6 +27,18 @@ public class AlgorithmTest {
private static final Mode MODE = Mode.MULTIMODAL; private static final Mode MODE = Mode.MULTIMODAL;
private static final Direction DIRECTION = Direction.INCOMING; private static final Direction DIRECTION = Direction.INCOMING;
private static final TestParameters PARAM_DEFAULT = new TestParameters();
private static final TestParameters PARAM_LOCAL = new TestParameters(WALKING_SPEED, DURATION, TIME, MODE, STARTNODE_ID, DATASET, DIRECTION);
@BeforeClass
public void setup() {
LOGGER.info("Starting test(s) in class \"" + AlgorithmTest.class.getSimpleName() + "\"");
// loads dataset configurations (we do this before testing, so timings are correct)
ConfigDataset.getInstance(PARAM_DEFAULT.getDataset());
ConfigDataset.getInstance(PARAM_LOCAL.getDataset());
LOGGER.info("-----------------------------");
}
// Public methods // Public methods
@Test @Test
...@@ -59,20 +73,12 @@ public class AlgorithmTest { ...@@ -59,20 +73,12 @@ public class AlgorithmTest {
// Private static methods // Private static methods
private static TestParameters getParamsDefault() {
return new TestParameters();
}
private static TestParameters getParamsLocal() {
return new TestParameters(WALKING_SPEED, DURATION, TIME, MODE, STARTNODE_ID, DATASET, DIRECTION);
}
private static void runDefault(final Class<? extends Isochrone> algorithmClass) { private static void runDefault(final Class<? extends Isochrone> algorithmClass) {
runDefault(algorithmClass, true); runDefault(algorithmClass, true);
} }
private static void runDefault(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) { private static void runDefault(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) {
run(algorithmClass, getParamsDefault(), expireNodes); run(algorithmClass, PARAM_DEFAULT, expireNodes);
} }
private static void runLocal(final Class<? extends Isochrone> algorithmClass) { private static void runLocal(final Class<? extends Isochrone> algorithmClass) {
...@@ -80,7 +86,7 @@ public class AlgorithmTest { ...@@ -80,7 +86,7 @@ public class AlgorithmTest {
} }
private static void runLocal(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) { private static void runLocal(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) {
run(algorithmClass, getParamsLocal(), expireNodes); run(algorithmClass, PARAM_LOCAL, expireNodes);
} }
private static void run(final Class<? extends Isochrone> algorithmClass, final TestParameters params, final boolean expireNodes) { private static void run(final Class<? extends Isochrone> algorithmClass, final TestParameters params, final boolean expireNodes) {
......
...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; ...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone;
import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MDijkstra;
import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MineX;
import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.algorithm.MrneX;
import it.unibz.inf.isochrone.config.ConfigDataset;
import it.unibz.inf.isochrone.util.EnumContainer.Direction; import it.unibz.inf.isochrone.util.EnumContainer.Direction;
import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.EnumContainer.Mode;
...@@ -63,8 +64,10 @@ public final class ComparisonTest { ...@@ -63,8 +64,10 @@ public final class ComparisonTest {
@BeforeClass(alwaysRun = true) @BeforeClass(alwaysRun = true)
public void initTimeAndParamSet() { public void initTimeAndParamSet() {
LOGGER.info("Starting test(s) in class \"" + ComparisonTest.class.getSimpleName() + "\"");
initTimeSet(); initTimeSet();
initDatasets(); initDatasets();
LOGGER.info("-----------------------------");
} }
// Public methods // Public methods
...@@ -117,6 +120,9 @@ public final class ComparisonTest { ...@@ -117,6 +120,9 @@ public final class ComparisonTest {
final Collection<String> datasetNames = datasetParams.keySet(); final Collection<String> datasetNames = datasetParams.keySet();
for (final String dsName : datasetNames) { for (final String dsName : datasetNames) {
addDataset(dsName); addDataset(dsName);
// loads dataset configurations (we do this before testing, so timings are correct)
ConfigDataset.getInstance(dsName);
} }
} }
......
...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone; ...@@ -4,6 +4,7 @@ import it.unibz.inf.isochrone.algorithm.Isochrone;
import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MDijkstra;
import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MineX;
import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.algorithm.MrneX;
import it.unibz.inf.isochrone.config.ConfigDataset;
import it.unibz.inf.isochrone.network.AlgorithmHelper.AlgorithmResult; import it.unibz.inf.isochrone.network.AlgorithmHelper.AlgorithmResult;
import java.util.Calendar; import java.util.Calendar;
...@@ -11,10 +12,20 @@ import java.util.Calendar; ...@@ -11,10 +12,20 @@ import java.util.Calendar;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class ExpirationTest { public class ExpirationTest {
private static final Logger LOGGER = LoggerFactory.getLogger(ExpirationTest.class); private static final Logger LOGGER = LoggerFactory.getLogger(ExpirationTest.class);
private static final TestParameters TEST_PARAMETER = new TestParameters();;
@BeforeClass
public void setup() {
LOGGER.info("Starting test(s) in class \"" + ExpirationTest.class.getSimpleName() + "\"");
// loads dataset configurations (we do this before testing, so timings are correct)
ConfigDataset.getInstance(TEST_PARAMETER.getDataset());
LOGGER.info("-----------------------------");
}
// Public methods // Public methods
...@@ -46,15 +57,16 @@ public class ExpirationTest { ...@@ -46,15 +57,16 @@ public class ExpirationTest {
private static int run(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) { private static int run(final Class<? extends Isochrone> algorithmClass, final boolean expireNodes) {
LOGGER.info("Executing \"" + algorithmClass.getSimpleName() + "\"" + ((expireNodes) ? " (with node expiration)" : "")); LOGGER.info("Executing \"" + algorithmClass.getSimpleName() + "\"" + ((expireNodes) ? " (with node expiration)" : ""));
final TestParameters params = new TestParameters();
final long startTime = Calendar.getInstance().getTimeInMillis(); final long startTime = Calendar.getInstance().getTimeInMillis();
final AlgorithmResult result = AlgorithmHelper.run(algorithmClass, params, expireNodes); final AlgorithmResult result = AlgorithmHelper.run(algorithmClass, TEST_PARAMETER, expireNodes);
final long runTime = Calendar.getInstance().getTimeInMillis() - startTime; final long runTime = Calendar.getInstance().getTimeInMillis() - startTime;
final int nrNodesMemory = result.getAlgorithm().getNodes().size(); final int nrNodesMemory = result.getAlgorithm().getNodes().size();
final int nrNodesOutput = result.getOutput().getNodes().size(); final int nrNodesOutput = result.getOutput().getNodes().size();
LOGGER.info(" - runtime: \"" + params.getDuration() + "\": " + runTime + "msec"); 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 memory): \"" + nrNodesMemory + "");
LOGGER.info(" - nodes (in output): \"" + nrNodesOutput + ""); LOGGER.info(" - nodes (in output): \"" + nrNodesOutput + "");
LOGGER.info(" - links: \"" + nrLinksOutput + "");
LOGGER.info("-----------------------------"); LOGGER.info("-----------------------------");
return nrNodesMemory; return nrNodesMemory;
......
...@@ -7,8 +7,7 @@ import java.util.Calendar; ...@@ -7,8 +7,7 @@ import java.util.Calendar;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
/** /**
* Parameters for which the isochrone shall be computed in the * Parameters for which the isochrones are computed in the performance tests.
* performance tests.
*/ */
final class TestParameters { final class TestParameters {
private static final double DEFAULT_WALKING_SPEED = 1.0d; private static final double DEFAULT_WALKING_SPEED = 1.0d;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment