
    S_fR                     6   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 d dlmZmZmZmZ eej,                  j/                  d      gZej,                  j2                  Zd Zd	 Z G d
 d      Z G d d      Z ed      ej,                  j=                  dej>                  ej@                  ejB                  ejD                  ejF                  ejH                  g      ej,                  j=                  dddg      ej,                  j=                  dej                  ejJ                  ejL                  ejN                  ejP                  ejR                  g      d                             Z* G d d      Z+ ed      ej,                  j=                  dej                  ejN                  ejX                  ejZ                  g      d               Z. eddg       G d d             Z/ eddg      ej,                  j=                  dej                  ejN                  ejX                  ejZ                  ejL                  ejR                  ej`                  ejb                  ejd                  ejf                  g
      d               Z4y)     N)random)assert_array_almost_equalassert_allclose)raises)array_api_compatible)array_namespacesizexp_assert_closexp_assert_equalskip_if_array_apic                    | 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      :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&   fft1r9   %   sj    AAIryy|E!H,-EIIaL  Q'%/E66!BFF5M/**r(   c                       e Zd Zd Zy)TestFFTShiftc                     |j                  g d|j                        }|j                  dk(  r!t        t        t
        j
                  |d       y t        t        t
        j
                  |d       y )Nr+         r%   torchr   )asarrayr   __name__assert_raisesRuntimeErrorr   r"   )selfr$   r6   s      r&   
test_fft_nzTestFFTShift.test_fft_n.   sH    JJyJ6;;'!,A6*cggq!4r(   N)rC   
__module____qualname__rG    r(   r&   r;   r;   ,   s    5r(   r;   c                      e Zd Zd Zd Zd Z eddg      d        Z eddg      d        Z eddg      d	        Z	 eddg      d
        Z
d Zd Z eddg      d        Z eddg      d        Z eddg      d        Z eddg      d        Zd Zd Z eddg      d        Z eddg      d        Z eddg      d        Z eddg      d        Zd Z eddg      ej2                  j5                  dej8                  ej:                  ej<                  ej>                  g      d               Z  eddg      ej2                  j5                  dejB                  ejD                  g      d               Z# eddg      ej2                  j5                  dej8                  ej:                  ej<                  ej>                  g      d               Z$ eddg      ej2                  j5                  dejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  ejB                  ejD                  g      d               Z+d Z, ed      ej2                  j5                  d e-j\                  e-j^                  g      d!               Z0ej2                  j5                  d d"d#g      d$        Z1ej2                  j5                  d d%d&g      d'        Z2y())	TestFFT1Dc           
         d}|j                  t        |      dt        |      z  z         }|j                  t        |            }t        d|      D ]y  }t        t	        j
                  t	        j                  |d|             |d| dd       t        t	        j                  t	        j                  |d|       |      |d| dd       { y )Ni                 ?r+   r   g&.>rtolatol)rB   r   ranger
   r   r   r   r   )rF   r$   maxlenr6   xris         r&   test_identityzTestFFT1D.test_identity8   s    JJvf~6&>(99:ZZv'q&! 	YACHHSWWQqV_5q1vDqQCIIchhr!Aw&7;R!W4VWX	Y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   rN   backwardnormorthor@   forward)r   rB   r9   r
   r   sqrtr!   rF   r$   r6   expects       r&   test_fftzTestFFT1D.test_fft@   s    2JF2J&DG$JJqM
F+
3V<0Bbjj)I!JJ	M	2FRK@r(   c           	      4   |j                  t        d      dt        d      z  z         }t        t        j                  t        j                  |            |       dD ]8  }t        t        j                  t        j                  ||      |      |       : y )NrX   rN   rY   r\   r]   rZ   )rB   r   r
   r   r   rF   r$   r6   r[   s       r&   	test_ifftzTestFFT1D.test_ifftJ   sm    JJvbzBvbzM12,a04 	KDCHHSWWQT%:FJ	Kr(   rA   1torch.fft not yet implemented by array-api-compatreasonsc           
         |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rX      rN   r+   r,   r   rY   rZ   r\   X  r@   r]   )rB   r   r   r
   r   r^   r!   r_   s       r&   	test_fft2zTestFFT1D.test_fft2P   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 rj   )rB   r   r   r   r
   r   r^   r!   r_   s       r&   
test_ifft2zTestFFT1D.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rX   rl   
   rN   r>   r,   r+   r   rY   rZ   r\   p  r@   r]   )rB   r   r   r
   r   r^   r!   r_   s       r&   	test_fftnzTestFFT1D.test_fftnf   s     JJvl+b1E.EEF!3!<1EV,4f=1L

)S!TT	V3V|5LMr(   c           
      b   |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	      t        j
                  |      |j                  |j                  d
|j                              z         t	        t        j
                  |d      |d
z         y rr   )rB   r   r   r   r
   r   r^   r!   r_   s       r&   
test_ifftnzTestFFT1D.test_ifftnq   s     JJvl+b1E.EEF#((388AA#6Q?aH		!f-		!*5v>IIag&IIaL2772::l"**:#MNN	
 			!)4f6MNr(   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   r@   r>   )NrY   r\   r]   nr[   r+   r\   )r|   )	rB   r   r!   r	   r
   r   r   r   r^   )rF   r$   r6   r|   r[   s        r&   	test_rfftzTestFFT1D.test_rfft~   s    JJvbzJ4q'1T!W9% 	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 )NrX   rc   rZ   )rB   r   r
   r   r   r   rd   s       r&   
test_irfftzTestFFT1D.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 	Nrk   r@      rY   rZ   r\   rm   r]   )	rB   r   r!   r   r   r   r
   r   r^   r_   s       r&   
test_rfft2zTestFFT1D.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 Nrk   rc   rZ   )rB   r   r
   r   r   r   rd   s       r&   test_irfft2zTestFFT1D.test_irfft2   sc     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 	Nrs   r@      rY   rZ   r\   ru   r]   )	rB   r   r!   r   r   r   r
   r   r^   r_   s       r&   
test_rfftnzTestFFT1D.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 Nrs   rc   rZ   )rB   r   r
   r   r   r   rd   s       r&   test_irfftnzTestFFT1D.test_irfftn   sc     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   rN   r+   r*   rY   rZ   r\   rX   r@   r]   )r   r/   concatenateconjrB   realr   r
   r   r^   r!   )rF   r$   r6   x_hermr`   s        r&   	test_hfftzTestFFT1D.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   rN   r+   r*   rc   rZ   )	r   r/   r   r   rB   r
   r   r   r   )rF   r$   r6   r   r[   s        r&   
test_ihfftzTestFFT1D.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    rd   s       r&   
test_hfft2zTestFFT1D.test_hfft2   sc     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    r^   r_   s       r&   test_ihfft2zTestFFT1D.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   rd   s       r&   
test_hfftnzTestFFT1D.test_hfftn   sc     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   r^   r_   s       r&   test_ihfftnzTestFFT1D.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}t        |      }|D ]B  } ||j	                  ||            }|j	                   |||      |      }	t        ||	       D y )Nrs   r@   )r   r+   r>   r   r>   r+   )r+   r   r>   r+   r>   r   )r>   r   r+   )r>   r+   r   axes)r'   rB   r   r   permute_dimsr
   )
rF   opr$   r%   r6   r   xp_testaop_trtr_ops
             r&   _check_axeszTestFFT1D._check_axes   s    (R0JJvl+5J9Q!!$ 	*Aw++AA+67E((AAQ(?EE5)	*r(   r   c                 (    | j                  ||       y Nr   rF   r   r$   s      r&   test_axes_standardzTestFFT1D.test_axes_standard       	R r(   c                 (    | j                  ||       y r   r   r   s      r&   test_axes_non_standardz TestFFT1D.test_axes_non_standard  r   r(   c           
         t        ||      }|j                  t        d      |      }g d}t        |      }|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@   )r   r   r   r>   r   r   r+   )sr   
r'   rB   r   r   tuplerR   ndimshaper   r
   rF   r   r$   r%   r6   r   r   r   axr   r   r   s               r&   $test_axes_subset_with_shape_standardz.TestFFT1D.test_axes_subset_with_shape_standard  s    
 )R0JJvj)J70!!$ 		*A%*166]4! -/!BQ%K1QWWR[=QWWR[H 4 5E w++AA+6r1E((Ar2A)G./ ) 1EE5)		*4   /C
c           
         t        ||      }|j                  t        d      |      }g d}t        |      }|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_standardz2TestFFT1D.test_axes_subset_with_shape_non_standard!  s     )R0JJvj)J70!!$ 	*A%*166]4! -/!BQ%K1QWWR[=QWWR[H 4 5E w++AA+6%)&QE((Ar2A)Ga(PEE5)	*4r   c                    |j                  t        d      |j                        }t        |      }|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 )NrX   r@   r>   rc   r{   )rB   r   r!   r   linalgvector_normr	   r   r   r   r   r   r   r   r
   )rF   r$   r6   r   x_normr|   
func_pairsforwbackr[   tmps              r&   test_all_1d_norm_preservingz%TestFFT1D.test_all_1d_norm_preserving5  s4   JJvbzJ4!!$++A.GaKxx+ yy#((+ww)
 % 	MJD$swwJJqJ6 33A61gqay) M< MDqAD1Csad3C#GNN$>$>s$CVLMM		Mr(   Tnp_onlyr%   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 )NrX   r   )r   astyper/   float16	complex64
longdoubleclongdoubler   r   r   r   r   r   r   r   r%   result_typefloat32)rF   r%   r6   
out_dtypes	x_complexres_fftres_rfftres_hffts           r&   test_dtypes_nonstandardz!TestFFT1D.test_dtypes_nonstandardL  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                 X   |j                  t        d      t        ||            }t        j                  t        j
                  |            }t        j                  t        j                  |      |j                  d         }ddd|   }t        |||d       t        |||d       y )NrX   r@   r   iUMu?:0yE>)r   r!   rO   )
rB   r   getattrr   r   r   r   r   r   r
   )rF   r%   r$   r6   r   r   rP   s          r&   test_dtypes_realzTestFFT1D.test_dtypes_real^  s    JJvbzU);J<99SXXa[)88CIIaL!''!*5!d3E:!$Q7!$Q7r(   r   r   c                     |j                  t        d      t        ||            }t        j                  t        j                  |            }ddd|   }t        |||d       y )NrX   r@   r   r   )r   r   r   rO   )rB   r   r   r   r   r
   )rF   r%   r$   r6   r   rP   s         r&   test_dtypes_complexzTestFFT1D.test_dtypes_complexi  sR    JJvbzU);J<((3771:&#48?A6r(   N)3rC   rH   rI   rV   ra   re   r   rn   rp   rv   rx   r}   r   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   rJ   r(   r&   rL   rL   6   s   YAK w STVIVI w STVJVJ w STVNVN w STV	OV	O
M w STVJVJ w STVOVO w STVOVO w STVOVOGW w STVOVO w STV	KV	K w STVOVO w STV	PV	P* w STV[[TCHHciiCJJ#OP! QV! w STV[[TCIIszz#:;! <V! w STV[[TCHHcii$'IIszz$; <*<V*  w STV[[TCHHcii$'IIszz$'IIszz$'IIszz$; <*	<V*M. t$[[Wrzz2==&ABE C %E  [[Wy)&<=8 >8 [[W{L&AB7 C7r(   rL   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ascontiguousarrayrC   endswithrR   r   extendr"   )r%   r   r   rngXYr-   X_resY_resr   r   s              r&   test_fft_with_orderr   r  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(   c                   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QueuerR   threads	threadingThreadstartjoinr   get)
rF   r#   r$   r  r  r  expectedrU   tr6   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 Nr@   r   )onesinput_shaper   r  r   rF   r$   r   s      r&   ra   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&   re   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&   r}   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&   r   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(   )rC   rH   rI   r  r  r  ra   re   r}   r   r   r   rJ   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maprR   r/   r  r   )r#   p_resr`   r6   s         r&   test_multiprocessr)    s    
 
		a	  <AeeDq:A2773<:;< "''#,F #6"# ;< <s   BB
B
BBrA   rf   rg   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       rN   )r   )r/   r   rB   r   r   )rF   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)rC   rH   rI   r1  rJ   r(   r&   r+  r+    s    !r(   r+  c                    | t         j                  t         j                  t         j                  fv r|j                  }n|j
                  }|j                  dk7  r1|j                  g d|      } | |       t        t        | |d       y y )Nnumpyr=   r@   r>   )workers)
r   r   r   r   r!   r   rC   rB   rD   r"   )r#   r$   r%   r6   s       r&   test_non_standard_paramsr5    si     #))SYY//

	{{gJJyJ.Qj$15	 r(   )5r	  r  r#  r3  r/   r   numpy.randomr   numpy.testingr   r   r   rD   	scipy.fftr   scipy.conftestr   scipy._lib._array_apir   r	   r
   r   r   usefixtures
pytestmarkr   r'   r9   r;   rL   r   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r)  r+  r   r   r   r   r5  rJ   r(   r&   <module>r=     s?         D *  /  #FKK$;$;<O$PQ
KK11 +5 5z7 z7x	 4 	RZZ	r}}bnn	67 3(8"9:	#((CHH	399cii	)*	* ;	7 !:// //d 4 #''388SXXsyy!IJ# K !# 7OPR
! 
!R
! 7OPR#''388SXXsyy"%((CII"%))SZZ399"N O
6OR

6r(   