o 6a@sddZddlZddlmZddlmZmZGdddZGdddZGd d d Z Gd d d Z dS) zfTest functions for fftpack.helper module Copied from fftpack.helper by Pearu Peterson, October 2005 N)assert_array_almost_equal)fftpic@s4eZdZddZddZddZddZd d Zd S) TestFFTShiftcCsdgd}gd}tt||tt||gd}gd}tt||tt||dS)N r) r r r rrrrr r rrrr r r r r r) rr r r rrrrr r rrfftshift ifftshift)selfxyr=/usr/lib/python3/dist-packages/numpy/fft/tests/test_helper.pytest_definition szTestFFTShift.test_definitioncCs2dD]}tj|f}ttt||qdS)N)rr d)nprandomrrrr)rnrrrr test_inverseszTestFFTShift.test_inversecCsgdgdgdg}gdgdgdg}ttj|dd|ttj|d dtj|d dttj|dd|ttj|d dtj|d dtt||tt||dS) N)rrr)r r r )r r r)rr r )rrr)r r r rraxesrrr)rfreqsshiftedrrrtest_axes_keywords  zTestFFTShift.test_axes_keywordcCsvddgddgddgg}ddgddgddgg}ttj|dd|ttj|dd|ttj|dd|ttj|dgd|ddgddgddgg}ttj|dd|ttj|dd|ddgddgddgg}ttj|d d|ttj|d d|ttj|ddgd|ttj|ddgd|ttj|d d|ttj|d d|tt||tt||d S) z1 Test 2D input, which has uneven dimension sizes rrrr r r"r$r!Nr)rr% shift_dim0 shift_dim1shift_dim_bothrrrtest_uneven_dims)s<zTestFFTShift.test_uneven_dimscsddlmmmmd fdd }d fdd }tdD]-}tdD]&}d D]!}tj||}t t |||||t t |||||q.q*q$dS) z\ Test that the new (>=v1.15) implementation (see #10073) is equal to the original (<=v1.14) r)asarray concatenatearangetakeNc s~|}|j}|durtt|}nt|tr|f}|}|D]}|j|}|dd}|||f}|||}q|S)z& How fftshift was implemented in v1.14Nrrndimlistrange isinstanceintshape rr#tmpr2rkrp2mylistr/r-r.r0rroriginal_fftshiftZs   z>TestFFTShift.test_equal_to_original..original_fftshiftc s|}|j}|durtt|}nt|tr|f}|}|D] }|j|}||dd}|||f}|||}q|S)z( How ifftshift was implemented in v1.14 Nrrr1r8r=rroriginal_ifftshiftjs  z?TestFFTShift.test_equal_to_original..original_ifftshift)rrNr$r!)N) numpy.corer-r.r/r0r4rrrandrrrr)rr>r?ij axes_keywordinprr=rtest_equal_to_originalVs     z#TestFFTShift.test_equal_to_originalN)__name__ __module__ __qualname__rr r'r,rGrrrrr s   -rc@eZdZddZdS) TestFFTFreqcCpgd}tdtd|tdttdt|gd}tdtd|tdttdt|dS)Nrrr )rrfftfreqrrrrrrr zTestFFTFreq.test_definitionNrHrIrJrrrrrrL rLc@rK) TestRFFTFreqcCrM)N)rrrr r r)rrrr r r(rN)rrrfftfreqrrPrrrrrQzTestRFFTFreq.test_definitionNrRrrrrrTrSrTc@rK) TestIRFFTNcCs2tjd\}}|d|}d}tj||ddS)N)rr@ y?)r r")rrrirfftn)raraiar#rrrtest_not_last_axis_successs z%TestIRFFTN.test_not_last_axis_successN)rHrIrJr]rrrrrVrSrV) __doc__numpyr numpy.testingrrrrrLrTrVrrrrs }