"""Read stored T696 values and rerun exact and independent analytic checks."""
import sys,json
from pathlib import Path
import numberdb.sage as numberdb
import numberdb as api
from generate import OddPeriodPolynomials,QX
from checks import run
BASE=Path(__file__).resolve().parent
client=api.Client(api_key=sys.stdin.read().strip())
g=OddPeriodPolynomials()
report=g.verify(sample=None,client=client)
print('VERIFY',report,flush=True);assert report.ok
stored=api.table('T696',client=client)
block=stored['Numbers'];values={}
if isinstance(block,list):
    for r in block:
        values[tuple(int(r['params'][k]) for k in g.parameters)]=QX(r['number'])
else:
    for N,ks in block.items():
        for k,is_ in ks.items():
            for i,value in is_.items():
                if isinstance(value,dict):value=value['number']
                values[(int(N),int(k),int(i))]=QX(value)
assert len(values)==18
checks=run(values=values)
print('READBACK_CHECKS_PASSED',len(checks['entries']),flush=True)
