diff options
Diffstat (limited to 'numpy/fft/tests')
-rw-r--r-- | numpy/fft/tests/test_fftpack.py | 23 | ||||
-rw-r--r-- | numpy/fft/tests/test_helper.py | 42 |
2 files changed, 65 insertions, 0 deletions
diff --git a/numpy/fft/tests/test_fftpack.py b/numpy/fft/tests/test_fftpack.py new file mode 100644 index 000000000..1095de4bc --- /dev/null +++ b/numpy/fft/tests/test_fftpack.py @@ -0,0 +1,23 @@ +from numpy.testing import * +import numpy as np + +def fft1(x): + L = len(x) + phase = -2j*np.pi*(np.arange(L)/float(L)) + phase = np.arange(L).reshape(-1,1) * phase + return np.sum(x*np.exp(phase),axis=1) + +class TestFFTShift(TestCase): + def test_fft_n(self): + self.failUnlessRaises(ValueError,np.fft.fft,[1,2,3],0) + + +class TestFFT1D(TestCase): + def test_basic(self): + rand = np.random.random + x = rand(30) + 1j*rand(30) + assert_array_almost_equal(fft1(x), np.fft.fft(x)) + + +if __name__ == "__main__": + run_module_suite() diff --git a/numpy/fft/tests/test_helper.py b/numpy/fft/tests/test_helper.py new file mode 100644 index 000000000..f757b6032 --- /dev/null +++ b/numpy/fft/tests/test_helper.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# Copied from fftpack.helper by Pearu Peterson, October 2005 +""" Test functions for fftpack.helper module +""" + +from numpy.testing import * +from numpy.fft import fftshift,ifftshift,fftfreq + +from numpy import pi + +def random(size): + return rand(*size) + +class TestFFTShift(TestCase): + def test_definition(self): + x = [0,1,2,3,4,-4,-3,-2,-1] + y = [-4,-3,-2,-1,0,1,2,3,4] + assert_array_almost_equal(fftshift(x),y) + assert_array_almost_equal(ifftshift(y),x) + x = [0,1,2,3,4,-5,-4,-3,-2,-1] + y = [-5,-4,-3,-2,-1,0,1,2,3,4] + assert_array_almost_equal(fftshift(x),y) + assert_array_almost_equal(ifftshift(y),x) + + def test_inverse(self): + for n in [1,4,9,100,211]: + x = random((n,)) + assert_array_almost_equal(ifftshift(fftshift(x)),x) + + +class TestFFTFreq(TestCase): + def test_definition(self): + x = [0,1,2,3,4,-4,-3,-2,-1] + assert_array_almost_equal(9*fftfreq(9),x) + assert_array_almost_equal(9*pi*fftfreq(9,pi),x) + x = [0,1,2,3,4,-5,-4,-3,-2,-1] + assert_array_almost_equal(10*fftfreq(10),x) + assert_array_almost_equal(10*pi*fftfreq(10,pi),x) + + +if __name__ == "__main__": + run_module_suite() |