From d8d3e817e79e81cac556f4ebe786800babc4fe2d Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Fri, 15 Jun 2018 11:14:36 +0200
Subject: [PATCH] Fix missing solver name when writing out result file.

---
 .../inf/st/mquat/benchmark/FullBenchmarkMain.java  | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/jastadd-mquat-benchmark/src/main/java/de/tudresden/inf/st/mquat/benchmark/FullBenchmarkMain.java b/jastadd-mquat-benchmark/src/main/java/de/tudresden/inf/st/mquat/benchmark/FullBenchmarkMain.java
index 7f4d63e..bb4a927 100644
--- a/jastadd-mquat-benchmark/src/main/java/de/tudresden/inf/st/mquat/benchmark/FullBenchmarkMain.java
+++ b/jastadd-mquat-benchmark/src/main/java/de/tudresden/inf/st/mquat/benchmark/FullBenchmarkMain.java
@@ -5,6 +5,7 @@ import de.tudresden.inf.st.mquat.data.TestGeneratorSettings;
 import de.tudresden.inf.st.mquat.benchmark.data.BenchmarkSettings;
 import de.tudresden.inf.st.mquat.benchmark.data.ScenarioData;
 import de.tudresden.inf.st.mquat.benchmark.data.ScenarioSettings;
+import de.tudresden.inf.st.mquat.jastadd.model.Tuple;
 import de.tudresden.inf.st.mquat.solving.BenchmarkableSolver;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -50,7 +51,7 @@ public class FullBenchmarkMain {
     @Override
     public void run() {
       // create a settings file for each solver
-      List<Path> pathList = new ArrayList<>();
+      List<Tuple<Path, String>> pathList = new ArrayList<>();
       for (String solverName : this.settings.solvers) {
         settings.solvers = Collections.singletonList(solverName);
         Path tempPath;
@@ -61,9 +62,11 @@ public class FullBenchmarkMain {
           logger.catching(e);
           throw new RuntimeException("Could not create temporary file for sandBoxed use. Exiting.");
         }
-        pathList.add(tempPath);
+        pathList.add(new Tuple<>(tempPath, solverName));
       }
-      nextSolver: for (Path path : pathList) {
+      nextSolver: for (Tuple<Path, String> tuple : pathList) {
+        Path path = tuple.getFirstElement();
+        String solverName = tuple.getSecondElement();
         for (int i = 0; i < this.repetitions; i++) {
           if (useGradleConnection) {
             // invoke Gradle target directly
@@ -98,7 +101,7 @@ public class FullBenchmarkMain {
                 // wait for the process to actually end
                 p.waitFor();
                 // write out csv entry, if the process is terminated this way
-                StringBuilder sb = createRow();
+                StringBuilder sb = createRow(solverName);
                 Path resultFile = getResultFilePath("");
                 logger.info("Writing out to {}", resultFile);
                 try (BufferedWriter writer = Files.newBufferedWriter(resultFile,
@@ -125,7 +128,7 @@ public class FullBenchmarkMain {
       }
     }
 
-    StringBuilder createRow() {
+    StringBuilder createRow(String solverName) {
       StringBuilder sb = new StringBuilder(makeNow()).append(SEPARATOR);
       return sb.append(0).append(SEPARATOR)
           .append(settings.basic.minTopLevelComponents).append(SEPARATOR)
@@ -143,6 +146,7 @@ public class FullBenchmarkMain {
           .append(-1).append(SEPARATOR)  // model.numImplementations
           .append(-1).append(SEPARATOR)  // modelGeneration
           .append(-1).append(SEPARATOR)  // initialObjective
+          .append(solverName).append(SEPARATOR)
           .append(-1).append(SEPARATOR)  // generation time
           .append(-1).append(SEPARATOR)  // solving time
           .append(-1).append(SEPARATOR)  // objective
-- 
GitLab