]>
git.siccegge.de Git - master/cool-versuchung.git/blob - cool.py
8b5568f02752996f6a73dc349e2d281f2b641391
3 from versuchung
.experiment
import Experiment
4 from versuchung
.archives
import TarArchive
, GitArchive
5 from versuchung
.files
import Directory
6 from versuchung
.execute
import shell
, CommandFailed
11 def natural_key(string_
):
12 return [int(s
) if s
.isdigit() else s
for s
in re
.split(r
'(\d+)', string_
)]
15 class SolverExperiment(Experiment
):
16 inputs
= { 'formulas' : TarArchive() }
17 outputs
= { 'timing' : Directory() }
20 def build_solver(self
):
24 def run_solver(self
, formula
):
29 print("Building Solver ...")
31 formulas
= sorted(os
.listdir(self
.inputs
.formulas
.path
), key
=natural_key
)
32 shell
.track(self
.outputs
.timing
.path
)
33 for formula
in formulas
:
34 print("Running for %s ..." % formula
)
36 self
.run_solver(os
.path
.join(self
.inputs
.formulas
.path
, formula
))
42 class CoolExperiment(SolverExperiment
):
43 inputs
= { 'cool' : GitArchive() }
48 CoolExperiment
.inputs
.update(SolverExperiment
.inputs
)
49 CoolExperiment
.outputs
.update(SolverExperiment
.outputs
)
50 super(CoolExperiment
, self
).__init
__()
53 def build_solver(self
):
54 with self
.inputs
.cool
as path
:
58 def run_solver(self
, formula
):
59 with self
.inputs
.cool
as path
:
60 shell("timeout 1001 ./coalg.native sat KD --verbose < %s" % formula
)
64 class TreeTabExperiment(SolverExperiment
):
65 inputs
= { 'treetab' : TarArchive('ctlProver_r1368.tar') }
70 TreeTabExperiment
.inputs
.update(SolverExperiment
.inputs
)
71 TreeTabExperiment
.outputs
.update(SolverExperiment
.outputs
)
72 super(TreeTabExperiment
, self
).__init
__()
75 def build_solver(self
):
76 with self
.inputs
.treetab
as path
:
80 def run_solver(self
, formula
):
81 with self
.inputs
.treetab
as path
:
82 shell("timeout 1001 ./ctl tree --verbose < %s" % formula
)
85 class GMULExperiment(SolverExperiment
):
86 inputs
= { 'gmul' : TarArchive('ctlgraph.tar') }
91 GMULExperiment
.inputs
.update(SolverExperiment
.inputs
)
92 GMULExperiment
.outputs
.update(SolverExperiment
.outputs
)
93 super(GMULExperiment
, self
).__init
__()
96 def build_solver(self
):
97 with self
.inputs
.gmul
as path
:
101 def run_solver(self
, formula
):
102 with self
.inputs
.gmul
as path
:
103 shell("timeout 1001 ./ctl tr --verbose < %s" % formula
)
106 if __name__
== "__main__":
108 experiment
= CoolExperiment()
109 dirname
= experiment(sys
.argv
)