pylexnet / tools /verify.py
Pranavz's picture
pylexnet: 827-number Python highlighter network
beaedc8 verified
Raw History Blame Contribute Delete
1.04 kB
"""The generated kernel must equal the generic interpreter over the same weights, byte for byte, on the dev split."""
import subprocess
import sys
from pathlib import Path
import score
HERE = Path(__file__).resolve().parent
fs = score.files(sys.argv[1] if len(sys.argv) > 1 else "dev")
bad = tot = 0
for p in fs:
try:
data = p.read_text("utf-8").replace("\r\n", "\n").encode()
except UnicodeDecodeError:
continue
out = subprocess.run([str(HERE / "pylexnet"), "--classes"], input=data, capture_output=True).stdout
ref = subprocess.run([str(HERE / "pylexnet"), "--interp", "--classes"], input=data, capture_output=True).stdout
tot += len(data)
if out != ref:
bad += 1
if bad < 4:
i = next((j for j in range(min(len(out), len(ref))) if out[j] != ref[j]), -1)
print("MISMATCH", p, i, out[i] if i >= 0 else len(out), ref[i] if i >= 0 else len(ref), data[max(0, i - 30):i + 10])
print(f"{len(fs)} files, {tot / 1e6:.1f} MB, files differing from rules: {bad}")