
    e	                         d Z ddlZddlZddlmZ ddlZddlm	Z	 ddl
Z
d Ze
j                            d ej        d          d	 
          d             ZdS )zTest functions.    N)assert_equal   )DTYPESc              #   P  K   i }ddgd|d<   ddgd|d<   ddgd|d	<   t           j                            g d          }|D ]}||         d
         }||         d         }| D ]}t          j        ||          }t	          |j        j        t           j                  rg |j        |j	         dk     }t           j
        ||<    |j        |j	         dk     }t           j        ||<    |j        |j	         dk     }||xx         dz  cc<   |D ]}	|                    |	          }|V  dS )z3Iterator that yield arrays to use for unit testing.   )r   )sizeshapesr      )      r   )r   r   r   r   r   r	   )dtypeg?N)nprandomRandomStatearange
issubclassr   typeinexactrandshapeinfnanreshape)
dtypesssrsndimr   r	   r   aidxr   s
             Hlib/python3.11/site-packages/bottleneck/tests/input_modification_test.pyarraysr"      sl     	B4&))BqE6(++BqE9+..BqE			yyy	)	)B  $xD(# 	 	E	$e,,,A!',
33 bgqw'#-#bgqw'#-#bgqw'#-#"  IIe$$	     funcallc                     | j         S N)__name__)xs    r!   <lambda>r*   $   s    
 r#   )idsc                   
 | j         

dk    rdS d}|dz  }t          t          t                              D ]\  }}t	          t          |j         |j                            }t          
fddD                       r|dgz  }d}d
v rd	}|D ]t}t          j	        d
          5  |
                                }|
                                }t          
fddD                       rNt          j                    5  t          j        d
            | |||           ddd           n# 1 swxY w Y   n	 t          j                    5  t          j        d
            | ||           ddd           n# 1 swxY w Y   nN# t          $ rA}	
                    d          r"dt#          |	          v rY d}	~	ddd           9Y d}	~	nd}	~	ww xY wt%          |||
||fz             ddd           n# 1 swxY w Y   vdS )z1Test that bn.xxx gives the same output as np.xxx.replaceNz
Input array modified by %s.

z!input array before:
%s
after:
%s
c              3       K   | ]}|vV  	d S r'    .0r)   names     r!   	<genexpr>z$test_modification.<locals>.<genexpr>.   s'      LLq}LLLLLLr#   )pushmovesort	partitionr   r7   r   ignore)invalidc              3       K   | ]}|v V  	d S r'   r/   r0   s     r!   r3   z$test_modification.<locals>.<genexpr>9   s'      HHQqDyHHHHHHr#   )r5   r6   r7   )axisnanargzAll-NaN slice encountered)r(   	enumerater"   r   listranger   r%   r   errstatecopyanywarningscatch_warningssimplefilter
ValueError
startswithstrr   )r$   msgir   axes
second_argr;   a1a2er2   s             @r!   test_modificationrP   $   s/    =Dy
-C22C&..)) ; ;1E16'16**++LLLL&KLLLLL 	TFND
$J 	; 	;DX... ; ;VVXXVVXXHHHH*GHHHHH %!022 8 8 -h777R$77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8%%466 0 0$1(;;; D$////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 & % % %??$  %9SVVCC$HHH!; ; ; ; ; ; ;%
 RSD"b>%9:::#; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	;; ;s   *AG;#D0	$G;0D44G;7D48G;=F
"E>	2F
>FF
FF
	G;

G	&G	:G;G;G	G;;G?G?)__doc__rC   numpyr   numpy.testingr   
bottleneckbnutilr   pytestr"   markparametrizeget_functionsrP   r/   r#   r!   <module>r[      s           & & & & & &             0 !1!1%!8!8>R>RSS"; "; TS"; "; ";r#   