clingo-hmknf-test/tests.py

41 lines
1009 B
Python
Raw Normal View History

2022-06-29 16:06:09 -06:00
#!/usr/bin/env python3
from glob import glob
2022-06-30 16:55:42 -06:00
from os import remove, system
2022-06-29 16:06:09 -06:00
from functools import partial
2022-06-30 16:55:42 -06:00
from pathlib import Path
2022-06-29 16:06:09 -06:00
from sys import argv, stderr
2022-06-30 16:55:42 -06:00
from os.path import splitext, basename
2022-06-29 16:06:09 -06:00
eprint = partial(print, file=stderr)
if len(argv) >= 2 and argv[1] == "-a":
accept = True
else:
accept = False
2022-06-30 16:55:42 -06:00
TEST_FOLDER = "test_output"
system(f"mkdir -p {TEST_FOLDER}")
system(f"rm -rf {TEST_FOLDER}/*.out")
2022-06-29 16:06:09 -06:00
for lp in glob("programs/*.lp"):
2022-06-30 16:55:42 -06:00
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)