
    gi%                    @   d 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
mZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<  G d d      Z= G d	 d
      Z> G d d      Z? G d d      Z@ G d d      ZA G d d      ZB G d d      ZC G d d      ZD G d d      ZE G d d      ZF G d d      ZG G d d      ZH G d d       ZI G d! d"      ZJ G d# d$      ZKy)%zTests suite for MaskedArray.
Adapted from the original test_ma by Pierre Gerard-Marchant

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu

    N)normalize_axis_tuple)MaskedArrayarangearraycountgetmaskarraymaskedmasked_arraynomaskonesshapezeros)#
_covhelperapply_along_axisapply_over_axes
atleast_1d
atleast_2d
atleast_3daverageclump_maskedclump_unmaskedcompress_ndcompress_rowcolscorrcoefcovdiagflatdotediff1dflatnotmasked_contiguousin1dintersect1disinmask_rowcols
masked_allmasked_all_likemedianmr_ndenumeratenotmasked_contiguousnotmasked_edgespolyfit	setdiff1dsetxor1dstackunion1duniquevstack)assert_assert_almost_equalassert_array_equalassert_equalc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestGenericc                    t        dt              }t        ddgddgt              }t        ||       t	        j
                  ddgddgd      }t        d|      }t        d	d	gd
d
g|      }t        ||       t        d|      }t        d	d	gd	d	ggd
d
gd
d
gg|      }t        ||       t	        j
                  ddddgfg      }t        d|      }t        ddgddg|      }t        ||       t        d|      }t        ddgddg|      }t        ||       t        d
|      }t        dggdgg|      }t        ||       y )N   dtype   maskr<   abfnamesformatsr   r   r=   r=   r:   r:   r@   rB   barB   bbrB   r=   rG   )r$   floatr   r5   npr<   )selftestcontroldts       R/var/www/html/audio_env/lib/python3.12/site-packages/numpy/ma/tests/test_extras.pytest_masked_allzTestGeneric.test_masked_allK   sn    $e,AaV59T7#XXc
SzBC$b)(/?rJT7#&+&&)FF+;<%v.0@A " 	T7#XXzC+{)C#DEF$b)k2);7rCT7#$b)k2);7rCT7#&++}oRHT7#    c                 .   t        j                  ddt        fgdffg      }t         j                  j	                  d|      }t        t        |d         t         j                  j                  j                         t        t        |d   d         t         j                  j                  j                         t        t        |d   d         d       t        |d   d   j                  d       t        |d   d   j                  j                  d       y )NrA   cr=   r=   rG    rP   r<   objectmar$   r5   typecorer   lenr   _fill_valuerQ   my_dtype
masked_arrs      rU   "test_masked_all_with_object_nestedz.TestGeneric.test_masked_all_with_object_nestedi   s     88cc6]OT#:;<=UU%%dH5
T*S/*BEEJJ,B,BCT*S/#./1G1GHSC-.2Z_S)//8Z_S)55;;R@rW   c                    t        j                  dt        dffg      }t         j                  j	                  d|      }t        t        |d         t         j                  j                  j                         t        t        |d         d       t        |d   j                  d       t        |d   j                  j                  d       y )NrA   rZ   r=   rG   r[   r\   rc   s      rU   test_masked_all_with_objectz'TestGeneric.test_masked_all_with_objectu   s    88cFD>234UU%%dH5
T*S/*BEEJJ,B,BCSC)1-Z_**F3Z_0066;rW   c                    t        ddgt              }t        |      }t        ddgddgt              }t        ||       t	        j
                  ddgddgd      }t        d	d	gd
d
g|      }t        |      }t        ddgd
d
g|      }t        ||       t	        j
                  ddddgfg      }t        ddgddg|      }t        |      }t        ||       y )Nr=   r:   r;   r>   r@   rA   rB   rC   rF   rG   )
   rj   rI   rJ   rL   rN   )r   rO   r%   r5   rP   r<   )rQ   baserR   rS   rT   s        rU   test_masked_all_likez TestGeneric.test_masked_all_like   s     aV5)t$AaV59T7#XXc
SzBCff%VV,<BGt$8,FF3C2NT7#XXzC+{)C#DEFk2);7rCw'T7#rW   c                 0   t        dd      D ]  }t        d|z        D ]  }t        j                  |t              }t        j                  ||t              }t        d|z        }|d|z  z  dk7  |_        d} ||      D ]"  }||j                  |   j                         z  }$ |t        k(  r)t        |j                         j                         |       |j                   |_        t        |j                         j                         |        	 y )Nr=      r:   r;   r   )rangerP   r   intfullr
   r?   datasumr   r5   
compressed)	rQ   rB   ijkjar@   ssls	            rU   check_clumpzTestGeneric.check_clump   s    q! 	:A1a4[ :IIas+WWQ- A&1+!+A$ *B))A*& !3!3!5q9ffWAF !3!3!5q9:	:rW   c                     t        t        j                  d            }t        |g d<   t	        |      }t        dd      t        dd      t        dd      g}t        ||       | j                  t               y )Nrj   r   r=   r:         	   r      r~   rn   r   )r
   rP   r   r	   r   slicer5   r{   rQ   r@   rR   rS   s       rU   test_clump_maskedzTestGeneric.test_clump_masked   s^    2' &
AA;aU1b\:T7#&rW   c                     t        t        j                  d            }t        |g d<   t	        |      }t        dd      t        dd      g}t        ||       | j                  t               y )Nrj   r}   r   r~   rn   r   )r
   rP   r   r	   r   r   r5   r{   r   s       rU   test_clump_unmaskedzTestGeneric.test_clump_unmasked   sW    2' &
a A;a.T7#(rW   c                    t        d      }t        |      }t        |t        d|j                        g       t        j                  dt              |_        t        |t        d|j                        g       t        ||dk  |dkD  z  |dk(  z  <   t        |      }t        |t        dd      t        dd      g       t        |d d  t        |      }t        |g        y )	Nrj   r   r;   r   r      r~   r   )
r   r   r5   r   sizerP   r   boolr?   r	   )rQ   r@   rR   s      rU   test_flatnotmasked_contiguousz)TestGeneric.test_flatnotmasked_contiguous   s    2J'*TE!QVV,-."D)TE!QVV,-.*01q5QU
qAv
&''*TE!QKq!56!'*T2rW   N)__name__
__module____qualname__rV   rf   rh   rl   r{   r   r   r   r[   rW   rU   r7   r7   I   s+    $<
A<$(: 	')rW   r7   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dg d	d
dgg ddgdgfg dg dgdg dgddgg dgg dgfg      d        Zd Zy
)TestAveragec                    t        g dg d      }t        dt        |d             t        dt        |g d             t        |g dd	
      \  }}t        d|       t        |dk(         t        |d d  t        t        |d      j
                  d	g       t        g dg d      }|j                  dd      }t        |d d df<   t        t        |d      ddg       t        t        |d      j
                  d   d	g       t        ddgt        |d             t        |dd	      \  }}t        |ddg       y )N)              ?       @      @)TFFFr?   r   r   axis)r   r   r   r   weightsTr   returned      @r:   r=   r   r   r   r   )r   r5   r   r2   r	   r?   reshape)rQ   ottresultwtss       rU   test_testAverage1zTestAverage.test_testAverage1   s   $+FGS'#A./S'#/?@Ac+;dKS&!s
AWSq)..7$+FGkk!QAqD	WSq)C:6WSq)..q1D6:b"Xws34cD9S2r(#rW   c           
         g d}g dg dg}t        dt        j                        }t        t	        |d      d       t        t	        |d|      d       t        t        dt        j                        d	t        d      z  g      }t        t	        |d       t        j                  j                  t        j                   d            d
z  dz         t        t	        |d      t        j                   d      d
z  d	z         t        t	        |d      t	        |d      t	        |d      d	z  g       t        t	        |d |      d       t        t	        |d|      g d       t        t	        |d      t	        |d      t	        |d      d	z  g       t        d      }g d}g dg dg}t        d      }g d}	t        t	        t        ||      d      d       t        t	        t        ||      d      d       t        t	        t        ||      d      j                  dg       t        t	        t        ||	      d      d       t        t        t	        t        ||      d            d       t        ||      }
t        t	        |
d       d       t        t	        |
d      g d       t        t	        |
d      ddg       t        t	        |
d|      g d       y )Nr   r=   r=   r=   r=   r   r=   r   r   r   r   r=   r~   r;   r   r         @r   r   r   r         (@r=   r   g
@)r   r   r   r   r         $@)r   r   r=   r=   r   r   )r   r=   r=   r=   r=   r=   Tr   )r   r        X@r   r   g      @      @)r   r   r   r   r   r   )r   rP   float64r5   r   r   addreducer   r   r
   r?   r   )rQ   w1w2xym1m2m3m4m5zs              rU   test_testAverage2zTestAverage.test_testAverage2   sD    "451BJJ'WQQ'-WQQ3S96!2::.fQi@AWQ%rvv}}RYYq\'BR'G#'MNWQQ'1):R)?@WQQ'aa('!!*<s*BC	EWQb18<WQQ3.	0WQQ'aa('!!*<s*BC	E1X "45!WW\!R0q93?W\!R0q93?W\!R0q9>>GW\!R0q93?U7<2#6Q?@!DBWQ%x0WQQ')EFWQQ'#s4WQQ32	4rW   c                 j   t        d      }t        d      dz  }t        ||g||ggdd      \  }}t        t        |      t        |             t        |j                  |j                         t        t	        d      dddgd      \  }}t        t        |      t        |             t        t	        d      d	      \  }}t        t        |      t        |             t        t	        d      t	        d      d
      \  }}t        t        |      t        |             t        ddgddggt              }t        |ddgddgg      }t        |d      }	t        |	ddg       t        |d      }
t        |
ddg       t        |d       }
t        |
d       t        |d      }
t        |
ddg       y )Nr~   r   r=   Tr   r:   r:   r   r   r   r   r   )r   r   r:      Fr         ?r   r   g@      ?r   )r   r   r5   r   r   r   rO   r
   )rQ   r@   rA   r1r   r2r   a2da2dma2daa2dmas              rU   test_testAverage3zTestAverage.test_testAverage3  sq   1I1IM1a&1a&)DABU2Yb	*RXXrxx(iq1a&4PBU2Yb	*i48BU2Yb	*i$y/DQBU2Yb	*aVaV$e,C5%.4-!@As#TC:&1%US#J'4(UG$1%US#J'rW   c                 T   t        j                  g d      j                  dd      }t         j                  j                  |dgdgdgg      }t        j                  g d      j                  dd      }t	        ||dd      }t        d	gd
gdggdgdgdgg      }t        ||       y )Nr:   r   r   r   r=   FTr   )r   r   r~   )r   r   keepdimsr   r   r   )rP   r   r   r^   r   r
   r5   )rQ   r   rA   wactualdesireds         rU   test_testAverage4zTestAverage.test_testAverage4  s    HHY''1-EEKK%5'D6 :K;HHY''1-AA=rdRD1UGeWtf3MNVW%rW   c                    t        j                  d      j                  ddd      }t        j                  g d      j                  ddd      }t        j                  dd      }t         j
                  j                  ||      }|d d d d df   }t        |d	|
      }t        g dg d      }t        ||       t        j                  dd      }d|d d d d df<   d|d<   t         j
                  j                  ||      }t        |d	|
      }t        t         j                  ddgg d      }t        ||       t        j                  dd      }t         j
                  j                  ||      }|dd d d d f   }t        |d|
      }t        ddgddg      }t        ||       t        j                  t        d      5  t        |d|
       d d d        t        j                  t        d      5  t        |d	|
       d d d        t        |d|
      }t        |d	|j                  
      }t        ||       y # 1 sw Y   nxY w# 1 sw Y   HxY w)N   r:   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   Fr   r   r   r=   r   )      @       @      "@)FFFTr   r   r=   r   r   )TFFr=   r=   r:   g      @g      @zHShape of weights must be consistent with shape of a along specified axis)matchr   r=   r:   )r=   r   )rP   r   r   r   rq   r^   r   r
   r3   nanpytestraises
ValueErrorT)	rQ   r   r   mymasubw0r   r   subw1s	            rU   $test_weight_and_input_dims_differentz0TestAverage.test_weight_and_input_dims_different#  s    IIbM!!!Q*HHEFWQ1 	
 GGIu%eekk!!k$!Q'
659|2GHFG,GGIu%!Q'
'
eekk!!k$659VVR%' 	FG,GGIu%eekk!!k$!Q'
659d|5%.AFG, ]]89 	8 Ci7		8 ]]89 	5 Cfe4		5 659#FEGG<FG,	8 	8	5 	5s   I:IIIc                     t        t        ddg            }t        |d       t        t        g dg d            }t        |d       y )Nr=   r:   r   )r=   r:   r   r   FFTTr   )r   r   r5   rQ   r@   s     rU   test_onintegers_with_maskz%TestAverage.test_onintegers_with_maskV  s:    E1a&M"QE,-GHIQrW   c                 n   t        j                  g dg dgt              }t        g dg dg|      }t	        |      }t        j                  |j                               }t        |j                  |j                         t        |j                  |j                         t	        |d      }t	        |j                  d      t	        |j                  d      d	z  z   }t        |j                  |j                         t        |j                  |j                         t	        |d
      }t	        |j                  d
      t	        |j                  d
      d	z  z   }t        |j                  |j                         t        |j                  |j                         t        j                  g dg dg      }	t	        ||	      }
t        j                  |j                         |	|          }t        |
j                  |j                         t        |
j                  |j                         t	        ||	d      }t	        |j                  |	d      t	        |j                  |	d      d	z  z   }t        |j                  |j                         t        |j                  |j                         t	        ||	d
      }t	        |j                  |	d
      t	        |j                  |	d
      d	z  z   }t        |j                  |j                         t        |j                  |j                         y )N)r   r   r   r=   r   r   r=   r   r   r   r;   )r   y      ?       @y      @      @y      @      @y      @       @)y              "@              ?y       @      @y      @      @y      @      @r   r   r   r   r=   )r   r   r   r   r   )r   r   r   r   r   r   r   r   )	rP   r   r   r
   r   rt   r3   realimag)rQ   r?   r@   avexpectedav0	expected0av1	expected1r   wavwav0wav1s                rU   test_complexzTestAverage.test_complex]  sH    xx(*157=>@"$ QZ::alln-BGGX]]3BGGX]]3aa AFF+gaff1.E.JJ	CHHinn5CHHinn5aa AFF+gaff1.E.JJ	CHHinn5CHHinn5 hh113 4a%::allnc4%jACHHhmm4CHHhmm4q#A.QVVSq9QVVSq9B>?	DIIy~~6DIIy~~6q#A.QVVSq9QVVSq9B>?	DIIy~~6DIIy~~6rW   z<x, axis, expected_avg, weights, expected_wavg, expected_wsumr=   r:   r   Nr   )r   r   r=   g      ?r   )r=   r:   r   )r=   r~      r   )r   r   r   r=   r   )r   r   g      #@)r   r   r   c                 \   t         j                  j                  ||d      }|j                  t        j                  |      k(  sJ t	        ||       t         j                  j                  |||d      }|j                  t        j                  |      k(  sJ t	        ||       t         j                  j                  |||dd      \  }}	|j                  t        j                  |      k(  sJ t	        ||       |	j                  t        j                  |      k(  sJ t	        |	|       y )NT)r   r   )r   r   r   )r   r   r   r   )rP   r^   r   r   r4   )
rQ   r   r   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             rU   test_basic_keepdimszTestAverage.test_basic_keepdims  s     eemmAD4m8yyBHH\22223-uu}}QT7T}JzzRXXm44444/UU]]14,04 # A
dzzRXXm44444/zzRXXm44444/rW   c                    t         j                  j                  t        j                  d      j	                  dd      g dg dg dg      }t        g dd      }t        g dg d      }t        |d|d	      }t        j                  g d
      }t        ||       t        |d|d	      }t        j                  g d      }t        ||       t         j                  j                  g dg d      }t        |dddt         j                  g      }t        |d       t         j                  j                  g dg dg dgg dg dg dg      }t         j                  j                  |dt         j                  dgd      }t         j                  j                  dt         j                  t         j                  dgg d      }t        ||       t        |j                  |j                         y )Nr   r   r=   r   r   r   r   r   r   )r         Fr   r   )      @g     @g     @)r  g0N@g0N@)r   r   r   r   r   r=   r   r   )r   r  r   r   )r   r   r   r   )FTTF)TFTT)TFTFr   r         @)rP   r^   r   r   r   r
   r   r3   r   r5   r?   )	rQ   r@   weights_unmaskedweights_maskedavg_unmaskedexpected_unmasked
avg_maskedexpected_maskedavg_expecteds	            rU   test_masked_weightszTestAverage.test_masked_weights  s    EEKK		!,,Q2'I>  @'%@%k	Bqq'7%IHH%<=L*;<QQO
((#NOJ8
 EEKK12  4q1aBFF*;<L#.EEKK   

 '%&
	   UU]]1q"&&!n1]E
uu{{C#=#= # ? 	J5Z__l&7&78rW   )r   r   r   r   r   r   r   r   r   r   r   markparametrizer   r  r[   rW   rU   r   r      s    $& 4D(0&1-f*7X [[F
TC5)dVcU	;j
!1&7a&?#i[
2	300")9rW   r   c                       e Zd Zd Zd Zd Zy)TestConcatenatorc                 "   t        t        d   t        g d             t        d      }g d}t	        ||      }t        |dd|f   }t        t        |t                     t        |g d       t        |j                  t        |dd|f          y )Nr=   r:   r   r   r   r~   r   )r=   r   r   r   r   r   r   )r=   r=   r=   r=   r=   r   r   r=   r=   r=   r=   r=   )	r4   r'   r   r   r
   r2   
isinstancer   r?   )rQ   rA   r   drY   s        rU   test_1dzTestConcatenator.test_1d  sw    3/0%8J2KLG#1a
O
1k*+1BC1663q!Qz?3rW   c                 d   t         j                  j                  dd      }t         j                  j                  dd      }t        j                  t         j                  j                  dd      d      }t        j                  t         j                  j                  dd      d      }t	        ||      }t	        ||      }t
        d||f   }t        |j                  dk(         t        |d d d df   |       t        |d d dd f   |       t        |j                  t         j                  d||f          t
        ||f   }t        |j                  dk(         t        |d dd d f   |       t        |dd d d f   |       t        |j                  t         j                  ||f          y )Nr   r   r   1)r   rj   )rj   r   )rP   randomrandroundr
   r'   r2   r   r4   r?   r_)rQ   a_1a_2m_1m_2b_1b_2r  s           rU   test_2dzTestConcatenator.test_2d  sJ   iinnQ"iinnQ"hhryy~~a+Q/hhryy~~a+Q/3S)3S)S#7"#1QU8S)1QU8S)166255c3#78SM7"#1RaRU8S)1QRU8S)166255c?3rW   c                 \   t         t        j                  j                  df   }t	        |j
                  ddg       t	        |j                  d   d       t         ddgt        j                  j                  f   }t	        |j
                  g d       t	        |j                  d d ddg       y )Nr=   TFr:   )FFT)r'   rP   r^   r	   r5   r?   rr   )rQ   r   s     rU   test_masked_constantz%TestConcatenator.test_masked_constant  s~    RUU\\1_%V[[4-0V[[^Q'aVRUU\\)*V[["67V[[!_q!f-rW   N)r   r   r   r  r%  r'  r[   rW   rU   r  r    s    	44(.rW   r  c                       e Zd Zd Zd Zy)TestNotMaskedc           	      `   t        t        j                  d      j                  dd      g dg dg dg dg dg      }t	        |d       }t        |d	d
g       t	        |d	      }t        |d	   ddg       t        |d   ddg       t	        |d      }t        |d	   ddg       t        |d   ddg       t	        |j                  d       }t        |d	d
g       t	        |j                  d	      }t        |d	   ddg       t        |d   ddg       t	        |j                  d      }t        |d	   ddg       t        |d   ddg       t        |d<   t	        |d	      }t        |d	   ddg       t        |d   ddg       t	        |d      }t        |d	   ddg       t        |d   ddg       y )N   r   )r   r   r=   r   r   )r   r   r   r=   r=   )r=   r=   r   r   r   )r   r   r   r   r   )r=   r=   r=   r   r   r   r      r   r=   r:   r   r   r=   )r   r   r   r   r   )r   r   r:   r   r   )r   r:   r   r   r   )r   r   r   r   r   )r=   r=   r:   r   r   )r   r=   r:   r   )r   r   r:   r   )r   r:   r   r   )r
   rP   r   r   r*   r5   rr   r	   rQ   rr   rR   s      rU   
test_edgeszTestNotMasked.test_edges  s   BIIbM11!Q7"1"1"1"1"1	"35 tT*TAr7#tQ'T!W@AT!W@AtQ'T!W@AT!W@Atyy$/TAr7#tyy!,T!W@AT!W@Atyy"-T!W@AT!W@ARtQ'T!W@AT!W@AtR(T!W|\:;T!W|\:;rW   c                    t        t        j                  d      j                  dd      g dg dg dg      }t	        |d       }t        |t        dd	d       t        d
dd       t        ddd       g       t	        |d      }t        |t        ddd       t        ddd       gt        ddd       t        ddd       gt        ddd       t        ddd       gt        ddd       t        ddd       gt        ddd       gt        ddd       gg t        ddd       gg       t	        |d      }t        |t        dd	d       gg t        ddd       t        ddd       gg       y )Nr,  r   r   )r   r   r   r   r=   r=   r=   r=   )r=   r=   r=   r=   r=   r=   r=   r=   )r   r   r   r   r   r   r=   r   r   r   r            r=   r:   r~   rn   )r
   rP   r   r   r)   r5   r   )rQ   r@   tmps      rU   test_contiguouszTestNotMasked.test_contiguous  sp   2..q!47779: #1d+S!Q"b$"b$
 	 #1a(S1aaD 121aaD 121aaD 121aaD 121a1a1a	
 		 #1a(S1a1aaD 12
 	rW   N)r   r   r   r1  r7  r[   rW   rU   r)  r)    s     <DrW   r)  c                      e Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  ddge	j                  j                  dfe	j                  j                  d	fg      d
               Zd Zd Zd Zy)TestCompressFunctionsc           
         t        j                  t        t        d                  j	                  ddd      }t        j
                  d      j                  t              }d|d<   t        ||      }t        |      }t        |g d	g d
g dgg dg dg dgg       t        |d      }t        |g dg dg dg dgg dg dg dg dgg       t        |d      }t        |g dg dg dgg dg dg dgg dg dg dgg       t        |d      }t        |d      }t        |d      }t        ||       t        ||       t        ||       t        |d      }t        |g d	g d g d
g dgg d!g d"g d#g d$gg dg d%g dg dgg       t        |d&      }t        |d'      }t        |d(      }t        ||       t        ||       t        ||       t        |d)      }t        |g dg dg dgg dg dg dgg       t        |d*      }t        ||       t        |d+      }t        |g d	g d
g dgg d!g d#g d$gg dg dg dgg       t        |d,      }t        |d-      }t        |d.      }t        ||       t        ||       t        ||       t        |d/      }t        |g d	g d g d
g dgg dg d%g dg dgg       t        |d0      }t        ||       y )1N<   r   r   r   r   r   r   Tr=   r=   r=   r   )r   r:   r   r   )rj   r         )            )(   *   +   ,   )2   4   5   6   )7   9   :   ;   r   r-  )r   r~   rn   r   r   )rj   r   r   r>  r?  )r@  r3  rA  rB  rC  )rD  )   rE  rF  rG  )-   .   /   0   1   )rH  3   rI  rJ  rK  )rL  8   rM  rN  rO  r=   )      r4  r5  r,  )   r      !   "   )#   $   %   &   '   rZ   r/  )r/  r:   )r   rn   r   r   )rX  r4  r5  r,  )r+     r     )rZ  r[  r\  r]  )r^  r`  ra  rb  )rQ  rS  rT  rU  r9   r.  )r.  r   )r   r/  r   )r/  r:   )r=   r.  )r/  r.  r   r:   )r   r.  )
rP   r   listro   r   r   astyper   r   r5   )rQ   r   r   r@   a2a3a4s          rU   test_compress_ndz&TestCompressFunctions.test_compress_nd@  s1   HHT%	*+,44Q1=HHY&&t,'
!! NQ***, +**,- 	. 1Q....0 /...0	1 	2 1Q...0 /..0 /..01 	2 D!BE"QQQ 1Q/)**, +***, +***,- 	. D!BE"QQQ 6"Q...0 /..01 	2 G$Q 6"Q***, +**, +**,- 	. G$G$H%QQQ 6"Q****, +***,	- 	. G$QrW   c                    t        t        j                  d      j                  dd      g dg dg dg      }t	        t        |      ddgdd	gg       t	        t        |d
      g dg dg       t	        t        |d      ddgddgdd	gg       t        |j                  g dg dg dg      }t	        t        |      d
dgdd	gg       t	        t        |d
      g dg dg       t	        t        |d      d
dgddgdd	gg       t        |j                  g dg dg dg      }t	        t        |      d	gg       t	        t        |d
      g dg       t	        t        |d      dgdgd	gg       t        |j                  g dg dg dg      }t	        t        |      j                  d
       t	        t        |d
      j                  d
       t	        t        |d      j                  d
       y )Nr   r   r  r  r   r   r   rn   r   r   r<  )r~   rn   r   r=   r:   r   r=   r   r~   r   r   )r   rP   r   r   r5   r   _datar   rQ   r   s     rU   test_compress_rowcolsz+TestCompressFunctions.test_compress_rowcols  s   "))A,&&q!,!9i8:%a(Aq6Aq6*:;%a+i-CD%a+q!fq!fq!f-EF!''Iy AB%a(Aq6Aq6*:;%a+i-CD%a+q!fq!fq!f-EF!''Iy AB%a(A3%0%a+i[9%a,sQC!o>!''Iy AB%a(--q1%a+00!4%a+00!4rW   c                    t        t        j                  d      j                  dd      g dg dg dg      }t	        t        |      j                  g dg dg dg       t	        t        |d      j                  g dg dg dg       t	        t        |d      j                  g dg dg dg       t        |j                  g dg d	g dg      }t	        t        |      j                  g d	g dg d	g       t	        t        |d      j                  g dg dg dg       t	        t        |d      j                  g d	g d	g d	g       t        |j                  g dg d	g dg      }t	        t        |      j                  g dg dg d
g       t	        t        |d      j                  g dg dg dg       t	        t        |d      j                  g d
g d
g d
g       t        |j                  g dg d	g dg      }t        t        |      j                         t        u        t        t        |d      j                         t        u        t        t        |d      j                         t        u        t        t        |      j                  j                                t        t        |d      j                  j                                t        t        |d      j                  j                                y )Nr   r   r  r  r   r=  r   r=   rm  )r=   r=   r   r   )r   rP   r   r   r5   r#   r?   rn  r2   allr	   ro  s     rU   test_mask_rowcolsz'TestCompressFunctions.test_mask_rowcols  s=   "))A,&&q!,!9i8:\!_))I6	8\!Q',,I6	8\!Q',,I6	8!''Iy AB\!_))I6	8\!Q',,I6	8\!Q',,I6	8!''Iy AB\!_))I6	8\!Q',,I6	8\!Q(--I6	8!''Iy ABQ##%/0Q"&&(F23Q"&&(F23Q$$((*+Q"''++-.Q"''++-.rW   r   )Nr   r=   funcrowcols_axisr   r=   c                    t        t        j                  d      j                  dd      g dg dg dg      }t	        j
                  t              5   |||      }t        |t        ||             d d d        y # 1 sw Y   y xY w)Nr   r   r  r  r   r   )	r   rP   r   r   r   warnsDeprecationWarningr5   r#   )rQ   r   rt  ru  r   ress         rU   #test_mask_row_cols_axis_deprecationz9TestCompressFunctions.test_mask_row_cols_axis_deprecation  sp    
 "))A,&&q!,!9i8: \\,- 	=qt$Cl1l;<	= 	= 	=s   !A==Bc           	         t        j                  dd      }g d}t        ||      j                  dd      }t        ||      j                  dd      }t	        ||d      }t        |j                  ddgdd	gg       t	        ||d      }t        |j                  g d
g dg dg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   g d}t        ||      j                  dd      }t        ||      j                  dd      }t	        ||d      }t        |j                  d	dgddgg       t	        ||d      }t        |j                  g dg dg d
g       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t        |t	        ||             t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   g d}t        ||      j                  dd      }t        ||      j                  dd      }t	        ||      }t        |j                  t               t	        ||      }t        |j                  t               t        |g d      j                  dd      }t        |g d      j                  dd      }t	        ||d      }t        |j                  ddgd	d	gg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t	        ||d      }t        |j                  g dg dg dg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t        |g d      j                  dd      }t        |g d      j                  dd      }t	        ||d      }t        |j                  d	d	gddgg       t	        ||      }t        |t        j                  |j                  d	      |j                  d	                   t	        ||d      }t        |j                  g dg dg dg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t        |g d      j                  dd      }t        |g d      j                  dd      }t	        ||d      }t        |j                  dd	gddgg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t	        ||d      }t        |j                  g dg d
g dg       t	        ||d      }t        |t        j                  |j                  d	      |j                  d	                   t        t        j                  d      j                  ddd      dd	gd	d	ggd	d	gd	d	ggg      }t        t        j                  d      j                  ddd      d	d	gd	d	ggd	d	gd	dggg      }t	        ||d      }t        |j                  ddgddggd	d	gd	dgggd	d	gd	dggd	d	gd	dgggg       t	        ||d      }t        |j                  d	d	gd	dggd	d	gd	d	gggd	d	gd	d	ggd	d	gd	d	gggg       t	        ||d      }t        |j                  dd	gd	d	ggdd	gd	d	gggdd	gd	d	ggddgddgggg       t	        ||d      }t        |j                  d	d	gd	d	ggd	d	gd	d	gggd	d	gd	d	ggdd	gd	d	gggg       t        t        j                  d      j                  ddd      dd	gd	d	ggd	d	gd	d	ggg      }d}t	        ||d      }t        |j                  dd	gd	d	ggd	d	gd	d	ggg       t	        ||d      }t        |j                  dd	gd	d	ggd	d	gd	d	ggg       t	        ||d      }t        |j                  dd	gd	d	ggd	d	gd	d	ggg       t	        ||d      }t        |j                  dd	gd	d	ggd	d	gd	d	ggg       t        t        j                  d      j                  ddd      dd	gd	d	ggd	d	gd	d	ggg      }t        t        j                  d      d	dg      }t	        ||d      }t        |j                  ddgddgg       t	        ||d      }t        |j                  dd	gd	d	gg       y )Nr=   rn   )r=   r   r   r   r   r   r   r:   r   T)strictr   r=  r  Fr   r   r   r   r   r=   r   )r   r   r   r   r   r   )r   r   r=   r   r   r   r   r   )	rP   r   r
   r   r   r5   r?   filledr   )rQ   nr   r@   rA   rY   s         rU   test_dotzTestCompressFunctions.test_dot  s	   IIaO#++Aq1#++Aq11T"QVVq!fq!f-.1T"QVViI>?1U#Qqxx{AHHQK891U#Qqxx{AHHQK89#++Aq1#++Aq11T"QVVq!fq!f-.1T"QVViI>?1U#Qqxx{AHHQK89QAq	"1U#Qqxx{AHHQK89#++Aq1#++Aq11IQVVV$1IQVVV$!34<<QB!34<<QB1T"QVVq!fq!f-.1U#Qqxx{AHHQK891T"QVViI>?1U#Qqxx{AHHQK89!34<<QB!34<<QB1T"QVVq!fq!f-.1IQqxx{AHHQK891T"QVViI>?1U#Qqxx{AHHQK89!34<<QB!34<<QB1T"QVVq!fq!f-.1U#Qqxx{AHHQK891T"QVViI>?1U#Qqxx{AHHQK891--aA6!"AA/1a&1a&1ABD1--aA6!"AA/1a&1a&1ABD1T"QVVAA'1a&1a&)9:AA'1a&1a&)9:<	= 1U#QVVAA'1a&1a&)9:AA'1a&1a&)9:<	= 1T"QVVAA'1a&1a&)9:AA'1a&1a&)9:<	= 1U#QVVAA'1a&1a&)9:AA'1a&1a&)9:<	= 1--aA6!"AA/1a&1a&1ABD1T"QVV1v1v.!Q!Q0@AB1U#QVV1v1v.!Q!Q0@AB1T"QVV1v1v.!Q!Q0@AB1U#QVV1v1v.!Q!Q0@AB1--aA6!"AA/1a&1a&1ABD1QF31T"QVVq!fq!f-.1U#QVVq!fq!f-.rW   c                 d   t        j                  d      }t        |      }t        t	        t        ||            t        u        t        t	        t        ||            t        u        t        t	        t        ||            t        u        t        t	        t        ||            t        u        y )Nr   )rP   eyer   r2   r_   r   r   rQ   r@   rA   s      rU   test_dot_returns_maskedarrayz2TestCompressFunctions.test_dot_returns_maskedarray_  st    FF1I!HSAY;./SAY;./SAY;./SAY;./rW   c                     t        t        j                  d            }t        t        j                  d            }t	        |||      }t        ||u        t        ||       y )Nr   )r   r   out)r   rP   r  r   r   r2   r5   )rQ   r@   r  ry  s       rU   test_dot_outz"TestCompressFunctions.test_dot_outh  sK    "&&)BHHV$%!QC s
QrW   N)r   r   r   rk  rp  rs  r   r  r  rP   r^   	mask_rows	mask_colsrz  r  r  r  r[   rW   rU   r9  r9  >  s    n`5(/@ [[V\2[[fn5!uu2RUU__a4HIK=K 3=m/^0rW   r9  c                       e Zd Zd Zd Zy)TestApplyAlongAxisc                     t        d      j                  ddd      }d }t        |d|      }t        |ddgddgg       y )	Nr   r:   r   c                     | d   S Nr=   r[   )rA   s    rU   myfuncz*TestApplyAlongAxis.test_3d.<locals>.myfuncu  s    Q4KrW   r=   r   rn   rj   r   r   r   r5   rQ   r@   r  xas       rU   test_3dzTestApplyAlongAxis.test_3dr  sF    3K1a(	 fa+R1a&1b'*+rW   c                     t        d      j                  ddd      }d
d}t        |d|d      }t        |ddgdd	gg       y )Nr   r:   r   c                     | d|z      S r  r[   )rA   offsets     rU   r  z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfunc  s    QZ= rW   r=   )r  r   r   r   )r   r  r  s       rU   test_3d_kwargsz!TestApplyAlongAxis.test_3d_kwargs|  sH    2Jq!Q'	! fa15R1a&1b'*+rW   N)r   r   r   r  r  r[   rW   rU   r  r  p  s    ,,rW   r  c                       e Zd Zd Zy)TestApplyOverAxesc                    t        d      j                  ddd      }t        t        j                  |ddg      }t        j
                  dgdgdggg      }t        ||       t        ||dz  j                  t              <   t        t        j                  |ddg      }t        j
                  d	gd
gdggg      }t        ||       y )Nr,  r:   r   r   r   r;  \   |   r  rG  )
r   r   r   rP   rs   r   r5   r	   rg  r   )rQ   r@   rR   ctrls       rU   
test_basiczTestApplyOverAxes.test_basic  s    2Jq!Q'rvvq1a&1xx2$se,-.T4 "(1q5..
rvvq1a&1xx2$rd+,-T4 rW   N)r   r   r   r  r[   rW   rU   r  r    s    !rW   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej$                  j'                  dg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestMedianc                     t         j                  j                  t         j                  t         j                  gt         j                  t         j                  ggd      }t	        |t         j                         y )Nr.  r   )rP   r^   r&   infr5   rQ   rs     rU   test_pytypezTestMedian.test_pytype  sE    EELL266266*RVVRVV,<=BLGQrW   c                    t         j                  j                  t         j                  j                  t         j                  t         j                  gt         j                  t         j                  gg      d      }t        |t         j                         t         j                  j                  t         j                  j                  t         j                  t         j                  gt         j                  t         j                  gg      d       }t        |t         j                         t         j                  j                  t         j                  j                  t         j                  t         j                  gt         j                  t         j                  ggd      d      }t        |j                  d       t         j                  j                  t         j                  j                  t         j                  t         j                  gt         j                  t         j                  ggd      d       }t        |j                  d       y )Nr.  r   Tr   )rP   r^   r&   r
   r  r5   r?   r  s     rU   test_infzTestMedian.test_inf  s   EELL++bffbff-=.0ffbff-=-? @FH  JQEELL++bffbff-=.0ffbff-=-? @FJ  LQEELL++bffbff-=.0ffbff-=-?EI , K   " 	QVVT"EELL++bffbff-=.0ffbff-=-?EI , K"  $ 	QVVT"rW   c                    t        j                  d      }t        t         j                  j	                  |      d       t        t        t         j                  j	                  |            t        u       t        d      }t        t         j                  j	                  |      d       t        t        t         j                  j	                  |            t        u       d}t        t         j                  j	                  |      d       t        t        t         j                  j	                  |            t        u       t        j                  d      j                  dd      }t        t         j                  j	                  |d	      t        j                  |d	             t        t         j                  j	                  |d
	      t        j                  |d
	             t        t         j                  j	                  |d
	      t        u       t        j                  d      j                  dd      }t        t         j                  j	                  |d	      t        j                  |d	             t        t         j                  j	                  |d
	      t        j                  |d
	             t        t         j                  j	                  |d
	      t        u       y )Nr   r   r   r  r   r   H   r   r   r=   g      R@)
rP   r   r5   r^   r&   r2   r_   r   ro   r   ro  s     rU   test_non_maskedzTestMedian.test_non_masked  s   IIaLRUU\\!_b)RUU\\!_%[89!HRUU\\!_c*RUU\\!_%[89RUU\\!_b)RUU\\!_%[89IIe$$Q*RUU\\!!\,bii.BCRUU\\!!\,bii.BCQQ'{:;IIf%%a+RUU\\!!\,bii.BCRUU\\!!\,bii.BCQQ'{:;rW   c                    t        t        j                  d      dgdz  dgdz  z         }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d	      j                  d
d      dgdz  dgdz  z         }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        j                  j                  |dd      }t        |ddg       t        |j                  dd       t        t        |      t        u        y)z5test the examples given in the docstring of ma.medianr   r   r   r=   r   r   r[   shape mismatchrj   r:   r   r~   r   r.  Tr   overwrite_inputr   r   r9   N)r   rP   r   r5   r^   r&   r   r2   r_   r   r   )rQ   r   ma_xs      rU   test_docstring_examplesz"TestMedian.test_docstring_examples  sG   "))A,aS1WsQw%67RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))B-''1-QC!GqcAg4EFRUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89uu||AB|=TB8$TZZ'78T
k)*rW   c                 .   d}t        d      D ]  }dD ]  }t        d||      }t        j                  t        | |      ddg      }|D ](  \  }}	 t        j
                  j                  |||       * t        j                  |dz    |gddg      }|D ]9  \  }}	 t        j
                  j                  |||       t        |||||fz           y # t        $ r t        |||||fz        w xY w# t        j                  j                  $ r Y w xY w)	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr   )FTr=   )ndminr?   FTr  )ro   r   	itertoolsproductrP   r^   r&   	ExceptionAssertionError
exceptions	AxisError)rQ   msgr  r?   r   argsr   overs           rU   test_axis_argument_errorsz$TestMedian.test_axis_argument_errors  sE   E1X 	NE% N!5t4 !((vu)=t}M"& NJD$NQT4HN !((EAI,)>N"& NJD$NQT4H -SD%t3L-LMMNN	N % N,SD%t3L-LMMN ==22 s   "C"C4C1	4D	D	c                    t        dd      }t        t        j                  j	                  |      d       t        dd      }t        t        j                  j	                  |      t        j                  j
                         y )Nr=   Fr   T)r   r5   rP   r^   r&   r	   ro  s     rU   test_masked_0dzTestMedian.test_masked_0d  sN    !% RUU\\!_a(!$RUU\\!_beell3rW   c                    t        t        j                  d      d      }t        t        j                  j                  |      t        j                  j                         t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        j                  j                  j                  u        t        t        j                  d      d      }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d      }t        t        j                  j                  |      d	       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d
      }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d      }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d      }t        t        j                  j                  |      d       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d      }t        t        j                  j                  |      d	       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       t        t        j                  d      g d      }t        t        j                  j                  |      d	       t        t        j                  j                  |      j                  dd       t        t        t        j                  j                  |            t        u       y )Nr   Tr   r[   r  Fr   r   r   )r   r=   r=   r=   r=   r   )r   r=   r=   r   r   r   r   r~   r   r  )r   rP   r   r5   r^   r&   r	   r   r2   r_   r`   MaskedConstantr   ro  s     rU   test_masked_1dzTestMedian.test_masked_1d  sR   "))A,T*RUU\\!_beell3RUU\\!_**B0@ARUU\\!_%)B)BBC"))A,U+RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,_5RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))A,_5RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,_5RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))B-o6RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,%78RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))B-&89RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89rW   c           
          t        t        j                  j                  t	        g dg d            j
                  t        j                  j                  t	        g dg d            j
                         y )Nr   r  r   rm  )r5   rP   r^   r&   r   r   rQ   s    rU   test_1d_shape_consistencyz$TestMedian.test_1d_shape_consistency  sD    RUU\\%		"BCIIUU\\%		"BCII	KrW   c                    d\  }}t        t        j                  dd|            }t        x|d d |dd  t        t        j                  ||ft
                    }|d d  |d d df<   t        j                  t        |            }t        d|      D ]-  }t        j                  j                  |       ||   |d d |f<   / t        t        |d d df         d       t        t        |      d       t        t        |d	      t        j                  |             t        t        |j                  d	      t        j                  |             y )
N)e   rZ        r   rj   r;   r   r=   r   )r
   rP   linspacer	   emptyrO   r   ra   ro   r  shuffler5   r&   r   r   )rQ   r  pr   r   idxru   s          rU   r%  zTestMedian.test_2d  s   AS"a02!!#2341a&67A$!Q$iiAq! 	AIIc"fAadG	 	VAadG_a(VAY"VAA&4VACCa("((1+6rW   c                    t        t        j                  d      j                  dd            }t        x|d d |dd  t        t        |      d       t        t        t        j                  j                  |            t        u       t        t        |d      g d       t        t        t        j                  j                  |d            t        u        t        t        |d	      g d
       t        t        t        j                  j                  |d	            t        u        t        t        |d	      j                  g d       y )NrZ  rj   r         -@r   r   )      +@r  g      /@r=   )
r   r   r   rj   r>  r3  rC  r   r   r   )
r=   r=   r=   r   r   r   r   r=   r=   r=   )r
   rP   r   r   r	   r5   r&   r2   r_   r^   r   r?   ro  s     rU   test_2d_waxiszTestMedian.test_2d_waxis'  s    2..r156"1"#VAY%RUU\\!_%[89VAA&(:;RUU\\!!\,-<=VAA&(JKRUU\\!!\,-<=VAA&++-KLrW   c                    t         j                  j                  d      j                  ddd      }t        ||dz  dk(  <   t        t        |d      ddgdd	gddgd
d	gg       |j                  d      }t        t        |d      ddgddgddgg       t         j                  j                  d      j                  ddd      }t        ||dz  dk(  <   t        t        |d      ddgddgddgg       y )Nr,  r   r   r:   r   r   r   r~   r@  rB  )r   r   r:   c   rj   r   r>  r?  r   r   r3  rA  )rP   r^   r   r   r	   r5   r&   ro  s     rU   r  zTestMedian.test_3d3  s    EELL$$Q1-!a%1*VAq\RGaWr1gBx#HIIIi VAq\RHr2hR#ABEELL$$Q1-!a%1*VAq\RHq!fr2h#?@rW   c                     t        t        j                  d      j                  dd            }t        x|d d |dd  t        t        |d      t        |d             y )NrZ  rj   r   r  r.  r   r=   )r
   rP   r   r   r	   r5   r&   ro  s     rU   test_neg_axiszTestMedian.test_neg_axis>  sO    2..r156"1"#VAB'):;rW   c                 J   dD ]  }t        t        j                  |            }t        x|d d |dd  t        t        j                  d            }t        ||      }|dk(  rt        |d       nt        |d       t        ||u        t        t        |      t        u         y )	N)rZ        >@r  g      ?@r   r  r[   r  rZ  r  g      .@)
r
   rP   r   r	   r   r&   r5   r2   r_   r   )rQ   vr   r  r  s        rU   test_out_1dzTestMedian.test_out_1dC  s    # 
	,ARYYq\*A##AbqEAbcFrwwr{+Cqc"ABwS$'S#&AHDG{*+
	,rW   c                    dD ]  }t        t        j                  |      j                  dd            }t        x|d d |dd  t        t        j
                  d            }t        |d|      }|dk(  r0t        d	gdz  g d
z   d	gdz  z   dgdz  dgdz  z   dgdz  z         }n/t        d	gdz  g dz   d	gdz  z   dgdz  dgdz  z   dgdz  z         }t        ||       t        ||u        t        t        |      t        u         y )N)rD  g      D@rZ  r  rj   r.  r   r  r=   )r   r  rZ  r   )rj   r>  r3  rC  TFr   r   )r  g     1@g     5@g     9@)r
   rP   r   r   r	   r   r&   r5   r2   r_   r   )rQ   r  r   r  r  es         rU   test_outzTestMedian.test_outQ  s   # 	,ARYYq\11"b9:A##AbqEAbcFrwwr{+Cqqc*ABw ",<!<tax!G'+fqjE7Q;&>$!&KM !",D!Dtax!O'+fqjE7Q;&>$!&KMAAHDG{*+	,rW   r   )Nr=   rZ   r   )r  r.  )argnames	argvaluesc                    t        j                  dt              }t         j                  j                  d      t        j                  |j
                        d d d f   z  }|j                  t         j                        }t         j                  |t        |      <   t        t        j                  |j
                        |      |dj                  z  }n>t        |j                        t        fdt        j                        D              }t        t        j                  |            }t!        |d|      }||u sJ t#        |j
                  |       y )	N)r   r   rn   r   r;   )r      r   rZ   c              3   H   K   | ]  }|v rd nj                   |     yw)r=   N)r   ).0ru   	axis_normr  s     rU   	<genexpr>z/TestMedian.test_keepdims_out.<locals>.<genexpr>w  s+      L89Q)^3Ls   "T)r   r   r  )rP   r   r   r  r   r   rg  intpr   tupler
   r   ndimr   ro   r  r&   r5   )	rQ   r   r?   r   	shape_outr  r   r  r  s	          @@rU   test_keepdims_outzTestMedian.test_keepdims_outb  s    xxT2IIX&$**)=ag)FFHHRWWU1X,48<qvvI,T166:I L=B166]L LI288I./t=}}V\\9-rW   c                     ddgddgddgg}t         j                  j                  |d      }ddg}t        t         j                  j	                  |d      |       y )Nr   r   r   r   r   )rP   r^   masked_equalr4   r&   )rQ   rr   re   r   s       rU   $test_single_non_masked_value_on_axisz/TestMedian.test_single_non_masked_value_on_axis~  s]    RRR UU''a0
8255<<
<;#	%rW   c                 R   dt        j                  dt              fD ]  }t         j                  j	                  dt         j
                  dgg dg      }||_        t         j                  j                  |d       }t        t        j                  |             t        |t         j
                         t         j                  j                  |j                         d      }t        t        j                  |             t        |t         j
                         t         j                  j                  |d      }t        t        |      t               t        |dt         j
                  dg       t         j                  j                  |d      }t        t        |      t               t        |t         j
                  d	g       t         j                  j                  |d
      }t        t        |      t               t        |t         j
                  d	g        t         j                  j	                  dt         j
                  dgg dg      }t         j                  j                  |d d d	f<   t        t         j                  j                  |d       t         j
                         t        t         j                  j                  |d      dt         j
                  dg       t        t         j                  j                  |d      t         j
                  dg       y )NFr~   r;   r=   r   r   r   r   r:   r.  r   )rP   r   r   r^   r   r   r?   r&   r2   isscalarr4   ravelr5   r_   r   r	   )rQ   r?   dmr  s       rU   test_nanzTestMedian.test_nan  s   BHHQd34 	/Dq"&&!ni89BBG Rd+ABKKN#q"&&)RXXZa0ABKKN#q"&&)Ra(Aa+.q1bffa.1Ra(Aa+.q2661+.Rb)Aa+.q2661+.)	/, UU[[1bffa.)4555<<1a4255<<<6?255<<<3a^D255<<<3bffc]CrW   c                    t         j                  j                  t        j                  d            }t         j                  j                  t        j                  d            }t         j
                  |d<   t         j                  j                  |d<   t        t         j                  j                  |d|      |       t         j                  j                  t        j                  d            }t        t         j                  j                  |d|      |       t         j                  j                  t        j                  d	            }t        t         j                  j                  ||      |       y )
N)r   r   r   r:   r=   rH   r   r  r   r=   r[   )	rP   r^   r
   r   r   r   r	   r5   r&   )rQ   or  s      rU   test_out_nanzTestMedian.test_out_nan  s    EErxx~.EErwwv/&&$%%,,$RUU\\!QA\.2EErxx~.RUU\\!QA\.2EErxx|,RUU\\!\+Q/rW   c                    t         j                  j                  t        j                  dt                    }t         j                  j
                  |d d d<   t         j                  |d<   t        t         j                  j                  |      t         j                         t        t         j                  j                  |d      t         j                         t         j                  j                  t        j                  dt              j                  ddd            }t        j                  |j                        dz  dk(  |_        |j                         }t         j                  |d	<   t         j                  |d
<   t        t         j                  j                  |      t         j                         t        t        j                  t         j                  j                  |                   t         j                  j                  |d      }t         j                  |d<   t         j                  |d<   t        t         j                  j                  |d      |       t         j                  j                  |d      }t         j                  |d<   t         j                  |d<   t        t         j                  j                  |d      |       t         j                  j                  |d      }t         j                  |d<   t         j                  |d<   t        t         j                  j                  |d      |       y )Nr,  r;   r   r:   r   r   r   r=   r   )r=   r=   r:   r:   r   r   r=   r   re  )rP   r^   r
   r   rO   r	   r   r4   r&   r   r   r?   copyr2   r  r5   )rQ   r@   aorigrA   s       rU   test_nan_behaviorzTestMedian.test_nan_behavior  s   EEryy59:#A#vv!255<<?BFF3255<<<2BFF;EEryy59AA!QJK166"Q&!+VV'
VV'
 	255<<?BFF3BEELLO,- EELLQL'&&$&&$RUU\\!Q'+ EELLQL'&&$&&$RUU\\!Q'+ EELLVL,vv!vv!RUU\\!V,a0rW   c                    t        j                  g dg dgt         j                        }t         j                  j	                  ||dk(        }t        t         j                  j                  |d      d       t        t         j                  j                  |d      j                  d       t        t         j                  j                  |d	      |d	          t        t         j                  j                  |      d       y )
N)r   r      r;   r   r   r=   r   r  Fr   )rP   r   uint8r^   r
   r4   r&   r?   r   s     rU   test_ambigous_fillzTestMedian.test_ambigous_fill  s    HHk;/rxx@EEqqAv.255<<<2C8255<<<277?255<<<2AaD9255<<?C0rW   c           	         t         j                  t         j                   fD ]  }t        j                  |t         j                  gt         j                  t         j                  gg      }t         j                  j                  |t        j                  |            }t        t         j                  j                  |d      |t         j                  g       t        t         j                  j                  |d      |t         j                  g       t        t         j                  j                  |      |       t        j                  t         j                  t         j                  |gt         j                  t         j                  |gg      }t         j                  j                  |t        j                  |            }t        t         j                  j                  |d      |       t        t         j                  j                  |d      j                  d       t        t         j                  j                  |d      |d          t        t         j                  j                  |      |       t        j                  ||g||gg      }t        t         j                  j                  |      |       t        t         j                  j                  |d      |       t        t         j                  j                  |d      |       t        j                  |d| dgdt         j                  t         j                  d	gd
t         j                  t         j                  |ggt         j                        }t         j                  j                  |t        j                  |            }|dkD  rZt        t         j                  j                  |d      dd| dg       t        t         j                  j                  |      d       nYt        t         j                  j                  |d      dd| dg       t        t         j                  j                  |      d       t        t         j                  j                  |d      dd|g       t        d      D ]  }t        dd      D ]  }t        j                  t         j                  g|z  |g|z  z   gdz        }t         j                  j                  |t        j                  |            }t        t         j                  j                  |      |       t        t         j                  j                  |d      |       t        t         j                  j                  |d      t         j                  g|z  |g|z  z             y )Nr   r   r   r=   Frn   ir  r   r   r;   r   r   r   g      @g      $g      "g      r  rj   r:   )rP   r  r   r   r^   r
   isnanr5   r&   r4   r?   float32ro   )rQ   r  r@   ru   rv   s        rU   test_specialzTestMedian.test_special  s   FFRVVG$ (	=C3-"&&"&&)9:;A""1288A;"7Aaa03-@aa03-@a#.2662663/"&&"&&#1FGHA""1288A;"7Aruu||AA|6<ruu||AA|6;;UCruu||AA|6!=ruu||A4 3*sCj12Aa#.aa0#6aa0#63C4,2bffbffc24 !#

,A ""1288A;"7AQwRUU\\!!\4r2tR6HIRUU\\!_c2RUU\\!!\4tR#s6KLRUU\\!_d3aa03c2BC2Y =q" =ABFF8a<SEAI">!?!!CDA**1288A;*?A a#6 aa!8#> aa!8#%66(Q,3%!)!;===C(	=rW   c                    t         j                  j                  t        j                  g t                    }t        j                  t              5  t        t         j                  j                  |      t         j                         d d d        t         j                  j                  t        j                  g t        d            }t        j                  t              5  t        t         j                  j                  |      t         j                         d d d        t         j                  j                  t        j                  g t        d            }t        t         j                  j                  |d      |       t        t         j                  j                  |d      |       t         j                  j                  t        j                  t         j                  t        d            }t        j                  t              5  t        t         j                  j                  |d      |       d d d        y # 1 sw Y   xY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)Nr;   r   )r<   r  r:   r   r   r=   )rP   r^   r
   r   rO   r   rw  RuntimeWarningr4   r&   r   r5   r  s      rU   
test_emptyzTestMedian.test_empty  s{   EErxx%89\\.) 	8ruu||A7	8 EErxx%qAB\\.) 	8ruu||A7	8 EErxx%qABRUU\\!!\,a0RUU\\!!\,a0 EErxxe1EF\\.) 	5aa0!4	5 	5!	8 	8	8 	8	5 	5s$   8I$8I,I"II"I+c           	         t         j                  j                  t        j                  d            }t	        t        t         j                  j                  |j                  t                          t               t         j                  |d<   t	        t        t         j                  j                  |j                  t                          t               y )Nr   r:   )rP   r^   r
   r   r2   r_   r&   rg  r]   rO   r   )rQ   r  s     rU   test_objectzTestMedian.test_object  su    EEryy}-RUU\\!((6"234e<vv!RUU\\!((6"234e<rW   N)r   r   r   r  r  r  r  r  r  r  r  r%  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r
  r  r[   rW   rU   r  r    s     #$<*+N04$:LK7 
M	A<
,," [[
  	.	.$%D:	0!1F1)=V5,=rW   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestCovc                 R    t        t        j                  j                  d            S Nr   r   rP   r  r  r  s    rU   _create_datazTestCov._create_data%  s    RYY^^B'((rW   c                 v   | j                         }t        t        |d      d   j                  t        j
                         t        t        ||d      d   j                  t        j
                         |dkD  }t        t        t        j                  j                  ||      d      d   j                  t              |j                  dd              t        t        t        j                  j                  ||      |d      d   j                  t              t	        j                  | | f             y )NTrowvarr=   F)r   r  r   r.  )r  r2   r   r<   rP   r  r4   r^   r
   rg  r   r   r1   )rQ   r   r?   s      rU   test_covhelperzTestCov.test_covhelper(  s    
1T*1-33RZZ@
1%03992::F3w""1d+D\\!R  		
 	""1d+qIIuten%		
rW   c                 (   | j                         }t        t        j                  |      t        |             t        t        j                  |d      t        |d             t        t        j                  |dd      t        |dd             y )NFr  Tr  bias)r  r3   rP   r   ro  s     rU   test_1d_without_missingzTestCov.test_1d_without_missing<  se    BFF1Is1v.BFF1U3S55IJBFF1U>%d;	=rW   c                 H   | j                         j                  dd      }t        t        j                  |      t	        |             t        t        j                  |d      t	        |d             t        t        j                  |dd      t	        |dd             y )Nr   r   Fr  Tr  )r  r   r3   rP   r   ro  s     rU   test_2d_without_missingzTestCov.test_2d_without_missingD  sr    ''1-BFF1Is1v.BFF1U3S55IJBFF1U>%d;	=rW   c           
         | j                         }t        |d<   ||j                         z  }|j                         }t	        t        j                  |      t        |             t	        t        j                  |d      t        |d             t	        t        j                  |dd      t        |dd             	 t        |d       |dd }t	        t        j                  ||d d d         t        ||d d d                t	        t        j                  ||d d d   d      t        ||d d d   d             t	        t        j                  ||d d d   dd      t        ||d d d   dd             y # t        $ r Y w xY w)Nr.  Fr  Tr  allow_maskedr=   )r  r	   meanrt   r3   rP   r   r   rQ   r   nxs      rU   test_1d_with_missingzTestCov.test_1d_with_missingL  sN   "	QVVX\\^BFF2JA/BFF2e4c!E6JKBFF2e$?%d;	=	&
 qWBFF2r$B$x0#a4R4/BBFF2r$B$x>1TrT759	;BFF2r$B$xDI1TrT75tD	F  		s    E? ?	F
Fc                    | j                         }t        |d<   |j                  dd      }t        j                  t        |            j                  t              }t        j                  ||j                        }||j                  d      d d d f   z
  j                  d      }t        t        |      t        j                  |      |j                  d   dz
  z  |dz
  z         t        t        |d      t        j                  |d      |j                  d   z  |z         t        j                  |j                  |      }||j                  d      z
  j                  d      }t        t        |d	
      t        j                  |d	
      |j                  d   dz
  z  |dz
  z         t        t        |d	d      t        j                  |d	d      |j                  d   z  |z         y )Nr.  r   r   r=   r   r   T)r  Fr  r  )r  r	   r   rP   logical_notr   rg  rp   r   r   r   r~  r3   r   r   )rQ   r   validfracxfs        rU   test_2d_with_missingzTestCov.test_2d_with_missingd  s   "IIaO|A/66s;vveUWW%!&&)AtG$$,,Q/CFFF2J!''!*q.9TBYG	IC-FF2D1AGGAJ>E	Gvveggu%!&&)m##A&C%0VVBu5ggaj1n.15<	> 	C%d;VVBu4@WWQZ(*./	1rW   N)	r   r   r   r  r  r  r  r#  r)  r[   rW   rU   r  r  #  s!    )
(==F01rW   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestCorrcoefc                     t        t        j                  j                  d            }t        t        j                  j                  d            }||fS r  r  )rQ   rr   data2s      rU   r  zTestCorrcoef._create_data|  s:    RYY^^B'(biinnR()U{rW   c                     | j                         d   }t        t        j                  |      t        |             t        t        j                  |d      t        |d             y )Nr   Fr  )r  r3   rP   r   ro  s     rU   r  z$TestCorrcoef.test_1d_without_missing  sJ    "BKKNHQK8BKK%8$Qu5	7rW   c                     | j                         d   j                  dd      }t        t        j                  |      t	        |             t        t        j                  |d      t	        |d             y )Nr   r   r   Fr  )r  r   r3   rP   r   ro  s     rU   r  z$TestCorrcoef.test_2d_without_missing  sW    "**1a0BKKNHQK8BKK%8$Qu5	7rW   c           
         | j                         d   }t        |d<   ||j                         z  }|j                         }t	        t        j                  |d      t        |d             	 t        |d       |dd }t	        t        j                  ||d d d         t        ||d d d                t	        t        j                  ||d d d   d      t        ||d d d   d             y # t        $ r Y w xY w)Nr   r.  Fr  r  r=   )r  r	   r   rt   r3   rP   r   r   r!  s      rU   r#  z!TestCorrcoef.test_1d_with_missing  s    ""	QVVX\\^BKK59$Qu5	7	QU+ qWBKKBttH5x1TrT77KLBKKBttHUC$Q$B$>	@  		s   -C0 0	C<;C<c                     | j                         d   }t        |d<   |j                  dd      }t        |      }t	        j                  |      }t        |d dd df   |d dd df          y )Nr   r.  r   r   )r  r	   r   r   rP   r3   rQ   r   rR   rS   s       rU   r)  z!TestCorrcoef.test_2d_with_missing  sn    ""IIaO{++a.D"crcNGCRC"H,=>rW   N)r   r   r   r  r  r  r#  r)  r[   rW   rU   r+  r+  z  s    
77@$?rW   r+  c                       e Zd Zd Zd Zy)TestPolynomialc                    t         j                  j                  d      }t         j                  j                  d      j                  dd      }t	        t        ||d      t        j
                  ||d             |j                  t              }t        |d<   |j                  t              }t        x|d<   |d<   t        ||d d df   dd	
      \  }}}}}t        j
                  |dd  |dd df   j                         dd	
      \  }}	}
}}t        |||||f||	|
||f      D ]  \  }}t	        ||        t        ||d d df   dd	
      \  }}}}}t        j
                  |dd |dddf   dd	
      \  }}	}
}}t        |||||f||	|
||f      D ]  \  }}t	        ||        t        ||dd	
      \  }}}}}t        j
                  |dd |ddd d f   dd	
      \  }}	}
}}t        |||||f||	|
||f      D ]  \  }}t	        ||        t         j                  j                  d      dz   }|j                         }|dd }|dd }|dd }t        ||dd	|      \  }}}}}t        j
                  ||dd	|      \  }}	}
}}t        ||       t        |||||f||	|
||f      D ]  \  }}t	        ||        y )Nrj   rX  r.  r:   r   r   rF   r.  r.  Trq   r=   )rq   r   )rP   r  r  r   r3   r+   viewr   r	   rt   zipr  r5   )rQ   r   r   CRKSDrY   r  rw   ry   r  r@   a_r   woxsyswss                       rU   test_polyfitzTestPolynomial.test_polyfit  s    IINN2IINN2&&r1-GAq!,bjjAq.ABFF;!FF;$$$!F)!!Qq!tWad;Aq!Q**QqrUAab!eH,?,?,A1*.0Aq!QAq!Q?Q1aO< 	'GQ2&	' "!Qq"uXqt<Aq!Q**QqWa"bk14HAq!QAq!Q?Q1aO< 	'GQ2&	' "!Q5Aq!Q**QqWa"aj!$GAq!QAq!Q?Q1aO< 	'GQ2&	' IINN2"VVXqWqWqW!!Q:Aq!Q**RQTR@Aq!QQAq!Q?Q1aO< 	'GQ2&	'rW   c                 8   t         j                  j                  d      }t         j                  j                  d      j                  dd      }t         j                  |d<   t         j                  |d<   |j                  t              }|j                  t              }t        |d<   t        |d<   t        ||dd	      \  }}}}}t        j                  |d
d |d
dd d f   dd	      \  }}	}
}}t        |||||f||	|
||f      D ]  \  }}t        ||        y )Nrj   rX  r.  r:   r   r6  r   Tr7  r=   )rP   r  r  r   r   r8  r   r	   r+   r9  r3   )rQ   r   r   r:  r;  r<  r=  r>  rY   r  rw   ry   r  r@   r?  s                  rU   test_polyfit_with_masked_NaNsz,TestPolynomial.test_polyfit_with_masked_NaNs  s    IINN2IINN2&&r1-vv!FF&	FF;FF;!&	!!Q5Aq!Q**QqWa"aj!$GAq!QAq!Q?Q1aO< 	'GQ2&	'rW   N)r   r   r   rD  rF  r[   rW   rU   r4  r4    s    %'N'rW   r4  c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)TestArraySetOpsc                     g d}t        |dd      }t        t        |d   t                     t	        |d   t        g dg d             t	        |d   g d	       t	        |d
   g d       y )Nr=   r=   r=   r:   r:   r   Treturn_indexreturn_inverser   r   r  r   r=   )r   r   r   r:   )r   r   r   r=   r=   r:   )r0   r2   r  r   r5   r
   r0  s      rU   test_unique_onlistz"TestArraySetOps.test_unique_onlist  sZ    !ddC
47K01T!Wl99EFT!Wi(T!W01rW   c                    t        g dg d      }t        |dd      }t        |d   t        g dg d             t        |d	   g d
       t        |d   g d       d|_        t        g dg dd      }t        |dd      }t        |d   t        g dg d             t        |d	   g d
       t        |d   g d       y )NrJ  )r   r   r=   r   r=   r   r   TrK  r   )r=   r:   r   r.  r   r   r   r=   r=   )r   r   r   r:   r:   )r   r   r   r=   r   r:   r   )rr   r?   
fill_value)r
   r0   r5   rQ  r0  s      rU   test_unique_onmaskedarrayz)TestArraySetOps.test_unique_onmaskedarray  s    .5GHddCT!Wl=|LMT!Wl+T!W01!3!3CddCT!Wl=|LMT!Wl+T!W01rW   c                 X   t        g dd      }t        |dd      }t        |d   t        dgdg             t        |d   dg       t        |d   g d       t        }t        |dd      }t        |d   t        t                     t        |d   dg       t        |d   dg       y )	Nr=  Tr   rK  r   r=   r:   r  )r
   r0   r5   r	   r0  s      rU   test_unique_allmaskedz%TestArraySetOps.test_unique_allmasked  s    ID1ddCT!WlA5v>?T!Wqc"T!Wi( ddCT!Wl623T!Wqc"T!Wqc"rW   c                 ,   t        t        j                  d      g d      }t        g dg d      }t	        |      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         y )Nr   r=   r   r   r   r=   r   )r=   r=   r=   r   )r=   r   r   r=   r   )r
   rP   r   r   r   r5   r~  r?   )rQ   r   rS   rR   s       rU   test_ediff1dzTestArraySetOps.test_ediff1d  sb    1O<<8qzT7#T[[^W^^A%67TYY-rW   c                 $   t        t        j                  d      g d      }t        |t              }t        g dg d      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         t        |g d      }t        g d	g d
      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         y )Nr   rV  r   )to_begin)r   r=   r=   r=   r   )r=   r=   r   r   r=   r   r   )r=   r:   r   r=   r=   r=   r   )r   r   r   r=   r   r   r=   	r
   rP   r   r   r	   r   r5   r~  r?   r2  s       rU   test_ediff1d_tobeginz$TestArraySetOps.test_ediff1d_tobegin  s    1O<q6*o>T7#T[[^W^^A%67TYY-q9--4IJT7#T[[^W^^A%67TYY-rW   c                 $   t        t        j                  d      g d      }t        |t              }t        g dg d      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         t        |g d      }t        g d	g d
      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         y )Nr   rV  r   )to_end)r=   r=   r=   r   r   )r=   r   r   r=   r=   r   r   )r=   r=   r=   r   r=   r:   r   )r=   r   r   r=   r   r   r   rZ  r2  s       rU   test_ediff1d_toendz"TestArraySetOps.test_ediff1d_toend(  s    1O<q(o>T7#T[[^W^^A%67TYY-q+-4IJT7#T[[^W^^A%67TYY-rW   c                 8   t        t        j                  d      g d      }t        |t        t              }t        g dg d      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         t        |g dt              }t        g d	g d
      }t        ||       t        |j                  d      |j                  d             t        |j                  |j                         y )Nr   rV  r   r]  rY  )r   r=   r=   r=   r   r   )r=   r=   r   r   r=   r=   r   r   )r   r=   r=   r=   r   r=   r:   r   )r=   r=   r   r   r=   r   r   r   rZ  r2  s       rU   test_ediff1d_tobegin_toendz*TestArraySetOps.test_ediff1d_tobegin_toend7  s    1O<q&9*1CDT7#T[[^W^^A%67TYY-qV<057T7#T[[^W^^A%67TYY-rW   c                 X   t        j                  d      }t        |      }t        g dg d      }t	        ||       t        t        |t                     t	        |j                  d      |j                  d             t	        |j                  |j                         t        |t        t              }t        g dg d      }t        t        |t                     t	        |j                  d      |j                  d             t	        |j                  |j                         y )	Nr   r=   r=   r=   r=   r   r   r   r   r   r   r`  r   r   )rP   r   r   r   r5   r2   r  r   r~  r?   r	   r2  s       rU   test_ediff1d_ndarrayz$TestArraySetOps.test_ediff1d_ndarrayG  s    IIaLqz<8T7#
4-.T[[^W^^A%67TYY-q&9*1CD
4-.T[[^W^^A%67TYY-rW   c                     t        g dg d      }t        g dg d      }t        ||      }t        g dg d      }t        ||       y )N)r=   r   r   r   rP  r   )r   r=   r=   r=   )r=   r   r.  r   )r   r!   r5   )rQ   r   r   rR   rS   s        rU   test_intersect1dz TestArraySetOps.test_intersect1dW  s<    ,\2,\21a 
3T7#rW   c                 v   t        g dg d      }t        g dg d      }t        ||      }t        |t        g d             t        g dg d      }g d}t        ||      }t        |t        g dg d	             t        g d
      }t        g d      }t        ||      }t        t	        |t
                     t        |g d       t        g dg d      }t        g dg d	      }t        ||      }t        t	        |t
                     t        |g d       t        g t        g g              y )Nr=   r:   r   rn   r.  r   r   r   r   r=   r   r=   r:   r   r   r   r.  r}  )r   r   rn   r=   r:   r   r   r   r   r   rn   r.  rP  r   )r~   r   r   r  r=   r   r:   r   r   r=   r   r   r~   r   r   r   )r   r-   r5   r2   r  r   r4   rQ   r@   rA   rR   s       rU   test_setxor1dzTestArraySetOps.test_setxor1d_  s    "9%,>?1~T5+,"91~T5\BC))1~
4-.T-.,\2,\21~
4-.T-.2xB/0rW   c                    t        g dg d      }g d}t        ||d      }t        |t        g dg d             t        g d	g d
      }t        g dg d      }t        ||d      }t        t	        |t
                     t        |g d       t        dgdgdgdgg      }t        ddgddgg      }t        ||d      }t        t	        |t
                     t        |g d       y )Nri  rj  r   rl  T)assume_uniquerm  rP  rn  ro  rp  r  r=   r   r:   r   r~   r   r   )r   r-   r5   r2   r  r   rq  s       rU   test_setxor1d_uniquez$TestArraySetOps.test_setxor1d_uniquey  s    "91D1T5\BC,\2,\21D1
4-.T-.A3aS1#&'Aq6Aq6"#1D1
4-.T-.rW   c                    t        j                  d      j                  g d      }t        j                  g d      }d|d<   t	        ||      }t	        g dg d      }t        dt
        	      }d
|d<   d
|d<   d
|d<   t        ||      }t        t        |t                     t        ||       t        j                  |||j                            |j                   z  }t        ||       y )Nr,  r   r=   )r=   r:   r   r   )	r   rj   rX  rZ  r=   r   r   r4  r\  )	r   r=   r   r=   r   r=   r   r=   r   )rr   r?   r;   Tr  r   )r   r:   r   )rP   r   r   r   r   r   r"   r2   r  r   r4   r?   )rQ   r@   r?   rA   ecrY   r  s          rU   	test_isinzTestArraySetOps.test_isin  s     IIbM!!),xx	"W!$::<9D)777AJ
1k*+1b!GGAq!&&z"affW,1a rW   c                     t        g dg d      }t        g dg d      }t        ||      }t        |g d       t        g dg d      }t        g dg d	      }t        ||      }t        |g d
       t        g t        g g              y )Nri  rj  r   rk  r}  )TTTFTr   r   r:   r=   r.  r=   r   r.  r   )TTFTT)r   r    r5   r4   rq  s       rU   	test_in1dzTestArraySetOps.test_in1d  sr    "9%,>?AqzT:;"9*9-AqzT:;2tB|,rW   c                    t        g dg d      }t        g dg d      }t        t        j                  t	        ||            t	        ||d             t        g dg d      }t        g d	g d
      }t        t        j                  t	        ||            t	        ||d             t        g t	        g g d             y )Nri  rj  r   rk  r}  T)invertrz  r{  r   )r   r5   rP   r~  r    r4   r  s      rU   test_in1d_invertz TestArraySetOps.test_in1d_invert  s    "9%,>?RYYtAqz*DAd,CD"9*9-RYYtAqz*DAd,CD2tB489rW   c                 l   t        g dg d      }t        g dg d      }t        ||      }t        g dg d      }t        ||       t        g dg dgg d	g d
g      }t        g dg d      }t        g dg d      }t        ||      }t        ||       t        g t        g g              y )N)r=   r:   r   rn   r   r.  r}  r   rk  )r=   r:   r   r   r   rn   r.  )r   r   r   r   r   r   r=   r   r<  r  r   r-  rj  )r   r=   r:   r   r   r   )r   r/   r5   r4   )	rQ   r@   rA   rR   rS   r   r   ezr   s	            rU   test_union1dzTestArraySetOps.test_union1d  s    %,>?%,>?q!}.5JKT7# 9i(	9/EF/8%,>?AqMQ2wr2/rW   c                    t        g dg d      }t        g d      }t        ||      }t        |t        g dg d             t        d      }t        d      }t        t        ||      t        dd	g             t        g t        j
                  g       }t        t        |g       j                  t        j
                         y )
N)r~   r   r   rn   rn   r=   r:   r=   )r   r   r   r   r   r   r   r=   r   )r:   r   r   r   r:   r=   r   )r~   rn   r.  r   rj   r   r   )r   r,   r5   r   rP   uint32r<   rq  s       rU   test_setdiff1dzTestArraySetOps.test_setdiff1d  s    *1IJ'(AT5)<=2J1IYq!_eQFm4"biib)Yq"%++RYY7rW   c                     t        j                  g d      }t        j                  g d      }t        t        ||      t        j                  dg             y )N)r@   rA   rY   )r@   rA   ry   rY   )rP   r   r4   r,   r  s      rU   test_setdiff1d_char_arrayz)TestArraySetOps.test_setdiff1d_char_array  s8    HH_%HH_%9Q?BHHcUO<rW   N)r   r   r   rN  rR  rT  rW  r[  r^  ra  re  rg  rr  ru  rx  r|  r  r  r  r  r[   rW   rU   rH  rH    sW    22 #.... . $14/&!*-
:0$8=rW   rH  c                   b    e Zd Zd Zd Zej                  j                  dee	e
g      d        Zy)TestShapeBasec                    t        g dg d      }t        |      }t        |j                  d       t        |j                  j                  |j
                  j                         t        |j                  d       t        |j                  j                  |j
                  j                         t        |j                  j                  |j
                  j                         y )Nr   rm  r   r  r  )r
   r   r5   r   r?   rr   r  s      rU   test_atleast_2dzTestShapeBase.test_atleast_2d  s    3qMQWWf%QVV\\166<<0QWWd#QVV\\166<<0QVV\\166<<0rW   c                 Z   t        d      }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         t        dd      }|D ]l  }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         n t        d      }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         t        dd      }|D ]l  }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         n t        d      }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         t        dd      }|D ]l  }t        |j                  d       t        |j                  j                  |j                         t        |j                  j                  |j                         n t        d      }t        |j                  d       t        |j                  j                  |j                  j                         y )Nr   rZ   r   rG   r=  )r   r5   r   r?   rr   r   r   r   )rQ   rA   r@   s      rU   test_shape_scalarzTestShapeBase.test_shape_scalar  s   
 sOQWWd#QVV\\177+QVV\\177+sC  	0A$'qww/qww/	0
 sOQWWf%QVV\\177+QVV\\177+sC  	0A&)qww/qww/	0
 sOQWWi(QVV\\177+QVV\\177+sC  	0A),qww/qww/	0
 SMQWWf%QVV\\166<<0rW   fnc                    |j                   }t        t        j                  |      |u sJ |j                  dk(  sJ t        t        |j                         }t        j                  |      }t        j                  |      }||k(  sJ y )Nznumpy.ma.extras)r   getattrrP   r^   r   inspect	signature)rQ   r  namewrappedsig_wrappedsigs         rU   test_inspect_signaturez$TestShapeBase.test_inspect_signature  su    {{ruud#r)))}} 1111"bkk*''0#k!!!rW   N)r   r   r   r  r  r   r  r  r   r1   r   r  r[   rW   rU   r  r    s:    1(1T [[TJ#AB	" C	"rW   r  c                       e Zd Zd Zd Zd Zy)TestNDEnumeratec           	         t        j                  d      j                  d      }t        j                  |t              }t        ||      }t        t        t        j                  |            t        t        |                   t        t        t        |            t        t        |                   t        t        t        |            t        t        |d                   y )Nr  )r=   r   r:   r;   r   Frt   )	rP   r   r   
zeros_liker   r
   r5   rf  r(   )rQ   ordinary
empty_mask	with_masks       rU   test_ndenumerate_nomaskedz)TestNDEnumerate.test_ndenumerate_nomasked&  s    99R=((3]]848
 
;	T"..23+h/0	2T+h/0+i01	3T+i01+iEBC	ErW   c           
      2   t        d      }t        d      }t        d      }t        t        t        |            g        t        t        t        |            g        t        t        t        |d            t        t	        t        j                  d      dt        gz                     t        t        t        |            g        t        t        t        |d            t        t	        t        j                  d      dt        gz                     y )Nr[   )d   r   Fr  r  r,  )r$   r5   rf  r(   r9  rP   ndindexr	   )rQ   r@   rA   rY   s       rU   test_ndenumerate_allmaskedz*TestNDEnumerate.test_ndenumerate_allmasked1  s    rNvy!T+a.)2.T+a.)2.T+aE:;#bjj0#.AB	DT+a.)2.T+aE:;#bjj3Y&5IJK	MrW   c           
      f   t        t        j                  d      j                  d      g dg dg dg      }g d}t	        t        t        |            |       t	        t        t        t        |d	                  |j                         t        |d	      D ]  \  }}t	        ||   |        y )
Nr   r  rc  )r=   r=   r   r=   rd  r   ))r   r~   ))r:   r   r   )r  r   )rH   rj   )r  r   Fr  )	r
   rP   r   r   r5   rf  r(   ra   r   )rQ   r@   items
coordinatevalues        rU   test_ndenumerate_mixedmaskedz,TestNDEnumerate.test_ndenumerate_mixedmasked=  s    2..v6+++-.GT+a.)51Sk!>?@!&&I!,Q5!A 	/J:.	/rW   N)r   r   r   r  r  r  r[   rW   rU   r  r  $  s    	E
M
/rW   r  c                       e Zd Zd Zd Zd Zy)	TestStackc                    t        g dg d      }t        g dg d      }t        ||gd      }t        |j                  d       t	        |j
                  |d   j
                         t	        |j
                  |d	   j
                         t        ||g      }t	        |j                  |j                         t	        |j
                  |j
                         t        ||gd	      }t        |j                  d
       t	        |j
                  |d d df   j
                         t	        |j
                  |d d d	f   j
                         y )Nr   rm  r   r   r   rn   r  r   r   r  r=   r   r:   r
   r.   r5   r   r4   r?   r1   rr   rQ   r@   rA   rY   r  s        rU   test_stack_1dzTestStack.test_stack_1dL  s    331a&q!QWWf%1661Q499-1661Q499-Aq6N166166*166166*1a&q!QWWf%1661QT7<<01661QT7<<0rW   c                    t        g dd      }t        g dd      }t        ||gd      }t        |j                  d       t	        |j
                  |d   j
                         t	        |j
                  |d	   j
                         t        ||g      }t	        |j                  |j                         t	        |j
                  |j
                         t        ||gd	      }t        |j                  d
       t	        |j
                  |d d df   j
                         t	        |j
                  |d d d	f   j
                         y )Nr   Tr   r  Fr   r   r  r=   r  r  r  s        rU   test_stack_maskszTestStack.test_stack_masks^  s    ./1a&q!QWWf%1661Q499-1661Q499-Aq6N166166*166166*1a&q!QWWf%1661QT7<<01661QT7<<0rW   c                    d}t         j                  j                  dd|      }t         j                  j                  dd|      }t         j                  j                  dd|      j                  t              }t         j                  j                  dd|      j                  t              }t        ||      }t        ||      }t        ||gd      }d|z   }	t        |j                  |	       t        |j                  |d   j                         t        |j                  |d   j                         t        ||gd	      }|dz   }	t        |j                  |	       t        |j                  |d
   j                         t        |j                  |d   j                         d}t         j                  j                  dd|      }t         j                  j                  dd|      }t         j                  j                  dd|      j                  t              }t         j                  j                  dd|      j                  t              }t        ||      }t        ||      }t        ||gd      }d|z   }	t        |j                  |	       t        |j                  |d   j                         t        |j                  |d   j                         t        ||gd	      }|dz   }	t        |j                  |	       t        |j                  |d
   j                         t        |j                  |d   j                         y )Nr  r   rj   r:   r   r   r9   r=   r.  ).r   ).r=   )r   r:   r   r   )rP   r  randintrg  r   r
   r.   r5   r   r4   r?   )
rQ   shpd1d2r   r   a1rh  rY   c_shps
             rU   test_stack_ndzTestStack.test_stack_ndp  sv   YYq"c*YYq"c*YYq!S)006YYq!S)006"2&"2&2r(#s
QWWe$277AaDII.277AaDII.2r($d
QWWe$277AfINN3277AfINN3 YYq"c*YYq"c*YYq!S)006YYq!S)006"2&"2&2r(#s
QWWe$277AaDII.277AaDII.2r($d
QWWe$277AfINN3277AfINN3rW   N)r   r   r   r  r  r  r[   rW   rU   r  r  J  s    1$1$)4rW   r  )L__doc__r  r  r   numpyrP   numpy._core.numericr   numpy.ma.corer   r   r   r   r   r	   r
   r   r   r   r   numpy.ma.extrasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   numpy.ma.testutilsr2   r3   r4   r5   r7   r   r  r)  r9  r  r  r  r  r+  r4  rH  r  r  r  r[   rW   rU   <module>r     s        4   $ $ $ $ $ $ $ $ $ $J  D~9 ~9B). ).XC CLo od	, ,,
! 
!M= M=`T1 T1n/? /?d7' 7'tx= x=v@" @"F#/ #/LO4 O4rW   