from wafo.transform import TrData
import numpy as np


def test_trdata():
    '''
    Construct a linear transformation model
    '''
    sigma = 5
    mean = 1
    u = np.linspace(-5, 5)
    x = sigma * u + mean
    y = u
    g = TrData(y, x)
    assert(g.mean == 1.0)
    print(g.sigma)
    # assert(g.sigma==5.0)

    g = TrData(y, x, mean=1, sigma=5)
    assert(g.mean == 1)
    assert(g.sigma == 5.)
    # vals = g.dat2gauss(1, 2, 3)
    # true_vals = [np.array([0.]), np.array([0.4]), np.array([0.6])]

    vals = g.dat2gauss([0, 1, 2, 3])
    true_vals = np.array([-0.2, 0., 0.2, 0.4])
    assert((np.abs(vals - true_vals) < 1e-7).all())
    # Check that the departure from a Gaussian model is zero
    assert(g.dist2gauss() < 1e-16)


if __name__ == '__main__':
    import nose
    nose.run()