import numberdb.sage as numberdb
from sage.rings.real_arb import RealBallField
from sage.rings.real_mpfi import RealIntervalField
from numberdb._write import to_text
import generate
from program import brjuno_period
import json
F=RealBallField(429);I=RealIntervalField(429)
for t in generate.triples():
    _,period=generate.cycle(t)
    a=brjuno_period(tuple(period));b=generate.brjuno(t)
    assert a.is_finite() and b.is_finite() and a.overlaps(b)
    assert I(a).absolute_diameter()<(I(10)**(-100)).lower()
for a in range(1,10):
    lam=(F(a)+F(a*a+4).sqrt())/2
    alternate=lam*lam.log()/(lam-1)
    assert alternate.is_finite() and alternate.overlaps(generate.brjuno((1,a,1)))
x=(F(5).sqrt()+1)/2
assert (x*x*x.log()).overlaps(generate.brjuno((1,1,1)))
print(json.dumps({'program_matches':141,'fixed_point_controls':9,'golden_identity':True}))
