clingo-hmknf-test/tests.py

41 lines
1009 B
Python
Executable File

#!/usr/bin/env python3
from glob import glob
from os import remove, system
from functools import partial
from pathlib import Path
from sys import argv, stderr
from os.path import splitext, basename
eprint = partial(print, file=stderr)
if len(argv) >= 2 and argv[1] == "-a":
accept = True
else:
accept = False
TEST_FOLDER = "test_output"
system(f"mkdir -p {TEST_FOLDER}")
system(f"rm -rf {TEST_FOLDER}/*.out")
for lp in glob("programs/*.lp"):
base = basename(splitext(lp)[0])
out_path = Path() / TEST_FOLDER / f"{base}.out"
accept_path = Path() / TEST_FOLDER / f"{base}.accept"
diff_path = Path() / TEST_FOLDER / f"{base}.diff"
system(f"python3 propagator.py {lp} > {out_path}")
if accept:
system(f"cp {out_path} {accept_path}")
else:
system(f"diff {out_path} {accept_path} > {diff_path}")
for diff in glob(f"{TEST_FOLDER}/*.diff"):
with open(diff, "tr", encoding="utf8") as diff_fo:
if diff_fo.read(1) == "":
remove(diff)