From dc1fdbf6c9e4f867149f9cf25a34878651fe5654 Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Wed, 25 Jun 2014 07:27:02 +0200
Subject: [PATCH] added @Before to all PerformanceTests

---
 ...odCallThoughputTimestampAnalysis1Test.java |  14 ++-----
 ...odCallThoughputTimestampAnalysis2Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis3Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis4Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis5Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis6Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis7Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis8Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis12Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis13Test.java |  15 ++------
 ...odCallThoughputTimestampAnalysis9Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis10Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis11Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis14Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis15Test.java |  15 ++------
 ...dCallThoughputTimestampAnalysis16Test.java |  14 +++----
 ...dCallThoughputTimestampAnalysis17Test.java |  10 ++---
 src/test/java/test/PerformanceTest.java       |  36 ++++++++++++++++++
 variants.xlsx                                 | Bin 0 -> 9824 bytes
 19 files changed, 93 insertions(+), 191 deletions(-)
 create mode 100644 variants.xlsx

diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
index aa1b32a..940e090 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment01;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -40,12 +35,10 @@ public class MethodCallThoughputTimestampAnalysis1Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis1 analysis = new MethodCallThroughputAnalysis1();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -54,14 +47,13 @@ public class MethodCallThoughputTimestampAnalysis1Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
 
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
index 08bb696..59743fc 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment02/MethodCallThoughputTimestampAnalysis2Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment02;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -40,12 +35,10 @@ public class MethodCallThoughputTimestampAnalysis2Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis2 analysis = new MethodCallThroughputAnalysis2();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -54,14 +47,12 @@ public class MethodCallThoughputTimestampAnalysis2Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
index 6502093..0bfc820 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment03/MethodCallThoughputTimestampAnalysis3Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment03;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -40,12 +35,10 @@ public class MethodCallThoughputTimestampAnalysis3Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis3 analysis = new MethodCallThroughputAnalysis3();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -54,14 +47,12 @@ public class MethodCallThoughputTimestampAnalysis3Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
index a1adcac..ba5f809 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment04/MethodCallThoughputTimestampAnalysis4Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment04;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -40,12 +35,10 @@ public class MethodCallThoughputTimestampAnalysis4Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis4 analysis = new MethodCallThroughputAnalysis4();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -54,14 +47,12 @@ public class MethodCallThoughputTimestampAnalysis4Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
index 63e5c16..22c2ec2 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment05/MethodCallThoughputTimestampAnalysis5Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment05;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -40,12 +35,10 @@ public class MethodCallThoughputTimestampAnalysis5Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis5 analysis = new MethodCallThroughputAnalysis5();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -54,14 +47,12 @@ public class MethodCallThoughputTimestampAnalysis5Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
index 126742c..fa2150d 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment06/MethodCallThoughputTimestampAnalysis6Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment06;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis6Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis6 analysis = new MethodCallThroughputAnalysis6();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis6Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
index 050d96d..7ced7c1 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment07/MethodCallThoughputTimestampAnalysis7Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment07;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis7Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis7 analysis = new MethodCallThroughputAnalysis7();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis7Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
index 8ab1b3d..e2de139 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment08/MethodCallThoughputTimestampAnalysis8Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment08;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis8Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis8 analysis = new MethodCallThroughputAnalysis8();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis8Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
index c6fe784..86e662f 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment12/MethodCallThoughputTimestampAnalysis12Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment12;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis12Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis12 analysis = new MethodCallThroughputAnalysis12();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis12Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
index 05449af..246a968 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment13/MethodCallThoughputTimestampAnalysis13Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment13;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis13Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis13 analysis = new MethodCallThroughputAnalysis13();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis13Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
index 431e589..ba57740 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcallWithPorts.examples.experiment09;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest {
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis9 analysis = new MethodCallThroughputAnalysis9();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest {
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
index d7a804a..0024fa1 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcallWithPorts.examples.experiment10;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis10Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis10 analysis = new MethodCallThroughputAnalysis10();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis10Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
index 4cd04b3..c9dc164 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment11/MethodCallThoughputTimestampAnalysis11Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcallWithPorts.examples.experiment11;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis11Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis11 analysis = new MethodCallThroughputAnalysis11();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis11Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
index 18a9e2a..6a49130 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment14/MethodCallThoughputTimestampAnalysis14Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcallWithPorts.examples.experiment14;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis14Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis14 analysis = new MethodCallThroughputAnalysis14();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis14Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
index 0d0149f..d6a5f58 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment15/MethodCallThoughputTimestampAnalysis15Test.java
@@ -15,14 +15,9 @@
  ***************************************************************************/
 package teetime.variant.methodcallWithPorts.examples.experiment15;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
-import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,12 +32,10 @@ public class MethodCallThoughputTimestampAnalysis15Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
-		final List<TimestampObject> timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
 
 		final MethodCallThroughputAnalysis15 analysis = new MethodCallThroughputAnalysis15();
 		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(timestampObjects);
+		analysis.setTimestampObjects(this.timestampObjects);
 		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
 			@Override
 			public TimestampObject create() {
@@ -51,14 +44,12 @@ public class MethodCallThoughputTimestampAnalysis15Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 		}
-
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
index 24938af..da53b65 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
@@ -22,7 +22,6 @@ import org.junit.Test;
 import teetime.util.ConstructorClosure;
 import teetime.util.ListUtil;
 import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -44,7 +43,6 @@ public class MethodCallThoughputTimestampAnalysis16Test extends PerformanceTest
 	private long performAnalysis(final int numThreads, final long durationWith1Thread) {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
 
 		final MethodCallThroughputAnalysis16 analysis = new MethodCallThroughputAnalysis16();
 		analysis.setNumWorkerThreads(numThreads);
@@ -57,23 +55,25 @@ public class MethodCallThoughputTimestampAnalysis16Test extends PerformanceTest
 		});
 		analysis.init();
 
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 			analysis.onTerminate();
 		}
 
+		// TODO refactor test
+
 		List<TimestampObject> timestampObjects = ListUtil.merge(analysis.getTimestampObjectsList());
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
+		StatisticsUtil.printStatistics(this.stopWatch.getDurationInNs(), timestampObjects);
 
 		if (durationWith1Thread != -1) {
-			double speedup = (double) durationWith1Thread / stopWatch.getDurationInNs();
+			double speedup = (double) durationWith1Thread / this.stopWatch.getDurationInNs();
 			System.out.println("Speedup (from 1 to " + numThreads + " threads): " + String.format("%.2f", speedup));
 		}
 
-		return stopWatch.getDurationInNs();
+		return this.stopWatch.getDurationInNs();
 	}
 
 	public static void main(final String[] args) {
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
index 315b3b5..a861ed3 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
@@ -22,7 +22,6 @@ import org.junit.Test;
 import teetime.util.ConstructorClosure;
 import teetime.util.ListUtil;
 import teetime.util.StatisticsUtil;
-import teetime.util.StopWatch;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 import test.PerformanceTest;
 
@@ -37,7 +36,6 @@ public class MethodCallThoughputTimestampAnalysis17Test extends PerformanceTest
 	public void testWithManyObjects() {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
-		final StopWatch stopWatch = new StopWatch();
 
 		// int count = 10;
 		// while (count-- > 0) {
@@ -52,16 +50,18 @@ public class MethodCallThoughputTimestampAnalysis17Test extends PerformanceTest
 		analysis.init();
 
 		System.out.println("starting");
-		stopWatch.start();
+		this.stopWatch.start();
 		try {
 			analysis.start();
 		} finally {
-			stopWatch.end();
+			this.stopWatch.end();
 			analysis.onTerminate();
 		}
 
+		// TODO refactor test
+
 		List<TimestampObject> timestampObjects = ListUtil.merge(analysis.getTimestampObjectsList());
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
+		StatisticsUtil.printStatistics(this.stopWatch.getDurationInNs(), timestampObjects);
 		// }
 	}
 }
diff --git a/src/test/java/test/PerformanceTest.java b/src/test/java/test/PerformanceTest.java
index c843102..910053b 100644
--- a/src/test/java/test/PerformanceTest.java
+++ b/src/test/java/test/PerformanceTest.java
@@ -1,6 +1,18 @@
 package test;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+
+import teetime.util.StatisticsUtil;
+import teetime.util.StopWatch;
+import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
 
 import kieker.common.logging.LogFactory;
 
@@ -9,8 +21,32 @@ public abstract class PerformanceTest {
 	protected static final int NUM_OBJECTS_TO_CREATE = 100000;
 	protected static final int NUM_NOOP_FILTERS = 800;
 
+	private static MeasurementRepository measurementRepository = new MeasurementRepository();
+
+	private Description description;
+
+	protected StopWatch stopWatch;
+	protected List<TimestampObject> timestampObjects;
+
+	@Rule
+	public final TestRule watcher = new TestWatcher() {
+		@Override
+		protected void starting(final Description description) {
+			PerformanceTest.this.description = description;
+			// System.out.println("getDisplayName(): " + description.getDisplayName());
+		}
+	};
+
 	@Before
 	public void before() {
 		System.setProperty(LogFactory.CUSTOM_LOGGER_JVM, "NONE");
+		this.stopWatch = new StopWatch();
+		this.timestampObjects = new ArrayList<TimestampObject>(NUM_OBJECTS_TO_CREATE);
+	}
+
+	@After
+	public void after() {
+		PerformanceResult performanceResult = StatisticsUtil.printStatistics(this.stopWatch.getDurationInNs(), this.timestampObjects);
+		measurementRepository.performanceResults.put(this.description.getDisplayName(), performanceResult);
 	}
 }
diff --git a/variants.xlsx b/variants.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..2407d072a795b93f981e2ec67d2e0e02308b6107
GIT binary patch
literal 9824
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

literal 0
HcmV?d00001

-- 
GitLab