
    ЏkhO                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ ej(                  j*                  Zd Zd Z G d d	      Z ed
      ej(                  j3                  dej4                  ej6                  ej8                  ej:                  ej<                  ej>                  g      ej(                  j3                  dddg      ej(                  j3                  dej                  ej@                  ejB                  ejD                  ejF                  ejH                  g      d                             Z% ed
       G d d             Z& ed
      ej(                  j3                  dej                  ejD                  ejN                  ejP                  g      d               Z) G d d      Z*ej(                  j3                  dej                  ejD                  ejN                  ejP                  ejB                  ejH                  ejV                  ejX                  ejZ                  ej\                  g
      d        Z/ej(                  j3                  dddg      ej(                  j3                  dej                  ejD                  ejP                  ejB                  ejH                  ejX                  ejZ                  g      d               Z0y)    N)random)assert_array_almost_equalassert_allclose)raises)is_numpyxp_sizexp_assert_closexp_assert_equalc                    | t         j                   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  fv r|j                  }|S | t         j                  t         j                  t         j                  t         j                   t         j"                  t         j$                  fv r|j&                  }|S t)        d|        )NzUnknown FFT function: )fftfftnfft2ifftifftnifft2hffthfftnhfft2irfftirfftnirfft2
complex128rfftrfftnrfft2ihfftihfftnihfft2float64
ValueError)funcxpdtypes      V/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/fft/tests/test_basic.pyget_expected_input_dtyper%      s    388#))SYY#))SYY		3::szz3 3  L 
#((CIIsyy))SZZ5 
5

 L 1$899    c                 ,   t        |       }dt        j                  z  t        j                  |      t	        |      z  z  }t        j                  |      j                  dd      |z  }t        j                  | t        j                  |      z  d      S )Ny                 axis)lennppiarangefloatreshapesumexp)xLphases      r$   fft1r7   #   sj    AAIryy|E!H,-EIIaL  Q'%/E66!BFF5M/**r&   c                   h   e Zd Zd Z edd      d        Zd Z edd      d        Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej6                  j9                  dej<                  ej>                  ej@                  ejB                  g      d        Z"ej6                  j9                  dejF                  ejH                  g      d        Z%ej6                  j9                  dej<                  ej>                  ej@                  ejB                  g      d        Z&ej6                  j9                  dejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejF                  ejH                  g      d        Z-d  Z. ed!      ej6                  j9                  d"e/j`                  e/jb                  g      d#               Z2ej6                  j9                  d"d$d%g      d&        Z3ej6                  j9                  d"d'd(g      d)        Z4 edd*      ej6                  j9                  dej:                  ejj                  ejN                  ejP                  ej<                  ej>                  ejl                  ejn                  ejR                  ejT                  ej@                  ejB                  ejp                  ejr                  ejV                  ejX                  ejF                  ejH                  g      d+               Z:y,)-TestFFTc           
      ~   d}|j                  t        |      dt        |      z  z         }|j                  t        |            }dD ]s  }t        t        j                  t        j                  |d|             |d|        t        t        j
                  t        j                  |d|       |      |d|        u y )N                 ?)	r)            r;   5      i  i  r   )asarrayr   r	   r   r   r   r   selfr"   maxlenr4   xris         r$   test_identityzTestFFT.test_identity+   s    JJvf~6&>(99:ZZv'8 	FACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE	Fr&   Tz&significant overhead for some backends)np_onlyreasonc           
         d}|j                  t        |      dt        |      z  z         }|j                  t        |            }t        d|      D ]s  }t        t	        j
                  t	        j                  |d|             |d|        t        t	        j                  t	        j                  |d|       |      |d|        u y )Nr;   r<   r)   r   )rB   r   ranger	   r   r   r   r   rC   s         r$   test_identity_extensivezTestFFT.test_identity_extensive4   s    JJvf~6&>(99:ZZv'q&! 	FACHHSWWQqV_5q1v>CIIchhr!Aw&7;R!WE	Fr&   c           
         t        d      dt        d      z  z   }|j                  t        |            }|j                  |      }t        t	        j                  |      |       t        t	        j                  |d      |       t        t	        j                  |d      ||j                  |j                  d|j                              z         t        t	        j                  |d      |dz         y )N   r<   backwardnormorthor#   forward)r   rB   r7   r	   r   sqrtr   rD   r"   r4   expects       r$   test_fftzTestFFT.test_fft=   s    2JF2J&DG$JJqM
F+
3V<0Bbjj)I!JJ	M	2FRK@r&   zsome backends allow `n=0`c                     |j                  g d|j                        }t        t        t        j                  |d       y )Nr)   r=      rT   r   )rB   r   assert_raisesr    r   )rD   r"   r4   s      r$   
test_fft_nzTestFFT.test_fft_nG   s*    JJyJ6j#''1a0r&   c           	      4   |j                  t        d      dt        d      z  z         }t        t        j                  t        j                  |            |       dD ]8  }t        t        j                  t        j                  ||      |      |       : y )NrO   r<   rP   rS   rU   rQ   )rB   r   r	   r   r   rD   r"   r4   rR   s       r$   	test_ifftzTestFFT.test_ifftL   sm    JJvbzBvbzM12,a04 	KDCHHSWWQT%:FJ	Kr&   c           
         |j                  t        d      dt        d      z  z         }t        j                  t        j                  |d      d      }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      ||j                  |j                  d	|j                  
            z         t        t        j                  |d      |d	z         y NrO      r<   r)   r*   r   rP   rQ   rS   X  rT   rU   )rB   r   r   r	   r   rV   r   rW   s       r$   	test_fft2zTestFFT.test_fft2R   s    JJvh'"VH-=*==>+!4V,4f=1G2::)N!OO	Q3Vw5GHr&   c           
         |j                  t        d      dt        d      z  z         }t        j                  t        j                  |d      d      }t	        t        j
                  |      |       t	        t        j
                  |d      |       t	        t        j
                  |d      ||j                  |j                  d	|j                  
            z         t	        t        j
                  |d      |d	z         y rd   )rB   r   r   r   r	   r   rV   r   rW   s       r$   
test_ifft2zTestFFT.test_ifft2[   s    JJvh'"VH-=*==>#((11-A6		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr&   c           
      <   |j                  t        d      dt        d      z  z         }t        j                  t        j                  t        j                  |d      d      d      }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d	      ||j                  |j                  d
|j                              z         t        t        j                  |d      |d
z         y )NrO   rf   
   r<   r=   r*   r)   r   rP   rQ   rS   p  rT   rU   )rB   r   r   r	   r   rV   r   rW   s       r$   	test_fftnzTestFFT.test_fftnd   s    JJvl+b1E.EEF!3!<1EV,4f=1L

)S!TT	V3V|5LMr&   c           
      n   |j                  t        d      dt        d      z  z         }t        j                  t        j                  t        j                  |d      d      d      }t	        t        j
                  |      |d       t	        t        j
                  |d	
      |d       t	        t        j
                  |d
      t        j
                  |      |j                  |j                  d|j                              z         t	        t        j
                  |d
      |dz  d       y )Nrl   r<   r=   r*   r)   r   gHz>)rtolrP   rQ   rS   rn   rT   rU   )rB   r   r   r   r	   r   rV   r   rW   s       r$   
test_ifftnzTestFFT.test_ifftnm   s    JJvl+b1E.EEF#((388AA#6Q?aH		!f48		!*5vDIIIag&IIaL2772::l"**:#MNN	
 			!)4,/!	#r&   c                    |j                  t        d      |j                        }t        |      dt        |      z  fD ]  }dD ]^  }t	        t        j                  |||      t        j
                  |j                  ||j                        ||      d |dz  dz           ` t	        t        j                  ||d      t        j                  ||      |j                  |j                  ||j                              z          y )	N   rT   r=   )NrP   rS   rU   nrR   r)   rS   )rv   )	rB   r   r   r   r	   r   r   r   rV   )rD   r"   r4   rv   rR   s        r$   	test_rfftzTestFFT.test_rfftz   s    JJvbzJ4!*a
l+ 	A> Fad ; #

1BMM
(J*+$!88C!Q$(!EFF ag.a 2772::arzz:+J#KK	r&   c           	         |j                  t        d            }t        t        j                  t        j
                  |            |       dD ]8  }t        t        j                  t        j
                  ||      |      |       : y )NrO   r`   rQ   )rB   r   r	   r   r   r   ra   s       r$   
test_irfftzTestFFT.test_irfft   s`    JJvbz"		#((1+.24 	MDCIIchhqt&<4H!L	Mr&   c           
      &   |j                  t        d      |j                        }t        j                  |j                  ||j
                              d d d df   }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      ||j                  |j                  d|j                              z         t        t        j                  |d      |dz         y 	Nre   rT      rP   rQ   rS   rg   rU   )	rB   r   r   r   r   r   r	   r   rV   rW   s       r$   
test_rfft2zTestFFT.test_rfft2   s    JJvh'rzzJ:"**Qbmm*<=a"fE		!f-		!*5v>		!'2G2::)N!OO	Q		!)4f6HIr&   c           	         |j                  t        d            }t        t        j                  t        j
                  |            |       dD ]8  }t        t        j                  t        j
                  ||      |      |       : y Nre   r`   rQ   )rB   r   r	   r   r   r   ra   s       r$   test_irfft2zTestFFT.test_irfft2   sa    JJvh'(

399Q<0!44 	ODCJJsyy'>TJAN	Or&   c           
      ,   |j                  t        d      |j                        }t        j                  |j                  ||j
                              d d d d d df   }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      ||j                  |j                  d|j                              z         t        t        j                  |d      |dz         y 	Nrl   rT      rP   rQ   rS   rn   rU   )	rB   r   r   r   r   r   r	   r   rV   rW   s       r$   
test_rfftnzTestFFT.test_rfftn   s    JJvl+2::J>"**Qbmm*<=aBQBhG		!f-		!*5v>		!'2L

)S!TT	V		!)4f6MNr&   c           	         |j                  t        d            }t        t        j                  t        j
                  |            |       dD ]8  }t        t        j                  t        j
                  ||      |      |       : y Nrl   r`   rQ   )rB   r   r	   r   r   r   ra   s       r$   test_irfftnzTestFFT.test_irfftn   sa    JJvl+,

399Q<0!44 	ODCJJsyy'>TJAN	Or&   c           
         t        d      dt        d      z  z   }t        j                  t        d      |t        d      f      }t        j                  ||d d d   j                         f      }|j	                  |      }|j	                  |      }|j                  t        j                  |            }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      ||j                  |j	                  d|j                  	            z         t        t        j                  |d
      |dz         y )N   r<   r)   r(   rP   rQ   rS   rO   rT   rU   )r   r-   concatenateconjrB   realr   r	   r   rV   r   )rD   r"   r4   x_hermrX   s        r$   	test_hfftzTestFFT.test_hfft   s    2JF2J&Avay 9:NNFAddGLLN34JJqMF#$(&1j96Bg6Bbjj)I!JJ	Li8&2+Fr&   c           	         t        d      dt        d      z  z   }t        j                  t        d      |t        d      f      }t        j                  ||d d d   j                         f      }|j	                  |      }|j	                  |      }t        t        j                  t        j                  |            |       dD ]8  }t        t        j                  t        j                  ||      |      |       : y )Nr   r<   r)   r(   r`   rQ   )	r   r-   r   r   rB   r	   r   r   r   )rD   r"   r4   r   rR   s        r$   
test_ihfftzTestFFT.test_ihfft   s    2JF2J&Avay 9:NNFAddGLLN34JJqMF#		#((6"23V<4 	WDCIIchhvD&AMvV	Wr&   c           	         |j                  t        d            }t        t        j                  t        j
                  |            |       dD ]8  }t        t        j                  t        j
                  ||      |      |       : y r   )rB   r   r	   r   r   r   ra   s       r$   
test_hfft2zTestFFT.test_hfft2   sa    JJvh'(		#**Q-0!44 	ODCIIcjj&>TJAN	Or&   c           
      &   |j                  t        d      |j                        }t        j                  |j                  ||j
                              d d d df   }t        t        j                  |      |       t        t        j                  |d      |       t        t        j                  |d      ||j                  |j                  d|j                              z         t        t        j                  |d      |dz         y r{   )	rB   r   r   r   r   r   r	   r   rV   rW   s       r$   test_ihfft2zTestFFT.test_ihfft2   s    JJvh'rzzJ:2::ar}}:=>q#2#vF

1v.

1:6?JJqw'RWWRZZrzzZBCC	
 	

195v7IJr&   c           	         |j                  t        d            }t        t        j                  t        j
                  |            |       dD ]8  }t        t        j                  t        j
                  ||      |      |       : y r   )rB   r   r	   r   r   r   ra   s       r$   
test_hfftnzTestFFT.test_hfftn   sa    JJvl+,		#**Q-0!44 	ODCIIcjj&>TJAN	Or&   c           
      ,   |j                  t        d      |j                        }t        j                  |j                  ||j
                              d d d d d df   }t        |t        j                  |             t        |t        j                  |d             t        t        j                  |d      ||j                  |j                  d|j                              z         t        t        j                  |d      |dz         y r   )	rB   r   r   r   r   r   r	   r   rV   rW   s       r$   test_ihfftnzTestFFT.test_ihfftn   s    JJvl+2::J>2::ar}}:=>q!RaRxH

1.

1: >?JJqw'RWWRZZBJJZGHH	
 	

195v7NOr&   c                     t        ||      }|j                  t        d      |      }g d}|D ]B  } ||j                  ||            }|j                   |||      |      }t	        ||       D y )Nrl   rT   )r   r)   r=   r   r=   r)   )r)   r   r=   r)   r=   r   )r=   r   r)   )r=   r)   r   axes)r%   rB   r   permute_dimsr	   )	rD   opr"   r#   r4   r   aop_trtr_ops	            r$   _check_axeszTestFFT._check_axes   sr    (R0JJvl+5J9Q 	*Arqq12EOOBqqMO:EE5)	*r&   r   c                 (    | j                  ||       y Nr   rD   r   r"   s      r$   test_axes_standardzTestFFT.test_axes_standard       R r&   c                 (    | j                  ||       y r   r   r   s      r$   test_axes_non_standardzTestFFT.test_axes_non_standard   r   r&   c           
         t        ||      }|j                  t        d      |      }g d}|D ]  }t        t	        |j
                        D cg c]*  }||d d v rd|j                  |   z  n|j                  |   , c}      } ||j                  ||      |d d d      }	|j                   |||d d |d d       |      }
t        |	|
        y c c}w N)r>         rT   )r   r   r   r=   r   r   r)   )sr   	r%   rB   r   tuplerL   ndimshaper   r	   rD   r   r"   r#   r4   r   r   axr   r   r   s              r$   $test_axes_subset_with_shape_standardz,TestFFT.test_axes_subset_with_shape_standard   s     )R0JJvj)J70 		*A%*166]4! -/!BQ%K1QWWR[=QWWR[H 4 5E rqq1r1EOOBqE"1IAbqE$B./ $ 1EE5)		*4   /C
c           
         t        ||      }|j                  t        d      |      }g d}|D ]  }t        t	        |j
                        D cg c]*  }||d d v rd|j                  |   z  n|j                  |   , c}      } ||j                  ||      |d d d      }	|j                   |||d d |d d       |      }
t        |	|
        y c c}w r   r   r   s              r$   (test_axes_subset_with_shape_non_standardz0TestFFT.test_axes_subset_with_shape_non_standard  s    
 )R0JJvj)J70 	*A%*166]4! -/!BQ%K1QWWR[=QWWR[H 4 5E rqq1U2AYVLEOOBqE"1IAbqE$BOKEE5)	*4r   c                    |j                  t        d      |j                        }|j                  j	                  |      }t        |      dz  }t        j                  t        j                  ft        j                  t        j                  ft        j                  t        j                  fg}|D ]  \  }}|t        j                  k(  r8|j                  ||j                        }|j                  j	                  |      }t        |      dt        |      z  fD ]D  }dD ]=  } ||||      }	 ||	||      }	t        |j                  j	                  |	      |       ? F  y )NrO   rT   r=   r`   ru   )rB   r   r   linalgvector_normr   r   r   r   r   r   r   r   r	   )
rD   r"   r4   x_normrv   
func_pairsforwbackrR   tmps
             r$   test_all_1d_norm_preservingz#TestFFT.test_all_1d_norm_preserving  s*   JJvbzJ4&&q)AJNxx+ yy#((+ww)
 % 	HJD$swwJJqJ6..q1aj!GAJ,/ H< HDqAD1Csad3C#BII$9$9#$>GHH		Hr&   rI   r#   c                 Z   t        d      j                  |      }t        j                  t        j                  t        j
                  t        j                  i}|j                  ||         }t        j                  t        j                  |            }t        j                  t        j                  |            }t        j                  t        j                  |      |j                  d         }t        ||       t        ||       t        ||       |j                  |j                  k(  sJ |j                  t        j                   t        j"                  |j                        k(  sJ |j                  t        j                   t        j"                  |j                        k(  sJ y )NrO   r   )r   astyper-   float16	complex64
longdoubleclongdoubler   r   r   r   r   r   r   r   r#   result_typefloat32)	rD   r#   r"   r4   
out_dtypes	x_complexres_fftres_rfftres_hffts	            r$   test_dtypes_nonstandardzTestFFT.test_dtypes_nonstandard0  s    2Je$jj",,r~~N
HHZ./	((3771:&99SXXa[)88CIIaL!''!*5!'95!(A.!(A.}}	///~~

AGG!DDDD~~

AGG!DDDDr&   r   r   c                 <   |j                  t        d      t        ||            }t        j                  t        j
                  |            }t        j                  t        j                  |      |j                  d         }t        ||       t        ||       y )NrO   rT   r   )
rB   r   getattrr   r   r   r   r   r   r	   )rD   r#   r"   r4   r   r   s         r$   test_dtypes_realzTestFFT.test_dtypes_realB  si    JJvbzU);J<99SXXa[)88CIIaL!''!*5!$!$r&   r   r   c                    t         j                  j                  d      }|j                  |j                  d      t	        ||            }t        j                  t        j
                  |            }t        ||       y )Ni  rO   rT   )r-   r   default_rngrB   r   r   r   r	   )rD   r#   r"   rngr4   r   s         r$   test_dtypes_complexzTestFFT.test_dtypes_complexL  sW    ii##D)JJszz"~WR-?J@((3771:&#r&   z,array-likes only supported for NumPy backendc                     ddgddggddgddggddgddggg}t         ||       ||j                  |                   y )Ng      ?)r	   rB   )rD   r"   r   r4   s       r$   test_array_likezTestFFT.test_array_likeU  sX     Cj3*%Cj3*%Cj3*%' 	1r"**Q-01r&   N);__name__
__module____qualname__rH   skip_xp_backendsrM   rY   r^   rb   rh   rj   ro   rr   rw   ry   r}   r   r   r   r   r   r   r   r   r   r   pytestmarkparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r   r   r   r   r   r   r   r   r   r   r    r&   r$   r9   r9   )   s   F d+STF UFA d+FG1 H1KIJN#
MJOOOGWO	KO	P* [[TCHHciiCJJ#OP! Q! [[TCIIszz#:;! <! [[TCHHcii$'IIszz$; <*<*  [[TCHHcii$'IIszz$'IIszz$'IIszz$; <*	<*H. d#[[Wrzz2==&ABE C $E  [[Wy)&<=% >% [[W{L&AB$ C$ dKM[[TCGGSXX$'HHcii$'HHcii$'HHcii$'IIszz$'IIszz$'HHcii$'IIszz$'IIszz$< =2=M2r&   r9   Tr   r#   orderFznon-contiguousr   c                    t         j                  j                  d      }|j                  ddd      j	                  | d      }|dk(  rt        j
                  |      }n#|d d d   }t        j                  |d d d         }|j                  j                  d	      r1t        d
      D ]"  } |||      } |||      }	t        ||	       $ y |j                  j                  d      rZg d}
|j                  j                  d      r|
j                  g d       |
D ]"  } |||      } |||      }	t        ||	       $ y t        )N*   r         F)copyr   r(   r   r\   r*   )r   r   )r   )r)   r=   )r   r=   r   ))r   )r)   )r=   Nr   )r-   r   RandomStaterandr   asfortranarrayascontiguousarrayr   endswithrL   r   extendr    )r#   r   r   r"   r   XYr+   X_resY_resr   r   s               r$   test_fft_with_orderr   g  s/    ))


#CAr!!%e!4A|a  ddG  4R4)
||U#!H 	4D%E%E%eU3	4 
		/	0'<<  (KK01 	4BOEOE%eU3	4
 r&   )cpu_onlyc                   D    e Zd ZdZdZdddZd Zd Zd Zd	 Z	d
 Z
d Zy)TestFFTThreadSafer>   )i      Nr"   c                   fd}t        j                         } | }t        | j                        D cg c]  }t	        j
                  |||f       }}|D 	cg c]  }	|	j                          c}	 |D 	cg c]  }	|	j                          c}	 t        | j                        D ]   }t        |j                  d      |d       " y c c}w c c}	w c c}	w )Nc                 .    |j                   |         y r   )put)argsqr!   s     r$   workerz.TestFFTThreadSafe._test_mtsame.<locals>.worker  s    EE$+r&   )targetr      )timeoutz6Function returned wrong value in multithreaded context)err_msg)
queueQueuerL   threads	threadingThreadstartjoinr
   get)
rD   r!   r"   r   r  r  expectedrG   tr4   s
    `        r$   _test_mtsamezTestFFTThreadSafe._test_mtsame  s    	 KKM; DLL)+ V4)< + +qa t||$ 	Aa (P	+s    CC;Cc                     |j                  | j                  |j                        }| j                  t        j                  ||       y NrT   r   )onesinput_shaper   r  r   rD   r"   r   s      r$   rY   zTestFFTThreadSafe.test_fft  s7    GGD$$BMMG:#''1,r&   c                     |j                  | j                  d      }| j                  t        j                  ||       y Ny      ?        r   )fullr  r  r   r   r  s      r$   rb   zTestFFTThreadSafe.test_ifft  s1    GGD$$d+#((A"-r&   c                 ~    |j                  | j                        }| j                  t        j                  ||       y Nr   )r  r  r  r   r   r  s      r$   rw   zTestFFTThreadSafe.test_rfft  s/    GGD$$%#((A"-r&   c                     |j                  | j                  d      }| j                  t        j                  ||       y r  )r  r  r  r   r   r  s      r$   ry   zTestFFTThreadSafe.test_irfft  s1    GGD$$d+#))Q2.r&   c                     |j                  | j                  |j                        }| j                  t        j
                  ||       y r  )r  r  r   r  r   r   r  s      r$   r   zTestFFTThreadSafe.test_hfft  s7    GGD$$BLLG9#((A"-r&   c                 ~    |j                  | j                        }| j                  t        j                  ||       y r  )r  r  r  r   r   r  s      r$   r   zTestFFTThreadSafe.test_ihfft  s/    GGD$$%#))Q2.r&   )r   r   r   r	  r  r  rY   rb   rw   ry   r   r   r   r&   r$   r   r     s2    GK+/ *-.././r&   r   r!   c           
      6   t        j                  d      5 }|j                  | t        d      D cg c]  }t	        j
                  d       c}      }d d d         | t	        j
                  d            }D ]  }t        ||        y c c}w # 1 sw Y   =xY w)Nr=   r   d   )multiprocessingPoolmaprL   r-   r  r   )r!   r"   p_resrX   r4   s          r$   test_multiprocessr'    s    
 
		a	  <AeeDq:A2773<:;< "''#,F #6"# ;< <s   BB
B
BBc                       e Zd Zd Zy)
TestIRFFTNc                     t         j                  j                  d      \  }}|d|z  z   }|j                  |      }d}t        j                  ||       y )N)r=   r>   r       r<   )r   )r-   r   rB   r   r   )rD   r"   arair   r   s         r$   test_not_last_axis_successz%TestIRFFTN.test_not_last_axis_success  sI    !!.1BBJJJqM 	

14 r&   N)r   r   r   r/  r   r&   r$   r)  r)    s    !r&   r)  c                 $   | t         j                  t         j                  t         j                  fv r|j                  }n|j
                  }|j                  g d|      } | |       t        |      r | |d       y t        t        | |d       y )Nr[   rT   r=   )workers)
r   r   r   r   r   r   rB   r   r]   r    )r!   r"   r#   r4   s       r$   test_non_standard_paramsr2    si     #))SYY//




9E
*AG|Qj$15r&   r   r   c                 R    |j                  g dt        ||            } | |       y )Nr[   rT   )rB   r   )r!   r#   r"   r4   s       r$   test_real_inputr4    s$    
 	

9GB$6
7AGr&   )1r  r
  r!  numpyr-   r   numpy.randomr   numpy.testingr   r   r   r]   	scipy.fftr   scipy._lib._array_apir   r   r	   r
   r   r   r%   r7   r9   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r)  r   r   r   r   r2  r4  r   r&   r$   <module>r:     sk         D *   ;;// +{2 {2|	 $	RZZ	r}}bnn	67 3(8"9:	#((CHH	399cii	)*	* ;	7  : 4 // // !//d $#''388SXXsyy!IJ# K  #
! 
! #''388SXXsyy"%((CII"%))SZZ399"N O6O6& 9i"89#''388SYY"%((CII"%**chh"9 :: :r&   