from pathlib import Path
import json,sys
from gate_rules import evaluate
R=Path(__file__).resolve().parent
files=sorted((R/'fixtures').glob('*.json'))+sorted((R/'transfer').glob('*.json'))
fail=[]
for p in files:
 o=json.loads(p.read_text()); got=evaluate(o['record']); ok=got==o['expected']; print(('PASS' if ok else 'FAIL'),p.name,'expected='+o['expected'],'got='+got)
 if not ok: fail.append(p.name)
print(f'SUMMARY {len(files)-len(fail)}/{len(files)} PASS')
sys.exit(1 if fail else 0)
