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)
|