def METHOD_NAME(self, noise):
    # Init Gf
    g = GfImFreq(indices = [0,1], beta = 1., n_points = 1000)
    H = np.array([[1.0, 0.1j],[-0.1j, 2.0]])
    g << inverse(iOmega_n - H)
    # Generate gt and add noise
    gt = make_gf_from_fourier(g)
    np.random.seed(666)
    gt.data[:] = gt.data + noise * ( randn(*np.shape(gt.data)) + 1j * randn(*np.shape(gt.data)) )
    # Resymmetrize gt
    gt.data[:,0,1] = gt.data[:,1,0].conjugate()
    # Fourier transform to Matsubara and back given the high-frequency information
    tail, err = g.fit_tail()
    gw = make_gf_from_fourier(gt, g.mesh, tail)
    gt2 = make_gf_from_fourier(gw, gt.mesh, tail)
    # Check that magnitude of error is of order noise
    err = np.max(np.abs(gt.data - gt2.data))
    # print "noise %.3e  err %.3e"%(noise, err)
    self.assertLess(err, 10 * noise)
    # We can also go through a legendre basis to filter the noise
    gl = fit_legendre(gt)
    gw_from_leg = g.copy()
    gw_from_leg << LegendreToMatsubara(gl)
    gt3 = make_gf_from_fourier(gw_from_leg, len(gt.mesh))
    err = np.max(np.abs(gt.data - gt3.data))
    # print "noise %.3e  err %.3e"%(noise, err)
    self.assertLess(err, 10 * noise)
    # from triqs.plot.mpl_interface import *
    # plt.subplot(2,1,1)
    # oplot(gt[0,1], name='gt')
    # gt_fit = gt.copy()
    # gt_fit << LegendreToMatsubara(gl)
    # oplot(gt_fit[0,1], name='gt_fit')
    # plt.subplot(2,1,2)
    # oplot(g[0,1], x_window=(-100,100), name='gw')
    # oplot(g_fit[0,1], x_window=(-100,100), name='gw_fit')
    # plt.show()