
    Cwg1                    P   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
 ddl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 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?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      ZK G d  d!      ZL G d" d#      ZM G d$ d%      ZNy)&zTests suite for MaskedArray.
Adapted from the original test_ma by Pierre Gerard-Marchant

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: test_extras.py 3473 2007-10-29 15:18:13Z jarrod.millman $

    N)normalize_axis_tuple)assert_warnssuppress_warnings)assert_assert_array_equalassert_equalassert_almost_equal)arrayarangemaskedMaskedArraymasked_arraygetmaskarrayshapenomaskoneszeroscount)#
atleast_1d
atleast_2d
atleast_3dmr_dotpolyfitcovcorrcoefmedianaverageuniquesetxor1d	setdiff1dunion1dintersect1din1dediff1dapply_over_axesapply_along_axiscompress_ndcompress_rowcolsmask_rowcolsclump_maskedclump_unmaskedflatnotmasked_contiguousnotmasked_contiguousnotmasked_edges
masked_allmasked_all_likeisindiagflatndenumeratestackvstack
_covhelperc                   <    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<   rB   rD   barD   bbrD   r?   rI   )r0   floatr
   r   npr>   )selftestcontroldts       Q/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/ma/tests/test_extras.pytest_masked_allzTestGeneric.test_masked_all&   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 )NrC   cr?   r?   rI    rR   r>   objectmar0   r   typecorer   lenr   _fill_valuerS   my_dtype
masked_arrs      rW   "test_masked_all_with_object_nestedz.TestGeneric.test_masked_all_with_object_nestedD   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@rY   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 )NrC   r\   r?   rI   r]   r^   re   s      rW   test_masked_all_with_objectz'TestGeneric.test_masked_all_with_objectP   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;rY   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@   rB   rC   rD   rE   rH   rI   )
   rl   rK   rL   rN   rP   )r
   rQ   r1   r   rR   r>   )rS   baserT   rU   rV   s        rW   test_masked_all_likez TestGeneric.test_masked_all_likeZ   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#rY   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   )rangerR   r   intfullr   rA   datasumr,   r   
compressed)	rS   rD   ijkjarB   ssls	            rW   check_clumpzTestGeneric.check_clumpn   s    q! 	:A1a4[ :IIas+WWQ- A&1+!+A$ *B))A*& !3!3!5q9ffWAF !3!3!5q9:	:rY   c                     t        t        j                  d            }t        |g d<   t	        |      }t        dd      t        dd      t        dd      g}t        ||       | j                  t               y )Nrl   r   r?   r<         	   r      r   rp   r   )r   rR   r   r   r+   slicer   r}   rS   rB   rT   rU   s       rW   test_clump_maskedzTestGeneric.test_clump_masked~   s^    2' &
AA;aU1b\:T7#&rY   c                     t        t        j                  d            }t        |g d<   t	        |      }t        dd      t        dd      g}t        ||       | j                  t               y )Nrl   r   r   r   rp   r   )r   rR   r   r   r,   r   r   r}   r   s       rW   test_clump_unmaskedzTestGeneric.test_clump_unmasked   sW    2' &
a A;a.T7#(rY   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 )	Nrl   r   r=   r   r      r   r   )
r   r-   r   r   sizerR   r   boolrA   r   )rS   rB   rT   s      rW   test_flatnotmasked_contiguousz)TestGeneric.test_flatnotmasked_contiguous   s    2J'*TE!QVV,-."D)TE!QVV,-.*01q5QU
qAv
&''*TE!QKq!56!'*T2rY   N)__name__
__module____qualname__rX   rh   rj   rn   r}   r   r   r   r]   rY   rW   r9   r9   $   s+    $<
A<$(: 	')rY   r9   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rA   r   r   axis)r   r   r   r   weightsTr   returned      @r<   r?   r   r   r   r   )r
   r   r   r   r   rA   reshape)rS   ottresultwtss       rW   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(#rY   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   rR   float64r   r   r
   addreducer   r   r   rA   r   )rS   w1w2xym1m2m3m4m5zs              rW   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	4rY   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   r   r   r   r
   rQ   r   )rS   rB   rC   r1r   r2r   a2da2dma2daa2dmas              rW   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'rY   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   )rR   r
   r   r`   r   r   r   )rS   r   rC   wactualdesireds         rW   test_testAverage4zTestAverage.test_testAverage4   s    HHY''1-EEKK%5'D6 :K;HHY''1-AA=rdRD1UGeWtf3MNVW%rY   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   )rR   r   r   r
   rs   r`   r   r   r	   nanpytestraises
ValueErrorT)	rS   r   r   mymasubw0r   r   subw1s	            rW   $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
   r   rS   rB   s     rW   test_onintegers_with_maskz%TestAverage.test_onintegers_with_mask1  s:    E1a&M"QE,-GHIQrY   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   )	rR   r
   r   r   r   rv   r	   realimag)rS   rA   rB   avexpectedav0	expected0av1	expected1r   wavwav0wav1s                rW   test_complexzTestAverage.test_complex8  sG    xx(*157568"$ QZ::alln-BGGX]]3BGGX]]3aa AFF+gaff1.Eb.HH	CHHinn5CHHinn5aa AFF+gaff1.Eb.HH	CHHinn5CHHinn5 hh113 4a%::allnc4%jACHHhmm4CHHhmm4q#A.QVVSq9QVVSq9"<=	DIIy~~6DIIy~~6q#A.QVVSq9QVVSq9"<=	DIIy~~6DIIy~~6rY   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   )rR   r`   r   r   r   )
rS   r   r   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             rW   test_basic_keepdimszTestAverage.test_basic_keepdimsd  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/rY   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         @)rR   r`   r
   r   r   r   r   r	   r   r   rA   )	rS   rB   weights_unmaskedweights_maskedavg_unmaskedexpected_unmasked
avg_maskedexpected_maskedavg_expecteds	            rW   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8rY   )r   r   r   r   r   r   r   r   r   r   r   markparametrizer  r  r]   rY   rW   r   r      s    $& 4D(0&1-f*7X [[F
TC5)dVcU	;j
!1&7a&?#i[
2	300")9rY   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?   )	r   r   r
   r   r   r   
isinstancer   rA   )rS   rC   r   dr[   s        rW   test_1dzTestConcatenator.test_1d  sw    3/0%8J2KLG#1a
O
1k*+1BC1663q!Qz?3rY   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   rl   )rl   r   )rR   randomrandroundr   r   r   r   r   rA   r_)rS   a_1a_2m_1m_2b_1b_2r  s           rW   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T7C(1QRT7C(166255c?3rY   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   rR   r`   r   r   rA   rt   )rS   r   s     rW   test_masked_constantz%TestConcatenator.test_masked_constant  s~    RUU\\1_%V[[4-0V[[^Q'aVRUU\\)*V[["67V[[!_q!f-rY   N)r   r   r   r  r'  r)  r]   rY   rW   r  r    s    	44(.rY   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   rR   r   r   r/   r   rt   r   rS   rt   rT   s      rW   
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|\:;rY   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   rp   )r   rR   r   r   r.   r   r   )rS   rB   tmps      rW   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
 	rY   N)r   r   r   r3  r9  r]   rY   rW   r+  r+    s     <DrY   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   )rl   r         )            )(   *   +   ,   )2   4   5   6   )7   9   :   ;   r   r/  )r   r   rp   r   r   )rl   r   r   r@  rA  )rB  r5  rC  rD  rE  )rF  )   rG  rH  rI  )-   .   /   0   1   )rJ  3   rK  rL  rM  )rN  8   rO  rP  rQ  r?   )      r6  r7  r.  )   r      !   "   )#   $   %   &   '   r\   r1  )r1  r<   )r   rp   r   r   )rZ  r6  r7  r.  )r-     r     )r\  r]  r^  r_  )r`  rb  rc  rd  )rS  rU  rV  rW  r;   r0  )r0  r   )r   r1  r   )r1  r<   )r?   r0  )r1  r0  r   r<   )r   r0  )
rR   r
   listrq   r   r   astyper   r(   r   )rS   r   r   rB   a2a3a4s          rW   test_compress_ndz&TestCompressFunctions.test_compress_nd  s0   HHT%,'(00Aq9HHW$$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rY   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   rp   r   r   r>  )r   rp   r   r?   r<   r   r?   r   r   r   r   )r
   rR   r   r   r   r)   _datar   rS   r   s     rW   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!4rY   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?   ro  )r?   r?   r   r   )r
   rR   r   r   r   r*   rA   rp  r   allr   rq  s     rW   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"''++-.rY   r   )Nr   r?   funcrowcols_axisr   r?   c                     t        t        j                  d      j                  dd      g dg dg dg      }t	        t
              5   |||      }t        |t        ||             d d d        y # 1 sw Y   y xY w)Nr   r   r  r  r   r   )r
   rR   r   r   r   DeprecationWarningr   r*   )rS   r   rv  rw  r   ress         rW   #test_mask_row_cols_axis_deprecationz9TestCompressFunctions.test_mask_row_cols_axis_deprecation  sl    
 "))A,&&q!,!9i8: ,- 	=qt$Cl1l;<	= 	= 	=s   	!A33A<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?   rp   )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   )	rR   r   r   r   r   r   rA   filledr   )rS   nr   rB   rC   r[   s         rW   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-.rY   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   )rR   eyer
   r   ra   r   r   rS   rB   rC   s      rW   test_dot_returns_maskedarrayz2TestCompressFunctions.test_dot_returns_maskedarray:  st    FF1I!HSAY;./SAY;./SAY;./SAY;./rY   c                     t        t        j                  d            }t        t        j                  d            }t	        |||      }t        ||u        t        ||       y )Nr   )r   r   out)r
   rR   r  r   r   r   r   )rS   rB   r  rz  s       rW   test_dot_outz"TestCompressFunctions.test_dot_outC  sK    "&&)BHHV$%!QC s
QrY   N)r   r   r   rm  rr  ru  r   r  r  rR   r`   	mask_rows	mask_colsr{  r  r  r  r]   rY   rW   r;  r;    s    n`5(/@ [[V\2[[fn5!uu2RUU__a4HIK=K 3=m/^0rY   r;  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]   )rC   s    rW   myfuncz*TestApplyAlongAxis.test_3d.<locals>.myfuncP  s    Q4KrY   r?   r   rp   rl   r   r   r'   r   rS   rB   r  xas       rW   test_3dzTestApplyAlongAxis.test_3dM  sF    3K1a(	 fa+R1a&1b'*+rY   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]   )rC   offsets     rW   r  z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncZ  s    QvX;rY   r?   )r  r   r   r   )r   r  r  s       rW   test_3d_kwargsz!TestApplyAlongAxis.test_3d_kwargsW  sH    2Jq!Q'	 fa15R1a&1b'*+rY   N)r   r   r   r  r  r]   rY   rW   r  r  K  s    ,,rY   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  rI  )
r   r   r&   rR   ru   r
   r   r   ri  r   )rS   rB   rT   ctrls       rW   
test_basiczTestApplyOverAxes.test_basicc  s    2Jq!Q'rvvq1a&1xx2$se,-.T4 "(1q5..
rvvq1a&1xx2$rd+,-T4 rY   N)r   r   r   r  r]   rY   rW   r  r  a  s    !rY   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 )Nr0  r   )rR   r`   r   infr   rS   rs     rW   test_pytypezTestMedian.test_pytypeo  sE    EELL266266*RVVRVV,<=BLGQrY   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 )Nr0  r   Tr   )rR   r`   r   r   r  r   rA   r  s     rW   test_infzTestMedian.test_infs  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"rY   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@)
rR   r   r   r`   r   r   ra   r   rq   r   rq  s     rW   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'{:;rY   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 mismatchrl   r<   r   r   r   r0  Tr   overwrite_inputr   r   r;   N)r
   rR   r   r   r`   r   r   r   ra   r   r   )rS   r   ma_xs      rW   test_docstring_examplesz"TestMedian.test_docstring_examples  sE   "))A,aSUaSU]3RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))B-''1-QCEQCEMBRUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89uu||AB|=TB8$TZZ'78T
k)*rY   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?   )ndminrA   FTr  )rq   r
   	itertoolsproductrR   r`   r   	ExceptionAssertionError
exceptions	AxisError)rS   msgr  rA   r   argsr   overs           rW   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
   r   rR   r`   r   r   rq  s     rW   test_masked_0dzTestMedian.test_masked_0d  sN    !% RUU\\!_a(!$RUU\\!_beell3rY   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
   rR   r   r   r`   r   r   r   r   ra   rb   MaskedConstantr   rq  s     rW   test_masked_1dzTestMedian.test_masked_1d  sP   "))A,T*RUU\\!_beell3RUU\\!_**B0@ARUU\\!_%)B)BBC"))A,U+RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,[1RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))A,[1RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,[1RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))B-k2RUU\\!_b)RUU\\!_**B0@ARUU\\!_%[89"))A,]3RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89"))B-m4RUU\\!_c*RUU\\!_**B0@ARUU\\!_%[89rY   c           
          t        t        j                  j                  t	        g dg d            j
                  t        j                  j                  t	        g dg d            j
                         y )Nr   r  r   ro  )r   rR   r`   r   r
   r   rS   s    rW   test_1d_shape_consistencyz$TestMedian.test_1d_shape_consistency  sD    RUU\\%W"=>DDUU\\%W"=>DD	GrY   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   r\        r   rl   r=   r   r?   r   )r   rR   linspacer   emptyrQ   r   rc   rq   r  shuffler   r   r   r   )rS   r  pr   r   idxrw   s          rW   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+6rY   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 )Nr\  rl   r         -@r   r   )      +@r  g      /@r?   )
r   r   r   rl   r@  r5  rE  r   r   r   )
r?   r?   r?   r   r   r   r   r?   r?   r?   )r   rR   r   r   r   r   r   r   ra   r`   r   rA   rq  s     rW   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LrY   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       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   rB  rD  )r   r   r<   c   rl   r   r@  rA  r   r   r5  rC  )rR   r`   r   r   r   r   r   r   rq  s     rW   r  zTestMedian.test_3d  s    EELL$$Q1-!a%1*VAq\RGaWr1gBx#HIVAq\RHr2hR#ABEELL$$Q1-!a%1*VAq\RHq!fr2h#?@rY   c                     t        t        j                  d      j                  dd            }t        x|d d |dd  t        t        |d      t        |d             y )Nr\  rl   r   r  r0  r   r?   )r   rR   r   r   r   r   r   rq  s     rW   test_neg_axiszTestMedian.test_neg_axis  sO    2..r156"1"#VAB'):;rY   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)r\        >@r  g      ?@r   r  r]   r  r\  r  g      .@)
r   rR   r   r   r   r   r   r   ra   r   )rS   vr   r  r  s        rW   test_out_1dzTestMedian.test_out_1d  s    # 
	,ARYYq\*A##AbqEAbcFrwwr{+Cqc"ABwS$'S#&AHDG{*+
	,rY   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)rF  g      D@r\  r  rl   r0  r   r  r?   )r   r  r\  r   )rl   r@  r5  rE  TFr   r   )r  g     1@g     5@g     9@)r   rR   r   r   r   r   r   r   r   ra   r   )rS   r  r   r  r  es         rW   test_outzTestMedian.test_out,  s   # 	,ARYYq\11"b9:A##AbqEAbcFrwwr{+Cqqc*ABw "a*:!:bT!V!C'+fqjE7Q;&>$!&KM !"a*B!BbT!V!K'+fQh%&:dVAX&EGAAHDG{*+	,rY   r   )Nr?   r\   r   )r  r0  )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   rp   r   r=   )r      r   r\   c              3   H   K   | ]  }|v rd nj                   |     yw)r?   N)r   ).0rw   	axis_normr  s     rW   	<genexpr>z/TestMedian.test_keepdims_out.<locals>.<genexpr>R  s+      L89Q)^3Ls   "T)r   r   r  )rR   r   r   r  r
   r   ri  intpr   tupler   r   ndimr   rq   r  r   r   )	rS   r   rA   r   	shape_outr  r   r  r  s	          @@rW   test_keepdims_outzTestMedian.test_keepdims_out=  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-rY   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   )rR   r`   masked_equalr   r   )rS   rt   rg   r   s       rW   $test_single_non_masked_value_on_axisz/TestMedian.test_single_non_masked_value_on_axisY  s]    RRR UU''a0
8255<<
<;#	%rY   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<   r0  r   )rR   r   r   r`   r
   r   rA   r   r   isscalarr   ravelr   ra   r   r   )rS   rA   dmr  s       rW   test_nanzTestMedian.test_nanb  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]CrY   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?   rJ   r   r  r   r?   r]   )	rR   r`   r   r   r   r   r   r   r   )rS   or  s      rW   test_out_nanzTestMedian.test_out_nan  s    EErxx~.EErwwv/&&$%%,,$RUU\\!QA\.2EErxx~.RUU\\!QA\.2EErxx|,RUU\\!\+Q/rY   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   rg  )rR   r`   r   r   rQ   r   r   r   r   r   r   rA   copyr   r  r   )rS   rB   aorigrC   s       rW   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0rY   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   )rR   r
   uint8r`   r   r   r   rA   r   s     rW   test_ambigous_fillzTestMedian.test_ambigous_fill  s    HHk;/rxx@EEqqAv.255<<<2C8255<<<277?255<<<2AaD9255<<?C0rY   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      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?   Frp   ir  r   r   r=   r   r   r   g      @g      $g      "g      r  rl   r<   )rR   r  r
   r   r`   r   isnanr   r   r   rA   float32rq   )rS   r  rB   rw   rx   s        rW   test_specialzTestMedian.test_special  s   FFRVVG$ (	=C3.266266*:;<A""1288A;"7Aaa03.Aaa03.A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1b\ =q" =ABFF8a<SEAI">!?!!CDA**1288A;*?A a#6 aa!8#> aa!8#%66(Q,3%!)!;===C(	=rY   c                 6   t         j                  j                  t        j                  g t                    }t               5 }|j                  t               t        t         j                  j                  |      t         j                         t        |j                  d   j                  t        u        d d d        t         j                  j                  t        j                  g t        d            }t               5 }|j                  t               t        j                  ddt               t        t         j                  j                  |      t         j                         t        |j                  d   j                  t        u        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"                  d
      5 }t        j                  ddt               t!        t         j                  j                  |d      |       t        |d   j                  t        u        d d d        y # 1 sw Y   ?xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)Nr=   r   r   )r>   r  always r<   r   r?   T)record)rR   r`   r   r
   rQ   r   r  RuntimeWarningr   r   r   r   logcategorywarningsfilterwarningsr   catch_warnings)rS   rB   r   rC   s       rW   
test_emptyzTestMedian.test_empty  s   EErxx%89  	9AHH^$ruu||A7AEE!H%%78	9 EErxx%qAB  	9AHH^$##Hb.Aruu||A7AEE!H%%78		9 EErxx%qABRUU\\!!\,a0RUU\\!!\,a0 EErxxe1EF$$D1 	5Q##Hb.Aaa0!4AaDMM^34	5 	5+	9 	9	9 	9	5 	5s'   A5K5BLA%L5K?LL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<   )rR   r`   r   r   r   ra   r   ri  r_   rQ   r   )rS   r  s     rW   test_objectzTestMedian.test_object  su    EEryy}-RUU\\!((6"234e<vv!RUU\\!((6"234e<rY   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]   rY   rW   r  r  n  s     #$<*+N04$:LG7 
M	A<
,," [[
  	.	.$%D:	0!1F1)=V5:=rY   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestCovc                 ^    t        t        j                  j                  d            | _        y Nr   )r
   rR   r  r  rt   r  s    rW   setup_methodzTestCov.setup_method  s    "))..,-	rY   c                 n   | 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   r0  )rt   r   r7   r>   rR   r  r   r`   r   ri  r   r   r6   )rS   r   rA   s      rW   test_covhelperzTestCov.test_covhelper
  s    II
1T*1-33RZZ@
1%03992::F3w""1d+D\\!R  		
 	""1d+qIIuten%		
rY   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)rt   r	   rR   r   rq  s     rW   test_1d_without_missingzTestCov.test_1d_without_missing  s`    IIBFF1Is1v.BFF1U3S55IJBFF1U>%d;	=rY   c                 @   | 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   )rt   r   r	   rR   r   rq  s     rW   test_2d_without_missingzTestCov.test_2d_without_missing&  sm    IIa#BFF1Is1v.BFF1U3S55IJBFF1U>%d;	=rY   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)Nr0  Fr  Tr   allow_maskedr?   )rt   r   meanrv   r	   rR   r   r   )rS   r   nxs      rW   test_1d_with_missingzTestCov.test_1d_with_missing.  sI   II"	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 )Nr0  r   r   r?   r   r   Tr!  Fr  r   )rt   r   r   rR   logical_notr   ri  rr   r   r   r(  r  r	   r   r   )rS   r   validfracxfs        rW   test_2d_with_missingzTestCov.test_2d_with_missingF  s   II"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(*./	1rY   N)	r   r   r   r  r  r"  r$  r*  r1  r]   rY   rW   r  r    s!    .
(==F01rY   r  c                   6    e Zd Zd 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            | _        y r  )r
   rR   r  r  rt   data2r  s    rW   r  zTestCorrcoef.setup_method^  s4    "))..,-	299>>"-.
rY   c                 `   | j                   | j                  }}t        j                  |      }t        j                  ||      }t	               5 }t        j                  d       t        t        t        |d       |j                  t        d       t        t        j                  |d      t        |d             t        t        |d      |       t        t        ||d      |       t        t        |d      |       t        t        ||d      |       d d d        y # 1 sw Y   y xY w)Nr
  r0  ddofbias and ddof have no effectr   r   rt   r5  rR   r   r   r  simplefilterr   ry  filterr	   )rS   r   r   r   	expected2sups         rW   	test_ddofzTestCorrcoef.test_ddofb  s    yy$**1;;q>KK1%	  		CC!!(++XqrBJJ)+IJAA 68KL 4h?AB 7C 3X>AA 6	B		C 		C 		Cs   CD$$D-c           	         | j                   | j                  }}t        j                  |      }t	               5 }t        j                  d       t        t        t        ||dd       t        t        t        ||dd       t        t        t        |d       |j                  t        d       t        t        |d      |       d d d        y # 1 sw Y   y xY w)Nr
  TFr,  r9  r?   r:  )rS   r   r   r   r>  s        rW   	test_biaszTestCorrcoef.test_biasr  s    yy$**1;;q>  	?C!!(++Xq!T5I+Xq!T4H+XquEJJ)+IJ 3X>	? 	? 	?s   B
CCc           	         | j                   }t        t        j                  |      t        |             t        t        j                  |d      t        |d             t	               5 }|j                  t        d       t        t        j                  |dd      t        |dd             d d d        y # 1 sw Y   y xY w)NFr  r9  Tr   )rt   r	   rR   r   r   r<  ry  rS   r   r>  s      rW   r"  z$TestCorrcoef.test_1d_without_missing  s    IIBKKNHQK8BKK%8$Qu5	7  	FCJJ)+IJAe$ G (5t DF	F 	F 	Fs   +AB99Cc           	         | j                   j                  dd      }t        t        j                  |      t	        |             t        t        j                  |d      t	        |d             t               5 }|j                  t        d       t        t        j                  |dd      t	        |dd             d d d        y # 1 sw Y   y xY w)Nr   r   Fr  r9  Tr   )rt   r   r	   rR   r   r   r<  ry  rC  s      rW   r$  z$TestCorrcoef.test_2d_without_missing  s    IIa#BKKNHQK8BKK%8$Qu5	7  	FCJJ)+IJAe$ G (5t DF	F 	F 	Fs   ;AC		Cc                 T   | j                   }t        |d<   ||j                         z  }|j                         }t	        t        j                  |      t        |             t	        t        j                  |d      t        |d             t               5 }|j                  t        d       t	        t        j                  |dd      t        |dd             d 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               5 }|j                  t        d       t	        t        j                  ||d d d         t        ||d d d   d	             t	        t        j                  ||d d d         t        ||d d d   d
             d d d        y # 1 sw Y   'xY w# t        $ r Y (w xY w# 1 sw Y   y xY w)Nr0  Fr  r9  Tr   r&  r?   r,  r<   r7  )rt   r   r(  rv   r	   rR   r   r   r<  ry  r   )rS   r   r)  r>  s       rW   r*  z!TestCorrcoef.test_1d_with_missing  s   II"	QVVX\\^BKKOXa[9BKK59$Qu5	7  	FCJJ)+IJBu4 H (5t DF	F	QU+ qWBKKBttH5x1TrT77KLBKKBttHUC$Q$B$>	@  	>CJJ)+IJB4R4 9 (AddG! <>B4R4 9 (AddG! <>	> 	>	F 	F  			> 	>s,   AH%H 1BHH	HHH'c                 .   | j                   }t        |d<   |j                  dd      }t        |      }t	        j                  |      }t        |d dd df   |d dd df          t               5 }|j                  t        d       t        t        |d      d dd df   |d dd df          t        t        |d      d dd df   |d dd df          t        t        |d      d dd df   |d dd df          d d d        y # 1 sw Y   y xY w)	Nr0  r   r   r9  r1  r7  r?   r,  )	rt   r   r   r   rR   r	   r   r<  ry  )rS   r   rT   rU   r>  s        rW   r1  z!TestCorrcoef.test_2d_with_missing  s3   II"IIaO{++a.D"crcNGCRC"H,=>  	3CJJ)+IJ 4SbS#2#X > 'SbS 13 3CRC"H = 'SbS 13 3CRC"H = 'SbS 13	3 	3 	3s   0BDDN)
r   r   r   r  r?  rA  r"  r$  r*  r1  r]   rY   rW   r3  r3  \  s(    /C ?	F	F><3rY   r3  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 )Nrl   rZ  r0  r<   r   r   rH   r0  r0  Trs   r?   )rs   r   )rR   r  r  r   r	   r   viewr   r   rv   zipr  r   )rS   r   r   CRKSDr[   r  ry   r{   r  rB   a_r   woxsyswss                       rW   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"QiF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&	'rY   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 )Nrl   rZ  r0  r<   r   rJ  r   TrK  r?   )rR   r  r  r   r   rL  r   r   r   rM  r	   )rS   r   r   rN  rO  rP  rQ  rR  r[   r  ry   r{   r  rB   rS  s                  rW   test_polyfit_with_masked_NaNsz,TestPolynomial.test_polyfit_with_masked_NaNs  s    IINN2IINN2&&r1-vv!66%FF;FF;!%!!Q5Aq!Q**QqWa"QiFAq!QAq!Q?Q1aO< 	'GQ2&	'rY   N)r   r   r   rX  rZ  r]   rY   rW   rH  rH    s    %'N'rY   rH  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<   )r   r   r  r   r   r   r2  s      rW   test_unique_onlistz"TestArraySetOps.test_unique_onlist  sZ    !ddC
47K01T!Wl99EFT!Wi(T!W01rY   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 )Nr^  )r   r   r?   r   r?   r   r   Tr_  r   )r?   r<   r   r0  r   r   r   r?   r?   )r   r   r   r<   r<   )r   r   r   r?   r   r<   r   )rt   rA   
fill_value)r   r   r   re  r2  s      rW   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1rY   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   r_  r   r?   r<   r  )r   r   r   r   r2  s      rW   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"rY   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   rR   r   r
   r%   r   r  rA   )rS   r   rU   rT   s       rW   test_ediff1dzTestArraySetOps.test_ediff1d+  sb    1O<<8qzT7#T[[^W^^A%67TYY-rY   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   rj  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   rR   r   r%   r   r
   r   r  rA   rS   r   rT   rU   s       rW   test_ediff1d_tobeginz$TestArraySetOps.test_ediff1d_tobegin4  s    1O<q6*o>T7#T[[^W^^A%67TYY-q9--4IJT7#T[[^W^^A%67TYY-rY   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   rj  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   rn  ro  s       rW   test_ediff1d_toendz"TestArraySetOps.test_ediff1d_toendC  s    1O<q(o>T7#T[[^W^^A%67TYY-q+-4IJT7#T[[^W^^A%67TYY-rY   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   rj  r   rr  rm  )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  ro  s       rW   test_ediff1d_tobegin_toendz*TestArraySetOps.test_ediff1d_tobegin_toendR  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-rY   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   ru  r   r   )rR   r   r%   r
   r   r   r  r   r  rA   r   ro  s       rW   test_ediff1d_ndarrayz$TestArraySetOps.test_ediff1d_ndarrayb  s    IIaLqz<8T7#
4-.T[[^W^^A%67TYY-q&9*1CD
4-.T[[^W^^A%67TYY-rY   c                     t        g dg d      }t        g dg d      }t        ||      }t        g dg d      }t        ||       y )N)r?   r   r   r   rd  r   )r   r?   r?   r?   )r?   r   r0  r   )r
   r#   r   )rS   r   r   rT   rU   s        rW   test_intersect1dz TestArraySetOps.test_intersect1dr  s<    ,\2,\21a 
3T7#rY   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   rp   r0  r   r   r   r   r?   r   r?   r<   r   r   r   r0  r~  )r   r   rp   r?   r<   r   r   r   r   r   rp   r0  rd  r   )r   r   r   r  r?   r   r<   r   r   r?   r   r   r   r   r   r   )r
   r    r   r   r  r   r   rS   rB   rC   rT   s       rW   test_setxor1dzTestArraySetOps.test_setxor1dz  s    "9%,>?1~T5+,"91~T5\BC))1~
4-.T-.,\2,\21~
4-.T-.2xB/0rY   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 )Nr~  r  r   r  T)assume_uniquer  rd  r  r  r  r  r?   r   r<   r   r   r   r   )r
   r    r   r   r  r   r  s       rW   test_setxor1d_uniquez$TestArraySetOps.test_setxor1d_unique  s    "91D1T5\BC,\2,\21D1
4-.T-.A3aS1#&'Aq6Aq6"#1D1
4-.T-.rY   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   rl   rZ  r\  r?   r   r   r6  r^  )	r   r?   r   r?   r   r?   r   r?   r   )rt   rA   r=   Tr  r   )r   r<   r   )rR   r   r   r   r
   r   r2   r   r  r   r   rA   )rS   rB   rA   rC   ecr[   r  s          rW   	test_isinzTestArraySetOps.test_isin  s     IIbM!!),xx	"W!$::<9D)777AJ
1k*+1b!GGAq!&&z"affW,1a rY   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 )Nr~  r  r   r  r~  )TTTFTr   r   r<   r?   r0  r?   r   r0  r   )TTFTT)r
   r$   r   r   r  s       rW   	test_in1dzTestArraySetOps.test_in1d  sr    "9%,>?AqzT:;"9*9-AqzT:;2tB|,rY   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 )Nr~  r  r   r  r~  T)invertr  r  r   )r
   r   rR   r  r$   r   r  s      rW   test_in1d_invertz TestArraySetOps.test_in1d_invert  s    "9%,>?RYYtAqz*DAd,CD"9*9-RYYtAqz*DAd,CD2tB489rY   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   rp   r   r0  r~  r   r  )r?   r<   r   r   r   rp   r0  )r   r   r   r   r   r   r?   r   r>  r  r   r/  r  )r   r?   r<   r   r   r   )r
   r"   r   r   )	rS   rB   rC   rT   rU   r   r   ezr   s	            rW   test_union1dzTestArraySetOps.test_union1d  s    %,>?%,>?q!}.5JKT7# 9i(	9/EF/8%,>?AqMQ2wr2/rY   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   rp   rp   r?   r<   r?   )r   r   r   r   r   r   r   r?   r   )r<   r   r   r   r<   r?   r   )r   rp   r0  r   rl   r   r   )r
   r!   r   r   rR   uint32r>   r  s       rW   test_setdiff1dzTestArraySetOps.test_setdiff1d  s    *1IJ'(AT5)<=2J1IYq!_eQFm4"biib)Yq"%++RYY7rY   c                     t        j                  g d      }t        j                  g d      }t        t        ||      t        j                  dg             y )N)rB   rC   r[   )rB   rC   r{   r[   )rR   r
   r   r!   r  s      rW   test_setdiff1d_char_arrayz)TestArraySetOps.test_setdiff1d_char_array  s8    HH_%HH_%9Q?BHHcUO<rY   N)r   r   r   rb  rf  rh  rk  rp  rs  rv  rz  r|  r  r  r  r  r  r  r  r  r]   rY   rW   r\  r\    sW    22 #.... . $14/&!*-
:0$8=rY   r\  c                       e Zd Zd Z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   ro  r   r  r  )r   r   r   r   rA   rt   r  s      rW   test_atleast_2dzTestShapeBase.test_atleast_2d  s    3qMQWWf%QVV\\166<<0QWWd#QVV\\166<<0QVV\\166<<0rY   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   r\   r   rI   r?  )r   r   r   rA   rt   r   r   r3   )rS   rC   rB   s      rW   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<<0rY   N)r   r   r   r  r  r]   rY   rW   r  r    s    1(1rY   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rv   )	rR   r   r   
zeros_liker   r   r   rh  r4   )rS   ordinary
empty_mask	with_masks       rW   test_ndenumerate_nomaskedz)TestNDEnumerate.test_ndenumerate_nomasked5  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rY   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.  )r0   r   rh  r4   rM  rR   ndindexr   )rS   rB   rC   r[   s       rW   test_ndenumerate_allmaskedz*TestNDEnumerate.test_ndenumerate_allmasked@  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rY   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  rx  )r?   r?   r   r?   ry  r   ))r   r   ))r<   r   r   )r  r   )rJ   rl   )r  r   Fr  )	r   rR   r   r   r   rh  r4   rc   r   )rS   rB   items
coordinatevalues        rW   test_ndenumerate_mixedmaskedz,TestNDEnumerate.test_ndenumerate_mixedmaskedL  s    2..v6+++-.GT+a.)51Sk!>?@!&&I!,Q5!A 	/J:.	/rY   N)r   r   r   r  r  r  r]   rY   rW   r  r  3  s    	E
M
/rY   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   ro  r   r   r   rp   r  r   r   r  r?   r   r<   r   r5   r   r   r   rA   r6   rt   rS   rB   rC   r[   r  s        rW   test_stack_1dzTestStack.test_stack_1d[  s    331a&q!QWWf%1661Q499-1661Q499-Aq6N166166*166166*1a&q!QWWf%1661QT7<<01661QT7<<0rY   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        rW   test_stack_maskszTestStack.test_stack_masksm  s    ./1a&q!QWWf%1661Q499-1661Q499-Aq6N166166*166166*1a&q!QWWf%1661QT7<<01661QT7<<0rY   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   rl   r<   r   r   r;   r?   r0  ).r   ).r?   )r   r<   r   r   )rR   r  randintri  r   r   r5   r   r   r   rA   )
rS   shpd1d2r   r   a1rj  r[   c_shps
             rW   test_stack_ndzTestStack.test_stack_nd  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3rY   N)r   r   r   r  r  r  r]   rY   rW   r  r  Y  s    1$1$)4rY   r  )O__doc__r  r  r   numpyrR   numpy._core.numericr   numpy.testingr   r   numpy.ma.testutilsr   r   r   r	   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/   r0   r1   r2   r3   r4   r5   r6   r7   r9   r   r  r+  r;  r  r  r  r  r3  rH  r\  r  r  r  r]   rY   rW   <module>r     s$       4              D~9 ~9B). ).XC CLo od	, ,,
! 
!T= T=nT1 T1nh3 h3V7' 7'tx= x=v41 41n#/ #/LO4 O4rY   