]> git.siccegge.de Git - master/cool-versuchung.git/blobdiff - cool.py
Restore working conditiuons with formulas as tar
[master/cool-versuchung.git] / cool.py
diff --git a/cool.py b/cool.py
index 18ed21d850bbddce0139ca8ab8276f2d253ffc67..d8dd0930fe292ed975b163596996664f093f737b 100755 (executable)
--- a/cool.py
+++ b/cool.py
@@ -19,7 +19,7 @@ def natural_key(string_):
 
 def parse_timedelta(strrep):
     minutes, seconds = strrep.split(":")
-    return seconds + 60 * minutes
+    return float(seconds) + 60 * float(minutes)
 
 
 class SolverExperiment(Experiment):
@@ -38,14 +38,17 @@ class SolverExperiment(Experiment):
     def run(self):
         print("Building Solver ...")
         self.build_solver()
-        formulas = sorted(os.listdir(self.inputs.formulas.path), key=natural_key)
-        shell.track(self.outputs.timing.path)
-        for formula in formulas:
-            print("Running for %s ..." % formula)
-            try:
-                self.run_solver(os.path.join(self.inputs.formulas.path, formula))
-            except CommandFailed:
-                break
+        with self.inputs.formulas as path:
+            formulas = sorted(os.listdir(path), key=natural_key)
+            shell.track(self.outputs.timing.path)
+
+            for formula in formulas:
+                print("Running for %s ..." % formula)
+                try:
+
+                    self.run_solver(os.path.join(path, formula))
+                except CommandFailed:
+                    break
 
 
 
@@ -137,6 +140,7 @@ class ComparisonExperiment(Experiment):
                 command = command.split("<")[1].strip().strip('"')
                 formula = os.path.basename(command)
                 time = parse_timedelta(timeline.split(": ")[1].strip())
+                time = time if time > 0 else 0.001
                 memory = memoryline.split(": ")[1].strip()
                 csv.append([formula, time, memory])
         csv.flush()
@@ -154,6 +158,7 @@ class ComparisonExperiment(Experiment):
                       os.path.basename(self.inputs.treetab.metadata['formulas']))
             plt.yscale('log')
             plt.ylabel('time / s')
+            plt.ylim(0.001, 10000)
             plt.xlabel('problem size')
             plt.plot([x[0].split('.')[1] for x in self.outputs.cool_data.value],
                      [x[1] for x in self.outputs.cool_data.value],
@@ -161,11 +166,11 @@ class ComparisonExperiment(Experiment):
             plt.plot([x[0].split('.')[1] for x in self.outputs.treetab_data.value],
                      [x[1] for x in self.outputs.treetab_data.value],
                      'gv', label="TreeTab")
-            plt.legend()
             plt.plot([x[0].split('.')[1] for x in self.outputs.gmul_data.value],
                      [x[1] for x in self.outputs.gmul_data.value],
                      'r*', label="GMUL")
 
+            plt.legend(loc=2)
             plt.savefig('time.svg', format='svg')
             plt.close()
 
@@ -181,11 +186,11 @@ class ComparisonExperiment(Experiment):
             plt.plot([x[0].split('.')[1] for x in self.outputs.treetab_data.value],
                      [x[2] for x in self.outputs.treetab_data.value],
                      'gv', label="TreeTab")
-            plt.legend()
             plt.plot([x[0].split('.')[1] for x in self.outputs.gmul_data.value],
                      [x[2] for x in self.outputs.gmul_data.value],
                      'r*', label="GMUL")
 
+            plt.legend(loc=2)
             plt.savefig('memory.svg', format='svg')