
    Ngj$                       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>  G d d	          Z? G d
 d          Z@ G d d          ZA G d d          ZB G d d          ZC G d d          ZD G d d          ZE G d d          ZF G d d          ZG G d d          ZH G d d          ZI G d d          ZJ G d  d!          ZK G d" d#          ZL G d$ d%          ZMdS )&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vstackc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
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          ||           d S )N   dtype   maskr=   abfnamesformatsr   r   r>   r>   r;   r;   rA   rC   barC   bbrC   r>   rH   )r0   floatr
   r   npr=   )selftestcontroldts       V/var/www/html/ai-engine/env/lib/python3.11/site-packages/numpy/ma/tests/test_extras.pytest_masked_allzTestGeneric.test_masked_all&   s    $e,,,AaV5999T7###Xc
SzBBCC$b)))(/?rJJJT7###&+++&&)FF+;<%v.0@A " " " 	T7###XzC+{)C#DEFF$b)))k2);7rC C CT7###$b)))k2);7rC C CT7###&++++}oRHHHT7#####    c                 P   t          j        ddt          fgdffg          }t           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           d S )NrB   cr>   r>   rH    rQ   r=   objectmar0   r   typecorer   lenr   _fill_valuerR   my_dtype
masked_arrs      rV   "test_masked_all_with_object_nestedz.TestGeneric.test_masked_all_with_object_nestedD   s     8cc6]OT#:;<==U%%dH55
T*S/**BEJ,BCCCT*S/#.//1GHHHSC-..222Z_S)/888Z_S)5;R@@@@@rX   c                    t          j        dt          dffg          }t           j                            d|          }t          t          |d                   t           j        j        j                   t          t          |d                   d           t          |d         j
        d           t          |d         j        j
        d           d S )NrB   r[   r>   rH   r\   r]   rd   s      rV   test_masked_all_with_objectz'TestGeneric.test_masked_all_with_objectP   s    8cFD>2344U%%dH55
T*S/**BEJ,BCCCSC))1---Z_*F333Z_06;;;;;rX   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          ||           d S )Nr>   r;   r<   r?   rA   rB   rC   rD   rG   rH   )
   rk   rJ   rK   rM   rO   )r
   rP   r1   r   rQ   r=   )rR   baserS   rT   rU   s        rV   test_masked_all_likez TestGeneric.test_masked_all_likeZ   s4    aV5)))t$$AaV5999T7###Xc
SzBBCCff%VV,<BGGGt$$8,FF3C2NNNT7###XzC+{)C#DEFFk2);7rC C Cw''T7#####rX   c                 x   t          dd          D ]'}t          d|z            D ]}t          j        |t                    }t          j        ||t                    }t          d|z            }|d|z  z  dk    |_        d} ||          D ]$}||j        |                                         z  }%|t          k    r5t          |                                                                |           |j         |_        t          |                                                                |           )d S )Nr>      r;   r<   r   )rangerQ   r   intfullr   r@   datasumr,   r   
compressed)	rR   rC   ijkjarA   ssls	            rV   check_clumpzTestGeneric.check_clumpn   s,   q! 	: 	:A1a4[[ : :Ias+++WQ--- A&&1+!+!A$$ * *B)))AA&& !3!3!5!5q9999fWAF !3!3!5!5q9999:	: 	:rX   c                 0   t          t          j        d                    }t          |g d<   t	          |          }t          dd          t          dd          t          dd          g}t          ||           |                     t                     d S )Nrk   r   r>   r;         	   r      r   ro   r   )r   rQ   r   r   r+   slicer   r|   rR   rA   rS   rT   s       rV   test_clump_maskedzTestGeneric.test_clump_masked~   s    2'' &


AA;;aU1b\\:T7###&&&&&rX   c                    t          t          j        d                    }t          |g d<   t	          |          }t          dd          t          dd          g}t          ||           |                     t                     d S )Nrk   r~   r   r   ro   r   )r   rQ   r   r   r,   r   r   r|   r   s       rV   test_clump_unmaskedzTestGeneric.test_clump_unmasked   sy    2'' &


a  A;;a.T7###(((((rX   c                    t          d          }t          |          }t          |t          d|j                  g           t          j        dt                    |_        t          |t          d|j                  g           t          ||dk     |dk    z  |dk    z  <   t          |          }t          |t          dd          t          dd          g           t          |d d <   t          |          }t          |g            d S )	Nrk   r   r<   r   r      r   r   )
r   r-   r   r   sizerQ   r   boolr@   r   )rR   rA   rS   s      rV   test_flatnotmasked_contiguousz)TestGeneric.test_flatnotmasked_contiguous   s    2JJ'**TE!QV,,-..."D)))TE!QV,,-...*01q5QU
qAv
&''**TE!QKKq!5666!!!'**T2rX   N)__name__
__module____qualname__rW   rg   ri   rm   r|   r   r   r   r\   rX   rV   r8   r8   $   s        $ $ $<
A 
A 
A< < <$ $ $(: : : 	' 	' 	') ) )    rX   r8   c                       e Zd Zd Zd Zd Zd Zd Zd Ze	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d	S )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          }|                    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           d S )N)              ?       @      @)TFFFr@   r   r   axis)r   r   r   r   weightsTr   returned      @r;   r>   r   r   r   r   )r
   r   r   r   r   r@   reshape)rR   ottresultwtss       rV   test_testAverage1zTestAverage.test_testAverage1   s   $$$+F+F+FGGGS'#A...///S'#/?/?/?@@@AAAc+;+;+;dKKKS&!!!s
AAAWSq))).777$$$+F+F+FGGGkk!QAAAqD	WSq)))C:666WSq))).q1D6:::b"Xws333444cD999S2r(#####rX   c           
      N   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                            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           d S )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   rQ   float_r   r   r
   addreducer   r   r   r@   r   )rR   w1w2xym1m2m3m4m5zs              rV   test_testAverage2zTestAverage.test_testAverage2   s      "4"4"451BI&&&WQQ'''---WQQ333S9996!29---sVAYY?@@WQ%%rv}}RYq\\'B'BR'G#'MNNNWQQ'''1):R)?@@@WQQ'''aa((('!!*<*<*<s*BC	E 	E 	EWQb1118<<<WQQ333...	0 	0 	0WQQ'''aa((('!!*<*<*<s*BC	E 	E 	E1XX   "4"4"45!WWW\!R00q9993???W\!R00q9993???W\!R00q999>GGGW\!R00q9993???U7<2#6#6Q???@@!DDDBWQ%%x000WQQ''')E)E)EFFFWQQ'''#s444WQQ333222	4 	4 	4 	4 	4rX   c                 b   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           d S )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
   rP   r   )rR   rA   rB   r1r   r2r   a2da2dma2daa2dmas              rV   test_testAverage3zTestAverage.test_testAverage3   s   1II1IIM1a&1a&)DAAABU2YYb		***RXrx(((iq1a&4PPPBU2YYb		***i4888BU2YYb		***i$y//DQQQBU2YYb		***aVaV$e,,C5%.4-!@AAs###TC:&&&1%%%US#J'''4(((UG$$$1%%%US#J'''''rX   c                 z   t          j        g d                              dd          }t           j                            |dgdgdgg          }t          j        g d                              dd          }t	          ||dd          }t          d	gd
gdggdgdgdgg          }t          ||           d S )Nr;   r   r   r   r>   FTr   )r   r   r   )r   r   keepdimsr   r   r   )rQ   r
   r   r_   r   r   r   )rR   r   rB   wactualdesireds         rV   test_testAverage4zTestAverage.test_testAverage4   s    HYYY''1--EKK%5'D6 :K;;HYYY''1--AA===rdRD1UGeWtf3MNNVW%%%%%rX   c                     t          t          ddg                    }t          |d           t          t          g dg d                    }t          |d           d S )Nr>   r;   r   )r>   r;   r   r   FFTTr   )r   r
   r   rR   rA   s     rV   test_onintegers_with_maskz%TestAverage.test_onintegers_with_mask   sd    E1a&MM""QE,,,-G-G-GHHHIIQrX   c                    t          j        g dg dgt                    }t          g dg dg|          }t	          |          }t          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        |                                |	|                    }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                   d S )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   )	rQ   r
   r   r   r   ru   r	   realimag)rR   r@   rA   avexpectedav0	expected0av1	expected1r   wavwav0wav1s                rV   test_complexzTestAverage.test_complex  s    x(*157 7 75556668"$ $ $ QZZ:allnn--BGX]333BGX]333aa   AF+++gaf1.E.E.Eb.HH	CHin555CHin555aa   AF+++gaf1.E.E.Eb.HH	CHin555CHin555 h1111113 4 4a%%%:allnnc4%jAAACHhm444CHhm444q#A...QVSq999QVSq999"<=	DIy~666DIy~666q#A...QVSq999QVSq999"<=	DIy~666DIy~66666rX   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   g      #@)r   r   r   c                 V   t           j                            ||d          }|j        t          j        |          k    sJ t	          ||           t           j                            |||d          }|j        t          j        |          k    sJ t	          ||           t           j                            |||dd          \  }}	|j        t          j        |          k    sJ t	          ||           |	j        t          j        |          k    sJ t	          |	|           d S )NT)r   r   )r   r   r   )r   r   r   r   )rQ   r_   r   r   r   )
rR   r   r   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             rV   test_basic_keepdimszTestAverage.test_basic_keepdims1  s    emmAD4m88yBH\2222223---u}}QT7T}JJzRXm4444444///U]]14,04 # A A
dzRXm4444444///zRXm4444444/////rX   c                    t           j                            t          j        d                              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                            g dg d          }t          |dddt           j        g          }t          |d           t           j                            g dg dg dgg dg dg dg          }t           j                            |dt           j        dgd          }t           j                            dt           j        t           j        dgg d          }t          ||           t          |j
        |j
                   d S )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   )g      "@r   r   r   )FTTF)TFTT)TFTFr   r         @)rQ   r_   r
   r   r   r   r   r	   nanr   r@   )	rR   rA   weights_unmaskedweights_maskedavg_unmaskedexpected_unmasked
avg_maskedexpected_maskedavg_expecteds	            rV   test_masked_weightszTestAverage.test_masked_weightsH  s>    EKK	!,,Q22'iiIII>  @ @'%@@@%kkk			BBBqq'7%I I IH%<%<%<==L*;<<<QQOOO
(#N#N#NOOJ888
 EKK111222  4 4q1aBF*;<<<L#...EKK         

 '&&%%%&&&
	    U]]1q"&!n1]EE
u{{C#=#=#=#= # ? ? 	J555Z_l&788888rX   )r   r   r   r   r   r   r   r   r   pytestmarkparametrizer   r   r\   rX   rV   r   r      s       $ $ $& 4  4  4D( ( (0& & &  *7 *7 *7X [F
))TC5)))dVcU	;99jjj
!1&7a&???#iii[
2	3 0 0 0")9 )9 )9 )9 )9rX   r   c                        e Zd Zd Zd Zd ZdS )TestConcatenatorc                 t   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                    d S )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   r@   )rR   rB   mdrZ   s        rV   test_1dzTestConcatenator.test_1dw  s    3/0%8J8J8J2K2KLLLGGOO###1a
O
1k**+++1BBBCCC163q!Qz?33333rX   c                    t           j                            dd          }t           j                            dd          }t          j        t           j                            dd          d          }t          j        t           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                    d S )Nr   r   r   1)r   rk   )rk   r   )rQ   randomrandroundr   r   r   r   r   r@   r_)rR   a_1a_2m_1m_2b_1b_2r  s           rV   test_2dzTestConcatenator.test_2d  s   innQ""innQ""hry~~a++Q//hry~~a++Q//3S)))3S)))S#7"###1QQQU8S)))1QQQU8S)))1625c3#7888SM7"###1RaRT7C(((1QRRT7C(((1625c?33333rX   c                 R   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           d S )Nr>   TFr;   )FFT)r   rQ   r_   r   r   r@   rs   )rR   r   s     rV   test_masked_constantz%TestConcatenator.test_masked_constant  s    RU\1_%V[4-000V[^Q'''aVRU\)*V["6"6"6777V[!_q!f-----rX   N)r   r   r   r  r  r  r\   rX   rV   r  r  t  sA        	4 	4 	44 4 4(. . . . .rX   r  c                       e Zd Zd Zd ZdS )TestNotMaskedc           	      L   t          t          j        d                              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           d S )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   rQ   r   r   r/   r   rs   r   rR   rs   rS   s      rV   
test_edgeszTestNotMasked.test_edges  s;   BIbMM11!Q77"1//"1//"1//"1//"1//	"35 5 5 tT**TAr7###tQ''T!W@AAAT!W@AAAtQ''T!W@AAAT!W@AAAty$//TAr7###ty!,,T!W@AAAT!W@AAAty"--T!W@AAAT!W@AAARtQ''T!W@AAAT!W@AAAtR((T!W|\:;;;T!W|\:;;;;;rX   c                 |   t          t          j        d                              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           d S )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   ro   )r   rQ   r   r   r.   r   r   )rR   rA   tmps      rV   test_contiguouszTestNotMasked.test_contiguous  s   2..q!447777777779: : : #1d++S!Q"b$"b$
 	 	 	 #1a((S1aaD 1 121aaD 1 121aaD 1 121aaD 1 121a1a1a	
 		 		 		 #1a((S1a1aaD 1 12
 	 	 	 	 	rX   N)r   r   r   r!  r'  r\   rX   rV   r  r    s3         <  <  <D    rX   r  c                       e Zd Zd Zd Zd Zej                            dg d          ej                            ddge	j
        j        dfe	j
        j        d	fg          d
                         Zd Zd Zd ZdS )TestCompressFunctionsc           
         t          j        t          t          d                                                  ddd          }t          j        d                              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          ||           d S )1N<   r   r   r   r   r   r   Tr>   r>   r>   r   )r   r;   r   r   )rk            )            )(   *   +   ,   )2   4   5   6   )7   9   :   ;   r   r  )r   r   ro   r   r   )rk   r   r.  r/  r0  )r1  r#  r2  r3  r4  )r5  )   r6  r7  r8  )-   .   /   0   1   )r9  3   r:  r;  r<  )r=  8   r>  r?  r@  r>   )      r$  r%  r  )   r       !   "   )#   $   %   &   '   r[   r  )r  r;   )r   ro   r   r   )rI  r$  r%  r  )r     r      )rK  rL  rM  rN  )rO  rQ  rR  rS  )rB  rD  rE  rF  r:   r  )r  r   r>   )r   r  r>   r;   )r  r;   )r>   r  )r  r  r   r;   )r   r  )
rQ   r
   listrp   r   r   astyper   r(   r   )rR   r   r  rA   a2a3a4s          rV   test_compress_ndz&TestCompressFunctions.test_compress_nd  s^   HT%,,''((00Aq99HW$$T**%!! NNQ*********, +********,- 	. 	. 	. 1Q............0 /...........0	1 	2 	2 	2 1Q.........0 /........0 /........01 	2 	2 	2 D!!BE""QQQ 1Q///)//******, +***********, +***********,- 	. 	. 	. D!!BE""QQQ 6""Q.........0 /........01 	2 	2 	2 G$$Q 6""Q*********, +********, +********,- 	. 	. 	. G$$G$$H%%QQQ 6""Q************, +***********,	- 	. 	. 	. G$$QrX   c                    t          t          j        d                              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
           d S )Nr   r   r   r   r   r   r   ro   r   r   r,  )r   ro   r   r>   r;   r   r>   r   r   r   r>   r;   r   r   r>   )r
   rQ   r   r   r   r)   _datar   rR   r   s     rV   test_compress_rowcolsz+TestCompressFunctions.test_compress_rowcolsX  sv   ")A,,&&q!,,!		999iii8: : :%a((Aq6Aq6*:;;;%a++iii-CDDD%a++q!fq!fq!f-EFFF!'IIIyyy ABBB%a((Aq6Aq6*:;;;%a++iii-CDDD%a++q!fq!fq!f-EFFF!'IIIyyy ABBB%a((A3%000%a++iii[999%a,,sQC!o>>>!'IIIyyy ABBB%a((-q111%a++0!444%a++0!44444rX   c                    t          t          j        d                              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          |          	                                t          u            t          t          |d          	                                t          u            t          t          |d          	                                t          u            t          t          |          j        	                                           t          t          |d          j        	                                           t          t          |d          j        	                                           d S )Nr   r   r   r   r   r-  r   r>   r`  )r>   r>   r   rb  )r
   rQ   r   r   r   r*   r@   rc  r   allr   rd  s     rV   test_mask_rowcolsz'TestCompressFunctions.test_mask_rowcolsl  s   ")A,,&&q!,,!		999iii8: : :\!__)iiIII6	8 	8 	8\!Q'',iiIII6	8 	8 	8\!Q'',iiIII6	8 	8 	8!'IIIyyy ABBB\!__)iiIII6	8 	8 	8\!Q'',iiIII6	8 	8 	8\!Q'',iiIII6	8 	8 	8!'IIIyyy ABBB\!__)iiIII6	8 	8 	8\!Q'',iiIII6	8 	8 	8\!Q((-iiIII6	8 	8 	8!'IIIyyy ABBBQ##%%/000Q""&&((F2333Q""&&((F2333Q$((**+++Q""'++--...Q""'++--.....rX   r   )Nr   r>   funcrowcols_axisr   r>   c                 6   t          t          j        d                              dd          g dg dg dg          }t	          t
                    5   |||          }t          |t          ||                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   )r
   rQ   r   r   r   DeprecationWarningr   r*   )rR   r   ri  rj  r   ress         rV   #test_mask_row_cols_axis_deprecationz9TestCompressFunctions.test_mask_row_cols_axis_deprecation  s    
 ")A,,&&q!,,!		999iii8: : : ,-- 	= 	=$qt$$$Cl1l;;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   ,BBBc           	      x   t          j        dd          }g d}t          ||                              dd          }t          ||                              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        |                    d	          |                    d	                               t	          ||d          }t          |t          j        |                    d	          |                    d	                               g d}t          ||                              dd          }t          ||                              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        |                    d	          |                    d	                               t          |t	          ||                     t	          ||d          }t          |t          j        |                    d	          |                    d	                               g d}t          ||                              dd          }t          ||                              dd          }t	          ||          }t          |j        t                     t	          ||          }t          |j        t                     t          |g d                              dd          }t          |g d                              dd          }t	          ||d          }t          |j        ddgd	d	gg           t	          ||d          }t          |t          j        |                    d	          |                    d	                               t	          ||d          }t          |j        g dg dg dg           t	          ||d          }t          |t          j        |                    d	          |                    d	                               t          |g d                              dd          }t          |g d                              dd          }t	          ||d          }t          |j        d	d	gddgg           t	          ||          }t          |t          j        |                    d	          |                    d	                               t	          ||d          }t          |j        g dg dg dg           t	          ||d          }t          |t          j        |                    d	          |                    d	                               t          |g d                              dd          }t          |g d                              dd          }t	          ||d          }t          |j        dd	gddgg           t	          ||d          }t          |t          j        |                    d	          |                    d	                               t	          ||d          }t          |j        g dg d
g dg           t	          ||d          }t          |t          j        |                    d	          |                    d	                               t          t          j        d                              ddd          dd	gd	d	ggd	d	gd	d	ggg          }t          t          j        d                              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                              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                              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           d S )Nr>   ro   )r>   r   r   r   r   r   r   r;   r   T)strictr   r-  r   Fr   r   r   r   r   r>   rb  )r   r   r   r   r   r   )r   r   r>   r   r   r   r   r   )	rQ   r   r   r   r   r   r@   filledr   )rR   nr  rA   rB   rZ   s         rV   test_dotzTestCompressFunctions.test_dot  s   IaOO###++Aq11###++Aq111T"""QVq!fq!f-...1T"""QViiiIII>???1U###Qqxx{{AHHQKK889991U###Qqxx{{AHHQKK88999###++Aq11###++Aq111T"""QVq!fq!f-...1T"""QViiiIII>???1U###Qqxx{{AHHQKK88999QAq		"""1U###Qqxx{{AHHQKK88999###++Aq11###++Aq111IIQVV$$$1IIQVV$$$!3!3!3444<<QBB!3!3!3444<<QBB1T"""QVq!fq!f-...1U###Qqxx{{AHHQKK889991T"""QViiiIII>???1U###Qqxx{{AHHQKK88999!3!3!3444<<QBB!3!3!3444<<QBB1T"""QVq!fq!f-...1IIQqxx{{AHHQKK889991T"""QViiiIII>???1U###Qqxx{{AHHQKK88999!3!3!3444<<QBB!3!3!3444<<QBB1T"""QVq!fq!f-...1U###Qqxx{{AHHQKK889991T"""QViiiIII>???1U###Qqxx{{AHHQKK889991--aA66!"AA/1a&1a&1ABD D D1--aA66!"AA/1a&1a&1ABD D D1T"""QVAA'1a&1a&)9:AA'1a&1a&)9:<	= 	= 	= 1U###QVAA'1a&1a&)9:AA'1a&1a&)9:<	= 	= 	= 1T"""QVAA'1a&1a&)9:AA'1a&1a&)9:<	= 	= 	= 1U###QVAA'1a&1a&)9:AA'1a&1a&)9:<	= 	= 	= 1--aA66!"AA/1a&1a&1ABD D D1T"""QV1v1v.!Q!Q0@ABBB1U###QV1v1v.!Q!Q0@ABBB1T"""QV1v1v.!Q!Q0@ABBB1U###QV1v1v.!Q!Q0@ABBB1--aA66!"AA/1a&1a&1ABD D D1QF3331T"""QVq!fq!f-...1U###QVq!fq!f-.....rX   c                    t          j        d          }t          |          }t          t	          t          ||                    t          u            t          t	          t          ||                    t          u            t          t	          t          ||                    t          u            t          t	          t          ||                    t          u            d S )Nr   )rQ   eyer
   r   r`   r   r   rR   rA   rB   s      rV   test_dot_returns_maskedarrayz2TestCompressFunctions.test_dot_returns_maskedarray  s    F1II!HHSAYY;.///SAYY;.///SAYY;.///SAYY;./////rX   c                     t          t          j        d                    }t          t          j        d                    }t	          |||          }t          ||u            t          ||           d S )Nr   )r   r   out)r
   rQ   rv  r   r   r   r   )rR   rA   r{  rm  s       rV   test_dot_outz"TestCompressFunctions.test_dot_out  sj    "&))BHV$$%%!QC   s
QrX   N)r   r   r   r^  re  rh  r   r   r   rQ   r_   	mask_rows	mask_colsrn  rt  rx  r|  r\   rX   rV   r)  r)    s        n n n`5 5 5(/ / /@ [V\\\22[fn5!u2RU_a4HIK K= =K K 32=m/ m/ m/^0 0 0    rX   r)  c                       e Zd Zd Zd ZdS )TestApplyAlongAxisc                     t          d                              ddd          }d }t          |d|          }t          |ddgddgg           d S )	Nr   r;   r   c                     | d         S Nr>   r\   )rB   s    rV   myfuncz*TestApplyAlongAxis.test_3d.<locals>.myfunc  s    Q4KrX   r>   r   ro   rk   r   r   r'   r   rR   rA   r  xas       rV   test_3dzTestApplyAlongAxis.test_3d  sd    3KK1a((	 	 	 fa++R1a&1b'*+++++rX   c                     t          d                              ddd          }dd}t          |d|d          }t          |ddgd	d
gg           d S )Nr.  r;   r   r   c                     | d|z            S r  r\   )rB   offsets     rV   r  z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfunc'  s    QvX;rX   r>   )r  r   r   r   )r   r  r  s       rV   test_3d_kwargsz!TestApplyAlongAxis.test_3d_kwargs$  sn    2JJq!Q''	 	 	 	 fa1555R1a&1b'*+++++rX   N)r   r   r   r  r  r\   rX   rV   r  r    s2        , , ,, , , , ,rX   r  c                       e Zd Zd ZdS )TestApplyOverAxesc                    t          d                              ddd          }t          t          j        |ddg          }t          j        dgdgdggg          }t          ||           t          ||dz                      t                    <   t          t          j        |ddg          }t          j        d	gd
gdggg          }t          ||           d S )Nr  r;   r   r   r   r+  \   |   r   r8  )
r   r   r&   rQ   rt   r
   r   r   rZ  r   )rR   rA   rS   ctrls       rV   
test_basiczTestApplyOverAxes.test_basic0  s    2JJq!Q''rvq1a&11x2$se,-..T4   "(1q5..

rvq1a&11x2$rd+,--T4     rX   N)r   r   r   r  r\   rX   rV   r  r  .  s#        ! ! ! ! !rX   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                            dg d          d             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
TestMedianc                     t           j                            t           j        t           j        gt           j        t           j        ggd          }t	          |t           j                   d S )Nr  r   )rQ   r_   r   infr   rR   rs     rV   test_pytypezTestMedian.test_pytype<  sH    ELL2626*RVRV,<=BLGGQrX   c                 *   t           j                            t           j                            t           j        t           j        gt           j        t           j        gg          d          }t          |t           j                   t           j                            t           j                            t           j        t           j        gt           j        t           j        gg          d           }t          |t           j                   t           j                            t           j                            t           j        t           j        gt           j        t           j        ggd          d          }t          |j        d           t           j                            t           j                            t           j        t           j        gt           j        t           j        ggd          d           }t          |j        d           d S )Nr  r   Tr   )rQ   r_   r   r   r  r   r@   r  s     rV   test_infzTestMedian.test_inf@  s   ELL++bfbf-=.0fbf-=-? @ @FH  J JQELL++bfbf-=.0fbf-=-? @ @FJ  L LQELL++bfbf-=.0fbf-=-?EI , K K   " " 	QVT"""ELL++bfbf-=.0fbf-=-?EI , K K"  $ $ 	QVT"""""rX   c                 j   t          j        d          }t          t           j                            |          d           t          t          t           j                            |                    t          u           t          d          }t          t           j                            |          d           t          t          t           j                            |                    t          u           d}t          t           j                            |          d           t          t          t           j                            |                    t          u           t          j        d          	                    dd          }t          t           j                            |d	          t          j        |d	                     t          t           j                            |d
	          t          j        |d
	                     t          t           j                            |d
	          t          u           t          j        d          	                    dd          }t          t           j                            |d	          t          j        |d	                     t          t           j                            |d
	          t          j        |d
	                     t          t           j                            |d
	          t          u           d S )Nr   r   r   r   r   r   H   r   r   r>   g      R@)
rQ   r   r   r_   r   r   r`   r   rp   r   rd  s     rV   test_non_maskedzTestMedian.test_non_maskedR  s:   IaLLRU\\!__b)))RU\\!__%%[8999!HHRU\\!__c***RU\\!__%%[8999RU\\!__b)))RU\\!__%%[8999Ie$$Q**RU\\!!\,,bi.B.B.BCCCRU\\!!\,,bi.B.B.BCCCQQ''{:;;;If%%a++RU\\!!\,,bi.B.B.BCCCRU\\!!\,,bi.B.B.BCCCQQ''{:;;;;;rX   c                 @   t          t          j        d          dgdz  dgdz  z             }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d	          
                    d
d          dgdz  dgdz  z             }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          j                            |dd          }t          |ddg           t          |j        dd           t          t          |          t          u            dS )z5test the examples given in the docstring of ma.medianr   r   r   r>   r   r   r\   shape mismatchrk   r;   r   r   r   r  Tr   overwrite_inputr   r   r:   N)r
   rQ   r   r   r_   r   r   r   r`   r   r   )rR   r   ma_xs      rV   test_docstring_examplesz"TestMedian.test_docstring_examplesg  s   ")A,,aSUaSU]333RU\\!__c***RU\\!__*B0@AAARU\\!__%%[8999")B--''1--QCEQCEMBBBRU\\!__c***RU\\!__*B0@AAARU\\!__%%[8999u||AB|==TB8$$$TZ'7888T

k)*****rX   c                 .   d}t          d          D ]}dD ]}t          d||          }t          j        t          | |          ddg          }|D ]L\  }}	 t          j                            |||           )# t          $ r t          |||||fz            w xY wt          j        |dz    |gddg          }|D ]R\  }}	 t          j                            |||           t          |||||fz            # t          j	        $ r Y Ow xY wd S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr   )FTr>   )ndminr@   FTr  )
rp   r
   	itertoolsproductrQ   r_   r   	ExceptionAssertionError	AxisError)rR   msgr  r@   r   argsr   overs           rV   test_axis_argument_errorsz$TestMedian.test_axis_argument_errorsv  s   E1XX 	N 	NE% N N!5t444 !(vu)=)=t}MM"& N NJD$NQT4HHHH$ N N N,SD%t3L-LMMMN !(EAI,)>NN"& N NJD$NQT4HHH -SD%t3L-LMMM <   NN	N 	Ns   "A<<!B	"C==D	D	c                    t          dd          }t          t          j                            |          d           t          dd          }t          t          j                            |          t          j        j                   d S )Nr>   Fr   T)r
   r   rQ   r_   r   r   rd  s     rV   test_masked_0dzTestMedian.test_masked_0d  sh    !%   RU\\!__a(((!$RU\\!__bel33333rX   c                    t          t          j        d          d          }t          t          j                            |          t          j        j                   t          t          j                            |          j        dd           t          t          t          j                            |                    t          j        j
        j        u            t          t          j        d          d          }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d          }t          t          j                            |          d	           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d
          }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d          }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d          }t          t          j                            |          d           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d          }t          t          j                            |          d	           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           t          t          j        d          g d          }t          t          j                            |          d	           t          t          j                            |          j        dd           t          t          t          j                            |                    t          u           d S )Nr   Tr   r\   r  Fr   r   r   )r   r>   r>   r>   r>   r   )r   r>   r>   r   r   r   r   r   r   r   )r
   rQ   r   r   r_   r   r   r   r   r`   ra   MaskedConstantr   rd  s     rV   test_masked_1dzTestMedian.test_masked_1d  s#   ")A,,T***RU\\!__bel333RU\\!__*B0@AAARU\\!__%%)BBCCC")A,,U+++RU\\!__b)))RU\\!__*B0@AAARU\\!__%%[8999")A,,[[[111RU\\!__c***RU\\!__*B0@AAARU\\!__%%[8999")A,,[[[111RU\\!__b)))RU\\!__*B0@AAARU\\!__%%[8999")A,,[[[111RU\\!__b)))RU\\!__*B0@AAARU\\!__%%[8999")B--kkk222RU\\!__b)))RU\\!__*B0@AAARU\\!__%%[8999")A,,]]]333RU\\!__c***RU\\!__*B0@AAARU\\!__%%[8999")B--mmm444RU\\!__c***RU\\!__*B0@AAARU\\!__%%[899999rX   c           
          t          t          j                            t	          g dg d                    j        t          j                            t	          g dg d                    j                   d S )Nr   r   r   r`  )r   rQ   r_   r   r
   r   rR   s    rV   test_1d_shape_consistencyz$TestMedian.test_1d_shape_consistency  st    RU\\%WWW"="="=>>DU\\%WWW"="="=>>D	G 	G 	G 	G 	GrX   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 ]0}t          j	        
                    |           ||         |d d |f<   1t          t          |d d df                   d           t          t          |          d           t          t          |d	          t          j        |                     t          t          |j        d	          t          j        |                     d S )
N)e   rK        r   rk   r<   r   r>   r   )r   rQ   linspacer   emptyrP   r   rb   rp   r  shuffler   r   r   T)rR   rs  pr   r   idxrv   s          rV   r  zTestMedian.test_2d  s\   AS"a0022!!#2#3441a&66677AAA$!!!Q$iAq! 	 	AIc"""fAaaadGGVAaaadG__a(((VAYY"""VAA&&&444VACa((("(1++66666rX   c                 (   t          t          j        d                              dd                    }t          x|d d<   |dd <   t          t          |          d           t          t          t          j	                            |                    t          u           t          t          |d          g d           t          t          t          j	                            |d                    t          u            t          t          |d	          g d
           t          t          t          j	                            |d	                    t          u            t          t          |d	          j        g d           d S )NrK  rk   r         -@r   r   )      +@r  g      /@r>   )
r   r   r   rk   r/  r#  r4  r   r   r   )
r>   r>   r>   r   r   r   r   r>   r>   r>   )r   rQ   r   r   r   r   r   r   r`   r_   r   r@   rd  s     rV   test_2d_waxiszTestMedian.test_2d_waxis  sM   2..r15566"1""##VAYY%%%RU\\!__%%[8999VAA&&&(:(:(:;;;RU\\!!\,,--<===VAA&&&(J(J(JKKKRU\\!!\,,--<===VAA&&&+-K-K-KLLLLLrX   c                    t           j                            d                              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                            d                              ddd          }t          ||dz  dk    <   t          t          |d          ddgddgddgg           d S )Nr  r   r   r;   r   r.  r   r   r1  r3  )r   r   r;   c   rk   r   r/  r0  r   r   r#  r2  )rQ   r_   r   r   r   r   r   r   rd  s     rV   r  zTestMedian.test_3d  s   ELL$$Q1--!a%1*VAq\\RGaWr1gBx#HIIIVAq\\RHr2hR#ABBBELL$$Q1--!a%1*VAq\\RHq!fr2h#?@@@@@rX   c                     t          t          j        d                              dd                    }t          x|d d<   |dd <   t          t          |d          t          |d                     d S )NrK  rk   r   r  r  r   r>   )r   rQ   r   r   r   r   r   rd  s     rV   test_neg_axiszTestMedian.test_neg_axis  sq    2..r15566"1""##VAB'''):):):;;;;;rX   c                    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            d S )	N)rK        >@r   g      ?@r   r  r\   rz  rK  r  g      .@)
r   rQ   r   r   r   r   r   r   r`   r   )rR   vr   r{  r  s        rV   test_out_1dzTestMedian.test_out_1d  s    # 
	, 
	,ARYq\\**A##AbqbEAbccFrwr{{++Cqc"""ABwwS$''''S#&&&AHDGG{*++++
	, 
	,rX   c                 l   dD ]/}t          t          j        |                              dd                    }t          x|d d<   |dd <   t          t          j        d                    }t          |d|          }|dk    r4t          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             }n3t          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            1d S )N)r5  g      D@rK  r  rk   r  r   r  r>   )r   r{  rK  r   )rk   r/  r#  r4  TFr   r   )r  g     1@g     5@g     9@)r   rQ   r   r   r   r   r   r   r   r`   r   )rR   r  r   r{  r  es         rV   test_outzTestMedian.test_out  sx   # 	, 	,ARYq\\11"b99::A##AbqbEAbccFrwr{{++Cqqc***ABww "a*:*:*:!:bT!V!C'+fqjE7Q;&>$!&KM M M !"a*B*B*B!BbT!V!K'+fQh%&:dVAX&EG G GAAHDGG{*++++	, 	,rX   r   )Nr>   r[   rV  )r  r  )argnames	argvaluesc                    t          j        dt                    }t           j                            d          t          j        |j                  d d d f         z  }|                    t           j                  }t           j        |t          |          <   t          t          j        |j                  |          |dj        z  }nCt          |j                  t          fdt          j                  D                       }t          t          j        |                    }t!          |d|          }||u sJ t#          |j        |           d S )	N)r   r   ro   r   r<   )r      r   r[   c              3   >   K   | ]}|v rd nj         |         V  dS )r>   N)r   ).0rv   	axis_normr  s     rV   	<genexpr>z/TestMedian.test_keepdims_out.<locals>.<genexpr>  sN       L L89Q)^^L L L L L LrX   T)r   r   r{  )rQ   r   r   r  r
   r   rZ  intpr   tupler   r   ndimr   rp   r  r   r   )	rR   r   r@   r   	shape_outr{  r   r  r  s	          @@rV   test_keepdims_outzTestMedian.test_keepdims_out
  sP    xT222IX&&$*)=)=aaag)FFHHRWU1XX,,4888<qvII,T16::I L L L L L=B16]]L L L L LI28I..//t===}}}}V\9-----rX   c                     ddgddgddgg}t           j                            |d          }ddg}t          t           j                            |d          |           d S )Nr   r   r   r   r   )rQ   r_   masked_equalr   r   )rR   rs   rf   r   s       rV   $test_single_non_masked_value_on_axisz/TestMedian.test_single_non_masked_value_on_axis&  ss    RRR U''a00
825<<
<;;#	% 	% 	% 	% 	%rX   c                 x   dt          j        dt                    fD ]"}t           j                            dt           j        dgg dg          }||_        t           j                            |d           }t          t          j	        |                     t          |t           j                   t           j                            |                                d          }t          t          j	        |                     t          |t           j                   t           j                            |d          }t          t          |          t                     t          |dt           j        dg           t           j                            |d          }t          t          |          t                     t          |t           j        d	g           t           j                            |d
          }t          t          |          t                     t          |t           j        d	g           $t           j                            dt           j        dgg dg          }t           j        j        |d d d	f<   t          t           j                            |d           t           j                   t          t           j                            |d          dt           j        dg           t          t           j                            |d          t           j        dg           d S )NFr   r<   r>   r   r   r   r   r;   r  r   )rQ   r   r   r_   r
   r   r@   r   r   isscalarr   ravelr   r`   r   r   )rR   r@   dmr  s       rV   test_nanzTestMedian.test_nan/  s[   BHQd3334 	/ 	/Dq"&!niii899BBG Rd++ABKNN###q"&)))RXXZZa00ABKNN###q"&)))Ra((Aa+...q1bfa.111Ra((Aa+...q261+...Rb))Aa+...q261+....U[[1bfa.)))4555<111a425<<<66???25<<<33a^DDD25<<<33bfc]CCCCCrX   c                    t           j                            t          j        d                    }t           j                            t          j        d                    }t           j        |d<   t           j        j        |d<   t          t           j                            |d|          |           t           j                            t          j        d                    }t          t           j                            |d|          |           t           j                            t          j        d	                    }t          t           j                            ||          |           d S )
N)r   r   r   r;   r>   rI   r   rz  r   r>   r\   )	rQ   r_   r   r   r   r   r   r   r   )rR   or  s      rV   test_out_nanzTestMedian.test_out_nanL  s    Erx~~..Erwv//&$%,$RU\\!QA\..222Erx~~..RU\\!QA\..222Erx||,,RU\\!\++Q/////rX   c                 b   t           j                            t          j        dt                              }t           j        j        |d d d<   t           j        |d<   t          t           j                            |          t           j                   t          t           j                            |d          t           j                   t           j                            t          j        dt                    	                    ddd                    }t          j        |j
                  dz  dk    |_        |                                }t           j        |d	<   t           j        |d
<   t          t           j                            |          t           j                   t          t          j        t           j                            |                               t           j                            |d          }t           j        |d<   t           j        |d<   t          t           j                            |d          |           t           j                            |d          }t           j        |d<   t           j        |d<   t          t           j                            |d          |           t           j                            |d          }t           j        |d<   t           j        |d<   t          t           j                            |d          |           d S )Nr  r<   r   r;   r   r   r   r>   r   )r>   r>   r;   r;   r   rW  r>   r   rX  )rQ   r_   r   r   rP   r   r   r   r   r   r   r@   copyr   r  r   )rR   rA   aorigrB   s       rV   test_nan_behaviorzTestMedian.test_nan_behaviorW  s3   Ery5999::##A#v!25<<??BF33325<<<22BF;;;Ery5999AA!QJJKK16""Q&!+V'
V'
 	25<<??BF333BELLOO,,--- ELLQL''&$&$RU\\!Q''+++ ELLQL''&$&$RU\\!Q''+++ ELLVL,,v!v!RU\\!V,,a00000rX   c                 &   t          j        g dg dgt           j                  }t           j                            ||dk              }t          t           j                            |d          d           t          t           j                            |d          j        d           t          t           j                            |d	          |d	                    t          t           j                            |          d           d S )
N)r   r      r<   r   r   r>   r   r  Fr   )rQ   r
   uint8r_   r   r   r   r@   r   s     rV   test_ambigous_fillzTestMedian.test_ambigous_fillz  s    Hkkk;;;/rx@@@EqqAv..25<<<22C88825<<<227???25<<<22AaD99925<<??C00000rX   c           	         t           j        t           j         fD ]}t          j        |t           j        gt           j        t           j        gg          }t           j                            |t          j        |                    }t          t           j                            |d          |t           j        g           t          t           j                            |d          |t           j        g           t          t           j                            |          |           t          j        t           j        t           j        |gt           j        t           j        |gg          }t           j                            |t          j        |                    }t          t           j                            |d          |           t          t           j                            |d          j
        d           t          t           j                            |d          |d                    t          t           j                            |          |           t          j        ||g||gg          }t          t           j                            |          |           t          t           j                            |d          |           t          t           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                            |t          j        |                    }|dk    rbt          t           j                            |d          dd| dg           t          t           j                            |          d           nat          t           j                            |d          dd| dg           t          t           j                            |          d           t          t           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                            |t          j        |                    }t          t           j                            |          |           t          t           j                            |d          |           t          t           j                            |d          t           j        g|z  |g|z  z              d S )Nr   r   r   r>   Fro   ir  r   r   r<   r   r   r   g      @g      $g      "g      r  rk   r;   )rQ   r  r
   r   r_   r   isnanr   r   r   r@   float32rp   )rR   r  rA   rv   rw   s        rV   test_specialzTestMedian.test_special  sh   FRVG$ (	= (	=C3.2626*:;<<A""128A;;"77Aaa003.AAAaa003.AAAa#...26263/"&"&#1FGHHA""128A;;"77Aru||AA|66<<<ru||AA|66;UCCCru||AA|66!===ru||A444 3*sCj122Aa#...aa00#666aa00#6663C4,2bfbfc24 !#
, , ,A ""128A;;"77AQwwRU\\!!\44r2tR6HIIIRU\\!__c2222RU\\!!\44tR#s6KLLLRU\\!__d333aa003c2BCCC1b\\ = =q" = =ABF8a<SEAI">!?!!CDDA**128A;;*??A a#666 aa!8!8#>>> aa!8!8#%6(Q,3%!)!;= = = ===C(	= (	=rX   c                 x   t           j                            t          j        g t                              }t                      5 }|                    t                     t          t           j        	                    |          t           j
                   t          |j        d         j        t          u            d d d            n# 1 swxY w Y   t           j                            t          j        g t          d                    }t                      5 }|                    t                     t          j        ddt                     t          t           j        	                    |          t           j
                   t          |j        d         j        t          u            d d d            n# 1 swxY w Y   t           j                            t          j        g t          d                    }t!          t           j        	                    |d          |           t!          t           j        	                    |d	          |           t           j                            t          j        t           j
        t          d                    }t          j        d
          5 }t          j        ddt                     t!          t           j        	                    |d          |           t          |d         j        t          u            d d d            d S # 1 swxY w Y   d S )Nr<   r   r   )r=   r  always r;   r   r>   T)record)rQ   r_   r   r
   rP   r   r  RuntimeWarningr   r   r   r   logcategorywarningsfilterwarningsr   catch_warnings)rR   rA   r   rB   s       rV   
test_emptyzTestMedian.test_empty  s   Erx%88899   	9AHH^$$$ru||A777AE!H%7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 Erx%qAAABB   	9AHH^$$$#Hb.AAAru||A777AE!H%7888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 Erx%qAAABBRU\\!!\,,a000RU\\!!\,,a000 Erxe1EEEFF$D111 	5Q#Hb.AAAaa00!444AaDM^3444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s9   A8CCCBF<<G G 6A,L//L36L3c           	         t           j                            t          j        d                    }t	          t          t           j                            |                    t                                        t                     t           j
        |d<   t	          t          t           j                            |                    t                                        t                     d S )Nr   r;   )rQ   r_   r   r   r   r`   r   rZ  r^   rP   r   )rR   r  s     rV   test_objectzTestMedian.test_object  s    Ery}}--RU\\!((6"2"23344e<<<v!RU\\!((6"2"23344e<<<<<rX   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\   rX   rV   r  r  ;  s            # # #$< < <*+ + +N N N04 4 4$: $: $:LG G G7 7 7 
M 
M 
M	A 	A 	A< < <
, , ,, , ," [
 
 
  	 	. .	 	.$% % %D D D:	0 	0 	0!1 !1 !1F1 1 1)= )= )=V5 5 5:= = = = =rX   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestCovc                 h    t          t          j                            d                    | _        d S Nr.  )r
   rQ   r  r  rs   r  s    rV   setup_methodzTestCov.setup_method  s#    ")..,,--			rX   c                 B   | j         }t          t          j        |          t          |                     t          t          j        |d          t          |d                     t          t          j        |dd          t          |dd                     d S )NFrowvarTr  bias)rs   r	   rQ   r   rd  s     rV   test_1d_without_missingzTestCov.test_1d_without_missing  s    IBF1IIs1vv...BF1U333S55I5I5IJJJBF1U>>>%d;;;	= 	= 	= 	= 	=rX   c                 j   | j                             dd          }t          t          j        |          t	          |                     t          t          j        |d          t	          |d                     t          t          j        |dd          t	          |dd                     d S )Nr   r   Fr  Tr  )rs   r   r	   rQ   r   rd  s     rV   test_2d_without_missingzTestCov.test_2d_without_missing  s    Ia##BF1IIs1vv...BF1U333S55I5I5IJJJBF1U>>>%d;;;	= 	= 	= 	= 	=rX   c           
         | j         }t          |d<   ||                                z  }|                                }t	          t          j        |          t          |                     t	          t          j        |d          t          |d                     t	          t          j        |dd          t          |dd                     	 t          |d           n# t          $ r Y nw xY w|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                     d S )Nr  Fr  Tr  allow_maskedr>   )rs   r   meanru   r	   rQ   r   
ValueError)rR   r   nxs      rV   test_1d_with_missingzTestCov.test_1d_with_missing  s   I"	QVVXX\\^^BF2JJA///BF2e444c!E6J6J6JKKKBF2e$???%d;;;	= 	= 	=	&&&&& 	 	 	D	 qtWBF2r$$B$x00#a44R4//BBBBF2r$$B$x>>>1TTrT75999	; 	; 	;BF2r$$B$xDIII1TTrT75tDDD	F 	F 	F 	F 	Fs   C' '
C43C4c                 "   | j         }t          |d<   |                    dd          }t          j        t          |                                        t                    }t          j        ||j	                  }||
                    d          d d d f         z
                      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	        |          }||
                    d          z
                      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             d S )Nr  r   r   r>   r   r   Tr  Fr  r  )rs   r   r   rQ   logical_notr   rZ  rq   r   r  r  rr  r	   r   r   )rR   r   validfracxfs        rV   test_2d_with_missingzTestCov.test_2d_with_missing  s   I"IIaOO|A//66s;;veUW%%!&&))AAAtG$$,,Q//CFFF2JJ!'!*q.9TBYG	I 	I 	IC---F2D111AGAJ>E	G 	G 	Gvegu%%!&&))m##A&&C%000VBu555gaj1n.15<	> 	> 	> 	C%d;;;VBu4@@@WQZ(*./	1 	1 	1 	1 	1rX   N)r   r   r   r  r  r  r  r#  r\   rX   rV   r
  r
    sb        . . .= = == = =F F F01 1 1 1 1rX   r
  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestCorrcoefc                     t          t          j                            d                    | _        t          t          j                            d                    | _        d S r  )r
   rQ   r  r  rs   data2r  s    rV   r  zTestCorrcoef.setup_method  s@    ")..,,--	29>>"--..


rX   c                    | j         | j        }}t          j        |          }t          j        ||          }t	                      5 }t          j        d           t          t          t          |d           |	                    t          d           t          t          j        |d          t          |d                     t          t          |d          |           t          t          ||d          |           t          t          |d          |           t          t          ||d          |           d d d            d S # 1 swxY w Y   d S )Nr  r  ddofbias and ddof have no effectr   r   rs   r'  rQ   r   r   r  simplefilterr   rl  filterr	   )rR   r   r   r   	expected2sups         rV   	test_ddofzTestCorrcoef.test_ddof  s   y$*1;q>>K1%%	   		CC!(++++XqrBBBBJJ)+IJJJAA 6 6 68K8K8KLLL 4 4 4h???AB 7 7 7CCC 3 3 3X>>>AA 6 6 6	BBB		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		C 		Cs   C>EEEc           	         | j         | j        }}t          j        |          }t	                      5 }t          j        d           t          t          t          ||dd           t          t          t          ||dd           t          t          t          |d           |	                    t          d           t          t          |d          |           d d d            d S # 1 swxY w Y   d S )Nr  TFr  r+  r>   r,  )rR   r   r   r   r0  s        rV   	test_biaszTestCorrcoef.test_bias+  s   y$*1;q>>   	?C!(++++Xq!T5III+Xq!T4HHH+XquEEEEJJ)+IJJJ 3 3 3X>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   B(C&&C*-C*c           	         | j         }t          t          j        |          t          |                     t          t          j        |d          t          |d                     t	                      5 }|                    t          d           t          t          j        |dd          t          |dd                     d d d            d S # 1 swxY w Y   d S )NFr  r+  Tr  )rs   r	   rQ   r   r   r.  rl  rR   r   r0  s      rV   r  z$TestCorrcoef.test_1d_without_missing8  s*   IBKNNHQKK888BK%888$Qu555	7 	7 	7   	FCJJ)+IJJJAe$ G G G (5t D D DF F F	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   8ACCCc           	         | j                             dd          }t          t          j        |          t	          |                     t          t          j        |d          t	          |d                     t                      5 }|                    t          d           t          t          j        |dd          t	          |dd                     d d d            d S # 1 swxY w Y   d S )Nr   r   Fr  r+  Tr  )rs   r   r	   rQ   r   r   r.  rl  r5  s      rV   r  z$TestCorrcoef.test_2d_without_missingC  s:   Ia##BKNNHQKK888BK%888$Qu555	7 	7 	7   	FCJJ)+IJJJAe$ G G G (5t D D DF F F	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   AC**C.1C.c                 4   | j         }t          |d<   ||                                z  }|                                }t	          t          j        |          t          |                     t	          t          j        |d          t          |d                     t                      5 }|                    t          d           t	          t          j        |dd          t          |dd                     d d d            n# 1 swxY w Y   	 t          |d           n# t          $ r Y nw xY w|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 }|                    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            d S # 1 swxY w Y   d S )Nr  Fr  r+  Tr  r  r>   r  r;   r)  )rs   r   r  ru   r	   rQ   r   r   r.  rl  r  )rR   r   r  r0  s       rV   r  z!TestCorrcoef.test_1d_with_missingN  s    I"	QVVXX\\^^BKOOXa[[999BK5999$Qu555	7 	7 	7   	FCJJ)+IJJJBu4 H H H (5t D D DF F F	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F	QU+++++ 	 	 	D	 qtWBKBtttH55x1TTrT77K7KLLLBKBtttHUCCC$Q$$B$>>>	@ 	@ 	@   	>CJJ)+IJJJB44R4 9 9 (AdddG! < < <> > >B44R4 9 9 (AdddG! < < <> > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s8   -AD

DDD( (
D54D5B&JJJc                    | j         }t          |d<   |                    dd          }t          |          }t	          j        |          }t          |d dd df         |d dd df                    t                      5 }|                    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            d S # 1 swxY w Y   d S )	Nr  r   r   r+  r  r)  r>   r  )	rs   r   r   r   rQ   r	   r   r.  rl  )rR   r   rS   rT   r0  s        rV   r#  z!TestCorrcoef.test_2d_with_missingl  s   I"IIaOO{{+a..D"crcNGCRC"H,=>>>   	3CJJ)+IJJJ 4 4 4SbS#2#X > 'SbS 13 3 3 3 3 3CRC"H = 'SbS 13 3 3 3 3 3CRC"H = 'SbS 13 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   CEEEN)
r   r   r   r  r1  r3  r  r  r  r#  r\   rX   rV   r%  r%    s        / / /C C C ? ? ?	F 	F 	F	F 	F 	F> > ><3 3 3 3 3rX   r%  c                       e Zd Zd Zd ZdS )TestPolynomialc                 j   t           j                            d          }t           j                            d                              dd          }t	          t          ||d          t          j        ||d                     |                    t                    }t          |d<   |                    t                    }t          x|d<   |d<   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 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                            d          dz   }|                                }|dd         }|dd         }|dd         }t          ||dd	|          \  }}}}}t          j        ||dd	|          \  }}	}
}}t          ||           t          |||||f||	|
||f          D ]\  }}t	          ||           d S )Nrk   rI  r  r;   r   r   rG   r  r  Trr   r>   )rr   r   )rQ   r  r  r   r	   r   viewr   r   ru   zipr  r   )rR   r   r   CRKSDrZ   r  rx   rz   r  rA   a_r   woxsyswss                       rV   test_polyfitzTestPolynomial.test_polyfit  s    INN2INN2&&r1--GAq!,,bjAq.A.ABBBFF;!FF;$$$!F)!!Qqqq!tWad;;;Aq!Q*QqrrUAabb!eH,?,?,A,A1*.0 0 0Aq!QAq!Q?Q1aO<< 	' 	'GQ2&&&&!!Qqqq"uXqt<<<Aq!Q*QqtWa"bk14HHHAq!QAq!Q?Q1aO<< 	' 	'GQ2&&&&!!Q555Aq!Q*QqtWa"QQQiFFFAq!QAq!Q?Q1aO<< 	' 	'GQ2&&&&INN2"VVXXqtWqtWqtW!!Q:::Aq!Q*RQTR@@@Aq!QQAq!Q?Q1aO<< 	' 	'GQ2&&&&	' 	'rX   c                 l   t           j                            d          }t           j                            d                              dd          }t           j        |d<   t           j        |d<   |                    t                    }|                    t                    }t          |d<   t          |d<   t          ||dd	          \  }}}}}t          j        |d
d         |d
dd d f         dd	          \  }}	}
}}t          |||||f||	|
||f          D ]\  }}t          ||           d S )Nrk   rI  r  r;   r   r<  r   Tr=  r>   )rQ   r  r  r   r   r>  r   r   r   r?  r	   )rR   r   r   r@  rA  rB  rC  rD  rZ   r  rx   rz   r  rA   rE  s                  rV   test_polyfit_with_masked_NaNsz,TestPolynomial.test_polyfit_with_masked_NaNs  s*   INN2INN2&&r1--v!6%FF;FF;!%!!Q555Aq!Q*QqtWa"QQQiFFFAq!QAq!Q?Q1aO<< 	' 	'GQ2&&&&	' 	'rX   N)r   r   r   rJ  rL  r\   rX   rV   r:  r:    s3        %' %' %'N' ' ' ' 'rX   r:  c                   n    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S )TestArraySetOpsc                 4   g d}t          |dd          }t          t          |d         t                               t	          |d         t          g dg d                     t	          |d         g d	           t	          |d
         g d           d S )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   r   s      rV   test_unique_onlistz"TestArraySetOps.test_unique_onlist  s    !!!ddCCC
47K00111T!Wl999999EEEFFFT!Wiii(((T!W00011111rX   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           d S )NrP  )r   r   r>   r   r>   r   r   TrQ  r   )r>   r;   r   r  r   r   r   r>   r>   )r   r   r   r;   r;   )r   r   r   r>   r   r;   r   )rs   r@   
fill_value)r   r   r   rW  r   s      rV   test_unique_onmaskedarrayz)TestArraySetOps.test_unique_onmaskedarray  s:   ...5G5G5GHHHddCCCT!Wl===|||LLLMMMT!Wlll+++T!W000111!3!3!3!3!3!3C C CddCCCT!Wl===|||LLLMMMT!Wlll+++T!W00011111rX   c                    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           d S )	Nr-  Tr   rQ  r   r>   r;   r   )r   r   r   r   r   s      rV   test_unique_allmaskedz%TestArraySetOps.test_unique_allmasked  s    IIID111ddCCCT!WlA5v>>>???T!Wqc"""T!Wiii((( ddCCCT!Wl622333T!Wqc"""T!Wqc"""""rX   c                 X   t          t          j        d          g d          }t          g dg d          }t	          |          }t          ||           t          |                    d          |                    d                     t          |j        |j                   d S )Nr   r>   r   r   r   r>   r   )r>   r>   r>   r   )r>   r   r   r>   r   )r   rQ   r   r
   r%   r   rr  r@   )rR   r   rT   rS   s       rV   test_ediff1dzTestArraySetOps.test_ediff1d  s    1OOO<<<<<<888qzzT7###T[[^^W^^A%6%6777TY-----rX   c                 v   t          t          j        d          g d          }t          |t                    }t          g dg d          }t          ||           t          |                    d          |                    d                     t          |j        |j                   t          |g d          }t          g d	g d
          }t          ||           t          |                    d          |                    d                     t          |j        |j                   d S )Nr   r\  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   rQ   r   r%   r   r
   r   rr  r@   rR   r   rS   rT   s       rV   test_ediff1d_tobeginz$TestArraySetOps.test_ediff1d_tobegin  s   1OOO<<<q6***ooo>>>T7###T[[^^W^^A%6%6777TY---q999------4I4I4IJJJT7###T[[^^W^^A%6%6777TY-----rX   c                 v   t          t          j        d          g d          }t          |t                    }t          g dg d          }t          ||           t          |                    d          |                    d                     t          |j        |j                   t          |g d          }t          g d	g d
          }t          ||           t          |                    d          |                    d                     t          |j        |j                   d S )Nr   r\  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   r`  ra  s       rV   test_ediff1d_toendz"TestArraySetOps.test_ediff1d_toend  s   1OOO<<<q(((ooo>>>T7###T[[^^W^^A%6%6777TY---q+++---4I4I4IJJJT7###T[[^^W^^A%6%6777TY-----rX   c                    t          t          j        d          g d          }t          |t          t                    }t          g dg d          }t          ||           t          |                    d          |                    d                     t          |j        |j                   t          |g dt                    }t          g d	g d
          }t          ||           t          |                    d          |                    d                     t          |j        |j                   d S )Nr   r\  r   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>   r>   r   r   r>   r   r   r   r`  ra  s       rV   test_ediff1d_tobegin_toendz*TestArraySetOps.test_ediff1d_tobegin_toend  s,   1OOO<<<q&999***1C1C1CDDDT7###T[[^^W^^A%6%6777TY---qV<<<0005557 7 7T7###T[[^^W^^A%6%6777TY-----rX   c                    t          j        d          }t          |          }t          g dg d          }t	          ||           t          t          |t                               t	          |                    d          |                    d                     t	          |j	        |j	                   t          |t          t                    }t          g dg d          }t          t          |t                               t	          |                    d          |                    d                     t	          |j	        |j	                   d S )	Nr   r>   r>   r>   r>   r   r   r   r   r   r   rg  r   r   )rQ   r   r%   r
   r   r   r  r   rr  r@   r   ra  s       rV   test_ediff1d_ndarrayz$TestArraySetOps.test_ediff1d_ndarray  s"   IaLLqzz<<<888T7###
4--...T[[^^W^^A%6%6777TY---q&999***1C1C1CDDD
4--...T[[^^W^^A%6%6777TY-----rX   c                     t          g dg d          }t          g dg d          }t          ||          }t          g dg d          }t          ||           d S )N)r>   r   r   r   rV  r   )r   r>   r>   r>   )r>   r   r  rb  )r
   r#   r   )rR   r   r   rS   rT   s        rV   test_intersect1dz TestArraySetOps.test_intersect1d+  su    ,,,\\\222,,,\\\2221a  


333T7#####rX   c                 4   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                      d S )Nr>   r;   r   ro   r  r   r   r   r   r>   r   r>   r;   r   r   r   r  rq  )r   r   ro   )r>   r;   r   r   r   )r   r   ro   r  rV  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   rA   rB   rS   s       rV   test_setxor1dzTestArraySetOps.test_setxor1d3  s   """999%%%,>,>,>???1~~T5++,,,"""999OO1~~T5\\\BBBCCC))))))1~~
4--...T---...,,,\\\222,,,\\\2221~~
4--...T---...2xB//00000rX   c                    t          j        d                              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          ||           d S )Nr  r   r>   )r>   r;   r   r   )	r   rk   rI  rK  r>   r   r   r$  rM  )	r   r>   r   r>   r   r>   r   r>   r   )rs   r@   r<   Tr   rb  )r   r;   r   )rQ   r   r   r   r
   r   r2   r   r  r   r   r@   )rR   rA   r@   rB   ecrZ   r  s          rV   	test_isinzTestArraySetOps.test_isinM  s    IbMM!!))),,x			""W!$::::::< < <9D)))777AJJ
1k**+++1b!!!GAq!&z""afW,1a     rX   c                 r   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                      d S )Nrp  rq  r   rr  rq  )TTTFTr   r   r;   r>   r  r>   r   r  rb  )TTFTT)r
   r$   r   r   rs  s       rV   	test_in1dzTestArraySetOps.test_in1db  s    """999%%%,>,>,>???AqzzT:::;;;"""999***999---AqzzT:::;;;2tB||,,,,,rX   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                     d S )Nrp  rq  r   rr  rq  T)invertry  rz  rb  )r
   r   rQ   r}  r$   r   rw  s      rV   test_in1d_invertz TestArraySetOps.test_in1d_invertp  s    """999%%%,>,>,>???RYtAqzz**DAd,C,C,CDDD"""999***999---RYtAqzz**DAd,C,C,CDDD2tB488899999rX   c                    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                      d S )N)r>   r;   r   ro   r   r  rq  r   rr  )r>   r;   r   r   r   ro   r  )r   r   r   r   r   r   r>   ra  r,  r   rb  r  rq  )r   r>   r;   r   r   r   )r
   r"   r   r   )	rR   rA   rB   rS   rT   r   r   ezr   s	            rV   test_union1dzTestArraySetOps.test_union1d|  s"   %%%,>,>,>???%%%,>,>,>???q!}}...5J5J5JKKKT7### 999iii(			999/EFFF///888%%%,>,>,>???AqMMQ2wr2/////rX   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                   d S )
N)r   r   r   ro   ro   r>   r;   r>   )r   r   r   r   r   r   r   r>   r   )r;   r   r   r   r;   r>   r   )r   ro   r  rb  rk   r   r   )r
   r!   r   r   rQ   uint32r=   rs  s       rV   test_setdiff1dzTestArraySetOps.test_setdiff1d  s    ***1I1I1IJJJ'''((AT5)))<<<===2JJ1IIYq!__eQFmm444"bib)))Yq"%%+RY77777rX   c                     t          j        g d          }t          j        g d          }t          t          ||          t          j        dg                     d S )N)rA   rB   rZ   )rA   rB   rz   rZ   )rQ   r
   r   r!   rw  s      rV   test_setdiff1d_char_arrayz)TestArraySetOps.test_setdiff1d_char_array  sP    H___%%H___%%9Q??BHcUOO<<<<<rX   N)r   r   r   rT  rX  rZ  r]  rb  re  rh  rl  rn  rt  rw  r{  r~  r  r  r  r\   rX   rV   rN  rN    s       2 2 22 2 2 # # #. . .. . .. . .. . . . . . $ $ $1 1 14! ! !*- - -
: 
: 
:0 0 0$8 8 8= = = = =rX   rN  c                       e Zd Zd Zd ZdS )TestShapeBasec                 z   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                   d S )Nra  r`  r   r  r  )r   r   r   r   r@   rs   rw  s      rV   test_atleast_2dzTestShapeBase.test_atleast_2d  s    333qMMQWf%%%QV\16<000QWd###QV\16<000QV\16<00000rX   c                 R   t          d          }t          |j        d           t          |j        j        |j                   t          |j        j        |j                   t          dd          }|D ]U}t          |j        d           t          |j        j        |j                   t          |j        j        |j                   Vt          d          }t          |j        d           t          |j        j        |j                   t          |j        j        |j                   t          dd          }|D ]U}t          |j        d           t          |j        j        |j                   t          |j        j        |j                   Vt          d          }t          |j        d           t          |j        j        |j                   t          |j        j        |j                   t          dd          }|D ]U}t          |j        d           t          |j        j        |j                   t          |j        j        |j                   Vt          d          }t          |j        d           t          |j        j        |j        j                   d S )Nr   r[   r   rH   r-  )r   r   r   r@   rs   r   r   r3   )rR   rB   rA   s      rV   test_shape_scalarzTestShapeBase.test_shape_scalar  s7   
 sOOQWd###QV\17+++QV\17+++sC   	0 	0A$'''qw///qw////sOOQWf%%%QV\17+++QV\17+++sC   	0 	0A&)))qw///qw////sOOQWi(((QV\17+++QV\17+++sC   	0 	0A),,,qw///qw////SMMQWf%%%QV\16<00000rX   N)r   r   r   r  r  r\   rX   rV   r  r    s2        1 1 1(1 (1 (1 (1 (1rX   r  c                        e Zd Zd Zd Zd ZdS )TestNDEnumeratec           	      R   t          j        d                              d          }t          j        |t                    }t          ||          }t          t          t          j        |                    t          t          |                               t          t          t          |                    t          t          |                               t          t          t          |                    t          t          |d                               d S )Nr   )r>   r   r;   r<   r   Fru   )	rQ   r   r   
zeros_liker   r   r   rY  r4   )rR   ordinary
empty_mask	with_masks       rV   test_ndenumerate_nomaskedz)TestNDEnumerate.test_ndenumerate_nomasked  s    9R==((33]84888
 
;;;	T".2233+h//00	2 	2 	2T+h//00+i0011	3 	3 	3T+i0011+iEBBBCC	E 	E 	E 	E 	ErX   c           
         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                                 d S )Nr\   )d   r   Fr  r  r  )r0   r   rY  r4   r?  rQ   ndindexr   )rR   rA   rB   rZ   s       rV   test_ndenumerate_allmaskedz*TestNDEnumerate.test_ndenumerate_allmasked  s0   rNNvy!!T+a..))2...T+a..))2...T+aE:::;;#bj00#.AABB	D 	D 	DT+a..))2...T+aE:::;;#bj33Y&5IJJKK	M 	M 	M 	M 	MrX   c           
         t          t          j        d                              d          g dg dg dg          }g d}t	          t          t          |                    |           t	          t          t          t          |d	                              |j                   t          |d	          D ]\  }}t	          ||         |           d S )
Nr.  r  rj  )r>   r>   r   r>   rk  r   ))rW  r   ))r;   r   r   )r  r   )rI   rk   )r  r   Fr  )	r   rQ   r   r   r   rY  r4   rb   r   )rR   rA   items
coordinatevalues        rV   test_ndenumerate_mixedmaskedz,TestNDEnumerate.test_ndenumerate_mixedmasked  s    2..v66+||+||+||-. . .G G GT+a..))5111Sk!>>>??@@!&III!,Q5!A!A!A 	/ 	/J:....	/ 	/rX   N)r   r   r   r  r  r  r\   rX   rV   r  r    sG        	E 	E 	E
M 
M 
M
/ 
/ 
/ 
/ 
/rX   r  c                        e Zd Zd Zd Zd ZdS )	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                   d S )Nra  r`  r   r   r   ro   r   r   r   r  r>   r   r;   r   r5   r   r   r   r@   r6   rs   rR   rA   rB   rZ   r  s        rV   test_stack_1dzTestStack.test_stack_1d  s3   3333331a&q!!!QWf%%%161Q49---161Q49---Aq6NN1616***1616***1a&q!!!QWf%%%161QQQT7<000161QQQT7<00000rX   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                   d S )Nra  Tr   r  Fr   r   r  r>   r  r  r  s        rV   test_stack_maskszTestStack.test_stack_masks  s+   ...///1a&q!!!QWf%%%161Q49---161Q49---Aq6NN1616***1616***1a&q!!!QWf%%%161QQQT7<000161QQQT7<00000rX   c                    d}t           j                            dd|          }t           j                            dd|          }t           j                            dd|                              t                    }t           j                            dd|                              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                            dd|          }t           j                            dd|          }t           j                            dd|                              t                    }t           j                            dd|                              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 S )Nr  r   rk   r;   r   r   r:   r>   r  ).r   ).r>   )r   r;   r   r   )rQ   r  randintrZ  r   r   r5   r   r   r   r@   )
rR   shpd1d2r   r   a1r[  rZ   c_shps
             rV   test_stack_ndzTestStack.test_stack_nd%  s   Yq"c**Yq"c**Yq!S))0066Yq!S))0066"2&&&"2&&&2r(###s
QWe$$$27AaDI...27AaDI...2r($$$d
QWe$$$27AfIN33327AfIN333 Yq"c**Yq"c**Yq!S))0066Yq!S))0066"2&&&"2&&&2r(###s
QWe$$$27AaDI...27AaDI...2r($$$d
QWe$$$27AfIN33327AfIN33333rX   N)r   r   r   r  r  r  r\   rX   rV   r  r    sA        1 1 1$1 1 1$)4 )4 )4 )4 )4rX   r  )N__doc__r  r  r   numpyrQ   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   r8   r   r  r  r)  r  r  r  r
  r%  r:  rN  r  r  r  r\   rX   rV   <module>r     sS              3 3 3 3 3 3                                                                                                                         DK9 K9 K9 K9 K9 K9 K9 K9\). ). ). ). ). ). ). ).XC C C C C C C CLo o o o o o o od	, , , , , , , ,,
! 
! 
! 
! 
! 
! 
! 
!T= T= T= T= T= T= T= T=n@1 @1 @1 @1 @1 @1 @1 @1Fh3 h3 h3 h3 h3 h3 h3 h3V7' 7' 7' 7' 7' 7' 7' 7'te= e= e= e= e= e= e= e=P41 41 41 41 41 41 41 41n#/ #/ #/ #/ #/ #/ #/ #/LO4 O4 O4 O4 O4 O4 O4 O4 O4 O4rX   