
    e?                         d dl Zd dlZej        ej        gZej        ej        gZ	 e
e	ez             Zd	dZd ZefdZd Zd Zd ZdS )
    NFc                     | dk    r6g }t                      }|D ]"}||         D ]}|                    |           #nt                      |          }|rd |D             }|S )z@Returns a list of functions, optionally as string function namesallc                     g | ]	}|j         
S  )__name__).0fs     5lib/python3.11/site-packages/bottleneck/tests/util.py
<listcomp>z!get_functions.<locals>.<listcomp>   s    ++++++    )	func_dictappend)module_name	as_stringfuncsfuncs_in_dictkeyfuncs         r
   get_functionsr   	   s    e!  	# 	#C%c* # #T""""#	# K( ,++U+++Lr   c                     i } t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        t           j        g| d<   t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        g
| d<   t           j        g| d<   t           j        t           j        t           j        t           j        t           j        g| d<   | S )Nreducemove	nonreducenonreduce_axis)bnnansumnanmeannanstdnanvarnanminnanmaxmedian	nanmedianss	nanargmin	nanargmaxanynanallnanmove_sum	move_meanmove_stdmove_varmove_minmove_maxmove_argminmove_argmaxmove_median	move_rankreplace	partitionargpartitionrankdatananrankdatapush)ds    r
   r   r      s    
A
	


	
	
	
	
	




	
	AhK  	








AfI j\AkN




A Hr   c                 .    t          t          | |          S )N)
array_iterarray_generator)	func_namedtypess     r
   arraysr?   C   s    oy&999r   c              '   T   K    | | D ]}|j         dk     r|V  |V  |j        V   d S )N   )ndimT)arrays_funcargsas      r
   r;   r;   G   sT      [$ 
 
6A::GGGG GGG#IIII
 
r   c           	   #     K   t          t          |          t          t                    z            }| dv rd}nt          j        }| dv rd}nt          j        }|D ]}t          j        ||g|          V  t          j        || g|          V  t          j        |ddg|          V  t          j        | ddg|          V  | dk    rt          j        ||g|          V  t          j        g d	d
          V  t          j        g d	d          V  t          j        g d	t          j                  V  |D ]9}t          j        g d	|          dz   V  t          j        g d|          V  :|D ]}t          j        d||dg|          V  t          j        dgt          j                  V  |D ]2}t          j        ddgddgg|          dt          j	        f         V  3|D ]6}t          j        g d|          V  t          j        g d|          V  7| 
                    d          s|D ]}t          j        d|          V  t          j        d|          V  t          j        d|          V  ||v rIt          j        | |          V  t          j        ||          V  t          j        ||          V  i }dg dd|d<   ddgd|d<   dddgd|d<   ddgd|d<   ddgd|d<   d D ]
}t          j                            |          }|D ]}	||	         d!         }
||	         d"         }|D ]}t          j        |
|          }t          |j        j        t          j                  rW| d#vr |j        |j         d$k     }|||<    |j        |j         d$k     }|||<    |j        |j         d$k     }||xx         d%z  cc<   |                    |           |D ]}|                    |          V  Ō|D ]+}t          j        ddgddgg|          d&d&dgf         V  ,|D ][}t          j        d                              |          }t/          d          D ]"}t/          dd          D ]}||d&|         V  #\|D ]u}t          j        d                              dd                              |          }|d&d&d         V  |d&d&d&d&df         V  |d&d&d         d&d&d&d&df         V  v|D ]}t          j        d                              ddd                              |          }t/          d          D ]}t/          dd          D ]m}||d&|         V  |d&d&|d&|f         V  |d&d&d&d&|d&|f         V  ||d&|         d&d&d         V  ||d&|         d&d&d         d&d&d&d&df         V  nd&S )'z4Iterator that yields arrays to use for unit testing.)r4   r5   r   )r)   r*   r+   r,      )dtyperA      r%   )   rA   rJ   z>f4z<f4g    eA)r   r   r   rK   l           .)rK   rK   rK   r   i	   ))r   )r   r   )rA   r   )rA   r   rK   )sizeshapes)rH      )rA      )rJ   rL      )rA   rA   rL      )rK   rA   rJ   rL   )rK   rA   rN   rO   )r%   r&   g?N)listsetFLOAT_DTYPESnpnaninfarrayfloat16int64newaxis
startswithrandomRandomStatearange
issubclassrI   typeinexactrandshapeshufflereshapeastyperange)r=   r>   f_dtypesrY   rZ   rI   r$   seedrsrB   rN   rO   rF   idxrg   startsteps                    r
   r<   r<   U   s      CKK#l"3"3344H 111fEEEf  4 4hSz//////hcT{%000000hQ{%000000ha|5111111##(C:U333333 (999E
*
*
****
(999E
*
*
**** (999BJ
/
/
////  / /hyyy...4444hyyy....... 6 6h3Q'u5555555
(G9BH
-
-
---- G GhAA'u555c2:oFFFFF  / /hyyy......hyyy....... '' 1 	1 	1E(2U++++++(1E******(1E******  ht5111111hs%000000hs%000000 
B"C"C"CDDBqE4&))BqEFF#344BqEI;//BqEL>22BqE + +Y""4(( 	+ 	+Dd8F#DXh'F + +Id%000aglBJ77 ! (BBB%bgqw/#5!$#!"'17+c1C AcF!"'17+c1CcFFFbLFFF

1# + +E))E******++	+&  > >hAA'u555aaa!f===== % %IbMM  ''1XX 	% 	%Ea % %tn$$$$%	%   IbMM!!!Q''..u55!f33Q3i!fQQQ!Vn 	2 	2IbMM!!!Q**11%881XX 	2 	2Ea 2 2tn$$$5;$;''''111ekTk)****tnSSqS))))tnSSqS)!!!SSqS&111112	2	2 	2r   c                     | j         }g }|j        r|                    d           |j        r|                    d           t	          |          dk    r|                    d           d                    |          S )NCFr   N,)flagsc_contiguousr   f_contiguouslenjoin)rF   r	   strings      r
   array_orderr}      s{    	AF~ c~ c
6{{ac88Fr   )F)numpyrX   
bottleneckr   r]   int32
INT_DTYPESfloat64float32rW   tupleDTYPESr   r   r?   r;   r<   r}   r   r   r
   <module>r      s           h!

BJ'	|j(	)	)   % % %V $ : : : :  q2 q2 q2h	 	 	 	 	r   