a :jg@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)selfxyrE/usr/local/lib/python3.9/site-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)rfreqsZshiftedrrrtest_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%Z shift_dim0Z shift_dim1Zshift_dim_bothrrrtest_uneven_dims)s<zTestFFTShift.test_uneven_dimscsddlmmmmd fdd }d fdd }tdD]Z}tdD]L}d D]B}tj||}t t |||||t t |||||q\qTqHdS) z\ Test that the new (>=v1.15) implementation (see #10073) is equal to the original (<=v1.14) r)asarray concatenatearangetakeNc s~|}|j}|dur$tt|}nt|tr4|f}|}|D]<}|j|}|dd}|||f}|||}q<|S)z& How fftshift was implemented in v1.14Nrrndimlistrange isinstanceintshape rr#tmpr.rkrZp2Zmylistr+r)r*r,rroriginal_fftshiftZs   z>TestFFTShift.test_equal_to_original..original_fftshiftc s|}|j}|dur$tt|}nt|tr4|f}|}|D]@}|j|}||dd}|||f}|||}q<|S)z( How ifftshift was implemented in v1.14 Nrrr-r4r7rroriginal_ifftshiftjs  z?TestFFTShift.test_equal_to_original..original_ifftshift)rrNr$r!)N)N) Z numpy._corer)r*r+r,r0rrZrandrrrr)rr8r9ijZ axes_keywordinprr7rtest_equal_to_originalVs    z#TestFFTShift.test_equal_to_originalN)__name__ __module__ __qualname__rr r&r(r>rrrrr s   -rc@seZdZddZdS) TestFFTFreqcCspgd}tdtd|tdttdt|gd}tdtd|tdttdt|dS)Nrrr )rrZfftfreqrrrrrrrs zTestFFTFreq.test_definitionNr?r@rArrrrrrBsrBc@seZdZddZdS) TestRFFTFreqcCspgd}tdtd|tdttdt|gd}tdtd|tdttdt|dS)N)rrrr r r)rrrr r r'rC)rrZrfftfreqrrDrrrrs zTestRFFTFreq.test_definitionNrErrrrrFsrFc@seZdZddZdS) TestIRFFTNcCs2tjd\}}|d|}d}tj||ddS)N)rr: y?)r r")rrrZirfftn)rarZaiar#rrrtest_not_last_axis_successs z%TestIRFFTN.test_not_last_axis_successN)r?r@rArLrrrrrGsrG) __doc__numpyrZ numpy.testingrrrrrBrFrGrrrrs }