from pathlib import Path import sys,json,random,hashlib,time ROOT=Path(__file__).resolve().parents[1];sys.path.insert(0,str(ROOT)) from phillnet_recall import RecallPolicy from phillnet_recall.bank import Bank def main(): p=RecallPolicy();assert p.bank._lib is not None rng=random.Random(88371);rows=[[0.]*20,[1.]*20]+[[rng.random() for _ in range(20)] for _ in range(64)] checked=0;signatures=[];numeric_payloads=[] for ident in sorted(p.bank._ids): record=p.bank.record(ident);a=p.bank.score_many([ident]*len(rows),rows);b=[record.score_reference(r) for r in rows] assert a==b;checked+=len(rows);signatures.append(tuple(a)) # Exclude ID, metadata and checksum from numeric distinction check. raw=record.encode();numeric_payloads.append(raw[16:28]+raw[32:492]) rejected=0 for i in range(256): raw=bytearray(p.bank.data);at=rng.randrange(64,len(raw));raw[at]^=1 try:Bank(bytes(raw),native=True,max_count=22) except ValueError:rejected+=1 assert rejected==256 report={'checkpoint_sha256':p.bank.sha256,'records':p.bank.count,'record_size':500, 'native_reference_comparisons':checked,'exact_matches':checked, 'unique_numeric_payloads':len(set(numeric_payloads)),'unique_probe_signatures':len(set(signatures)), 'corrupt_bank_rejections':rejected,'scope':'Finite numerical and format checks, not model reasoning accuracy.'} (ROOT/'reports/numerics.json').write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report,indent=2)) if __name__=='__main__':main()