"""Known-noise audit versus a manually supplied guess, not a diffusion model."""
from fractions import Fraction as F
import json
def noisy(x,eps):return [F(4,5)*v+F(3,5)*e for v,e in zip(x,eps)]
def estimate(xt,eps_guess):return [(v-F(3,5)*e)/F(4,5) for v,e in zip(xt,eps_guess)]
if __name__=='__main__':
    x=[F(1,5),F(4,5)];eps=[F(1),F(-1)];xt=noisy(x,eps)
    assert xt==[F(19,25),F(1,25)]
    oracle=estimate(xt,eps);guess=estimate(xt,[F(1,2),F(-1,2)])
    assert oracle==x and guess==[F(23,40),F(17,40)]
    assert [a-b for a,b in zip(guess,x)]==[F(3,8),F(-3,8)]
    # Same observed xt admits a different original/noise pair.
    alternative_x=[F(0),F(1)];alternative_eps=[(v-F(4,5)*z)/F(3,5) for v,z in zip(xt,alternative_x)]
    assert noisy(alternative_x,alternative_eps)==xt and alternative_x!=x
    print(json.dumps({'x0':[str(v) for v in x],'fixed_epsilon':[str(v) for v in eps],'alpha_bar':'16/25','xt':[str(v) for v in xt],'audit_using_true_noise':[str(v) for v in oracle],'manual_guess_estimate':[str(v) for v in guess],'manual_guess_errors':['3/8','-3/8'],'alternative_x0':[str(v) for v in alternative_x],'alternative_epsilon':[str(v) for v in alternative_eps],'random_Gaussian_noise_sampled':False,'denoiser_trained':False,'image_generated':False},indent=2))
