
    (phf                     z   S SK Jr  S SKrS SKrS SKJr  S SKrS SKr\R                  " SS9S 5       r
\R                  R                  S\R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  \R*                  \R,                  \R.                  \R0                  \R2                  \R4                  \R6                  \R8                  \R:                  \R<                  \R>                  \R@                  \RB                  \RD                  \RF                  \RH                  \RJ                  /5      \R                  R                  SS	S
/5      S 5       5       r&S r'\R                  RP                  S 5       r)S r*S r+S r,g)    fftNassert_allclosemodule)scopec                  B    [         R                  R                  SS5      $ )Ni      )nprandomrandn     V/var/www/html/venv/lib/python3.13/site-packages/scipy/fft/tests/test_multithreading.pyxr   	   s    99??3$$r   funcworkers   c                 4    U" U SS9nU" XS9n[        XC5        g )N   r   r   )r   r   r   expectedactuals        r   test_threaded_samer      s"     Aq!H!%FF%r   c                 ,    [         R                   " U SS9$ )Nr   r   r   )r   s    r   _mt_fftr      s    771a  r   c                 H   [         R                   " U SS9n[        R                  " S5       nUR                  [        [        S5       Vs/ s H  o0PM     sn5      nS S S 5        W H  n[        XQ5        M     [         R                   " U SS9  g s  snf ! , (       d  f       N== f)Nr   r      )r   multiprocessingPoolmapr   ranger   )r   expectp_resrs         r   test_mixed_threads_processesr)       s~     WWQ"F			a	 AeeGq2Aa23 
! "  GGAq 3 
!	 s   B
BBB
B!c                    [         R                  " 5       n[        R                  " S/U* S9  [        R
                  " [        SS9   [        R                  " U SS9  S S S 5        [        R
                  " [        SS9   [        R                  " X* S-
  S9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr   r   workers must not be zeromatchr   workers value out of range)os	cpu_countr   ifftpytestraises
ValueError)r   cpuss     r   test_invalid_workersr6   /   s    <<>DHHaS4% 	z)C	D1 
E 
z)E	FE!G$ 
G	F 
E	D 
G	Fs   B=B0
B-0
B>c                     [         R                  " 5       n [        R                  " 5       S:X  d   e[        R                  " S5         [        R                  " 5       S:X  d   e[        R                  " S5         [        R                  " 5       U :X  d   e S S S 5        [        R                  " 5       S:X  d   e S S S 5        [        R                  " 5       S:X  d   e[        R                  " U * 5         [        R                  " 5       S:X  d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)Nr   r   r   )r/   r0   r   get_workersset_workers)r5   s    r   test_set_get_workersr:   ;   s    <<>D??!!!		 A%%%__R ??$,,, !  A%%% 
 ??!!!	$	 A%%% 
 	 !  
	 
 	s0   2D+9D#D+4D<
D(	$D++
D9<
E
c                     [         R                  " [        SS9   [        R                  " S5          S S S 5        S S S 5        [         R                  " [        SS9   [        R                  " [
        R                  " 5       * S-
  5          S S S 5        S S S 5        g ! , (       d  f       Np= f! , (       d  f       Ny= f! , (       d  f       N9= f! , (       d  f       g = f)Nr+   r,   r   r.   r   )r2   r3   r4   r   r9   r/   r0   r   r   r   test_set_workers_invalidr<   L   s    	z)C	D__Q   
E 
z)E	F__blln_Q./ 0 
G	F   
E	D
 0/ 
G	FsE   B.BB..C
B?C
B+	'B..
B<?
C		C
C)-scipyr   numpyr   r2   numpy.testingr   r    r/   fixturer   markparametrizer1   fft2ifft2fftnifftnrfftirfftrfft2irfft2rfftnirfftnhfftihffthfft2ihfft2hfftnihfftndctidctdctnidctndstidstdstnidstnr   r   slowr)   r6   r:   r<   r   r   r   <module>r\      sP      )  	 h%  % GGSXXsxxCHHciiHHciiCJJ		3::HHciiCJJ		3::GGSXXsxxGGSXXsxx"  QG,& -&!  	%&"r   