"""Verify repaired equality captions and regenerated free-case intervals for T512.
Run: sage -python check_generator_repair.py < API_KEY_FILE
Place the attached generate.py in the same directory. Makes no writes.
"""
import sys,json,urllib.request,importlib.metadata
from generate import CoulombFZeros, written_interval
key=sys.stdin.read().strip()
req=urllib.request.Request('https://numberdb.org/api/table?id=T512',headers={'Authorization':'Bearer '+key})
with urllib.request.urlopen(req,timeout=60) as r: doc=json.load(r)
g=CoulombFZeros(); count=0
for params in g.enumerate():
 if params['eta']!='0': continue
 result=g.value(params,100)
 ell,n=params['ell'],params['n']
 nu='%s/2'%(2*int(ell)+1)
 expected='HREF{Zeros_of_Bessel_J_functions#'+nu+','+n+'}[Bessel zero $j_{'+nu+','+n+'}$]'
 assert result['equals']==expected
 lo,hi=written_interval(doc['Numbers'][ell]['0'][n]['number'])
 interval=result['number']
 assert interval.lower()>lo and interval.upper()<hi
 count+=1
print(json.dumps({'passed':True,'regenerated_free_case_entries':count,'captions_match':count,'intervals_contained_in_stored':count,'numberdb_version':importlib.metadata.version('numberdb')},indent=2))
assert count==48
