]>
git.siccegge.de Git - master/cool-versuchung.git/blob - cool.py
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_
)]
14 class SolverExperiment(Experiment
):
15 inputs
= { 'formulas' : TarArchive() }
16 outputs
= { 'timing' : Directory() }
18 def build_solver(self
):
21 def run_solver(self
, formula
):
25 print("Building Solver ...")
27 formulas
= sorted(os
.listdir(self
.inputs
.formulas
.path
), key
=natural_key
)
28 shell
.track(self
.outputs
.timing
.path
)
29 for formula
in formulas
:
30 print("Running for %s ..." % formula
)
32 self
.run_solver(os
.path
.join(self
.inputs
.formulas
.path
, formula
))
37 class CoolExperiment(SolverExperiment
):
38 inputs
= { 'cool' : GitArchive() }
42 CoolExperiment
.inputs
.update(SolverExperiment
.inputs
)
43 CoolExperiment
.outputs
.update(SolverExperiment
.outputs
)
44 super(CoolExperiment
, self
).__init
__()
46 def build_solver(self
):
47 with self
.inputs
.cool
as path
:
50 def run_solver(self
, formula
):
51 with self
.inputs
.cool
as path
:
52 shell("timeout 1001 ./coalg.native sat KD --verbose < %s" % formula
)
56 if __name__
== "__main__":
58 experiment
= CoolExperiment()
59 dirname
= experiment(sys
.argv
)