From 3f95682207cf18c6d0def835ae54bf8ae13b3652 Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Wed, 18 Jul 2018 17:49:48 +0200
Subject: [PATCH] make random solver more reliable

---
 .../inf/st/mquat/solving/random/RandomSolver.java        | 9 +++------
 .../inf/st/mquat/solving/RandomHandwrittenTest.java      | 2 +-
 .../tudresden/inf/st/mquat/solving/RandomSolverTest.java | 2 +-
 3 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/jastadd-mquat-solver-random/src/main/java/de/tudresden/inf/st/mquat/solving/random/RandomSolver.java b/jastadd-mquat-solver-random/src/main/java/de/tudresden/inf/st/mquat/solving/random/RandomSolver.java
index 476d6b5..a90785c 100644
--- a/jastadd-mquat-solver-random/src/main/java/de/tudresden/inf/st/mquat/solving/random/RandomSolver.java
+++ b/jastadd-mquat-solver-random/src/main/java/de/tudresden/inf/st/mquat/solving/random/RandomSolver.java
@@ -27,12 +27,11 @@ public class RandomSolver implements BenchmarkableSolver {
   private long maxSolvingTime;
   private boolean timedOut;
 
-  public RandomSolver() {
-    this(Long.MAX_VALUE);
-  }
+  private final Random random;
 
-  public RandomSolver(long maxSolvingTime) {
+  public RandomSolver(long maxSolvingTime, long seed) {
     this.maxSolvingTime = maxSolvingTime;
+    this.random = new Random(seed);
     reset();
   }
 
@@ -50,8 +49,6 @@ public class RandomSolver implements BenchmarkableSolver {
 
     List<Solution> solutions = new ArrayList<>();
 
-    Random random = new Random();
-
     do {
 
       numTotalSoftwareSolutions++;
diff --git a/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomHandwrittenTest.java b/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomHandwrittenTest.java
index 6641db6..83e5927 100644
--- a/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomHandwrittenTest.java
+++ b/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomHandwrittenTest.java
@@ -6,6 +6,6 @@ public class RandomHandwrittenTest extends HandwrittenTestSuite {
 
   @Override
   protected Solver getSolver() {
-    return new RandomSolver(60000);
+    return new RandomSolver(5000, 0);
   }
 }
diff --git a/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomSolverTest.java b/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomSolverTest.java
index 32c5722..9722756 100644
--- a/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomSolverTest.java
+++ b/jastadd-mquat-solver-random/src/test/java/de/tudresden/inf/st/mquat/solving/RandomSolverTest.java
@@ -42,7 +42,7 @@ public class RandomSolverTest {
     ScenarioGenerator generator = new ScenarioGenerator(new ScenarioDescription(tlc, iac, isd, cac, csd, dep, imp, res, req, cpu, seed));
 
     Root model = generator.generate();
-    RandomSolver solver = new RandomSolver(5000);
+    RandomSolver solver = new RandomSolver(5000, 1337);
 
     Solution solution = solver.solve(model);
 
-- 
GitLab