From 06a5f11a9ab623592c3784b45f03be3d2a72ecab Mon Sep 17 00:00:00 2001
From: Michael Reuscher <michael.reuscher@desy.de>
Date: Wed, 12 Jul 2023 11:01:37 +0200
Subject: [PATCH] Simrunner 1.02 now different sets of tests parameter
 available savepoint

---
 simrunner/data_config.json |  6 +++++
 simrunner/simrunner.py     | 51 +++++++++++++++++++-------------------
 2 files changed, 31 insertions(+), 26 deletions(-)
 create mode 100644 simrunner/data_config.json

diff --git a/simrunner/data_config.json b/simrunner/data_config.json
new file mode 100644
index 0000000..a05af49
--- /dev/null
+++ b/simrunner/data_config.json
@@ -0,0 +1,6 @@
+{
+    "s": ["1M", "2M", "3M"],
+    "n": ["30", "10", "20"],
+    "i": ["0.1", "0.2", "0.3"],
+    "N": ["4", "4", "4"]
+}
\ No newline at end of file
diff --git a/simrunner/simrunner.py b/simrunner/simrunner.py
index c67f44d..0cc05fd 100644
--- a/simrunner/simrunner.py
+++ b/simrunner/simrunner.py
@@ -1,42 +1,41 @@
 import os
+import json
 import subprocess
 
 
-def start_cpp_program(program_path, arguments):
+def read_config():
+    with open("simrunner/data_config.json", "r") as file:
+        d_config = json.load(file)
+    return d_config
+
+
+def start_process(program_path, arguments):
     command = [program_path] + arguments
     process = subprocess.run(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
     return process
 
 
-def send_input(program_path, arg):
-    command = [program_path] + arg
-    process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
-    stdout, stderr = process.communicate()
-    return stdout.decode()
+def run_sim(d_config, m_folder, s_path):
+    for data_set in range(len(d_config["s"])):
+        size = d_config["s"][data_set]
+        nevents = d_config["n"][data_set]
+        interval = d_config["i"][data_set]
+        threads = d_config["N"][data_set]
+        folder_name = d_config["s"][data_set]
+        relativ_path = os.path.join(m_folder, "output1", folder_name)
+        os.makedirs(relativ_path, mode=0o777, exist_ok=True)
+        arguments = ["-o", relativ_path, "--posixDataDir", "protokoll", "-n", nevents,
+                     "-s", size, "-i", interval, "-N", threads]
+        output = start_process(s_path, arguments)
+        print(output)
 
 
-data_config = {
-    "s": ["1M", "2M", "3M"],  #Size
-    "n": ["30", "10", "20"],   #nEvents
-    "i": ["0.1", "0.2", "0.3"],   #interval
-    "N": ["4", "4", "4"]   #UsedThreads
-
-}
-data_size = ["1M", "2M"]
+data_config = read_config()
 skript_path = os.path.abspath(__file__)
 main_folder = os.path.dirname(os.path.dirname(skript_path))
 data_path = os.path.join(main_folder, "protokoll")
-cpp_program_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim")
+sim_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim")
 os.makedirs(data_path, mode=0o777, exist_ok=True)
 
-for data_set in range(len(data_config["s"])):
-    size = data_config["s"][data_set]
-    nEvents = data_config["n"][data_set]
-    interval = data_config["i"][data_set]
-    threads = data_config["N"][data_set]
-    folder_name = data_config["s"][data_set]
-    relativ_path = os.path.join(main_folder, "output1", folder_name)
-    os.makedirs(relativ_path, mode=0o777, exist_ok=True)
-    arguments = ["-o", relativ_path, "--posixDataDir", "protokoll", "-n", nEvents, "-s", size, "-i", interval, "-N", threads]
-    output = start_cpp_program(cpp_program_path, arguments)
-    print(output)
+run_sim(data_config, main_folder, sim_path)
+
-- 
GitLab