java/src/main/java/cz/cvut/fit/swing/calipel/core/Benchmark.java
changeset 254 e7f75a252b17
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/src/main/java/cz/cvut/fit/swing/calipel/core/Benchmark.java	Wed Nov 05 21:15:34 2014 +0100
@@ -0,0 +1,42 @@
+package cz.cvut.fit.swing.calipel.core;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Benchmark {
+    private List<BenchmarkInstance> benchmarkInstances;
+    private Configuration configuration;
+
+    public Benchmark(List<BenchmarkInstance> benchmarkInstances,
+                     Configuration configuration) {
+        this.benchmarkInstances = benchmarkInstances;
+        this.configuration = configuration;
+    }
+
+    public void run(BenchmarkResult result) {
+        for (BenchmarkInstance instance : benchmarkInstances) {
+            try {
+
+                for (int i = 0; i < 10; i++) {
+                    instance.timeIt();
+                }
+
+                List<Long> durations = new ArrayList<Long>();
+                for (int i = 0; i < configuration.getNumOfTries(); i++) {
+                    durations.add(instance.timeIt());
+                }
+
+                result.benchmarkMeasured(instance, durations);
+            } catch (Exception e) {
+                result.benchmarkFailed(this, e);
+            }
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "Benchmark{" +
+              "benchmarkInstances=" + benchmarkInstances +
+              '}';
+    }
+}