From f50e17a33b7ed9e9cbd91b9046deeb56ddcae833 Mon Sep 17 00:00:00 2001 From: Klaus Dorer Date: Tue, 4 Jul 2023 11:41:18 +0200 Subject: [PATCH] Allow to inject random seed --- .../benchmark/controller/BenchmarkController.java | 11 ++++++++--- .../tools/benchmark/model/BenchmarkConfiguration.java | 6 ++++-- .../magma/tools/benchmark/view/BenchmarkView.java | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/magma/tools/benchmark/controller/BenchmarkController.java b/src/main/java/magma/tools/benchmark/controller/BenchmarkController.java index 8a9fe28..3a819c7 100644 --- a/src/main/java/magma/tools/benchmark/controller/BenchmarkController.java +++ b/src/main/java/magma/tools/benchmark/controller/BenchmarkController.java @@ -24,6 +24,7 @@ import hso.autonomy.util.commandline.Argument; import hso.autonomy.util.commandline.EnumArgument; import hso.autonomy.util.commandline.HelpArgument; +import hso.autonomy.util.commandline.IntegerArgument; import hso.autonomy.util.commandline.StringArgument; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -68,6 +69,8 @@ public static void run(String[] args, UserInterface userInterface) StringArgument defaultPathArgument = new StringArgument("defaultPath", "examples", "the initial path to use for file dialogs"); + IntegerArgument defaultRandomSeed = new IntegerArgument("randomSeed", (int) BenchmarkConfiguration.DEFAULT_RANDOM_SEED, 0, "the random seed to use"); + new HelpArgument(challengeArgument, startScriptFolderArgument, roboVizServerArgument, defaultPathArgument) .parse(args); @@ -80,15 +83,16 @@ public static void run(String[] args, UserInterface userInterface) String startScriptFolder = startScriptFolderArgument.parse(args); String roboVizServer = roboVizServerArgument.parse(args); String defaultPath = defaultPathArgument.parse(args); + int randomSeed = defaultRandomSeed.parse(args); Argument.endParse(args); defaultPath = defaultPath.replaceFirst("^~", System.getProperty("user.home")); - new BenchmarkController(userInterface, challenge, startScriptFolder, roboVizServer, defaultPath); + new BenchmarkController(userInterface, challenge, startScriptFolder, roboVizServer, defaultPath, randomSeed); } public BenchmarkController(UserInterface userInterface, ChallengeType challenge, String startScriptFolder, - String roboVizServer, String defaultPath) + String roboVizServer, String defaultPath, int randomSeed) { this.startScriptFolder = startScriptFolder; this.roboVizServer = roboVizServer; @@ -97,7 +101,8 @@ public BenchmarkController(UserInterface userInterface, ChallengeType challenge, switch (userInterface) { case CLI: - model.start(new BenchmarkConfiguration(roboVizServer), + System.out.println("Using random seed: " + randomSeed); + model.start(new BenchmarkConfiguration(roboVizServer, randomSeed), Collections.singletonList(new TeamConfiguration("magma", startScriptFolder, 0.4f))); break; case GUI: diff --git a/src/main/java/magma/tools/benchmark/model/BenchmarkConfiguration.java b/src/main/java/magma/tools/benchmark/model/BenchmarkConfiguration.java index 75d2141..a733c59 100644 --- a/src/main/java/magma/tools/benchmark/model/BenchmarkConfiguration.java +++ b/src/main/java/magma/tools/benchmark/model/BenchmarkConfiguration.java @@ -27,6 +27,8 @@ */ public class BenchmarkConfiguration { + public static final long DEFAULT_RANDOM_SEED = 123L; + public static final String DEFAULT_SERVER_IP = "localhost"; public static final int DEFAULT_SERVER_PORT = 3100; @@ -61,10 +63,10 @@ public class BenchmarkConfiguration private final String roboVizServer; - public BenchmarkConfiguration(String roboVizServer) + public BenchmarkConfiguration(String roboVizServer, int randomSeed) { this(DEFAULT_SERVER_IP, DEFAULT_SERVER_PORT, DEFAULT_PROXY_PORT, DEFAULT_TRAINER_PORT, DEFAULT_AVERAGE_OUT_RUNS, - DEFAULT_RUNTIME, DEFAULT_VERBOSE, false, 123L, roboVizServer); + DEFAULT_RUNTIME, DEFAULT_VERBOSE, false, randomSeed, roboVizServer); } /** diff --git a/src/main/java/magma/tools/benchmark/view/BenchmarkView.java b/src/main/java/magma/tools/benchmark/view/BenchmarkView.java index cf976bf..6811679 100644 --- a/src/main/java/magma/tools/benchmark/view/BenchmarkView.java +++ b/src/main/java/magma/tools/benchmark/view/BenchmarkView.java @@ -209,7 +209,7 @@ public void focusLost(FocusEvent e) panel.add(lblSeedBox); seedBox = new JTextField(); - seedBox.setText(String.valueOf(123)); + seedBox.setText(String.valueOf(BenchmarkConfiguration.DEFAULT_RANDOM_SEED)); panel.add(seedBox); seedBox.setColumns(5);