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 6027fc9c28b37a807a834b17a0ca9a049f011cee..35194a0cb4ec43d6ba0778116ad43bc9b29caa94 100644
--- a/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java
+++ b/src/test/java/it/unibz/inf/isochrone/network/RuntimeComplex.java
@@ -45,19 +45,24 @@ public final class RuntimeComplex {
 	private static final Calendar ST_TIME = new GregorianCalendar(2010, 6, 14, 10, 30, 0);
 	private static final int IT_NODE_ID = 21;
 	private static final Calendar IT_TIME = new GregorianCalendar(2011, 9, 20, 15, 0, 0);
-	private static final String XML_RUNTIME = "build/reports/tests/algorithm-runtimes.xml";
+	private static final String RESULTFILE_XML_RUNTIME = "build/reports/tests/algorithm-runtimes.xml";
+	private static final int MAX_RUNTIME = 18000; // 5 hours;
+	private static final int RUNTIME_POINTS_PER_OFFSET = 12;
+	private static final int[] RUNTIME_OFFSETS = {
+		60,		// 1 minute (in sec)
+		3600,	// 1 hour (in sec)
+		86400	// 1 day (in sec)
+	};
 	private static Map<Integer, TestParameters> datasets = new TreeMap<>();
 	private static Map<String, Map<String, Long>> runtimes = new HashMap<>();
 
 	// launcher for visualVM
 	public static void main(final String[] args) {
 		final RuntimeComplex o = new RuntimeComplex();
-//		addDatasets();
+//		addAllDatasets();
 
 		final Set<Integer> times = new HashSet<>();
-		// CHECKSTYLE:OFF MagicNumber
-		times.add(7200);
-		// CHECKSTYLE:ON MagicNumber
+		times.add(MAX_RUNTIME);
 		addDatasetBZ(times);
 
 		System.out.println("Starting profiling:");
@@ -79,11 +84,11 @@ public final class RuntimeComplex {
 	@AfterClass
 	public static void writeRuntimeXML() {
 		final Set<Entry<String, Map<String, Long>>> resultSet = runtimes.entrySet();
-		writeMapToXML(new File(XML_RUNTIME), resultSet, REPEAT_COUNT);
+		writeMapToXML(new File(RESULTFILE_XML_RUNTIME), resultSet, REPEAT_COUNT);
 	}
 
 	@BeforeClass
-	public static void addDatasets() {
+	public static void addAllDatasets() {
 		final Set<Integer> times = getTimeSet();
 		addDatasetBZ(times);
 //		addDatasetIT(times);
@@ -141,18 +146,17 @@ public final class RuntimeComplex {
 
 	private static Set<Integer> getTimeSet() {
 		final Set<Integer> times = new TreeSet<Integer>();
-		// CHECKSTYLE:OFF MagicNumber
-		times.add(60);      // 1 minute
-		times.add(120);     // 2 minutes
-		times.add(240);	    // 4 minutes
-		times.add(480);     // 8 minutes
-		times.add(900);     // 15 minutes
-		times.add(1800);    // 30 minutes
-		times.add(3600);    // 1 hour
-		times.add(7200);    // 2 hours
-		times.add(14400);   // 4 hours
-		times.add(48000);   // 8 hours
-		// CHECKSTYLE:ON MagicNumber
+		for (int offset : RUNTIME_OFFSETS) {
+			int stepWidth = (offset / RUNTIME_POINTS_PER_OFFSET);
+			for (int i = stepWidth; i < offset; i += stepWidth) {
+				int runtime = Math.max(offset, offset * i);
+				if (runtime > MAX_RUNTIME) {
+					return times;
+				}
+
+				times.add(runtime);
+			}
+		}
 
 		return times;
 	}