From 35142f0f712e39822b45113de8a930b68d68534b 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 aa1b32ab..940e090b 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 08bb6967..59743fcd 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 65020939..0bfc8205 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 a1adcac9..ba5f8095 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 63e5c16e..22c2ec2b 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 126742c2..fa2150df 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 050d96d4..7ced7c15 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 8ab1b3d8..e2de139f 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 c6fe784e..86e662f9 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 05449afb..246a968a 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 431e5896..ba57740c 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 d7a804aa..0024fa18 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 4cd04b30..c9dc1645 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 18a9e2a3..6a49130a 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 0d0149f1..d6a5f586 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 24938afa..da53b658 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 315b3b57..a861ed38 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 c8431028..910053b0 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 zcmWIWW@Zs#U}NB5U|>*WsL7cjmcz)vuz;0;L70JqDcU(duOv0EBtE3FAhkGFuOc@` zVG#?H#sUT=hEXu0L*UGmSntCIB5m(k|2v;tYjRVq<HWAmAB8KKpYwN|eJM3fO;LUJ z?fu_PemgA5<6*D5eBs%g@3oUm-WTl2^4ZqXaO-B%*UJ9X1n=cr=8C?_{WazOCZ5Gx zyrj|>CS*I9$;HO;EYIej5xD(m(^bP?)`}a}ESz{^F1xq!RPNrMFH&iTP8aE=E3oao z*Q+tNHz8Rrn%7Lq&OudNEv;Ys*B(XAgbAtNXCJz@I^k0FVsFXL5S_KZo=wV^wJ2RC zwPx#a?L!HRE-#$>^Jc>B?@rOeTbgo|oNK1>CU#5}l-E0Rf9~whhm~ZftXoyWd1`8R zTUo<meg)BM3>yt?diPAc^==3MkL5`snJ?x`E{Tm7vYVLv!QW!t{|@C#|M`_{>+4lK zpPgV#h><>EyuM7i>dek*j90RGrii4o|5#Pq(fsbBibekv4MxBFt+6Rv?(S4q<On=$ zXR=H0{=JEpUX&cp-!6Y^Pw)b(J+7y&UsPvcVEF%^nE^GEZVfe1{>s3>;KRhgz|FwH z6kn8@Q>?ECB1bdlh|ZI6&-Y9^?|0aM=h%CXJ<d;lzsmFASh#ezkH>Ds5V->?@8q}k zE>>~){;h?%$t(Hx#c$8g+ehDf_bf9+UM5N3@9-`S$Bo8G)z`Bs*3J*(Uy!7fo+)x% zs!t{{{O-M+_=+V{W+z?$y<$^$x74mFf0UC<Wc@|BKfWniI?*8TRAR=($&xEl?@W1W z+qPdWK-cE#!7L8;YW7ujzifVP+HT^TU!ni3Hfg$FkHb7+>(gaVozu8ip1-|fmeXm^ zX3@`cE(@Ogt(43>PwiHW|Cj&UEDDvpJ1=-V_-u2(tJvZ7>qfo#87qJ6J!kW1dCNoJ zlpl!)kMf7aW6dS^IR9!eF)}b*VP;^EV&Gt`$kB&nl=A$d?4<nsY*1we%QTD{3m6#T zp*KPqdnTXH0w<d0z0DVE3n%5JPO;kC<G4QhJA+!_qYFpOrhQY-x1a31%i*NnLh)vm zKehH3mj8XY{QVJewye3K6I3-hwk%y8bz9?y#a=s`W`%3pF3sJ%BEg}_xv+kF{b9f2 zKQ7C@sx0bKWo^6pe#w$c3F|cr<#Oj-(fcwhSyJj{Y2`KEQ#QWajs9G1NLr@ZH?^r? zjhTX9bN{*j*}He;dDj#^P4Az!KH@~a__-7T%dS@!6trhVsT@D4)_Fu>{oyC(Z6~KE zY?3~l;%#u-H1WiXhO5@?Gn{s<$+{NTR2e1O)~?r9$Hmk8b<*F*v%bmrbLziK);wN* zt9{Phq>tR#%GszIo(oxw3=Ex23=I4X3=9=H`p9XgC&)Jckb%e@?XUI`_qv5AD|LBH zShY>d`=~>r*+=e;1#eE2as2tckA+ntYUSkn$A8w8f2t{5Wn$U%`P8f_#};=88SI>T z>P_&kz5gm^1wCpu2+GJ-SepK!WTLIzndsMi*4g|loIU=Tl1{eCXP&Eu9O}>EWixLr zoyu`zm+j}R%!;*~0$OJ)M0_Jurz{k2oB5l+U6*U>;n`<rbNTF;U~xfdK~4OsTbFa< zG<ausD=WSF<sGu(_Y%#EhuX_mGM$)Wmz*8FgICBaCV0P@*W+)gGQFCo*Qtf~DP%Kj zFM6f%$ym*`v&G58YR$zDALPze9{Rat_wClrffs&B`(B@PIZQJ1_LNU7hwb=dWfm^k z7N0wnM>R<G^6fXmSN8E}&UGuivT?KZFT0?cW%ivf|E@dAw}oxWP5<c`T-oNq5j&Rl zSog($_`}!#RrLJ-1O4wmM8tort;!LY#yvN=<?co9hjWhaWitD-=nXrzXjxj~UNeD> zfnljMsErDamXeIr+*ExqX$Z>JZzBEkrCmk#D}R)AtIkhWFOzaFU3FulbVksk8@jIw z_sG5Xv)#RUmZbVu-mUH`DlU#O6Lu6jI4li&6lCYSfTQcm`UA6P-u>!V<~zxZiSeuA z&AC6%{{DY&&&<7bj~$O(5EPvBX~)~E>#y0kB+c*7l-aV^`tZN0y!@W6j}6mo)N=Fv zmXs&IzFWTTv9IW)4uuH$)4q4UIW3)ZcB<&h!v@pBE1i;N%q|d2WL>WmA<13CQ=+_W zQ`G9U>s@9Xlj|yEN%_8EK~Pe@_Tt;g4mM#y{6BnnOhSVg<@{euDLvnGn#JnSnzxMo zhW2uk*iSk0c(V%Uu1~AGck0?#(LFQulCn<TI<#xw&!w*~u|9se>Y-*+;JGdL^0%ye z`{WC6!%Cxd*I$=bf1NXrG2uRY=vp1uS-t<<_D;U2)9@yFX4&>@YfNKm8vjLkJ_}oZ zIdfZ3q)s67rv6@`y2ab>-H0pwz?SmytkAxTH{X?Am)*k{`KOBW{{CxG`8z6@xg>j+ zt8OXF*grq$yrS^AGVO=b4EI+o{lLn#NReOvY|^3RttK~=YUX#_DVR)3bWL9JjB{p! zywi^E#S<4q6d#z)BA)hUg1)!&EXhgx7IbD+zgL&Il<4^W>gV@yw)I_cw)I7yKHNNc zSl(aG)~fPH^U|j}ca9bY#QgX)+yDQMSIS?0UtS+?_ivAse)o^~egA(vpKrIC&527_ zrRw9+$?@}TD?dI}-(UNC2h%>?4=Xt2FLij7%$8Z~EZ3NK%wXM<6cxQ~NfJq~)*Mj0 zuukD_@IvN2w#V0ST~}Q9@g3I+xzGc%H~;Qi(;RR{WbK0*?H-v2cF)%wc3sMtml?;( z&7WQva5m;l*AC~N{#6y_g>QCjGxuJQm*)8L#y)8w_cP3G$*s&n!mVFq<_iTayld+v zyZc>me8EX|uDgp@G-odLY%6)faw+MeUhe_@&suX2UhT{M_I?pxdT7-93CiM}oQ;vK zADj=#7~eZ$+`3q6lC#XlMF+oc;9A`xbEY-^$k!!I{_HJ<SEPmaE}pvhA2Z`Gu{m|z z&IebO{I;9zt{0?XwRX|Yc1wMw@*i8IA8D*S#Frr>w(<Q*%@z$e_L$Iv-*?Vd{3ZLR z;qlUU`@B0JzuU}xP*%!9Ntemx{27;4(R`tIN8Tr#Q=2hEi`n$<$}57s|5xQ0bCupM zs)*ip`<_`&Qs~Le)vF@(5C7%%{=zr!C_BrhMRV5VYk#@T_4e;`?Jt{R_WjwlN8@O~ z(o*N7*}0di+)rD-=S<C6@T}*J=j9sj8;!?mC9ZIvojCc4`$m-(_qnGI96ZR%G~3jp z;HzTjLxm%pChto9g*j8atR`qY6!Pmy+c9a|G3U?g-&Ag1>94e{#AD63pEvl{zkK-S zz{JUhL9EXrW*bIbW;u5{=WUdiNJ+J9TB+`pojb4gW-QaPx>GcDYv<XEGCuQGvo-HD zUAWcpf<WWc>kluik38JSZfta|Y`fj5J4t&AX6j8+l$(6TJ?j0Y{#VC5BiBq3xma~0 z;llFc#%sbJT)UKVzu|V}oRF035r_0X-<w^b+5Mn(dc&=kB`Jl5mXSSux8qjty!B;5 z|Kx4vjhl^Z+&C*@U*!pHX2_deqndML{>(FKr^WB(q;~D}3~2w&pZ$H(AwOA<mJsWR zHZzkmAyP~_*XFGGv)b3-b*g4SVDCBgqqo>t4%@4--ndw*JJY9Qeb+g?o{ZZ!uWy<1 zX{J(=KwtmGj<ZJ;*}lIHV68nCa%gJ%N{(NwdM~zYJv$|O&gCWAaov)0WRL4`7DnZj zcBReCdALmBsnLw>O%)5Gm%ee^*}Xa`=-;Fe&9;yKeMI-pKOlSLRz&rI_T7n%6VFZA zcD$9#GGw93lDc?@=LuQtF5EGn4w<ls-U*ofze(ohf3xR0ypyjLObKZ>acDYJx5UZu z1mhG{;o5Y8)yu1=tDX#UQd`9J=+u!eTP61v-csI}>(#s4oj6K^eJ>d$6fA#yzSiG3 zL*#|p@)`Mls;9rl&1SAIf1W&9a!S$b4Vf86zn?2TdwVb`eCzA8pK{*oYAsS1%MDXL z&6N;#gDWcY*8XK2;&-xgk7{M^xpk(6S$~>o+rd4GUJukbU)pc@ANbHX=}<)e3g<eG zt)d6Td3<>eu`T-5m1{FWZ$eoCOYdaaEeDr)MqXaFcJj8UZISUs%V&SKP0i80S^1~d zG5Pt~nWxX4JbK!sEGzN&wX&R*D-Uj79xT$PcGL5i#jzT7?Yi@i7XN<mLiR_VL9*AZ zgr@#bCTD(IgGz>z`IfVmM%Oc8tH4T^ojO{|$iT3WiGe`^(XJ@YNKGv%)(2BYpjxbF zlCS?^1D>|`9)H?3zMIP4pMA}@gYzIGr=s1t%vakkPTJvRbL^jO-g2f(dUxL3s7u=a zE$Qpixj$NF=(IWcZI0pMVAGbK<+N|_J^#EV9!s2;%Cc!Zk((5w>+dgS-81_N(}V;k zkJg;dT|0wLZh268YD4pZiBgNNAIZxJd8PCsOXHK@+^0XMe!9h0sc`0Ty+p+IYX_vx zUUOc+tkQJ($lvAH$}*Q!ewLqey>RneHMZL09ha=Ue=};entwj7mT+b1<DL7LiQnpZ zbI|fob+(e)8qMT6Rwh+8pMB1XOrF+#>J!V}H%d;iCvL9{Iek>&-0s%cU&-BZuZ0RP zv&*e^dRDv2>eOEOEp>g1u5iA)P<x{*Do*SDmZqqD*}rz@HobJMD=qseTy^j+^NnSy zdJnEA9;w_K?`))F@_%OGryCEWCa3Mb%xm-V#*GOr%~dCMO;eIHs61wtc>Q{u@g^6g zFN?2#(qvd~bN<}Y6@r;1zb@AGW&h+QGpdY7qiRq@)s5FnuKF`GFo<yD%vFY<sG1Yz zoBzl_VDI`Z{}n&&^_;`T)e*2Y<m$V`rC00b`95m6s&eia+pYTj$<l8mqNaRf>U@6o z^K5>9oBg%xRwuYyAFP<HD056>f$ur)Yio?Z{J#G9DhsRAq-6@C`5A3-D;&0WpP&D% z`krkk?@}X%Hn)@v<y7l#rHT0&zAh)CZ#67^66>q7r|h-I7FpHSvQ?`!Iv*E?2wzh; zZ1B3R;KQaA%i0G&w=L^6QITES!SXlha8zN+>d%TLrZ4AhdmDQ0wU|cOnxs#zlNT*G zmmYte_x*`gO*`fndVNyfUT3*@edN8ugWi%%u_-O{j@$Gu6Ex6$#@fsga;v#-n&hs- zn^ol&W*A=Q{B`(6+?RRGo?-TxuEn0*D}=d1{)Nx6*L)Bj(bX7~(XdEmXNvW%C80}a z91l2L-yVA`tNX;ei}iNzzOTsswwF81<$~(^f18~05`tg!Hcd;3_S|m4TPW2(d7|mx z2fy{FtTh*sNeEq@6}HDFV50LuhjfmF2@^hZeQUnIAZ^uWg@;dWx}<IM4)&g#-}>Zh z;IV_Zf2gwC|F|!`|8?LDwZ*eJ!xrgP#L3${{QqF4-{BOaL&~z}cBZGOyuM;9;3@XG z?>+O2s0(^gi_S63W4!%Z(RmG5HG9H|riQGyVjpd8IWm4~e!DOK@V?xe+f}cLHL|Q` zF1m1?u`1!{kwmXmOXH?3x7adYv@+NHGUJ{3${Q{(Ry-Z9(06n)&&yZd`_}k2mU4ti z`}rSXJR<3TY4;mx^=lU|Pu}O=&ouvqWMtH2orVb8;QQO&+}@zQeK~v7j`{QXr-l@! ztdRecd5wo@Rod2hQ@<!3nY^a$?1Re-4%BhQve{mfp8wUkGeD*;zdzS=&)F;H`2`$Y zZ`vDV*S=(G*l}jp<OII%^b*@goU``1Phk4pl$SHZjbCBTyvv7QOU{k(@Bbz8#rVs@ zqKrvAj@%Z8%f0w#bg%s>^{n@C?|t)CqE^lqeuX7GO6!_0VETz|JC7OjCFz&zc<eSx zRUPgWwQ~M@a?&2d$PKgNz`TN{7_ED+culq1gl8XoB)I!yN>E~+_Or>iCz<|r+hv;V z5^z!I$`M72@@K~u&R5O<s%5Z#M@#qNkGag-{kiTxuxK%vI_LD`?p=a6f4_NTk9E*x z)}od<Ul<t}8d(?^L?BgLaYkZMYD#cPQD$CxF(?D}g!uMfHW1jW{88S`PGLgX>~~5R zvOG7pd)={Mv_H_BE**TFZ(iZ$f7Qn_yTi_j6?RVfSyA`-+0Cz)7nW~0?qT+0>aJ)V z(FOU<8|!ul+1J<XtqpKkv-hH2Ma)X&NmW_*_O0xcSaSWcSLvC<$)SO_6W3=7vVECU z$+z*k&i=yaivoetuLO3MU;SJ3bLXqAU%75guvvfQxHap^+xI!IFF){C{pyvJ*|TPs ze$eHM3BPkClyB~#`%g_K&-tKZe1F33gs8VMGha?lwzg=QP~pMj+~E`6y=H&ZXYG?; zWcm%F-Z^wT1sdn|t6saYke$!r#o3=1HmUftM_sTIdFng!+`|WV1MMQ7sjxg&(yRE$ z&lMcV`eK9oc^1XANAFAQYYs{{>p1?G%b4%K#oagIuicvhH@`Ch+kOYQ9Xq$}u1cw@ z+byL4@kz!TCRXy_P@DJopF4Mj%^4d-qeasWtL=RF*KNDCp<H0sk3=`^BX@NTUtQOE za=7<H@-dEMr;6UXW%y|)`C3n!v!i+&|HQ{^U+f~BD;3q7xmqL+EJ*koCN}Ns**og4 zUP0O7w`6a`+05F$G&1k$(U>y5Z;|$q{XI4>-Z&mSAHJ5QF3|GSgPB)Wm-0!TW1T+D zr{c=Ar^}vBPq3D@{{Cc9nNt0sy=%(6VqUI$!kPIGYbsF@H?fRjW?)#%#lXM|O(i9j zIjP{}u_r7y`?i6=Kf4?C2EXQ6d0y7#+~z&`O27>_Maeg-b58fIi0e_=?s@#*Z@)>O zFD;8?N>vr`eqLQU@ABQqi(k7oKbWZDyR;+l{i1FrrJ~4yz@smoE4}3jT)->Fnie!c zVr{3}^^?#2Cz@ruJ@a<*VbE*oyLf3vl}wveyiniQ)-|0C=1W6lq;IU!y0TSi$AxPh zn>XBlTgPd+jH!}8dEWfTEy-UmT$vm5NlJQFpxfD7Kb;uQA1|Lefh(P7!MZBuIr%la z&o);36{~L5Im^0(J2mps9GOKjt&0V0R0B0zFFNW;CnjBCzixKuhvNzLiMPTh90=3y z{8Id(L(-#4!)H;9(Ml%fnT!d3N(Sn2$z76XMYd+CKAW<3?~Z&{y_sv}mOGr~a_&C7 z*mKdDti6KXp^-h8zFhjd=IU?eT|1<hf{$&>+_9y{ae_;MOq<5ULuwh<yGwa%SVQ`b zzy0Eu5ze)~`tRz`yjxPXY|vP>@^sN@o42>;7jJGqlXiY#0l&gz&rpY-@BK=Zy_DR% zm^*{FMBQ3G(ezLHC5aVNRkSqLEjhq5ZDIMROG3BUtW@06I7RoZY-kSV%$;C%Y^E4r ze{=CNMuz(j>@FXgTr)e_TP$e0@Udspo~-}m`Y$Y1L26!6arhAqwl3Z4XN8LH>(!q7 z!&X#rW(E7VwSpyg&T%~1vF_$C_ru1Eg3ME6Ow{)#ZV{Su!;Y1~uVnoa#hr!4>t3Hq zlHZ@c**%3Ly^Lq_(=TQd6GG>ul(cPi-{XGhoT!BGyx<K}y6l{T-qvjV+RUWI<$kSq zT0yAX@qhg_Rd3E6HGGyHG5^57B?WsGv@K>_jyQiVgll=C?5`Wb*Dvk<TYvI#d-CSu zXLH%BA7${JdKGel|NOyi=l;fQf60+6?tK4U?_%-88MmJ_{$)7!V%bH}a~w5$VwXFe zP2o*#<GQ`QHhl7W-)HasE$-^&y>M@HrKvZA$HrS{oxfkZ!QDA~N_579#R{r<Ga_^1 zk7aEC=f`!cU`EB-Yqqshj_vHYnD=(8TiGl}@7l{BR2$PTXh<!-zkTxh#W!<rz316I zIWfJ!bDh=V)hE{!o6hh{+gx(xZTa&0Z|~gS?~vUYEpukhy@WNAcNT_tZ)3H;e==#y z_Md6{*VOSa<XD{M?F`7zpMDbi_;_jS_x2Tx3=CP!3=9Gc9E>UX$pJ<A1;zS_1qGmD zT452(=%_dY1H+uj2lH-&dST4J_}bp}&RHVS<`5RRM7t_uBST?zdWw~xns?I?sgv{4 z^EZjl&e8AO%xn9_?bGu5dL`Au-T6M(k~(hPZ1PpNJbghcJaf114ey@?e_K;09tcaA zbF@j;U{iGESI;#~pCvq!&rE9VWxXx<ll6Jv+YOBto|}BV-a0W)xwPTwx^-I*RWH9M zwdF{9<-eJa=UoVki2XfTQCdb^xAw}GqE(N(*FQa|o}lUFp5S$N!5LP2^+)Hb7mEg1 z?X9_{wc|zBseSK6r4Aln<Z&fCB;WD!!p{=Rlhz)1VDvZOT7nW+onD7~OWq9a3yNMB zFD-I))k_Kd@9}uf#vEor>oZMT1xzBmcEsME@MYu2iA{UBrLTyXKfCU)#M88Vo#V^H zAK4#A+&@uye?rsgW9JeUcpg$sUwJa&PuO~e3-ueGC%>7O*dSNnbz^~{g{<(ri2og% zzaMEVuh~|Y*7-?)-O_BE8_q(07bkDK|F~QKuC0LF_rge#*Rm{YE^+n$+NmISS*z)# z&ot`|(QEo_|8w1aTPZuQZ_YiRPnGlZj;&Dp@pIyd`&g@(-8&D(+A%UP1Trx&2qLHM z<ou%4(d3Po;i{Pw51Ph5dY^T_^U3PjX_F0|Z#SNrC&LjYa^I<FJL_zFm5X`z?`^r8 z#qNB<`<><Ya(_L|F!rk|_7C=$>~c{#9mq6GTJh^Tm;A3*v5StdFJsN_X%mt?xHz=5 zI=H}lXW@rOJ*?s?KU5}dS$=0)hJ4dfiRyjqM{C4nt-7Kgi*SE@Rd&PZ-_f#$^vZn) zxR``>4DK)nTMJ#})cn!0<^H;tj7`ZI4vl<rlY1W6=QAw-bG0pQro~hqcj@~jUDm1G zb{&g<KX{svbK5NYd2P>(`49Tfe$M`XCFE6JxJ*DOhu=<Sv7XgjHhYg8H9gbrd*@?V zQ-y`wUoYPecJCM%Cmvxa>8K97_q^Z#t5oP+zRQ2?RJ*OtXV%;8o+$n|cEQ30e$D?? zC+#+IO8-1dz^ePg)0PT0o}K#kj$h#uMvP3l47k?MAVL|!ipE?`6X1<%0P5U6L>q)$ z%FMt3nZVQo&Ge&dM4j%0Xn~NY*}!uo5WUC~SXj+LpY(#50U~)h!R8>FfbIzNsTq(q z2wuVk)(oDa(Fc>@&N#XO=tE-=%^)&W5NrU*cJK%p@<18!rU(dQH3d9|gKi4?fC9)B z5WHIit0`E0gx({9m;fRjB*3O%^pDWpf!<mM>4o4lDToR1wllg`)H)ub2|~V>Wne(B m@zHgomZ1=R5b~q~l5SXu8sN>!29oAs;9=llW?-;W2Jrw^Qv{d* literal 0 HcmV?d00001 -- GitLab