import os, sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "harness"))
from gradelib import Checker, main_guard
HERE = os.path.dirname(os.path.abspath(__file__))


def grade(path):
    c = Checker("T13-predict-output")
    exp = open(os.path.join(HERE, "reference", "solution.txt")).read().rstrip("\n").split("\n")
    got = open(path, encoding="utf-8").read().strip("\n").split("\n")
    got = [g.rstrip() for g in got]
    c.check(len(got) == len(exp), f"expected {len(exp)} lines, got {len(got)}")
    for i, e in enumerate(exp):
        g = got[i] if i < len(got) else None
        c.check(g == e.rstrip(), f"line {i+1}: got {g!r}, expected {e.rstrip()!r}")
    c.emit()


if __name__ == "__main__":
    main_guard("T13-predict-output", grade)
