
    tKgf                        d dl mZ d dlZd dlZd dlmZ d dlZd dlZ ej                  d      d        Z
ej                  j                  dej                  ej                  ej                  ej                  ej                   ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  g      ej                  j                  dd	d
g      d               Z&d Z'ej                  jP                  d        Z)d Z*d Z+d Z,y)    fftNassert_allclosemodule)scopec                  B    t         j                  j                  dd      S )Ni      )nprandomrandn     g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/fft/tests/test_multithreading.pyxr   	   s    99??3$$r   funcworkers   c                 D     || d      } || |      }t        ||       y )N   r   r   )r   r   r   expectedactuals        r   test_threaded_samer      s&     Aq!H!W%FFH%r   c                 0    t        j                   | d      S )Nr   r   r   )r   s    r   _mt_fftr      s    771a  r   c                 >   t        j                   | d      }t        j                  d      5 }|j                  t        t        d      D cg c]  }|  c}      }d d d        D ]  }t        ||        t        j                   | d       y c c}w # 1 sw Y   9xY w)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 
! 6"  GGAq 3 
!	 s   B	BBBBc                    t        j                         }t        j                  dg|        t	        j
                  t        d      5  t        j                  | d       d d d        t	        j
                  t        d      5  t        j                  | | dz
         d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)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TE!G$ 
G	F 
E	D 
G	Fs   	B)B5)B25B>c                  \   t        j                         } t        j                         dk(  sJ t        j                  d      5  t        j                         dk(  sJ t        j                  d      5  t        j                         | k(  sJ 	 d d d        t        j                         dk(  sJ 	 d d d        t        j                         dk(  sJ t        j                  |        5  t        j                         dk(  sJ 	 d d d        y # 1 sw Y   ~xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)Nr   r   r   )r/   r0   r   get_workersset_workers)r5   s    r   test_set_get_workersr:   ;   s    <<>D??!!!		 A%%%__R ??$,,, !  A%%% 
 ??!!!	$	 A%%% 
 	 !  
	 
 	s0   /D2D
!D&D"
D	DD"D+c                     t        j                  t        d      5  t        j                  d      5  	 d d d        d d d        t        j                  t        d      5  t        j                  t        j                          dz
        5  	 d d d        d d d        y # 1 sw Y   kxY w# 1 sw Y   oxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)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B6CB'	#B**B36B?	;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\      sR      )  	 h%  % GGSXXsxxCHHciiHHciiCJJ		3::HHciiCJJ		3::GGSXXsxxGGSXXsxx"  QG,& -&!  	%&"r   