16 lines
871 B
Python
16 lines
871 B
Python
#!/usr/bin/env python3
|
|
"""Offline integrity check. Never loads or queries a model."""
|
|
import hashlib,json,pathlib,gzip
|
|
root=pathlib.Path(__file__).resolve().parent
|
|
checks=json.loads((root/'checksums.json').read_text())
|
|
for name,expected in checks.items():
|
|
assert hashlib.sha256((root/name).read_bytes()).hexdigest()==expected,name
|
|
manifest=json.loads((root/'manifest.json').read_text())
|
|
requests=json.loads(gzip.decompress((root/manifest['requests_file']).read_bytes()))
|
|
for case in manifest['cases']:
|
|
result=json.loads(gzip.decompress((root/case['result']).read_bytes()))
|
|
assert result.get('finished') and result['case']==case['configuration'],case['id']
|
|
for p in result.get('prefill',[]):
|
|
assert 'prefill-'+str(p['target']) in requests
|
|
print(f"OK: {len(checks)} files, {len(manifest['cases'])} reference cases, {len(requests)} frozen requests")
|