You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pywafo/wafo/tests/test_dct_pack.py

57 lines
1.8 KiB
Python

'''
Created on 14. feb. 2016
@author: pab
'''
import unittest
import numpy as np
from numpy.testing import assert_array_almost_equal
import wafo.dctpack as wd
9 years ago
class Test(unittest.TestCase):
def test_shiftdim(self):
a = np.arange(6).reshape((1, 1, 3, 1, 2))
b = wd.shiftdim(a)
c = wd.shiftdim(b, -2)
assert_array_almost_equal(b.shape, (3, 1, 2))
assert_array_almost_equal(c.shape, a.shape)
assert_array_almost_equal(c, a)
def test_dct3(self):
a = np.array([[[0.51699637, 0.42946223, 0.89843545],
[0.27853391, 0.8931508, 0.34319118],
[0.51984431, 0.09217771, 0.78764716]],
[[0.25019845, 0.92622331, 0.06111409],
[0.81363641, 0.06093368, 0.13123373],
[0.47268657, 0.39635091, 0.77978269]],
[[0.86098829, 0.07901332, 0.82169182],
[0.12560088, 0.78210188, 0.69805434],
[0.33544628, 0.81540172, 0.9393219]]])
dct = wd.dct
d = dct(dct(dct(a).transpose(0, 2, 1)).transpose(2, 1, 0)
).transpose(2, 1, 0).transpose(0, 2, 1)
d0 = wd.dctn(a)
idct = wd.idct
e = idct(idct(idct(d).transpose(0, 2, 1)).transpose(2, 1, 0)
).transpose(2, 1, 0).transpose(0, 2, 1)
assert_array_almost_equal(d, d0)
assert_array_almost_equal(a, e)
def test_dct_and_dctn(self):
a = np.arange(12).reshape((3, -1))
y = wd.dct(a)
x = wd.idct(y)
assert_array_almost_equal(x, a)
yn = wd.dctn(a) # , shape=(10,), axes=(1,))
xn = wd.idctn(yn) # , axes=(1,))
assert_array_almost_equal(xn, a)
if __name__ == "__main__":
9 years ago
# import sys;sys.argv = ['', 'Test.testName']
unittest.main()