
    H/Ph1                       d Z ddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?  G d d	          Z@ G d
 d          ZA G d d          ZB G d d          ZC G d d          ZD G d d          ZE G d d          ZF G d d          ZG G d d          ZH G d d          ZI G d d          ZJ G d d          ZK G d  d!          ZL G d" d#          ZM G d$ d%          ZNd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vstack
_covhelperc                   >    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<   rB   rD   barD   bbrD   r?   rI   )r0   floatr
   r   npr>   )selftestcontroldts       Z/var/www/html/test/jupyter/venv/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 )NrC   cr?   r?   rI    rR   r>   objectmar0   r   typecorer   lenr   _fill_valuerS   my_dtype
masked_arrs      rW   "test_masked_all_with_object_nestedz.TestGeneric.test_masked_all_with_object_nestedD   s     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@@@@@rY   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 )NrC   r\   r?   rI   r]   r^   re   s      rW   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;;;;;rY   c                    t          ddgt                    }t          |          }t          ddgddgt                    }t          ||           t	          j        ddgddgd          }t          d	d	gd
d
g|          }t          |          }t          ddgd
d
g|          }t          ||           t	          j        ddddgfg          }t          ddgddg|          }t          |          }t          ||           d S )Nr?   r<   r=   r@   rB   rC   rD   rE   rH   rI   )
   rl   rK   rL   rN   rP   )r
   rQ   r1   r   rR   r>   )rS   baserT   rU   rV   s        rW   test_masked_all_likez TestGeneric.test_masked_all_likeZ   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#####rY   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   )rangerR   r   intfullr   rA   datasumr,   r   
compressed)	rS   rD   ijkjarB   ssls	            rW   check_clumpzTestGeneric.check_clumpn   s,   q! 	: 	:A1a4[[ : :Ias+++WQ--- A&&1+!+!A$$ * *B)))AA&& !3!3!5!5q9999fWAF !3!3!5!5q9999:	: 	:rY   c                 0   t          t          j        d                    }t          |g d<   t	          |          }t          dd          t          dd          t          dd          g}t          ||           |                     t                     d S )Nrl   r   r?   r<         	   r      r   rp   r   )r   rR   r   r   r+   slicer   r}   rS   rB   rT   rU   s       rW   test_clump_maskedzTestGeneric.test_clump_masked~   s    2'' &


AA;;aU1b\\:T7###&&&&&rY   c                    t          t          j        d                    }t          |g d<   t	          |          }t          dd          t          dd          g}t          ||           |                     t                     d S )Nrl   r   r   r   rp   r   )r   rR   r   r   r,   r   r   r}   r   s       rW   test_clump_unmaskedzTestGeneric.test_clump_unmasked   sy    2'' &


a  A;;a.T7###(((((rY   c                    t          d          }t          |          }t          |t          d|j                  g           t          j        dt                    |_        t          |t          d|j                  g           t          ||dk     |dk    z  |dk    z  <   t          |          }t          |t          dd          t          dd          g           t          |d d <   t          |          }t          |g            d S )	Nrl   r   r=   r   r      r   r   )
r   r-   r   r   sizerR   r   boolrA   r   )rS   rB   rT   s      rW   test_flatnotmasked_contiguousz)TestGeneric.test_flatnotmasked_contiguous   s    2JJ'**TE!QV,,-..."D)))TE!QV,,-...*01q5QU
qAv
&''**TE!QKKq!5666!!!'**T2rY   N)__name__
__module____qualname__rX   rh   rj   rn   r}   r   r   r   r]   rY   rW   r9   r9   $   s        $ $ $<
A 
A 
A< < <$ $ $(: : : 	' 	' 	') ) )    rY   r9   c                       e Zd 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rA   r   r   axis)r   r   r   r   weightsTr   returned      @r<   r?   r   r   r   r   )r
   r   r   r   r   rA   reshape)rS   ottresultwtss       rW   test_testAverage1zTestAverage.test_testAverage1   s   $$$+F+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(#####rY   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   rR   float64r   r   r
   addreducer   r   r   rA   r   )rS   w1w2xym1m2m3m4m5zs              rW   test_testAverage2zTestAverage.test_testAverage2   s      "4"4"451BJ'''WQQ'''---WQQ333S9996!2:...fQii@AA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 	4rY   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
   rQ   r   )rS   rB   rC   r1r   r2r   a2da2dma2daa2dmas              rW   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'''''rY   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   )rR   r
   r   r`   r   r   r   )rS   r   rC   wactualdesireds         rW   test_testAverage4zTestAverage.test_testAverage4   s    HYYY''1--EKK%5'D6 :K;;HYYY''1--AA===rdRD1UGeWtf3MNNVW%%%%%rY   c                 6   t          j        d                              ddd          }t          j        g d                              ddd          }t          j        dd          }t           j                            ||          }|d d d d df         }t          |d	|
          }t          g dg d          }t          ||           t          j        dd          }d|d d d d df<   d|d<   t           j                            ||          }t          |d	|
          }t          t           j	        ddgg d          }t          ||           t          j        dd          }t           j                            ||          }|dd d d d f         }t          |d|
          }t          ddgddg          }t          ||           t          j        t          d          5  t          |d|
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |d	|
           d d d            n# 1 swxY w Y   t          |d|
          }t          |d	|j        
          }t          ||           d S )N   r<   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   Fr   r   r   r?   r   )      @       @      "@)FFFTr   r   r?   r   r   )TFFr?   r?   r<   g      @g      @zHShape of weights must be consistent with shape of a along specified axis)matchr   r?   r<   )r?   r   )rR   r   r   r
   rs   r`   r   r   r	   nanpytestraises
ValueErrorT)	rS   r   r   mymasubw0r   r   subw1s	            rW   $test_weight_and_input_dims_differentz0TestAverage.test_weight_and_input_dims_different   s?    IbMM!!!Q**HEEEFFWQ1 	
 GIu%%ekk!!k$$!!!QQQ'
65999|||2G2G2GHHHFG,,,GIu%%!!!QQQ'
'
ekk!!k$$65999VR%%%' ' ' 	FG,,,GIu%%ekk!!k$$!QQQ'
65999d|5%.AAAFG,,, ]89 9 9 	8 	8 Ci7777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ]89 9 9 	5 	5 Cfe4444		5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 65999#FEG<<<FG,,,,,s$   1HHH6III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   rS   rB   s     rW   test_onintegers_with_maskz%TestAverage.test_onintegers_with_mask1  sd    E1a&MM""QE,,,-G-G-GHHHIIQrY   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   )	rR   r
   r   r   r   rv   r	   realimag)rS   rA   rB   avexpectedav0	expected0av1	expected1r   wavwav0wav1s                rW   test_complexzTestAverage.test_complex8  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6rY   z<x, axis, expected_avg, weights, expected_wavg, expected_wsumr?   r<   r   Nr   )r   r   r?   g      ?r   )r?   r<   r   )r?   r      r   )r   r   r   r?   r   )r   r   g      #@)r   r   r   c                 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   )rR   r`   r   r   r   )
rS   r   r   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             rW   test_basic_keepdimszTestAverage.test_basic_keepdimsd  s    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/////rY   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   r   )r   r   r   r   )FTTF)TFTT)TFTFr   r         @)rR   r`   r
   r   r   r   r   r	   r   r   rA   )	rS   rB   weights_unmaskedweights_maskedavg_unmaskedexpected_unmasked
avg_maskedexpected_maskedavg_expecteds	            rW   test_masked_weightszTestAverage.test_masked_weights{  s>    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8rY   )r   r   r   r   r   r   r   r   r   r   r   markparametrizer  r  r]   rY   rW   r   r      s       $ $ $& 4  4  4D( ( (0& & &1- 1- 1-f  *7 *7 *7X [F
))TC5)))dVcU	;99jjj
!1&7a&???#iii[
2	3 0 0 0")9 )9 )9 )9 )9rY   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   rA   )rS   rC   r   dr[   s        rW   test_1dzTestConcatenator.test_1d  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3rY   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   rl   )rl   r   )rR   randomrandroundr   r   r   r   r   rA   r_)rS   a_1a_2m_1m_2b_1b_2r  s           rW   test_2dzTestConcatenator.test_2d  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3rY   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   rR   r`   r   r   rA   rt   )rS   r   s     rW   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-----rY   N)r   r   r   r  r'  r)  r]   rY   rW   r  r    sA        	4 	4 	44 4 4(. . . . .rY   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   rR   r   r   r/   r   rt   r   rS   rt   rT   s      rW   
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|\:;;;;;rY   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   rp   )r   rR   r   r   r.   r   r   )rS   rB   tmps      rW   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
 	 	 	 	 	rY   N)r   r   r   r3  r9  r]   rY   rW   r+  r+    s3         <  <  <D    rY   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   )rl   r         )            )(   *   +   ,   )2   4   5   6   )7   9   :   ;   r   r/  )r   r   rp   r   r   )rl   r   r   r@  rA  )rB  r5  rC  rD  rE  )rF  )   rG  rH  rI  )-   .   /   0   1   )rJ  3   rK  rL  rM  )rN  8   rO  rP  rQ  r?   )      r6  r7  r.  )   r      !   "   )#   $   %   &   '   r\   r1  )r1  r<   )r   rp   r   r   )rZ  r6  r7  r.  )r-     r     )r\  r]  r^  r_  )r`  rb  rc  rd  )rS  rU  rV  rW  r;   r0  )r0  r   )r   r1  r   )r1  r<   )r?   r0  )r1  r0  r   r<   )r   r0  )
rR   r
   listrq   r   r   astyper   r(   r   )rS   r   r   rB   a2a3a4s          rW   test_compress_ndz&TestCompressFunctions.test_compress_nd  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rY   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   rp   r   r   r>  )r   rp   r   r?   r<   r   r?   r   r   r   r   )r
   rR   r   r   r   r)   _datar   rS   r   s     rW   test_compress_rowcolsz+TestCompressFunctions.test_compress_rowcols  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4rY   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?   ro  )r?   r?   r   r   )r
   rR   r   r   r   r*   rA   rp  r   allr   rq  s     rW   test_mask_rowcolsz'TestCompressFunctions.test_mask_rowcols  s   ")A,,&&q!,,!		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""'++--.....rY   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
   rR   r   r   r   DeprecationWarningr   r*   )rS   r   rv  rw  r   ress         rW   #test_mask_row_cols_axis_deprecationz9TestCompressFunctions.test_mask_row_cols_axis_deprecation  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?   rp   )r?   r   r   r   r   r   r   r<   r   T)strictr   r?  r  Fr   r   r   r   r   r?   r   )r   r   r   r   r   r   )r   r   r?   r   r   r   r   r   )	rR   r   r   r   r   r   rA   filledr   )rS   nr   rB   rC   r[   s         rW   test_dotzTestCompressFunctions.test_dot  s   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-.....rY   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   )rR   eyer
   r   ra   r   r   rS   rB   rC   s      rW   test_dot_returns_maskedarrayz2TestCompressFunctions.test_dot_returns_maskedarray:  s    F1II!HHSAYY;.///SAYY;.///SAYY;.///SAYY;./////rY   c                     t          t          j        d                    }t          t          j        d                    }t	          |||          }t          ||u            t          ||           d S )Nr   )r   r   out)r
   rR   r  r   r   r   r   )rS   rB   r  rz  s       rW   test_dot_outz"TestCompressFunctions.test_dot_outC  sj    "&))BHV$$%%!QC   s
QrY   N)r   r   r   rm  rr  ru  r   r  r  rR   r`   	mask_rows	mask_colsr{  r  r  r  r]   rY   rW   r;  r;    s        n 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    rY   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]   )rC   s    rW   myfuncz*TestApplyAlongAxis.test_3d.<locals>.myfuncP  s    Q4KrY   r?   r   rp   rl   r   r   r'   r   rS   rB   r  xas       rW   test_3dzTestApplyAlongAxis.test_3dM  sd    3KK1a((	 	 	 fa++R1a&1b'*+++++rY   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]   )rC   offsets     rW   r  z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncZ  s    QvX;rY   r?   )r  r   r   r   )r   r  r  s       rW   test_3d_kwargsz!TestApplyAlongAxis.test_3d_kwargsW  sn    2JJq!Q''	 	 	 	 fa1555R1a&1b'*+++++rY   N)r   r   r   r  r  r]   rY   rW   r  r  K  s2        , , ,, , , , ,rY   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  rI  )
r   r   r&   rR   ru   r
   r   r   ri  r   )rS   rB   rT   ctrls       rW   
test_basiczTestApplyOverAxes.test_basicc  s    2JJq!Q''rvq1a&11x2$se,-..T4   "(1q5..

rvq1a&11x2$rd+,--T4     rY   N)r   r   r   r  r]   rY   rW   r  r  a  s#        ! ! ! ! !rY   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej                            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 )Nr0  r   )rR   r`   r   infr   rS   rs     rW   test_pytypezTestMedian.test_pytypeo  sH    ELL2626*RVRV,<=BLGGQrY   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 )Nr0  r   Tr   )rR   r`   r   r   r  r   rA   r  s     rW   test_infzTestMedian.test_infs  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"""""rY   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@)
rR   r   r   r`   r   r   ra   r   rq   r   rq  s     rW   test_non_maskedzTestMedian.test_non_masked  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''{:;;;;;rY   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 mismatchrl   r<   r   r   r   r0  Tr   overwrite_inputr   r   r;   N)r
   rR   r   r   r`   r   r   r   ra   r   r   )rS   r   ma_xs      rW   test_docstring_examplesz"TestMedian.test_docstring_examples  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)*****rY   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 ]W\  }}	 t          j                            |||           t          |||||fz            # t          j	        j
        $ r Y Tw xY w
d S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr   )FTr?   )ndminrA   FTr  )rq   r
   	itertoolsproductrR   r`   r   	ExceptionAssertionError
exceptions	AxisError)rS   msgr  rA   r   argsr   overs           rW   test_axis_argument_errorsz$TestMedian.test_axis_argument_errors  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 =2   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   rR   r`   r   r   rq  s     rW   test_masked_0dzTestMedian.test_masked_0d  sh    !%   RU\\!__a(((!$RU\\!__bel33333rY   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
   rR   r   r   r`   r   r   r   r   ra   rb   MaskedConstantr   rq  s     rW   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9rY   c           
          t          t          j                            t	          g dg d                    j        t          j                            t	          g dg d                    j                   d S )Nr   r  r   ro  )r   rR   r`   r   r
   r   rS   s    rW   test_1d_shape_consistencyz$TestMedian.test_1d_shape_consistency  st    RU\\%WWW"="="=>>DU\\%WWW"="="=>>D	G 	G 	G 	G 	GrY   c                    d\  }}t          t          j        dd|                    }t          x|d d<   |dd <   t          t          j        ||ft
                              }|d d          |d d df<   t          j        t          |                    }t          d|          D ]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   r\        r   rl   r=   r   r?   r   )r   rR   linspacer   emptyrQ   r   rc   rq   r  shuffler   r   r   r   )rS   r  pr   r   idxrw   s          rW   r'  zTestMedian.test_2d  s\   AS"a0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6rY   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 )Nr\  rl   r         -@r   r   )      +@r  g      /@r?   )
r   r   r   rl   r@  r5  rE  r   r   r   )
r?   r?   r?   r   r   r   r   r?   r?   r?   )r   rR   r   r   r   r   r   r   ra   r`   r   rA   rq  s     rW   test_2d_waxiszTestMedian.test_2d_waxis  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LrY   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   rB  rD  )r   r   r<   c   rl   r   r@  rA  r   r   r5  rC  )rR   r`   r   r   r   r   r   r   rq  s     rW   r  zTestMedian.test_3d  s   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#?@@@@@rY   c                     t          t          j        d                              dd                    }t          x|d d<   |dd <   t          t          |d          t          |d                     d S )Nr\  rl   r   r  r0  r   r?   )r   rR   r   r   r   r   r   rq  s     rW   test_neg_axiszTestMedian.test_neg_axis  sq    2..r15566"1""##VAB'''):):):;;;;;rY   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)r\        >@r  g      ?@r   r  r]   r  r\  r  g      .@)
r   rR   r   r   r   r   r   r   ra   r   )rS   vr   r  r  s        rW   test_out_1dzTestMedian.test_out_1d  s    # 
	, 
	,ARYq\\**A##AbqbEAbccFrwr{{++Cqc"""ABwwS$''''S#&&&AHDGG{*++++
	, 
	,rY   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)rF  g      D@r\  r  rl   r0  r   r  r?   )r   r  r\  r   )rl   r@  r5  rE  TFr   r   )r  g     1@g     5@g     9@)r   rR   r   r   r   r   r   r   r   ra   r   )rS   r  r   r  r  es         rW   test_outzTestMedian.test_out,  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{*++++	, 	,rY   r   )Nr?   r\   r   )r  r0  )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   rp   r   r=   )r      r   r\   c              3   >   K   | ]}|v rd nj         |         V  dS )r?   N)r   ).0rw   	axis_normr  s     rW   	<genexpr>z/TestMedian.test_keepdims_out.<locals>.<genexpr>R  sN       L L89Q)^^L L L L L LrY   T)r   r   r  )rR   r   r   r  r
   r   ri  intpr   tupler   r   ndimr   rq   r  r   r   )	rS   r   rA   r   	shape_outr  r   r  r  s	          @@rW   test_keepdims_outzTestMedian.test_keepdims_out=  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-----rY   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   )rR   r`   masked_equalr   r   )rS   rt   rg   r   s       rW   $test_single_non_masked_value_on_axisz/TestMedian.test_single_non_masked_value_on_axisY  ss    RRR U''a00
825<<
<;;#	% 	% 	% 	% 	%rY   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<   r0  r   )rR   r   r   r`   r
   r   rA   r   r   isscalarr   ravelr   ra   r   r   )rS   rA   dmr  s       rW   test_nanzTestMedian.test_nanb  s[   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CrY   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?   rJ   r   r  r   r?   r]   )	rR   r`   r   r   r   r   r   r   r   )rS   or  s      rW   test_out_nanzTestMedian.test_out_nan  s    Erx~~..Erwv//&$%,$RU\\!QA\..222Erx~~..RU\\!QA\..222Erx||,,RU\\!\++Q/////rY   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   r   r?   r   rg  )rR   r`   r   r   rQ   r   r   r   r   r   r   rA   copyr   r  r   )rS   rB   aorigrC   s       rW   test_nan_behaviorzTestMedian.test_nan_behavior  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0rY   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   )rR   r
   uint8r`   r   r   r   rA   r   s     rW   test_ambigous_fillzTestMedian.test_ambigous_fill  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0rY   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?   Frp   ir  r   r   r=   r   r   r   g      @g      $g      "g      r  rl   r<   )rR   r  r
   r   r`   r   isnanr   r   r   rA   float32rq   )rS   r  rB   rw   rx   s        rW   test_specialzTestMedian.test_special  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(	= (	=rY   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)rR   r`   r   r
   rQ   r   r  RuntimeWarningr   r   r   r   logcategorywarningsfilterwarningsr   catch_warnings)rS   rB   r   rC   s       rW   
test_emptyzTestMedian.test_empty  s   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<   )rR   r`   r   r   r   ra   r   ri  r_   rQ   r   )rS   r  s     rW   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<<<<<rY   N)r   r   r   r  r  r  r  r  r  r  r  r'  r  r  r  r  r  r   r  r  r  r  r  r  r   r  r  r  r  r]   rY   rW   r  r  n  s            # # #$< < <*+ + +N 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:= = = = =rY   r  c                   2    e Zd 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
   rR   r  r  rt   r  s    rW   setup_methodzTestCov.setup_method  s#    ")..,,--			rY   c                    | j         }t          t          |d          d         j        t          j                   t          t          ||d          d         j        t          j                   |dk    }t          t          t          j                            ||          d          d         	                    t                    |                    dd                      t          t          t          j                            ||          |d          d         	                    t                    t	          j        | | f                     d S )NTrowvarr?   F)r   r  r   r0  )rt   r   r7   r>   rR   r  r   r`   r   ri  r   r   r6   )rS   r   rA   s      rW   test_covhelperzTestCov.test_covhelper
  s5   I
1T***1-3RZ@@@
1%000392:FFF3w""1d++D  \\!R   		
 	
 	
 	""1d++q  Iuten%%		
 	
 	
 	
 	
rY   c                 B   | j         }t          t          j        |          t          |                     t          t          j        |d          t          |d                     t          t          j        |dd          t          |dd                     d S )NFr  Tr  bias)rt   r	   rR   r   rq  s     rW   test_1d_without_missingzTestCov.test_1d_without_missing  s    IBF1IIs1vv...BF1U333S55I5I5IJJJBF1U>>>%d;;;	= 	= 	= 	= 	=rY   c                 j   | j                             dd          }t          t          j        |          t	          |                     t          t          j        |d          t	          |d                     t          t          j        |dd          t	          |dd                     d S )Nr   r   Fr  Tr   )rt   r   r	   rR   r   rq  s     rW   test_2d_without_missingzTestCov.test_2d_without_missing&  s    Ia##BF1IIs1vv...BF1U333S55I5I5IJJJBF1U>>>%d;;;	= 	= 	= 	= 	=rY   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 )Nr0  Fr  Tr   allow_maskedr?   )rt   r   meanrv   r	   rR   r   r   )rS   r   nxs      rW   test_1d_with_missingzTestCov.test_1d_with_missing.  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 )Nr0  r   r   r?   r   r   Tr!  Fr  r   )rt   r   r   rR   logical_notr   ri  rr   r   r   r(  r  r	   r   r   )rS   r   validfracxfs        rW   test_2d_with_missingzTestCov.test_2d_with_missingF  s   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 	1rY   N)	r   r   r   r  r  r"  r$  r*  r1  r]   rY   rW   r  r    sq        . . .
 
 
(= = == = =F F F01 1 1 1 1rY   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
   rR   r  r  rt   data2r  s    rW   r  zTestCorrcoef.setup_method^  s@    ")..,,--	29>>"--..


rY   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
  r0  ddofbias and ddof have no effectr   r   rt   r5  rR   r   r   r  simplefilterr   ry  filterr	   )rS   r   r   r   	expected2sups         rW   	test_ddofzTestCorrcoef.test_ddofb  s   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,  r9  r?   r:  )rS   r   r   r   r>  s        rW   	test_biaszTestCorrcoef.test_biasr  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  r9  Tr   )rt   r	   rR   r   r   r<  ry  rS   r   r>  s      rW   r"  z$TestCorrcoef.test_1d_without_missing  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  r9  Tr   )rt   r   r	   rR   r   r   r<  ry  rC  s      rW   r$  z$TestCorrcoef.test_2d_without_missing  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 )Nr0  Fr  r9  Tr   r&  r?   r,  r<   r7  )rt   r   r(  rv   r	   rR   r   r   r<  ry  r   )rS   r   r)  r>  s       rW   r*  z!TestCorrcoef.test_1d_with_missing  s    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 )	Nr0  r   r   r9  r1  r7  r?   r,  )	rt   r   r   r   rR   r	   r   r<  ry  )rS   r   rT   rU   r>  s        rW   r1  z!TestCorrcoef.test_2d_with_missing  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  r?  rA  r"  r$  r*  r1  r]   rY   rW   r3  r3  \  s        / / /C C C ? ? ?	F 	F 	F	F 	F 	F> > ><3 3 3 3 3rY   r3  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 )Nrl   rZ  r0  r<   r   r   rH   r0  r0  Trs   r?   )rs   r   )rR   r  r  r   r	   r   viewr   r   rv   zipr  r   )rS   r   r   CRKSDr[   r  ry   r{   r  rB   a_r   woxsyswss                       rW   test_polyfitzTestPolynomial.test_polyfit  s    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&&&&	' 	'rY   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 )Nrl   rZ  r0  r<   r   rJ  r   TrK  r?   )rR   r  r  r   r   rL  r   r   r   rM  r	   )rS   r   r   rN  rO  rP  rQ  rR  r[   r  ry   r{   r  rB   rS  s                  rW   test_polyfit_with_masked_NaNsz,TestPolynomial.test_polyfit_with_masked_NaNs  s*   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&&&&	' 	'rY   N)r   r   r   rX  rZ  r]   rY   rW   rH  rH    s3        %' %' %'N' ' ' ' 'rY   rH  c                   t    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Z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   r2  s      rW   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1rY   c                    t          g dg d          }t          |dd          }t          |d         t          g dg d                     t          |d	         g d
           t          |d         g d           d|_        t          g dg dd          }t          |dd          }t          |d         t          g dg d                     t          |d	         g d
           t          |d         g d           d S )Nr^  )r   r   r?   r   r?   r   r   Tr_  r   )r?   r<   r   r0  r   r   r   r?   r?   )r   r   r   r<   r<   )r   r   r   r?   r   r<   r   )rt   rA   
fill_value)r   r   r   re  r2  s      rW   test_unique_onmaskedarrayz)TestArraySetOps.test_unique_onmaskedarray  s:   ...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1rY   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   r_  r   r?   r<   r  )r   r   r   r   r2  s      rW   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"""""rY   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   rR   r   r
   r%   r   r  rA   )rS   r   rU   rT   s       rW   test_ediff1dzTestArraySetOps.test_ediff1d+  s    1OOO<<<<<<888qzzT7###T[[^^W^^A%6%6777TY-----rY   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   rj  r   )to_begin)r   r?   r?   r?   r   )r?   r?   r   r   r?   r   r   )r?   r<   r   r?   r?   r?   r   )r   r   r   r?   r   r   r?   	r   rR   r   r%   r   r
   r   r  rA   rS   r   rT   rU   s       rW   test_ediff1d_tobeginz$TestArraySetOps.test_ediff1d_tobegin4  s   1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-----rY   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   rj  r   )to_end)r?   r?   r?   r   r   )r?   r   r   r?   r?   r   r   )r?   r?   r?   r   r?   r<   r   )r?   r   r   r?   r   r   r   rn  ro  s       rW   test_ediff1d_toendz"TestArraySetOps.test_ediff1d_toendC  s   1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-----rY   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   rj  r   rr  rm  )r   r?   r?   r?   r   r   )r?   r?   r   r   r?   r?   r   r   )r   r?   r?   r?   r   r?   r<   r   )r?   r?   r   r   r?   r   r   r   rn  ro  s       rW   test_ediff1d_tobegin_toendz*TestArraySetOps.test_ediff1d_tobegin_toendR  s,   1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-----rY   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   ru  r   r   )rR   r   r%   r
   r   r   r  r   r  rA   r   ro  s       rW   test_ediff1d_ndarrayz$TestArraySetOps.test_ediff1d_ndarrayb  s"   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-----rY   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   rd  r   )r   r?   r?   r?   )r?   r   r0  r   )r
   r#   r   )rS   r   r   rT   rU   s        rW   test_intersect1dz TestArraySetOps.test_intersect1dr  su    ,,,\\\222,,,\\\2221a  


333T7#####rY   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   rp   r0  r   r   r   r   r?   r   r?   r<   r   r   r   r0  r~  )r   r   rp   r?   r<   r   r   r   r   r   rp   r0  rd  r   )r   r   r   r  r?   r   r<   r   r   r?   r   r   r   r   r   r   )r
   r    r   r   r  r   r   rS   rB   rC   rT   s       rW   test_setxor1dzTestArraySetOps.test_setxor1dz  s   """9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0rY   c                 f   t          g dg d          }g d}t          ||d          }t          |t          g dg d                     t          g d	g d
          }t          g dg d          }t          ||d          }t          t	          |t
                               t          |g d           t          dgdgdgdgg          }t          ddgddgg          }t          ||d          }t          t	          |t
                               t          |g d           d S )Nr~  r  r   r  T)assume_uniquer  rd  r  r  r  r  r?   r   r<   r   r   r   r   )r
   r    r   r   r  r   r  s       rW   test_setxor1d_uniquez$TestArraySetOps.test_setxor1d_unique  sY   """999OO1D111T5\\\BBBCCC,,,\\\222,,,\\\2221D111
4--...T---...A3aS1#&''Aq6Aq6"##1D111
4--...T---.....rY   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   rl   rZ  r\  r?   r   r   r6  r^  )	r   r?   r   r?   r   r?   r   r?   r   )rt   rA   r=   Tr  r   )r   r<   r   )rR   r   r   r   r
   r   r2   r   r  r   r   rA   )rS   rB   rA   rC   ecr[   r  s          rW   	test_isinzTestArraySetOps.test_isin  s    IbMM!!))),,x			""W!$::::::< < <9D)))777AJJ
1k**+++1b!!!GAq!&z""afW,1a     rY   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 )Nr~  r  r   r  r~  )TTTFTr   r   r<   r?   r0  r?   r   r0  r   )TTFTT)r
   r$   r   r   r  s       rW   	test_in1dzTestArraySetOps.test_in1d  s    """999%%%,>,>,>???AqzzT:::;;;"""999***999---AqzzT:::;;;2tB||,,,,,rY   c                    t          g dg d          }t          g dg d          }t          t          j        t	          ||                    t	          ||d                     t          g dg d          }t          g d	g d
          }t          t          j        t	          ||                    t	          ||d                     t          g t	          g g d                     d S )Nr~  r  r   r  r~  T)invertr  r  r   )r
   r   rR   r  r$   r   r  s      rW   test_in1d_invertz TestArraySetOps.test_in1d_invert  s    """9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9rY   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   rp   r   r0  r~  r   r  )r?   r<   r   r   r   rp   r0  )r   r   r   r   r   r   r?   r   r>  r  r   r/  r  )r   r?   r<   r   r   r   )r
   r"   r   r   )	rS   rB   rC   rT   rU   r   r   ezr   s	            rW   test_union1dzTestArraySetOps.test_union1d  s"   %%%,>,>,>???%%%,>,>,>???q!}}...5J5J5JKKKT7### 999iii(			999/EFFF///888%%%,>,>,>???AqMMQ2wr2/////rY   c                    t          g dg d          }t          g d          }t          ||          }t          |t          g dg d                     t          d          }t          d          }t          t          ||          t          dd	g                     t          g t          j        g           }t          t          |g           j        t          j                   d S )
N)r   r   r   rp   rp   r?   r<   r?   )r   r   r   r   r   r   r   r?   r   )r<   r   r   r   r<   r?   r   )r   rp   r0  r   rl   r   r   )r
   r!   r   r   rR   uint32r>   r  s       rW   test_setdiff1dzTestArraySetOps.test_setdiff1d  s    ***1I1I1IJJJ'''((AT5)))<<<===2JJ1IIYq!__eQFmm444"bib)))Yq"%%+RY77777rY   c                     t          j        g d          }t          j        g d          }t          t          ||          t          j        dg                     d S )N)rB   rC   r[   )rB   rC   r{   r[   )rR   r
   r   r!   r  s      rW   test_setdiff1d_char_arrayz)TestArraySetOps.test_setdiff1d_char_array  sP    H___%%H___%%9Q??BHcUOO<<<<<rY   N)r   r   r   rb  rf  rh  rk  rp  rs  rv  rz  r|  r  r  r  r  r  r  r  r  r]   rY   rW   r\  r\    s       2 2 22 2 2 # # #. . .. . .. . .. . . . . . $ $ $1 1 14/ / /&! ! !*- - -
: 
: 
:0 0 0$8 8 8= = = = =rY   r\  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 )Nr   ro  r   r  r  )r   r   r   r   rA   rt   r  s      rW   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0rY   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   rI   r?  )r   r   r   rA   rt   r   r   r3   )rS   rC   rB   s      rW   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0rY   N)r   r   r   r  r  r]   rY   rW   r  r    s2        1 1 1(1 (1 (1 (1 (1rY   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rv   )	rR   r   r   
zeros_liker   r   r   rh  r4   )rS   ordinary
empty_mask	with_masks       rW   test_ndenumerate_nomaskedz)TestNDEnumerate.test_ndenumerate_nomasked5  s    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rY   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   rh  r4   rM  rR   ndindexr   )rS   rB   rC   r[   s       rW   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rY   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  rx  )r?   r?   r   r?   ry  r   ))r   r   ))r<   r   r   )r  r   )rJ   rl   )r  r   Fr  )	r   rR   r   r   r   rh  r4   rc   r   )rS   rB   items
coordinatevalues        rW   test_ndenumerate_mixedmaskedz,TestNDEnumerate.test_ndenumerate_mixedmaskedL  s    2..v66+||+||+||-. . .G G GT+a..))5111Sk!>>>??@@!&III!,Q5!A!A!A 	/ 	/J:....	/ 	/rY   N)r   r   r   r  r  r  r]   rY   rW   r  r  3  sG        	E 	E 	E
M 
M 
M
/ 
/ 
/ 
/ 
/rY   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 )Nr   ro  r   r   r   rp   r  r   r   r  r?   r   r<   r   r5   r   r   r   rA   r6   rt   rS   rB   rC   r[   r  s        rW   test_stack_1dzTestStack.test_stack_1d[  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0rY   c                    t          g dd          }t          g dd          }t          ||gd          }t          |j        d           t	          |j        |d         j                   t	          |j        |d	         j                   t          ||g          }t	          |j        |j                   t	          |j        |j                   t          ||gd	          }t          |j        d
           t	          |j        |d d df         j                   t	          |j        |d d d	f         j                   d S )Nr   Tr   r  Fr   r   r  r?   r  r  r  s        rW   test_stack_maskszTestStack.test_stack_masksm  s+   ...///1a&q!!!QWf%%%161Q49---161Q49---Aq6NN1616***1616***1a&q!!!QWf%%%161QQQT7<000161QQQT7<00000rY   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   rl   r<   r   r   r;   r?   r0  ).r   ).r?   )r   r<   r   r   )rR   r  randintri  r   r   r5   r   r   r   rA   )
rS   shpd1d2r   r   a1rj  r[   c_shps
             rW   test_stack_ndzTestStack.test_stack_nd  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3rY   N)r   r   r   r  r  r  r]   rY   rW   r  r  Y  sA        1 1 1$1 1 1$)4 )4 )4 )4 )4rY   r  )O__doc__r  r  r   numpyrR   numpy._core.numericr   numpy.testingr   r   numpy.ma.testutilsr   r   r   r	   numpy.ma.corer
   r   r   r   r   r   r   r   r   r   r   numpy.ma.extrasr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r9   r   r  r+  r;  r  r  r  r  r3  rH  r\  r  r  r  r]   rY   rW   <module>r     s]              4 4 4 4 4 4                                                                                                                           D~9 ~9 ~9 ~9 ~9 ~9 ~9 ~9B). ). ). ). ). ). ). ).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T1 T1 T1 T1 T1 T1 T1 T1n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x= x= x= x= x= x= x= x=v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4rY   