
    ؔ j҅                       d Z dZddlZddlZddlZddl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ZddlZddlmc mZ ddlmc mZ ddlZddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$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?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZ dd	lmZmZmZmZmZmZmZmZ dd
lmZmZmZ ddlmZ ej        Zd dD             Zd eD             ZdZde dZ G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d  d!          Z G d" d#          Z G d$ d%          Z G d& d'          Z G d( d)          Z G d* d+          Z G d, d-          Z G d. d/          Z G d0 d1          Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zej                            d>ee?          ej                            d@ee?          ej                            dA          dB                                     ZdC ZdD Zej                            ej        j        dEk    dFG          dH             ZdI ZdJ ZdK ZdL ZdM Zej                            dNej        j        dOfej        j        dPfej        j        dQfej        j        dRfg          dS             Zej                            dNej        j9        dTfej        j:        dUfej        j        dVfej        jF        dWfg          dX             ZdS )YznTests suite for MaskedArray & subclassing.

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
zPierre GF Gerard-Marchant    N)reduce)ndarray)asbytes)	AxisError)hMAErrorMaskedArray	MaskErrorMaskTypeabsabsoluteaddallallcloseallequalalltrueangleanomarangearccosarccosharcsinarctanarctan2argsortarrayasarraychooseconcatenate	conjugatecoscoshcountdefault_fill_valuediagdivideempty
empty_likeequalexpfilledfix_invalidflatten_maskflatten_structured_arrayfromflexgetmaskgetmaskarraygreatergreater_equalidentityinnerisMaskedArrayless
less_equalloglog10	make_maskmake_mask_descrmask_ormaskedmasked_arraymasked_equalmasked_greatermasked_greater_equalmasked_insidemasked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_optionmasked_valuesmasked_wheremaxmaximummaximum_fill_valueminminimumminimum_fill_valuemodmultiplymvoidnomask	not_equalones	ones_likeouterpowerproductputputmaskravelrepeatreshaperesizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh	transposewherezeros
zeros_like)assert_assert_almost_equalassert_array_equalassert_equalassert_equal_recordsassert_mask_equalassert_not_equalfail_if_equal)IS_WASMassert_raisestemppath)requires_memoryc                 6    g | ]}t          j        |          S  )npdtype.0dt_s     lC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\numpy/ma/tests/test_core.py
<listcomp>r      s     
8
8
8S28C==
8
8
8    z?bhilqBHILQefdgFDc                     g | ]	}|j         
S r|   )charr   s     r   r   r      s    
'
'
'38
'
'
'r   Gsetting an item on a masked array which has a shared mask will not copyz	ignore:.*z':numpy.ma.core.MaskedArrayFutureWarningc                   4   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 Zd Zd Zd Zd Zd Zd Zej                            e          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* Z0d+ Z1d, Z2d- Z3d. Z4d/ Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z;d6 Z<d7 Z=ej        >                    d89          d:             Z?ej        >                    d;9          d<             Z@d= ZAd> ZBd?S )@TestMaskedArrayc                    t          j        ddddt          dz  dddddddg          }t          j        g d	          }d}g d
}g d}t          ||          }t          ||          }t          j        g d          }t          |g d          }	t          j        |d|          }
|                    d           |||||||||	|
f
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   mask)      r         ?g?r   r   r   r   @xDr}   r   pir>   rl   set_fill_valueselfxya10m1m2xmymzzmxfs              r   _create_datazTestMaskedArray._create_data       Hb"b#rCxRsBBOPPHJJJKK111111!"%%%!"%%%H&&&''!,,,///Xb%##
%   !S"b"b!R33r   c                 N   t          g d          }t          g dg d          }t          |j        d           t          |j        d           t          |j        d           t          |j        d           t          |j        d           t          |j        d           d S )Nr         r   r   r   r   r   r   r   )r   rr   ndimsizer`   r   abs      r   test_basicattributesz$TestMaskedArray.test_basicattributes   s    ))))))))),,,QVQQVQQVQQVQQWd###QWd#####r   c                    t          d          }t          t          |          d           t          dd          }t          t          |          t          t                               t          dd          }t          t          |          d           t	          dd          }t          |                                j        |j        j        u            d S )Nr   0Tr   Fr   )	r>   rr   strrG   r   ro   r*   r~   _datar   r   s     r   test_basic0dzTestMaskedArray.test_basic0d   s    OOSVVS!!!&&&SVVS!455666'''SVVS!!!!!

 AGM122222r   c           
         |                                  \
  }}}}}}}}}}t          t          |                      t          t          |                     t          ||z
                      d                                                     t          |j                            t                    |j                            t                               |j	        }	t          t          j	        |          |	           t          |j	        |	           t          |j        |j                   t          |j        |j                   t          |j        t          d |	                     t          t          |          t!          |          t          d |          z
             t#          ||           t#          t          |d          |           t#          ||           d S )Nr   c                     | |z  S Nr|   r   r   s     r   <lambda>z.TestMaskedArray.test_basic1d.<locals>.<lambda>   s
    !a% r   c                     | |z   S r   r|   r   s     r   r   z.TestMaskedArray.test_basic1d.<locals>.<lambda>   s
    a!e r   r   )r   ro   r5   r*   anyrv   r   astypeintr`   rr   r}   r~   r   r   r"   lenrq   )
r   r   _r   r   r   r   r   r   ss
             r   test_basic1dzTestMaskedArray.test_basic1d   s   ,0,=,=,?,?)1aQB2rM!$$$%%%b!!"""b  ##''))***bgnnS))27>>#+>+>???GRXb\\1%%%RXq!!!RXqw'''RXqw'''RWf%7%7;;<<<U2YYB&1C1CR*H*H HIII2r"""6"e,,b1111b!!!!!r   c           
      6   |                                  \
  }}}}}}}}}}dD ]u}|                    |          }|                    |          }|                    |          }|                    |          }|                    |          }t          t          |                      t          t          |                     t	          t          |          |           t	          |j        |           t	          |j        t          d |                     t	          t          |          t          |          t          d |          z
             t	          ||           t	          t          |d          |           t	          ||           wd S )N)   r   )   r   c                     | |z  S r   r|   r   s     r   r   z.TestMaskedArray.test_basic2d.<locals>.<lambda>   s
    a!e r   c                     | |z   S r   r|   r   s     r   r   z.TestMaskedArray.test_basic2d.<locals>.<lambda>   s
    !a% r   r   )r   r^   ro   r5   rr   r`   r   r   r"   r   r*   )	r   r   r   r   r   r   r   r   r   s	            r   test_basic2dzTestMaskedArray.test_basic2d   so   +/+<+<+>+>(1aQB1b! 	  	 A		!A		!AABABABa((()))M"%%&&&rA&&&1%%%&););Q"?"?@@@rCGGf5G5G.L.L$LMMMR   E**B///B	  	 r   c           
         |                                  \
  }}}}}}}}}}t          t          j        ||f          t          ||f                     t          t          j        ||f          t          ||f                     t          t          j        ||f          t          ||f                     t          t          j        |||f          t          |||f                     d S r   )r   rr   r}   r   )r   r   r   r   r   r   s         r   test_concatenate_basicz&TestMaskedArray.test_concatenate_basic   s    )-):):)<)<&1aAr2q!QR^QF++["b-B-BCCCR^QF++[!Q-@-@AAAR^QF++["a-A-ABBBR^Q1I..QAJ0G0GHHHHHr   c           
         |                                  \
  }}}}}}}}}}	d}
|                    |
          }|                    |
          }|                    |
          }|                    |
          }|	                    |
          }	t          |j        t	          j        ||
                     t          |j        t	          j        ||
                     t          ||fd          }t          t	          j        ||fd          |           t          t	          j        |j        |j        fd          |j                   t          d          }t          t          d          ddg          }t          ||f          }t          |g d           t          |j        g d           t          ||f          }t          |g d	           t          |j        g d
           d S )Nr   r   r   r   FTr   )r   r   r   r   )FFFTr   r   r   r   )FTFF)r   r^   rr   r   r}   r   _maskrm   r   rU   rq   )r   r   r   r   r   r   r   r   r   r   r   xmyms               r   test_concatenate_alongaxisz*TestMaskedArray.test_concatenate_alongaxis   s   ,0,=,=,?,?)1aRRArIIaLLIIaLLZZ]]ZZ]]ZZ]]RWbjQ//000RWbjQ//000B8Q''R^QFA..555R^RWbg$6::DJGGG!HH$q''...A1lll+++16#>#>#>???A1lll+++16#>#>#>?????r   c           
      >   t          t          t          t          j                            d          t          j        d                              dt          fdt          fg          }t          |d d         |dd          g          }t          ||           d S )N
   r   r   r~      )r>   listzipr}   randomrandr   floatr   r   rs   )r   datatests      r   test_concatenate_flexiblez)TestMaskedArray.test_concatenate_flexible  s    DRY^^B%7%7%'Yr]]"4 "4 5 5$'<#s"<> > > D!Hd122h/00T4(((((r   c                     t          g dg dd          }t          |j        d           t          |j        g dg           t          |j        g dg           d S )Nr   r   r   r   r   r   r   )r   ndminr   r   )r   rr   r`   r   r   r   s     r   test_creation_ndminz#TestMaskedArray.test_creation_ndmin  sf    ))))))1555QWf%%%QWyyyk***QWyyyk*****r   c                     t          g d          }t          |d<   t          |dt                    }t          |j        |j        j                   t          |j        |j        j                   d S )Nr   r   )r   r~   )r   r=   r   rr   r`   r   r   r   xxs      r   $test_creation_ndmin_from_maskedarrayz4TestMaskedArray.test_creation_ndmin_from_maskedarray  sb    )))"1AU+++QWagm,,,RXrx~.....r   c                 `   t          dt                    }t          |g d<   t          |          }t	          |j        |j                   t          |          }t	          |j        |j                   t          |g ddz            }t          |j        |j                   t          g dd          }t	          |j        g d	           t          g dd
          }t	          |j        g d           t          g d|j        d
          }t          t          j        |j        |j                             t          g d|j        d          }t          t          j        |j        |j                              t          g dd           }t	          |j        g d           d S )N   r   )r   r      r   r   r   r   r   r   r   TTTTFFFFr   copy)r   r   r=   r   rr   r   rv   r   r   ro   r}   may_share_memory)r   r   dma_1dma_2dma_3r   r   s          r   test_creation_maskcreationz*TestMaskedArray.test_creation_maskcreation&  s   b&&&!ZZZD!!UZ+++E""UZ,,,Eq(8999ej%*---)))$'''QW000111)))%(((QW333444)))!'666#AFAF33444)))!'555B'777888)))$'''QW33344444r   c                     t          j        t           j        j                   t	          j        t                    5  t          j        dt           j        j        g           d d d            d S # 1 swxY w Y   d S )Nr   )r}   r   mar=   pytestwarnsUserWarningr   s    r   *test_masked_singleton_array_creation_warnsz:TestMaskedArray.test_masked_singleton_array_creation_warns<  s     	\+&& 	) 	)
 Hb"%,'(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   &A00A47A4c                    t          t          j        d          g d          }t          ||d d d         f          }t          |g dg dg           t          |j        g dg dg           t
          |_        t          ||d d d         f          }t          |g dg dg           t          |j        t
          u            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   rr   r   rS   r   ro   )r   r   r   s      r   'test_creation_with_list_of_maskedarraysz7TestMaskedArray.test_creation_with_list_of_maskedarraysG  s    ")A,,___555a44R4\""TOOO___=>>>TZ///???!CDDDa44R4\""TOOO___=>>>	V#$$$$$r   c                 ~   t           j                            ddgddg          }t          j        d          }t           j                            ||gd          }t          |j        ddgddgg            G d	 d
          }t           j                             |            dgddg          }t          j        t          d          5  t          j        |gt                     d d d            n# 1 swxY w Y   t           j                            ||g          }t          |j        ddgddgg           d S )Nr   r   TFr   r   U21r   c                       e Zd Zd ZdS )UTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast.<locals>.NotBoolc                      t          d          )Nnot a bool!)
ValueErrorr	  s    r   __bool__z^TestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast.<locals>.NotBool.__bool__]  s     ///r   N)__name__
__module____qualname__r  r|   r   r   NotBoolr  \  s#        0 0 0 0 0r   r  r  match)r}   r  r>   r   r   rq   r   r  raisesr  bool)r   
masked_str
normal_intresr  
masked_objs         r   4test_creation_with_list_of_maskedarrays_no_bool_castzDTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_castS  s   U''c
$'GG
Yq\\
emmZ4EmBB38tUmeU^%DEEE	0 	0 	0 	0 	0 	0 	0 	0 U''C(8e}'MM
]:];;; 	1 	1J
|40000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 emmZ45538tUmeU^%DEEEEEs   C66C:=C:c                 f    t          j        dgddgddgddgd	          }t          |           d S )
N)Ar   f0f1S4i8r      )namesformatsoffsetsr   r}   r   r   s     r   'test_creation_from_ndarray_with_paddingz7TestMaskedArray.test_creation_from_ndarray_with_paddingg  sK    HhZ$48$<45q6(; (; < < < 	ar   c                     t          j        t          d          5  t          g dg d           d d d            d S # 1 swxY w Y   d S )Nzunexpected keyword argumentr  r   r   r   r   )maks)r  r  	TypeErrorr   r	  s    r   test_unknown_keyword_parameterz.TestMaskedArray.test_unknown_keyword_parameterm  s    ]9,IJJJ 	3 	3						2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   ?AAc                 D   |                                  d         }d|_        d|_        t          |          }t	          |j        |j                   t	          |j        |j                   t	          |j        |j                   t	          |j        |j                   d S )Nr   T)r   
fill_value	_hardmaskr   rr   r   r   )r   r   xmms      r   test_asarrayzTestMaskedArray.test_asarrayq  s      #bkkSY)))SY)))S^R]333S]BL11111r   c                     t          j        d          j        }t          |j        j                    t          |          }t          |j        j                   d S )Nr   r}   eyeTro   flagsc_contiguousr   r   mnew_ms      r   test_asarray_default_orderz*TestMaskedArray.test_asarray_default_order{  sK    F1IIKAG(()))

()))))r   c                     t          j        d          j        }t          |j        j                    t          |d          }t          |j        j                   d S )Nr   Corderr=  rB  s      r   test_asarray_enforce_orderz*TestMaskedArray.test_asarray_enforce_order  sR    F1IIKAG(()))%%%()))))r   c                 (   t          j        d          5  t          t           j        ddgg d          }t	          |          }t          |j        |j        ddg           t          |j        g d           d d d            d S # 1 swxY w Y   d S )Nignoreinvalidr   r   r   r   r   r   )r   r   r   )	r}   errstater>   nanr+   rr   r   r8  r   )r   r   
data_fixeds      r   test_fix_invalidz TestMaskedArray.test_fix_invalid  s    [*** 	9 	9R 0yyyAAAD$T**J)DOR+DEEE)<<<888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A$BBBc                    t          d          }t          |d<   t          t          t                    dk               t          |d         t          u            t	          t          |d         d          d           d S )Nr   r   --r   )r   r=   ro   r   rr   r*   r   s     r   test_maskedelementz"TestMaskedArray.test_maskedelement  sg    1II!Ft#$$$!VAaD!__a(((((r   c                    t          dt                    }d}||d<   t          |d         |           t          |d         |u            dd l}|j                                        }||d<   t          |d         |u            d S )Nr   r   r   r   r   r   r   r   )r&   objectrr   ro   datetimenow)r   r   r   rZ  dts        r   test_set_element_as_objectz*TestMaskedArray.test_set_element_as_object  s    !6"""!QqT1!	""$$!!
r   c           	         t          j        g d          }t          |g d          }t          |g d          }t          |          }t          |           t          |           t	          t          j        |          t          |d                     t          t          |d                   t          |d                   u            t          |d         |d         k               t          |d         t          u            t	          |d	         |d	                    t	          |d	d
         |d	d
                    t	          |d d          |d d                     t	          |dd          |dd                     d|d	<   d|d	<   t	          ||           d|dd<   d|dd<   t	          ||           t          |d<   t	          ||           t          |dd<   t	          ||           ||d d <   t          |d<   t          t          t          |          t          g d                               t          g dg d          |d d <   t          t          t          |          t          g d                               t          g dg d          |d d <   t          t          t          |          t          g d                               t          t          |t          g d                               t          j        d
          dz  }t          |d          }t	          ||           t          t          t          g dt                    |j                             t	          d|j                   t          g dt"                    }t          j        g dt"                    }|d         }|d         }t	          t          |          t                     t	          t          |          t                     t	          ||           t          |dd         j        dk               d S )N)r   r   r   r   r   r   r   r   r   r   Fendwithr   r   r   r   	   c   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   )r   hellor   r   r   )r}   r   r   reprrr   rd   ro   typer=   r   r/   r>   r   rH   r
   r   r8  rY  r`   )r   x1x2x3x4s1s2s          r   test_indexingzTestMaskedArray.test_indexing  s   Xlll##2LLL)))2LLL)))2YYBRRWR[[$r5"9"9"9:::RUtBqE{{*+++1A1   RUBqE"""R!Wb1g&&&RUBqqqE"""RVRV$$$11R1Q31Q3R1R1Q3R1111eLLL&9&9::;;;\\\<<<88111eLLL&9&9::;;;\\\<<<88111eLLL&9&9::;;;U<<<0011222Yq\\C2s##R9927CCDDDS"-(((%%%v..X(((&11UUT"XXs###T"XXs###R1Q3%&&&&&r   c                    t           j                            d                              d          }t	          ddd          ddgf}t           j                            d          }t           j        |j        d<   |||<   t           j        j        |d<   t           j                            d	t           j	        
          }t           j        
                    g dg d          }||d<   ||g d<   d S )N<   )r   r   r   r   r      r   r   .r   r   )gCD pr   r   TFFr   r   r   r   )r}   r  r   r^   slice
masked_allinfr   r=   float32r   )r   r   indexvalues       r   test_setitem_no_warningz'TestMaskedArray.test_setitem_no_warning  s    
 ELL$$W--q!Q!Q(  ((6C%#ELL2:L..MMM0D0D0DEE#)))r   c                 
   g d}t          |          }t          |          }t          ||u            t          |d          }t          ||u           t          j        d          }t	          ||          }t          |j        j        |j                   t          t          ||j	                             t          |j
        j        |j                   t	          |          }t          |j        j        |j        j        k               t          |j
        j        |j
        j        k               t	          ||          }t          |j        j        |j        k               t          |j
        j        |j        k               t          |d         t          u            d|d<   t          |d         t          u           t          |j
        j        |j        k               t          t          |j        d                     t	          ||d	
          }	t          |	j        j        |j        k               t          |	j
        j        |j        k               t          |	d         t          u            d|	d<   t          |	d         t          u           t          |	j
        j        |j        k               t          t          |	j        d                     t	          |dz  |          }
t          t          |
          j        |dz  j        u            t          d          }t          |d<   t          |d          }t          t!          ||g          |           t          t#          |          g d           t%          |dd          }t          |g d           t%          |dd          }t          ||           |                    dd          }t          ||           |                    dd          }t          ||           |                                }t          |j        |j                   t          |j
        |j
                   t)          g dg d          }t)          |          }t          |j        j        j	        |j        j        j	                   t          |j
        j        j	        |j
        j        j	                   t)          |d          }t-          |j        j        j	        |j        j        j	                   t-          |j
        j        j	        |j
        j        j	                   d S )Nr   r   r   r   r   Tr   r   r   r   rb  r   r   r   r   r   )r+  )r   r   r   r   r   r   r   r   )r   r   r   r   axis)r   r   r   r   r   r   r   r   r   r2  )r:   ro   r}   r   r   rr   r   __array_interface__r   r   r   r=   r   r*   r~   r_   r   r/   r]   r   r>   ctypesru   )r   nrC  r   m3rj  y1y1ay2y2ay3rm  y4y5y6y7y8y9r   r   s                       r   	test_copyzTestMaskedArray.test_copy  s    OOaLLq\\Rqt$$$Yq\\2ARX123IJJJRW%%&&&RX113HIIIBii	-,- 	. 	. 	.	-,- 	. 	. 	. 2B,0FFGGG,0FFGGG1   11V#$$$,0FFGGG!$$%%%BQQ'''	-1GGHHH	-1FFGGGA& !!!AAf$%%%	-1FFGGG1%%&&&28!$$$r

 R#X$44555AYY1B["b**B///WR[[":":":;;;B1---R111222B"""RYY|!Y,,RYYq!__RWWYYRXrx(((RXrx(((333OOQW^(!'.*=>>>QW^(!'.*=>>>&&&,agn.ABBB,agn.ABBBBBr   c                     t           j                            dd          }|                                }t	          |j        d           d S )N+   Tr   )r}   r  r   r   rr   r   )r   r   xcs      r   test_copy_0dzTestMaskedArray.test_copy_0d5  s>    EKKK&&VVXXRWd#####r   c                     t          t          t          j                            g d                               t          t          t          j                            d                               d S )Nr   )ro   r5   r}   r  r   r	  s    r   test_copy_on_python_builtinsz,TestMaskedArray.test_copy_on_python_builtins;  sT    bejj3344555bejj334455555r   c                     t           j                            g d          }t           j                            g d          }|j        }|j         t	           |            g d           d S )Nr   r   r   r   )r}   r  r   r   rr   )r   r   r   a_copy_methods       r   test_copy_immutablez#TestMaskedArray.test_copy_immutable@  s^    EKK			""EKK			""	]]__iii00000r   c                    ddl m} t          g dg d          } ||          }t          |j        |j                   t          t          |j                  t          |j                             d|d<   t          |j        g d           t          |j        g d            ||          }t          |j        |j                   d	|j        d<   t          |j        g d           t          |j        g d           d S )
Nr   )deepcopyrv  FTFr   r   r   r   r   r2  F)r   r  r   rr   r   ru   idr   )r   r  r   copieds       r   test_deepcopyzTestMaskedArray.test_deepcopyH  s   !!!!!!)))"6"6"6777!V[!&)))AGb&6&6777q	V[))),,,QVYYY'''!V[!&)))AV[))),,,QVYYY'''''r   c                    t          g dg d          }t          t          |          d           t          t          t                    d           t          t          t          d          d           t	          j        t                    5  t          t          d          }d d d            n# 1 swxY w Y   t          |d           d S )Nrv  r  r   [0 -- 2]rU   z >5)r   rr   formatr=   r  r  FutureWarning)r   r   with_format_strings      r   test_formatzTestMaskedArray.test_formatY  s    )))"6"6"6777VAYY
+++VF^^T***VFB''... \-(( 	7 	7!'!6!6	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7'.....s   B33B7:B7c           	      `   t          g dg d          }t          t          |          d           t          t          |          t	          j        d                     t          j                            d          }t          j        j	        |dd<   t          t          |          t	          j        d	                     t          j                            d
          }t          t          |          t	          j        d                     t          g dg dgt          j
                  }t          j        j	        |d<   t          t          |          t	          j        dt          j         d          d         d                     t          t          |d d                   t	          j        dt          j         d          d         d                     t          t          |                    t                              t	          j        d                     d S )Nrv  r  r   r  z            masked_array(data=[0, --, 2],
                         mask=[False,  True, False],
                   fill_value=999999)  r   2   z            masked_array(data=[0, --, --, ..., 1997, 1998, 1999],
                         mask=[False,  True,  True, ..., False, False, False],
                   fill_value=999999)   z            masked_array(data=[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13,
                               14, 15, 16, 17, 18, 19],
                         mask=False,
                   fill_value=999999)r   r  r   r   r   z            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=?B r|   z,
              dtype=int8)z            masked_array(data=[[1, 2, 3]],
                         mask=[[False, False, False]],
                   fill_value=z%,
                        dtype=int8)z            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=999999))r   rr   r   rh  textwrapdedentr}   r  r   r=   int8r   r   r   r   s     r   test_str_reprzTestMaskedArray.test_str_reprh  s"   )))"6"6"6777SVVZ(((GGO ) * *	
 	
 	
 ELL%,!B$GGO ) * *	
 	
 	
 ELLGGO ) * *	
 	
 	
 999iii(888%,$GGO  (6**2.    
	
 
	
 
	
 	2A2KKO '  "x//3' ' ' ( (	
 	
 	
 	#O $ % %		
 		
 		
 		
 		
r   c                    t          j                    }t          j        d           	 t          g dg d          }t	          t          |          d           t	          t          |          d           t           j                            d          }t           j        j	        |d	d
<   t	          t          |          d           t          j        di | d S # t          j        di | w xY w)Nz1.13)legacyrv  r  r   r  zcmasked_array(data = [0 -- 2],
             mask = [False  True False],
       fill_value = 999999)
r  r   r  zmasked_array(data = [0 -- -- ..., 1997 1998 1999],
             mask = [False  True  True ..., False False False],
       fill_value = 999999)
r|   )
r}   get_printoptionsset_printoptionsr   rr   r   rh  r  r   r=   )r   oldoptsr   s      r   test_str_repr_legacyz$TestMaskedArray.test_str_repr_legacy  s   %''
6****	+iii&:&:&:;;;AQ,,,a #B C C C T""AelAadGQ0   **'*****B**'****s   B!C C1c                    d}t          |          }t          j                            |          }t          j                            |d          }t	           ||          |           t	           ||          d           d S )Nu   caféTr   rU  )ri  r}   r  r   rr   )r   uutype
arr_nomask
arr_maskeds        r   test_0d_unicodezTestMaskedArray.test_0d_unicode  st    QU[[^^
U[[[..
UU:&&***UU:&&-----r   c           	      f   t           t          t          t          fD ]}t	          d                              |          }d|_        g dddf}t          dt          j	        dz             D ]}|D ]}||_
        t          j        t          j        ||                    }t          |j        |j                   t          |j        |j                   |t          t           fv rt          |j        d           nt          |j         |d                     t!          |j
        |           Đd S )	Nr     )
r   r   r   r   r   r   r   r   r   r   TFr   r   protocol)r   r   r   rY  r   r   r8  rangepickleHIGHEST_PROTOCOLr   loadsdumpsrr   r   r   rq   )r   r~   r   masksprotor   	a_pickleds          r   test_picklingzTestMaskedArray.test_pickling  s;   5#v. 	= 	=Er

!!%((AAL333E q&"9A"=>> 
= 
=! 	= 	=D!AF &V\!e-L-L-L M MI !'::: !':::- G$Y%93????$Y%955::FFF&y~t<<<<	=
=	= 	=r   c                    t          j        ddgdt          fdt          fg                              t           j                  }t          |ddg          }t          d	t          j	        d
z             D ]}t          j
        t          j        ||                    }t          |j        |j                   t          ||           t          t          |j        t           j                             d S )N)r   r   )r   r   r   r   r   TFFTr   r   r   r  )r}   r   r   r   viewrecarrayr>   r  r  r  r  r  rr   r   ro   
isinstancer   )r   r   r   r  r  s        r   test_pickling_subbaseclassz*TestMaskedArray.test_pickling_subbaseclass  s    Hh) %L3*57 7 77;tBK7H7H 	
-!?@@@1f59:: 	> 	>EV\!e%D%D%DEEI!'222A&&&Jy<<====		> 	>r   c                 T   t           j        j        }t          dt          j        dz             D ]x}t	          j        t	          j        ||                    }t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   yd S )Nr   r   r  )r}   r  r=   r  r  r  r  r  rr   
_baseclassr   r   )r   mcr  
mc_pickleds       r   test_pickling_maskedconstantz,TestMaskedArray.test_pickling_maskedconstant  s    U\1f59:: 	5 	5Efl2&F&F&FGGJ.>>>)28444)284444		5 	5r   c                 6   t          ddgddgdt          fdt          fg          }t          dt          j        d	z             D ]T}t	          j        t	          j        ||
                    }t          |j	        |j	                   t          ||           Ud 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  rr   r   )r   r   r  r  s       r   test_pickling_wstructuredz)TestMaskedArray.test_pickling_wstructured  s    7G$FF+;sc5\24 4 41f59:: 	' 	'EV\!e%D%D%DEEI!'222A&&&&	' 	'r   c                    t          d                              d          }|j        }t          dt          j        dz             D ]:}t	          j        t	          j        ||                    }t          ||           ;d S )Nr   )r   r   r   r   r  )	r   r^   r?  r  r  r  r  r  rr   )r   r   r   r  r   s        r   test_pickling_keepalignmentz+TestMaskedArray.test_pickling_keepalignment   s~    2JJ((C1f59:: 	" 	"E<Q ? ? ?@@Dq!!!!	" 	"r   c                     t          g d          }t          g dg d          }t          |d         j        d           t          |d         j        d           t          |d         j        d           d S )Nr   r   r   r   r|   r   )r   rr   r`   r   s      r   test_single_element_subscriptz-TestMaskedArray.test_single_element_subscript  su    ))))))))),,,QqTZ$$$QqTZ$$$QqTZ$$$$$r   c                 t   t          dt          t          d                               t          dt          t          d                               t          dt          t          dggg                               t          dt          t          dgg                               t	          t
          t          t          ddg                     t          j                    5  t          j        ddt                     t          t          j        t          t          dgdg                                         t          g dg d          t	          t
          fd           t          t          d	                   d
           t          t          j        t          d                                        d d d            n# 1 swxY w Y   t	          t
          t                     t          t          d	                   d           t	          t          fd           d S )Nr   r   rL  z$Warning: converting a masked elementr   r   r   c                  "    t                     S r   )r   r   s   r   r   z/TestMaskedArray.test_topython.<locals>.<lambda>  s    U1XX r   r   r   r   r   c                  .    t           d                   S Nr   )r   r  s   r   r   z/TestMaskedArray.test_topython.<locals>.<lambda>#  s    s1Q4yy r   )rr   r   r   r   rx   r4  warningscatch_warningsfilterwarningsr  ro   r}   isnanr   r  s    @r   test_topythonzTestMaskedArray.test_topython  s   QE!HH&&&S%a//***QEQC5'NN++,,,S%se--...iq!f666$&& 	+ 	+#@+O O OBHU5!A3#7#7#78899:::iiiiii000A)%5%5%5%5666qur***BHU1Q4[[))***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	ia(((S2ZZ###g000011111s   ,CGGGc           	         t          d          }|                    dd          }d|j        d<   t          |d         dk               |d|z  z   }t	          |j        |           t	          |j        d|z             t	          |t          |          z  j        d|z  |z             d	|j        d
<   t          d          }t          |d<   t          t          |d                   t          t                    k               |dk    }t          t          t          |t          t                              dk               t          t          t          |t          t                              |j        k               t          ||          }t          |j        |j        u            t          |d         t          u            t          |d         t          u           t          |d         t          u           t          |d         t          u            t          |d         t          u            t	          ||           d S )Nr  r   r      r   r   y              $@r   e   r   .r   r+  r   rs  rb  )r   r^   flatro   rr   realimagr   r=   r   r"   rl   r`   rI   r~   )r   r   r   cs       r   test_oddfeatures_1z"TestMaskedArray.test_oddfeatures_1%  s   2JJIIaOOq	$2aKQVQQVR!V$$$a)A,,&,cAgk:::s2JJ!AaD		S[[()))FeAvv..//14555eAvv..//17:;;;A17"###!!F"###!F"###!!Qr   c                    t          g d          }t          g d          }t          |d<   t          |||           }t          |g d           t          |d<   t          |||           }t          |g d           t	          |d         t          u            t	          |d         t          u           t	          |d         t          u            d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r=   rl   rr   ro   r   r   r  r   s       r   test_oddfeatures_2z"TestMaskedArray.test_oddfeatures_2A  s    &&&''///""!!QOOQ---...!!QOOQ---...!!F"###!r   c                 @   d}t          j                    5  t          j        d|t          j        j        j                   t          dgd          }t          dg          }|j        }||         ||<   t          |dg           d d d            d S # 1 swxY w Y   d S )Nr   rL  r   Tr   r  )
r  r  r  numpyr  coreMaskedArrayFutureWarningr   r   rr   )r   msgatestbtestidxs        r   test_oddfeatures_3z"TestMaskedArray.test_oddfeatures_3O  s    W$&& 	& 	&##ux}EG G G 2$T***E2$KKE*CsE#J%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A0BBBc                     t           j                            dd          }t          |                    d          d         d           d S )Nr   Or   r   r   )r}   r  rx  rr   r*   r  s     r   test_filled_with_object_dtypez-TestMaskedArray.test_filled_with_object_dtype[  sA    EQc**QXXc]]1%s+++++r   c           
         t          dgdt          fddt          fg          }t          |d<   t	          |                                t          j         t          d          t          d          t          d          fg|j                             t          |d<   t	          |                    d	          t          j         d
g|j                             d S )Nr   r   r   ir   |S8fr   r   r   r   r   )r   1r   )	r   r   r   r=   rr   r*   r}   r#   r~   )r   flexis     r   test_filled_with_flexible_dtypez/TestMaskedArray.test_filled_with_flexible_dtype_  s    yk!3ZU|DF F FaU\\^^X 21 5 5 23 7 7 22 6 6 9 :AFN N N	O 	O 	O aU\\!__X|nEK@@@	B 	B 	B 	B 	Br   c                    dt           fdt          fg}t          ddg|          }|                                }t	          t          |          dt          d          f           |                    d          }t	          t          |          d	           d
|_        t	          t          |                                          d           d S )Nr   r   r   r   r  r  r   r   r   r   )r   r   r  )r   r  )r   r   rR   r*   rr   tupler#   r8  )r   ndtyper   r   s       r   test_filled_with_mvoidz&TestMaskedArray.test_filled_with_mvoidl  s    *sEl+'777xxzzU4[[1&8&<&<"=>>>xx!!U4[['***#U188::&&	22222r   c                    dt           fddt           fdt           fgfg}t          ddgddg|	          }|                    d
          }t          j        ddg|          }t	          ||           |d                             d
          }t          j        ddg|d         j                  }t	          ||           t          j                            dt          j        dg                    }t	          |j	        j        t          j        dddgdfg                     t	          |j
        j        t          j        dddgdfg                     d S )Nr&  BBABBr   r  r   rt  r   r  r   r  r  r   r   r  )r   r   r   r   r  r&  r   )r&  z(2,2)i1,(2,2)i1rt  )r'  i1rt  )r(  r'  rt  rt  )r'  ?rt  )r(  r(  rt  )r   r   r*   r}   rr   r~   r  r  rm   r   r   )r   r  r   r   controlZs         r   test_filled_with_nested_dtypez-TestMaskedArray.test_filled_with_nested_dtypez  s   *sdC[4+$>?@;,#[1A A Axx{{(K5VDDDT7###v}}Q(FF+1S6<@@@T7### HNN1ek+K*LMMNNQV\5;7K*>7@AG1I 0J $K $K 	L 	L 	LQV\5;7J*=7?@F1H 0I $J $J 	K 	K 	K 	K 	Kr   c                    t          t          j         ddgd          t          j         ddgd          d          }t          |j        d                    t          |                    d	          j        d                    d S )
Nrv  r  FrH  rO  r   )r   rI  F_CONTIGUOUSr   )r   r}   ro   r@  r*   r  s     r   test_filled_with_f_orderz(TestMaskedArray.test_filled_with_f_order  s    "(Iy1===xI 6cBBB   	'(((!.122222r   c                     t          g dt                    }d|j        d<   |                                }t	          |j        d         d           d|j        d<   t	          |j        d         d           d S )Nr   r   ???infoz!!!)r   r   _optinfor   rr   r   r   r   s      r   test_optinfo_propagationz(TestMaskedArray.test_optinfo_propagation  sq    +++U+++"
6FFHHQZ'///"
6QZ'/////r   c                    t          g d          }d|j        d<   t          |j        d         |dk    j        d                    t          |j        d         |dk    j        d                    t          |j        d         |dk    j        d                    t          |j        d         |dk    j        d                    t          |j        d         |dk    j        d                    t          |j        d         |dz   j        d                    t          |j        d         |dz
  j        d                    t          |j        d         |dz  j        d                    t          |j        d         |dz  j        d                    t          |j        d         |d d         j        d                    t          |j        d         |g d         j        d                    t          |j        d         t          j        |          j        d                    t          |j        d         t          j        |          j        d                    t          |j        d         t          |d          j        d                    t          |j        d         t          j        |          j        d                    d S )N)r   r   r   r   r|  keyr   )r   r   r   Tr  )r   r3  rr   r}   r)   r   rn   r  s     r    test_optinfo_forward_propagationz0TestMaskedArray.test_optinfo_forward_propagation  sP   ,,,#
5QZ&a(9%(@AAAQZ&a(9%(@AAAQZ&Q(8(?@@@QZ&a(9%(@AAAQZ&a(9%(@AAAQZ&Q(8(?@@@QZ&Q(8(?@@@QZ&Q(8(?@@@QZ&Q(8(?@@@QZ&"1"u(=>>>QZ&)))(=e(DEEEQZ&q		(:5(ABBBQZ&q		(:5(ABBBQZ&ad(;(;(;(DU(KLLLQZ&a(8(8(A%(HIIIIIr   c                 T   t          j        dt          fddt          fdt          fgfg          }t	          ddgddg|	          }d
}t          t          |          |           t          dg dg dgdfdg dg dgdfd          }d}t          t          |          |           d S )Nr   r   tr   )r   )r   r   )r   )r         @r%  r#  r  z[(--, (2, --)) (4, (--, 6.0))]r   )r   r   r   r   FTFTFFTint, (2,3)float, floatr   r   r~   z)(0, [[--, 0.0, --], [0.0, 0.0, --]], 0.0))r}   r~   r   r   r   rr   r   r>   )r   
fancydtyper   r)  t_2d0s        r   test_fancy_printoptionsz'TestMaskedArray.test_fancy_printoptions  s    XSzC3*sEl1K+LMNN
m]3&4%' ' ' 3SYY((( 1'6'8#&#( $)+>+>+>+?+?+?+A#(#* $<= = = >SZZ)))))r   c                 p   dt           fdt          fg}t          j        ddg|          }t	          |          }t          j        ddgddggt                    }t          ||           t          |j        |j                   t          ddgdd	g|
          }t	          |          }t          ddgddggddgddggt          
          }t          ||           t          |j        |j                   t          |j        |j                   dt           fddt           fdt          fgfg}t          ddgddg|
          }t	          |          }t          g dg dgg dg dgt          
          }t          ||           t          |j        |j                   t          |j        |j                   dt           fdt          fg}t          j        dgdgg|          }t	          |          }t          j        ddggddgggt                    }t          ||           t          |j        |j                   dddgfg}t          j        ddg|          }t	          |          }t          j        ddgddggd          }t          ||           t          |j        |j                   d S )Nr   r   r  rt  r   r   r   r  r  r  r   r   babb)r   )r   皙?)r   )r   皙@r#  r%  )r   r   rF  )r   r   rG  r2  r   )r   U5)r  rH  )NumPy)r   )r   )r  rI  r   r  rH  )r   r   r}   r   r-   rr   r~   r   )r   r  r   r   r)  arrs         r   test_flatten_structured_arrayz-TestMaskedArray.test_flatten_structured_array  s    *sEl+Hff%V444'**(RHr2h/u===T7###TZ///66"&&)9HHH'**"bB8, !fq!f-U< < <T7###TZ///TY---*sdC[4-$@AB=-0#[1A A A'**6'ii35B B BT7###TZ///TY---*sEl+Hvj6*-V<<<'**(b"XLB8,7uEEET7###TZ///k]34h-/DEVTTT',,(Wg.'0BC4PPPT7###TZ/////r   c                    dt           fdt           fg}t          j        dg|          d         }t          |          }t	          t          |t                               t          dgdg|          d         }t	          t          |t                               t          ddgddg|          }t          |j        d         |j        d                   }t	          t          |t                               d S )	Nr   r   r   r   r   r   r  r  r  )	r   r}   r   rR   ro   r  r>   r   r   )r   r  r   r  s       r   test_void0dzTestMaskedArray.test_void0d  s    *sCj)HgYf---a0!HH
1e$$%%%&???B
1e$$%%%&&)0@OOO!'!*agaj))
1e$$%%%%%r   c                    dt           fdt           fg}t          ddgddg|          }|d         }t          t          |t                               t          |d         |d         fd	           t          |d         d
           |d         }t          t          |t                               t          |d         t          u            t          |d         t          u            t          |d         d           t          ddgfgddgfgdg          }t          |d         d         |d         d                    t          |d         d         t          ddgddgd                     d S )Nr   r   rM  r   r  r  r  r   r  r   r   r   TF)r&  >i2r   r?  r&  rP  )r   r>   ro   r  rR   rr   r=   )r   r  r   r  r&  s        r   test_mvoid_getitemz"TestMaskedArray.test_mvoid_getitem  s   *sCj)'6*&&1A%' ' ' aD
1e$$%%%adAcF^V,,,QsVQaD
1e$$%%%!#& !!!QqT1 Ayk!%u/0 235 5 5 	QqT#Y#q	***QqT#Y1a&#Um5!: !: !: 	; 	; 	; 	; 	;r   c                     dt           fdt           fg}t          ddgddg|          }t          t          |d                   d	d
g           t          t          |d	                   t          dg           d S )Nr   r   rM  r   r  r  r  r   r   r   r   )r   r>   rr   r   r=   )r   r  r   s      r   test_mvoid_iterzTestMaskedArray.test_mvoid_iter  s}    *sCj)'6*&&1A%' ' ' 	T!A$ZZ!Q(((T!A$ZZ&!-----r   z,masked_print_option.set_display global statereasonc                 J   t          ddgdt          fdt          fg          }t          t          |d                   d           t          |d         d<   t
          j        }t          j        d           	 t          t          |d                   d	           t          t          |d                   d	           t          j        |           n# t          j        |           w xY wt          d
dgdg          }t          t          |d                   d           d S )Nr  rt  r   r   r   r   z(1, 1)z-X-z(1, -X-)r   rQ  )r   r
  z(1,))	r   r   rr   r   r=   rG   _displayset_displayrh  )r   mxini_displays      r   test_mvoid_printz TestMaskedArray.test_mvoid_print!  s    FF#S#Jc
+CDDDSAZZ***3
)2'...	9RUZ000bej111+K8888+K8888 D$<
|444SAZZ(((((s   8AC C)z masked_print_option global statec                 4   t          g dfgg dfgg dfdg          }t          t          |d                   dk               t          t          |d                   dk               t          dd	gd
dggfgddgddggfgdg          }t          t          |d                   dk               t          t          |d                   dk               t          dgdgddg          }t          t          |d                   dk               t          t          |d                   dk               t          dd	gd
dggdfgddgddggdfgddt          fg          }t          t          |d                   dk               t          t          |d                   dk               t          dgdgddg          }t          t          |d                   dk               t          t          |d                   dk               d S )Nr   r  )r  r  r  )r   <i4r   )r   r   r8  r~   r   z([1, --, 3],)r   r   r   r   FT)r   r_  rt  r?  z([[1, --], [--, 4]],)rM  r  )r   r_  )r   r_  z(--, 2)r   z([[1, --], [--, 4]], 1.0)r!  )Tr  )r   i4,i4z(--, (--, 1)))r>   ro   r   rh  r   )r   t_mat_2dt_0dt_nes        r   test_mvoid_multidim_printz)TestMaskedArray.test_mvoid_multidim_print3  sc    999,#7#7#7"9!:(@(@(@'B#5"68 8 8 	DG/000T!W0111 QFQF#3"5!6%*DMD%=#A"C!D#7"8: : : 	DG 77888T!W!88999&"/#/">@ @ @ 	DG	)***T!W*+++QFQF#3Q"7!8%*DMD%=#A5"I!J#7#u"FH H H 	DG ;;<<<T!W!<<===+"7!8#/"@B B B 	DG/000T!W011111r   c                    t          dgdg          }t          ddg          }t          ||gddgt                    }t          |d         |u            t          |d         |u           t          t          j        |d         j        |j        k                         t          t          j        |d         j                             d	|d         j        d<   t          |d         d	k               d S )
Nr   Tr   r   Fr  r   r   r   )r>   rY  ro   r}   r   r   r   )r   mx1mx2r[  s       r   test_object_with_arrayz&TestMaskedArray.test_object_with_arrayX  s    B4tf---B8$$3*E4=GGG11S !!!r!uzSX-..///r!uz""###1
1A"r   c                    t          g dg d          }t          d          5 }t          j        t                    5  t          j        ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r  r   z.npy)suffix)r>   ry   r  r  NotImplementedErrorr}   save)r   r   paths      r   2test_maskedarray_tofile_raises_notimplementederrorzBTestMaskedArray.test_maskedarray_tofile_raises_notimplementederrord  s   )))*>*>*>??? V$$$ 	"233 " "b!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s5   A: A"A:"A&	&A:)A&	*A::A>A>N)Cr  r  r  r   r   r   r   r   r   r   r   r   r   r  r
  r  r$  r0  r5  r;  rE  rJ  rS  rV  r]  rp  r}  r  markr  WARNING_MARK_SPECr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  r/  r5  r8  rB  rK  rN  rR  rT  thread_unsafer]  re  ri  ro  r|   r   r   r   r      s       4 4 4	$ 	$ 	$	3 	3 	3" " "$     (I I I@ @ @4) ) )+ + +/ / /5 5 5,	) 	) 	)
% 
% 
%F F F(  3 3 32 2 2* * ** * *9 9 9) ) )  0' 0' 0'd  $ [ 122FC FC 32FCP$ $ $6 6 6
1 1 1( ( ("/ / /D
 D
 D
L+ + +*. . .= = =,	> 	> 	>5 5 5' ' '" " "% % %2 2 2*  8     
& 
& 
&, , ,B B B3 3 3K K K(3 3 30 0 0J J J&* * *((0 (0 (0T& & &; ; ;2. . . [&TUU) ) VU)" [&HII"2 "2 JI"2H
 
 
" " " " "r   r   c            
       x   e Zd Zd Z ej        dd          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 Zd Zej                            dd          ej                            dg dg dg dg          ej                            dd d!g          d"                                     Zej                            d#d$d%g          d&             Zd' Zd( Zd) Z d* Z!d+ Z"d, Z#d- Z$d. Z%d/ Z&d0 Z'd1 Z(d2 Z)d3 Z*d4 Z+ej                            d5g d6          ej                            d7d d8g          d9                         Z,ej                            d5g d6          ej                            d7d d8g          d:                         Z-ej                            d;e.e/<          ej                            d=e.e/<          ej                            d7d d>g          d?                                     Z0ej                            d@e1j2        e1j3        g          dA             Z4ej                            d@e1j2        e1j5        g          dB             Z6ej                            d;e.e/<          ej                            d=e.e/<          ej                            d7d d>g          dC                                     Z7ej                            d;e.e/<          ej                            d=e.e/<          ej                            d7d d>g          ej                            d@e1j8        e1j3        e1j9        e1j5        g          dD                                                 Z:ej                            d5g d6          ej                            d@e1j8        e1j3        e1j9        e1j5        g          ej                            d7d dEg          dF                                     Z;ej        <                    dG          dH             Z=dI Z>dJ Z?dK Z@d S )LTestMaskedArrayArithmeticc                    t          j        ddddt          dz  dddddddg          }t          j        g d	          }d}g d
}g d}t          ||          }t          ||          }t          j        g d          }t          |g d          }	t          j        |d|          }
|                    d           |||||||||	|
f
S r   r   r   s              r   r   z&TestMaskedArrayArithmetic._create_datao  r   r   Tclassautousescopec              #      K   t          j                    }t          j        dd           |V  t          j        di | d S NrL  )r%   rN  r|   r}   geterrseterrr   errs     r   
err_statusz$TestMaskedArrayArithmetic.err_status~  K      ikk
	84444			
	Cr   c           
      r   |                                  \
  }}}}}}}}}}t          ddgddgg          }t          |ddgddgg          }	t          ||z  ||	z             t          ||z   ||	z              t          ||z
  ||	z
             dD ]}
|                    |
          }|                    |
          }|                    |
          }|                    |
          }|                    |
          }t          | |            t          ||z   ||z              t          ||z
  ||z
             t          ||z  ||z             t          ||z  ||z             t          ||z   ||z              t          ||z
  ||z
             t          ||z  ||z             t          ||z  ||z             t          ||z   ||z              t          ||z
  ||z
             t          ||z  ||z             t          ||z  ||z             t          |dz  |dz             t          t          |          dz  t          |          dz             t          ||z  ||z             t          t          j        ||          t          ||                     t          t          j        ||          t          ||                     t          t          j	        ||          t          ||                     t          t          j
        ||          t          ||                     d S )Nr   r   r   r   ))r  r   )r   r         @)r   r   r>   rr   r^   r   r}   r   rf   rQ   r%   )r   r   r   r   r   r   r   r   a2da2dmr   s              r   test_basic_arithmeticz/TestMaskedArrayArithmetic.test_basic_arithmetic  s%   ,0,=,=,?,?)1c1aRAraVaV$%%C1a&1a&!122S3Yd
+++S3Yd
+++S3Yd
+++( 	: 	:A		!A		!AABABAB!bS!!!QR(((QR(((QR(((QR(((q#(+++q#(+++q#(+++q#(+++S"s(+++S"s(+++S"s(+++S"s(+++aq)))Q3B3777ar***1s2r{{333Q**HR,<,<===Q**HR,<,<===1a&R..99993	: 	:r   c                    t          dt                                        d          }t          dt                    }||z  }t          |g dg dg           t          |j        g dg dg           ||d d d f         z  }t          |g dg dg           t          |j        g dg dg           t          dt                    }||d d d f         z  }t          |g d	g d
g           t          |j        g dg d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^   rr   r   r   r   r   r   s       r   test_divide_on_different_shapesz9TestMaskedArrayArithmetic.test_divide_on_different_shapes  s3   1E"""**6221E"""EQ7888QViii3444$'
NQ7888QViii34441E"""!!!T'
NQ,,,7888QViii344444r   c                     t          j        dg          }t          dg          }t          t          ||z   t                               t          t          ||z   t                               d S Nr   )r}   r   ro   r  r   )r   nar  s      r   test_mixed_arithmeticz/TestMaskedArrayArithmetic.test_mixed_arithmetic  s\    Xqc]]A3ZZ
27K00111
27K0011111r   c                     t          j        t                    j        }t	          |d|z  dg          }t          t          |dz            g d           t          t          d|z            g d           d S )Nr   r   r   r  r   )r}   finfor   tinyr   rr   r0   )r   r  r   s      r   test_limits_arithmeticz0TestMaskedArrayArithmetic.test_limits_arithmetic  sp    x#4dB'((\!a%(()))444\!a%(()))44444r   c                 P   t          dd          }t          dt          d          z  j                   t          d|z   j                   t          | j                   t          t          ||          j                   t          t	          ||          j                   d S )Nr   r   r   )r   ro   r   rK   rN   )r   r   s     r    test_masked_singleton_arithmeticz:TestMaskedArrayArithmetic.test_masked_singleton_arithmetic  s     11U1XX#$$$R"
B$%%%B$%%%%%r   c                    t          g dg d          }t          |d         dk    t          u            t          |d         dk    t          u            t          |d         dk    d           t          |d         dk    d           d S )Nr   r   r   r   r   r   r   FT)r   ro   r=   rr   r  s     r   test_masked_singleton_equalityz8TestMaskedArrayArithmetic.test_masked_singleton_equality  s    )))))),,,1v%&&&1v%&&&aeqj5)))aeqj4(((((r   c                 `   t          ddg          }|t          z  }t          |j        |j                   t          |j        ddg           |d         t          z  }t          |t          u            |t          z   }t          |j        |j                   t          |j        ddg           d S )Nr   r   Tr   )r>   r=   rr   r`   r   ro   r4  s      r   %test_arithmetic_with_masked_singletonz?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton  s    !Q  JQWag&&&QWtTl+++aD6MVJQWag&&&QWtTl+++++r   c                     t          dg          }|t          z   }t          |j        |j                   t          |j        dg           d S )Nr   T)r>   r=   rr   r`   r   r4  s      r   5test_arithmetic_with_masked_singleton_on_1d_singletonzOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singleton  sH    !JQWag&&&QVdX&&&&&r   c                    t          dd          }t          |                                j        j        |j        j                   t          d          dz  }t          |j        d           t          |j        ddg           d S )Nr   r   r  r   rQ  r   )r   rr   r*   r  r   r`   r   )r   r   r   s      r   test_scalar_arithmeticz0TestMaskedArrayArithmetic.test_scalar_arithmetic  st    !!QXXZZ&+QX];;;6]]RRXt$$$RWq!f%%%%%r   c           
      	   |                                  \
  }}}}}}}}}}t          t          j        |          t          |                     t          t          j        |          t	          |                     t          t          j        |          t          |                     t          t          j        |          t          |                     t          t          j        |          t          |                     t          t          j        |          t          |                     t          t          j	        t          |                    t          |                     t          t          j        t          |                    t          |                     t          t          j        t          |                    t          |                     t          t          j        |          t          |                     t          t          j        |          t          |                     t          t          j        |          t          |                     t          t          j        |          t!          |                     t          t          j        ||          t#          ||                     t          t          j        |          t%          |                     t          t          j        |d|z  z             t'          |d|z  z                        t          t          j        |d|z  z   d          t'          |d|z  z   d                     t          t          j        ||          t)          ||                     t          t          j        ||          t+          ||                     t          t          j        ||          t-          ||                     t          t          j        ||          t/          ||                     t          t          j        ||          t1          ||                     t          t          j        ||          t3          ||                     t          t          j        |          t5          |                     d S )N              ?T)deg)r   rr   r}   r    r!   ra   rb   ri   rj   re   r   r8   r9   r)   r   r   r   r   r   r   r(   rT   r6   r1   r7   r2   r   )r   r   r   r   r   r   r   r   s           r   test_basic_ufuncsz+TestMaskedArrayArithmetic.test_basic_ufuncs  sq   *.*;*;*=*='1aAr2q"aRVAYYB(((RWQZZb***RVAYYB(((RWQZZb***RVAYYB(((RWQZZb***RWSVV__d2hh///RVCFF^^SWW---RXc!ff%%uRyy111RVAYYB(((RYq\\6"::...RYq\\6"::...RYq\\6"::...RZ1%%wr2777R[^^Xb\\222RXa"q&j))5b2g+>+>???RXa"q&jd333U2R<T5R5R5RSSSRXa^^U2r]]333R\!Q''2r):):;;;RWQ]]DRLL111RZ1%%wr2777R]1a((*R*<*<===R%a++]2r-B-BCCCR\!__imm44444r   c                 r    t          j        t           j        j                  t           j        j        u sJ d S r   )r}   re   r  r=   r	  s    r   test_basic_ufuncs_maskedz2TestMaskedArrayArithmetic.test_basic_ufuncs_masked  s+    wru|$$444444r   c                    t          dt          d                     t          dt          ddg                     t          g dg d          }t          |          }t          |j        j        t          j        u            t          d|           |                    d          }t          |          }t          |j        j        t          j        u            t          d|           t          |d          }t          t          |t                               t          ddg|           t          t          |          t          u            t          g d          }t          |d          }t          t          |t                               t          |j        j        t          j        u            t          t          |j        d	           d S )
Nr   r   r   )r   r   r   r   r   r   rt  r   r  )rr   r"   r   ro   r~   ri  r}   intpr^   r  r   r/   rS   rx   r   )r   ottr"  s      r   test_count_funcz)TestMaskedArrayArithmetic.test_count_func  s   Qa!!!Qaqc***+++$$$<<<888Cjj	"')***Qkk&!!Cjj	"')***QCmm
3(()))aVS!!!&'''$$$%%Cmm
3(()))	"')***i333333r   c                 ~    t          dt          g d                     t          dt          d                     d S )Nr   r   r   rM  )rr   r"   r	  s    r   test_count_on_python_builtinsz7TestMaskedArrayArithmetic.test_count_on_python_builtins,  s:    Qiii(()))Qf&&&&&r   c           
      b   |                                  \
  }}}}}}}}}}t          j        |          }t          |          }t          t	          |          t          j        |                     t          t          |          t          j        |                     t          t          g dg d          g d           t          t          g dg d          g d           t          d          }t          d          dz
  }t          |d<   t          |d<   t          t          ||          t          t          ||          ||                     t          t          ||          t          t          ||          ||                     t          t          j        |          dk               t          t          j        |          d	k               t          d	                              dd          }t          |d
<   t          t          j        |d           d           d S )Nr   )r   r   rb  r   r   r   )r   r   rb  r   r   r   r   r   r  r  )r   r}   r\   rr   rJ   rK   r   rM   rN   r   r=   rl   r6   r1   ro   r^   )r   r   r   r   r   xrxmrs          r   test_minmax_funcz*TestMaskedArrayArithmetic.test_minmax_func1  s   (,(9(9(;(;%1aAr1aAXa[[BiiSWWgnS11222SWWgnS11222WYYY			22III>>>WYYY			22III>>>1II1IIM!!WQ]]E$q!**a$;$;<<<WQ]]E'!Q--A$>$>???q!!Q&'''q!!Q&'''1IIa##&	W^AD111155555r   c                    t          j        d          }t          ||          }t          t	          |t
                               t          |t          j        ||                     t          j        ||          }t          t	          |t
                               t          |t           j                            ||                     t          ||          }t          t	          |t
                               t          |t          j        ||                     t          j        ||          }t          t	          |t
                               t          |t           j                            ||                     d S )Nrt  )	r}   rU   rN   ro   r  r   rr   rW   rK   )r   r   aminimumamaximums       r   test_minimummaximum_funcz2TestMaskedArrayArithmetic.test_minimummaximum_funcJ  s-   GFOO1a==
8[11222Xrz!Q//000=A&&
8[11222Xrz//1556661a==
8[11222Xrz!Q//000=A&&
8[11222Xrz//15566666r   c                     t          g dg d          }t          j                            |          }t	          |d           d S )Nr   r   r   r   )r   r}   rK   r   rr   r   s      r   test_minmax_reducez,TestMaskedArrayArithmetic.test_minmax_reduce\  sJ    )))"7"7"7888Ja  Qr   c                    t           j                            d                                          }t	          t           j                            ddd          |          }d|_        dD ]}t          t           |          }t          t          j	        j
        |          }t          j        dt                    }	  ||d|	          }n# t          $ r Y nw xY wt          j        dt                    } ||d|	          }t          ||u            |                    d
            ||d|	          }t          ||u            d S )Nr  r   r   r   r   rM   rJ   r   r   r  outr  )r}   r   r   roundr   uniformr`   getattrr  r  r  r&   r   r	   r   ro   fill)r   r   r   funcnamenpfuncmafuncnoutresults           r   test_minmax_funcs_with_outputz7TestMaskedArrayArithmetic.test_minmax_funcs_with_outputb  sP   y~~b!!''))29$$QB//d;;;& 	$ 	$HR**FUX]H55F8D,,,D555   8D...DVBQD111FFdN###IIdOOOVBQD111FFdN####!	$ 	$s   =C
CCc                 ~   |                                  d         }|j        f|_        t          |                                d           t          |d                                         t          u            t          |d                             d          t          u            t          |d                             d          t          u            t          |                                d           t          |d                                         t          u            t          |d                             d          t          u            t          |d                             d          t          u            t          |                                d           t          |d                                         t          u            t          |d                             d          t          u            t          |d                             d          t          u            t          g dd	          }t          |                                t          u            t          |                                t          u            t          |                                t          u            d S )
Nr   r   r   r   r         4@r   Tr   )
r   r   r`   rr   rJ   ro   r=   rM   ptpr   )r   r   r   s      r   test_minmax_methodsz-TestMaskedArrayArithmetic.test_minmax_methodsy  s     #G:RVVXXr"""1		v%&&&1		!&'''1		"'(((RVVXXt$$$1		v%&&&1		!&'''1		"'(((RVVXXs###1		v%&&&1		!&'''1		"'((()))$'''6!"""6!"""6!"""""r   c                 H   t          j        ddddt          dz  dddddddg          }d}d}g d	}t          ||
          }|                    d           t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        g}|D ]x}t          t          |||                                           ||                     t          t          |||                                           ||                     yt          |                                |           t          |                                |           |d d         D ]x}t          t          |||                                           ||                     t          t          |||                                           ||                     y|dd          D ]}t          g dg d|          }t          |                                 |d                     t          |                                 |d                     t          t           j        dz   t           j        dz   t           j         dz
  gg d|          }	t          |	                                 |t           j         dz
                       t          |	                                 |t           j        dz                        t           j        dt          j        t           j                  j        z  z
  }
t          |
 dgddg
                                          |
 k    sJ t          |
dgddg
                                          |
k    sJ d S )Nr   r   r   r   r   r   r   r   r   r   r   r  r   )@xD      ?y@xD       @xD      r2  r  r  y               @y              @r  r   r   )r}   r   r   r>   r   float16rz  float64
longdouble	complex64
complex128clongdoublerr   rJ   rM   ry  r  )r   r   r   an10r   r   float_dtypesfloat_dtyper   r   cmaxs              r   test_minmax_dtypesz,TestMaskedArrayArithmetic.test_minmax_dtypes  s   Hb"b#rCxRsBBOPP111!"%%%
%   
BJ
BMbmR^E' 	, 	,KabDDDHHJJ$S))+ + +abDDDHHJJ$T**, , , , 	RVVXXt$$$RVVXXs### (+ 	, 	,KabDDDHHJJ$S))+ + +abDDDHHJJ$T**, , , , (, 	F 	FK???iii +- - -B;;y#9#9:::;;y#9#9:::rv{BFRK"&2FYYY$/1 1 1B;;w|#<#<===;;rv{#;#;<<<6B"*!5!5!999D$
!Q888<<>>4%GGGGq	A777;;==EEEEE	F 	Fr   r~   bBiIqQr   )FFFTT)FFFTF)FFFFTr  Nr   c                    t          j        |          }t          j        ddd|j        |j        ggdz                                |          }t          j        |gdz            }t          ||          }t          |                    |          ||                              |                     t          |                    |          ||                              |                     d S )Nr   r   r   r   )	r}   iinfor   rM   rJ   r   r   r>   rq   )r   r~   r   r  r  r   masked_as          r   test_minmax_intsz*TestMaskedArrayArithmetic.test_minmax_ints  s     Hq"c59ei89A=>>EEeLLz4&1*%%---8<<--q$x||D/A/ABBB8<<--q$x||D/A/ABBBBBr   	time_typezM8[s]zm8[s]c                     d }t          j        g d|          }t          j        g d|          }t          j        g d|          }|||g}g d}|D ]} |||           d S )Nc                    t          | |          }| t          j        |t                                                              }| t          j        |t                                                              }t          |                                |           t          |                                |           d S )Nr   r   )r>   r}   r   r  rM   rJ   rq   )rJ  r   
masked_arrexpected_minexpected_maxs        r   minmax_with_maskzKTestMaskedArrayArithmetic.test_minmax_time_dtypes.<locals>.minmax_with_mask  s    %c555JT : : ::;??AALT : : ::;??AALz~~//>>>z~~//>>>>>r   )
r   r   r   r   r  r   r   r   l r   )
NaTr   r  r   r   r  r   r   r   r   )
r  r  r  r   r   r  r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r/  )	r   r  r  rj  rk  rl  x_testrC  r   s	            r   test_minmax_time_dtypesz1TestMaskedArrayArithmetic.test_minmax_time_dtypes  s    	? 	? 	? XAAASSSX<<<INNNX@@@	RRRb"*** 	# 	#AQ""""	# 	#r   c           
         |                                  \
  }}}}}}}}}}t          t          j                            |          t          j        |                     t          t          j                            |          t          j        |                     t          dt          t          d          d                     t          dt          t          d          d                     t          t          j        |d          t          |d                     t          t          j        t          |d          d          t          |d                     t          t          j        |d          t          |d                     t          t          j	        |d          t          |d                     t          t          j	        |d          t          |d                     t          t          j	        t          |d          d          t          |d                     d}|x|_        x|_        x|_        |_        t          |          dk    rt          t          j        ||fd          t          ||fd                     t          t          j                            |d          t          j        |d                     t          t          j        |d          t          |d                     t          t          j	        |d          t          |d                     d S d S )Nr   r   r  r   r   )r   rr   r}   r   r   
accumulaterg   r   r*   prodrY   r`   r   r   )r   r   r   r   r   r   r   s          r   test_addsumprodz)TestMaskedArrayArithmetic.test_addsumprod  s   )-):):)<)<&1aAr2q!QRV]]1%%sz!}}555RV&&q))3>!+<+<===QE!HH1---...QE!HH1---...RVAA&&&AA777RVF2qMM222COOODDDRVAq\\3q!99---RWQQ''');););<<<RWQ]]GAqMM222RWVB]]333WRa5H5H5HIII2333!'3BHrxq66A: 	7A22KR!4L4LMMMq!,,cjA.>.>???1s1ayy111A166666		7 	7r   c                 @   t          dgdgdggdgdgdgg          }t          ddgddgd	d
gg          }||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   ||z  }t          ddgddgd	d
ggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   t          dgdgdgg          }t          ddgddgd	d
ggddgddgddgg          }||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   ||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   d S )Nr   r   r   FTr   r   r   r;        @r   r   r   r   r+  r      rs  r   rr   r   r   r   r   r   r   r)  s        r   test_binops_d2Dz)TestMaskedArrayArithmetic.test_binops_d2D  s   B4"t$UGdVdV+DEEEB8b"XBx0111u"bB8b"X6 !fq!fq!f57 7 7T7###TY---TY---1u"bB8b"X6 !fq!fq!f57 7 7T7###TY---TY---B4"t$%%B8b"XBx0AAA/1 1 11u!Q!R2q'2 !fq!fq!f57 7 7T7###TY---TY---1u!Q!R2q'2 !fq!fq!f57 7 7T7###TY---TY-----r   c                 @   t          dgdgdggdgdgdgg          }t          ddgddgd	d
gg          }||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   ||z  }t          ddgddgd	d
ggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   t          dgdgdgg          }t          ddgddgd	d
ggddgddgddgg          }||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   ||z  }t          ddgddgddggddgddgddgg          }t          ||           t          |j        |j                   t          |j        |j                   d S )Nr   r   r   FTr   r   r   r;  r  r   gUUUUUU?r   r   g?r   r  rs  r  r  s        r   test_domained_binops_d2Dz2TestMaskedArrayArithmetic.test_domained_binops_d2D  s   B4"t$UGdVdV+DEEEB8b"XBx0111u'7+b"XBx@ !fq!fq!f57 7 7T7###TY---TY---1u'7+b"XBx@ !fq!fq!f57 7 7T7###TY---TY---B4"t$%%B8b"XBx0AAA/1 1 11u&&)FF+;fa[I !fq!fq!f57 7 7T7###TY---TY---1u&&)FF+;fa[I !fq!fq!f57 7 7T7###TY---TY-----r   c                    t          g dg dd          }|dz   }t          |j        g d           |dz  }t          |j        g d           |dz  }t          |j        g d           |dz  }t          |j        g d           d S )Nr   r   r   r   Fr   shrinkr   r  r   r>   rr   r   r   s      r   test_noshrinkingz*TestMaskedArrayArithmetic.test_noshrinking;  s     ,A,A,A %' ' 'EQVYYY'''	QQVYYY'''FQVYYY'''	RQVYYY'''''r   c                     t           j                            dg          }t          t          j        |d          j        j        d           d S )Nr   r   r|   )r}   r  r   rr   true_divider   r`   r   rC  s     r   test_ufunc_nomaskz+TestMaskedArrayArithmetic.test_ufunc_nomaskL  s?    EKKR^Aq)).4b99999r   c                 |    t           j                            g ddd          }t          |j        g d           d S )N)r   r  @      ?Fr  r  )r}   r  rH   rr   r   r  s     r   test_noshink_on_creationz2TestMaskedArrayArithmetic.test_noshink_on_creationR  s>    EEBBQVYYY'''''r   c           
      @   |                                  \
  }}}}}}}}}}t          t          ||          t          ||                     t          ||          }t          |t          j        ||                     t          |j        t          |j        |j                             t          ||          }t          |t          j        ||                     t          |j        t          t          |j        |j                  |dk                         d S r  )r   rr   rP   r}   r   r<   )r   r   r   r   r   r   r   s          r   test_modz"TestMaskedArrayArithmetic.test_modW  s    )-):):)<)<&1aAr2q!QSAYYB,,,2r{{T26"b>>***TY 9 9:::2r{{T26"b>>***TY(A(AB!G M MNNNNNr   c           	         t          d          }t          j         d          }t          |dd<   |                    ddd          }|                    ddd          }t	          t          j        |d          t          |d                     t	          t          j        |dd          t          |dd                     t	          t          j        t          |d	          t          |d	                    t          ||                     t	          t          j	        t          |d	          t          |d	                    t          ||                     t          g d
t                    }t          |d<   t          |g d          }t          |d	         dk               t          |d         dk               t          |d         dk               d S )Nr   r   r   r   r   r   r   r   r   r   r   )abcr   defr   r   )r   r   r   r  )r   r}   r=   r^   rr   rk   rh   r4   r*   rW   r   rY  ro   )r   r   r   r:  s       r   test_TakeTransposeInnerOuterz6TestMaskedArrayArithmetic.test_TakeTransposeInnerOuterb  s   2JJIbMM!A#IIaAIIaAR\!Y//1i1H1HIIIRWQ	1--tAy!/D/DEEERXfQllF1aLL991a[[	" 	" 	"RXfQllF1aLL991a[[	" 	" 	")))622!III!!	!	r   c                    t          ddgddg          }t          |j        ddg           t          |j                                        ddg           t          |j        j        |j        j        j                   t          |j        dd	g           t          |j                                        dd	g           t          |j        j        |j        j        j                   d S )
Ny      ?      $@y      4@       @r   r   r   r   r   r   r  )r   rr   r  r*   r~   r   r  )r   r   s     r   test_imag_realz(TestMaskedArrayArithmetic.test_imag_realv  s    GW%QF333RWr1g&&&RW^^%%qz222RW]BHM$7888RWq"g&&&RW^^%%r{333RW]BHM$788888r   c                    t          t          j                            ddd                                        dd          }t
          x|d d df<   x|d<   |d<   d}|D ]}t          t          |          }t          ||          }t          j        dt                    }|	                    d	            ||d|
          }t          ||u            t          | |d|
                     t          dt                    } |d|
          }t          ||u            t          |d         t
          u            d S )Nr   r   r  r   r   r  )rg   r  varstdrJ   rM   r  meanr   r7  r  r   r}   r   r  r^   r=   r  r&   r   r  ro   rr   r   )r   r   funclistr  r  xmmethoutputr  s           r   test_methods_with_outputz2TestMaskedArrayArithmetic.test_methods_with_output  sS   29$$QB//0088A>>(..111a4.2a52f:N  	) 	)HR**FR**FXau---FKKVBQF333FFf$%%%QF!;!;!;<<<1C(((FV///FFf$%%%F1I'((((	) 	)r   c                    dt           fdt           fg}t          ddgddg|          }||k    }t          |j        ddg           t          |j        d	d	g           t          |j        dk               ||d
         k    }t          |j        dd	g           t          |j        d	d	g           t          |j        dk               t          ddgddg|          }||k    }t          |j        d	dg           t          |j        dd	g           t          |j        dk               |d
         |k    }t          |j        d	d	g           t          |j        dd	g           t          |j        dk               t          ddgddg|          }||k    }t          |j        ddg           t          |j        d	d	g           t          |j        dk               dt           fddt           fdt           fgfg}t          ddgddggddgddgg|          }|d         |k    }t          |j        dd	gd	d	gg           t          |j        d	d	gd	dgg           t          |j        dk               d S )Nr&  r  r  rt  r  r  r  TFr   r  r  r   r!  r"  r   r   r   r   r   r   r#  r$  r   r  r   r   rr   r   r   ro   r8  r   r  r   r   r   s        r   test_eq_on_structuredz/TestMaskedArrayArithmetic.test_eq_on_structured  s   *sCj)66"&&)9HHHQTYt---TY///4'(((QqT	TYu...TY///4'(((66"&&)9HHHQTY...TYu...4'(((!	TY///TYu...4'(((66"&&)9HHHQTYt---TY///4'((( *sdC[4+$>?@K--/$k2$k24;AC C C $1TY$ ?@@@TY%% ?@@@4'(((((r   c                    dt           fdt           fg}t          ddgddg|          }||k    }t          |j        ddg           t          |j        ddg           t          |j        d	k               ||d
         k    }t          |j        dd	g           t          |j        ddg           t          |j        d	k               t          ddgddg|          }||k    }t          |j        d	dg           t          |j        d	dg           t          |j        d	k               |d
         |k    }t          |j        d	d	g           t          |j        d	dg           t          |j        d	k               t          ddgddg|          }||k    }t          |j        ddg           t          |j        ddg           t          |j        d	k               dt           fddt           fdt           fgfg}t          ddgddggddgddgg|          }|d         |k    }t          |j        dd	gd	d	gg           t          |j        ddgdd	gg           t          |j        d	k               d S )Nr&  r  r  rt  r  r  r  FTr   r  r  r   r!  r"  r  r  r#  r$  r  r  r  s        r   test_ne_on_structuredz/TestMaskedArrayArithmetic.test_ne_on_structured  s   *sCj)66"&&)9HHHQTY///TY///4'(((QqT	TY...TY///4'(((66"&&)9HHHQTYu...TYu...4'(((!	TYt---TYu...4'(((66"&&)9HHHQTY///TY///4'((( *sdC[4+$>?@K--/$k2$k24;AC C C $1TY%t =>>>TY%% ?@@@4'(((((r   c                    t          g dg dd          }||j        k    }|j        |k    }t          t          j        |                     t          t          j        |                      |j        t          j        d|j        j                  k    }t          |j        |           t          |j        |           t          |j        g d           t          |j        |j                    d S )N)r  rt  r   )r  r  r  r`  r  r|   TTF)r   r   ro   r}   r   r   r   rU   r~   rq   rr   )r   r   eqneexpected_masks        r   %test_eq_ne_structured_with_non_maskedz?TestMaskedArrayArithmetic.test_eq_ne_structured_with_non_masked  s    ***///w@ @ @!&[Vq[r

BF2JJ"'"afl";";;27M22227M222 	RW11122227RWH-----r   c           	      8  	
 t          j        d          }t          dd|          t          dd|          t          dd|          t          dd|          fD ];		                    t                    }|                    d          }t          j        d|	          t          d|	          t          dd|          t          d
d|          fD ]

                    t                    }|                    d          }||k                                    }t          	
k    |           t          
	k    |           t          |
k    |           t          	|k    |           t          ||k    |           	
fd|j        D             }t          t          |t          	                                          |           ||k    
                                }t          	
k    |           t          
	k    |           t          |
k    |           t          	|k    |           t          ||k    |           	
fd|j        D             }t          t          |t          	          
                                |           =d S )Nr`  rM  r  r  r  r  r  2i4r   r   r   c                 4    g | ]}|         |         k    S r|   r|   r   namer   r   s     r   r   zITestMaskedArrayArithmetic.test_eq_ne_structured_extra.<locals>.<listcomp>  &    FFFTBtH40FFFr   c                 4    g | ]}|         |         k    S r|   r|   r+  s     r   r   zITestMaskedArrayArithmetic.test_eq_ne_structured_extra.<locals>.<listcomp>  r-  r   )r}   r~   rR   r  r   r   r   rr   r,  r  r   )r   r\  ma1r1ma2r2eq_expectedel_by_elne_expectedr   r   s            @@r   test_eq_ne_structured_extraz5TestMaskedArrayArithmetic.test_eq_ne_structured_extra  s    XgfB777fB777fB777fB7779 	M 	MB ''+&&C%Bxb111V2...V&;;;V&;;;= M M ggk**XXe__!Rxnn..R2X{333R2X{333SBY444R3Y444SCZ555FFFFFRXFFFU84888<<>>LLL!Rxnn..R2X{333R2X{333SBY444R3Y444SCZ555FFFFFRXFFFU84888<<>>LLLL-M	M 	Mr   r\  )SUr?  r  r&  c                 ~   t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               |d         |k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               d S )Nr   r   r   r   r~   r   r8  TFr   rr   r   r   ro   r8  r   r\  r  r   r   r   s         r   test_eq_for_stringsz-TestMaskedArrayArithmetic.test_eq_for_strings  s    3*BaVEEEQTYt---TY...4'(((QqT	TYu...TY...4'(((3*BaVEEEQTY///TYt---4'(((!	TY///TYu...4'(((QqT	TY///TYu...4'(((((r   c                 ~   t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               |d         |k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               d S )Nr   r   r   r   r:  FTr;  r<  s         r   test_ne_for_stringsz-TestMaskedArrayArithmetic.test_ne_for_strings?  s    3*BaVEEEQTY///TY...4'(((QqT	TY...TY...4'(((3*BaVEEEQTYt---TYt---4'(((!	TYt---TYu...4'(((QqT	TYt---TYu...4'(((((r   dt1idsdt2r   c                 ~   t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               |d         |k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               d S )Nr   r   r:  TFr;  r   r@  rC  r  r   r   r   s          r   test_eq_for_numericz-TestMaskedArrayArithmetic.test_eq_for_numeric_  s   
 1a&1a&TBBBQTYt---TY...4'(((QqT	TYu...TY...4'(((1a&1a&TBBBQTY///TYt---4'(((!	TY///TYu...4'(((QqT	TY///TYu...4'(((((r   opc                 P   t          ddgddg          }t          j        d                              dd          } |||          }t	          |j        j        |j        k               t          |j        t          j        |j        t                    |j        z             d S )Nr   r   r   r   r   r   )
r   r}   r   r^   ro   r   r`   rr   rm   r  )r   rG  r   r   r  s        r   test_eq_broadcast_with_unmaskedz9TestMaskedArrayArithmetic.test_eq_broadcast_with_unmasked  s    1a&1v&&&IbMM!!!Q''Aq!QW,---V["(17D"9"9AF"BCCCCCr   c                     t          g dg dg dg          } ||d          }t          |j        j                    t          |j        t          u            d S )Nr   r  rs  r+  rb  r   )r   ro   r   r`   rS   )r   rG  r   r  s       r   test_comp_no_mask_not_broadcastz9TestMaskedArrayArithmetic.test_comp_no_mask_not_broadcast  sd     999iii344AqFK%%&&&v%&&&&&r   c                 ~   t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               t          ddg|ddg|          }||k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               |d         |k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               ||d         k    }t          |j        ddg           t          |j        ddg           t	          |j        dk               d S Nr   r   r:  FTr;  rE  s          r   test_ne_for_numericz-TestMaskedArrayArithmetic.test_ne_for_numeric  s   
 1a&1a&TBBBQTY///TY...4'(((QqT	TY...TY...4'(((1a&1a&TBBBQTYt---TYt---4'(((!	TYt---TYu...4'(((QqT	TYt---TYu...4'(((((r   c                    t          ddg|ddg|          } |||          }t          |j         ||j        |j                             t          |j        ddg           t          |j        dk                |||d                   }t          |j         ||j        |j        d                              t          |j        ddg           t          |j        dk               t          ddg|ddg|          } |||          }t          |j         ||j        |j                             t          |j        ddg           t          |j        dk                ||d         |          }t          |j         ||j        d         |j                             t          |j        ddg           t          |j        dk                |||d                   }t          |j         ||j        |j        d                              t          |j        ddg           t          |j        dk               d S rN  )r   rr   r   r   r   ro   r8  )r   rG  r@  rC  r  r   r   r   s           r   test_comparisons_for_numericz6TestMaskedArrayArithmetic.test_comparisons_for_numeric  s*    1a&1a&TBBBr!QxxTY17AG 4 4555TY...4'(((r!QqT{{TY17AGAJ 7 7888TY...4'(((1a&1a&TBBBr!QxxTY17AG 4 4555TYt---4'(((r!A${{TY171:qw 7 7888TYu...4'(((r!QqT{{TY17AGAJ 7 7888TYu...4'(((((r   N/Ac                    t          g dg d||          }t          g dg d||          }t           |||          j         ||j        |j                             t          |t                    rt          j        ||          }t          g dg d||          }t          g dg d||          }t           |||          j         ||j        |j                             d S )N)r   r   cder2  r   r8  r~   )rT  r   r   r   )r>   rr   r   r  r   r}   r   )r   r\  rG  r  r/  r1  s         r   test_comparisons_stringsz2TestMaskedArrayArithmetic.test_comparisons_strings  s    ,,,999UWXXX,,,999UWXXXRRS\\'CIsy)A)ABBBdC   	,8D+++D,,,999UWXXX,,,999UWXXXRRS\\'CIsy)A)ABBBBBr   z-ignore:.*Comparison to `None`.*:FutureWarningc                 z   t          d dgddg          }t          |d k    t          ddgddg                     t          |j        d k    ddg           t          |d k    t          ddgddg                     t          d dgd          }t          |d k    ddg           t          |d k    ddg           t          d dgd          }t          |d k    t          ddgd                     t          |d k    t          ddgd                     t          }t          |d k    t                     d S )Nr   r   r   TFr   )r   rr   r   r=   r  s     r   test_eq_with_Nonez+TestMaskedArrayArithmetic.test_eq_with_None  sO    4)1a&)))Q$YtUm1a& A A ABBBQVt^dE]333Q$Yudm1a& A A ABBB4)%(((Q$Yu...Q$Y...4)$'''Q$Yudm$ ? ? ?@@@Q$YtUm$ ? ? ?@@@Q$Y'''''r   c                    t          d          }t          |dk    d           t          |dk    d           t          |dk    d           t          |dk    d           t          dd          }t          |dk    t                     t          |dk    t                     t          |dk    t                     t          |dk    t                     d S )Nr   Tr   Fr   )r   rr   r=   r   s      r   test_eq_with_scalarz-TestMaskedArrayArithmetic.test_eq_with_scalar   s    !HHQ!VT"""Q!VU###Q!VU###Q!VT"""!$Q!VV$$$Q!VV$$$Q!VV$$$Q!VV$$$$$r   c                    t          ddgddg          }t          ddgddgg          t          j         ddgddgg          fD ]>}||k    }t          |j        ddgddgg           t          |j        ddgddgg           ?d S )Nr   r   r   r   FT)r   r}   rr   r   r   )r   r   r   r   s       r   test_eq_different_dimensionsz6TestMaskedArrayArithmetic.test_eq_different_dimensions  s    Aq6A'''1a&1a&)**8aVaV,--/ 	5 	5B"HDeU^&*E]%4 5 5 5eT]&+T]%4 5 5 5 5	5 	5r   c                    t          g dg d          }t          t          j        t          j        dt          j        d          dgg d          }t          |          }t	          ||           t	          |j        |j                   t	          |j        g d           t          j        |          }t	          ||           t	          |j        |j                   t	          |j        g d           d S )Nr   r   r   r   r   r  r   r   r   r   r   r   r   r   r   )r>   r}   rQ  r8   rr   r   )r   r   r)  r   s       r   test_numpyarithmeticz.TestMaskedArrayArithmetic.test_numpyarithmetic  s    )))@@@26!99bA$3OO5 5 5 1vvT7###TY---QV___---vayyT7###TY---QV___-----r   )Ar  r  r  r   r  fixturer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rp  parametrizer  r  r  r  r  r  r  r  r  r
  r  r  r  r   r&  r6  r=  r?  num_dtsnum_idsrF  operatorr#  ltrI  gtrL  rO  legerQ  rV  r  rX  rZ  r\  r`  r|   r   r   rt  rt  m  s       4 4 4 V^D000  10!: !: !:F5 5 5"2 2 25 5 5& & &) ) )
, 
, 
,' ' '& & &5 5 585 5 54 4 42' ' '
6 6 627 7 7$  $ $ $.# # #,(F (F (FT [Wh//[V)))******&  
 [VdBZ00C C 10  0/C [[7G*<==# # >=#&7 7 7*". ". ".H". ". ".H( ( (": : :( ( (
	O 	O 	O  (9 9 9) ) ),)) )) ))V)) )) ))V. . ." M  M  MD [T???33[VdC[11) ) 21 43)< [T???33[VdC[11) ) 21 43)< [UG99[UG99[VdAY//) ) 0/ :9 :9)< [THK#=>>D D ?>D [THK#=>>' ' ?>' [UG99[UG99[VdAY//) ) 0/ :9 :9)< [UG99[UG99[VdAY//[T[(+x{HK@B B) )B B 0/ :9 :9
)< [T???33[T[(+x{HK@B B[VdE]33C C 43B B 43C [ OPP( ( QP(.
% 
% 
%	5 	5 	5. . . . .r   rt  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestMaskedArrayAttributesc                    t          g dg d          }t          |          }t          |j        |j                   t          |g dd          }t          |j        g d           t          |g dd          }t          |j        g d           t          |g d          }t          |j        g d           d S )	Nr   r   r   r2  F)r   	keep_maskTr  r  r   r   r[  s      r   test_keepmaskz'TestMaskedArrayAttributes.test_keepmask*  s    333!__RWaf%%%!)))u===RWiii(((!)))t<<<RWiii(((!))),,,RWiii(((((r   c                 D   t          d          }g d}t          |          }t          ||d          }t          ||dd          }ddg|d	d
g<   ddg|d	d
g<   t          |j        g d           t          |j        g d           t          |j        g d           t          |j                   t          |j                    g d|d	d
<   g d|d	d
<   t          |j        g d           t          |j        g d           t          |j        t                     t          |d<   t          |d<   t          |j        g d           t          |j        g d           d	|d d <   d	|d d <   t          |j        g d           t          |j        g d           t          |j        g d           t          |j        t                     |
                                 t          d          |d d <   t          |j        g d           t          |j        t                     |                                 t          ||dk     <   t          |j        g d           t          |j        g d           d|t          |d	k    d          <   t          |j        g d           t          |j        g d           t          d	dgdd
ggd	dgddggd          }d|d<   t          |j        d	dgdd
gg           t          |j        d	dgddgg           d|d<   t          |j        d	dgddgg           t          |j        d	dgddgg           d|t          |dk     d          <   t          |j        d	dgddgg           t          |j        d	dgddgg           d S )Nr   r   r   r   r   r   Tr   	hard_maskFr   rs  r   r   (   r   r   )r   r   r   r   r   )r   r   r   r   ru  re  r   r     )r   r   r  r   r   )r   r   r  rw  ru  r   )r   r   r   r   r   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   ro   r9  rS   r=   soften_maskharden_maskr   r*   )r   dr  rC  xhxss         r   test_hardmaskz'TestMaskedArrayAttributes.test_hardmask7  s   1IIOOaLL11---11D999"XAq6
"XAq6
RX///000RX000111RWooo...BL !!!,,1Q3,,1Q3RX000111RX222333RWf%%%11RWooo...RWooo...111111RX///RX///RWooo...RWf%%%
q		111RX///RWf%%%
26
RX///RX///$%6"q&%  !RX///RX///QFQF#Aq6Aq6*:dKKK1RXAA/000RXAA/0006
RXAA/000RXAA/000$%6"q&%  !RXAA/000RXAA/00000r   c                     t          d          }g d}t          |          }t          ||d          }d|dd<   d|dd<   t          |j        g d	           d S )
Nr   rq  Trr  r  r   r   r   )r  r   r   r   r   )r   r:   r   rr   r   r   rz  r  rC  r{  s        r   test_hardmask_againz-TestMaskedArrayAttributes.test_hardmask_againn  sn    1IIOOaLL11---1Q31Q3RX00011111r   c                    t          g dg d          }|                                }t          ||           d|d<   t          ||           t          |t          g dg d                     |                                }d|d<   t          ||           t          |t          g dg d                     d S )Nr   r   r   r   r   r   r   r  )r   ry  rr   rx  r   s      r   test_hardmask_oncemore_yayz4TestMaskedArrayAttributes.test_hardmask_oncemore_yayx  s     )))))),,,MMOOQ!QQiiiiii888999MMOO!QQiiiiii88899999r   c                    t          d          }t          |d<   d|d<   t          |j        t                     t          d          }d|_        t          |d<   d|d<   t          |j        t          d                     d S )Nr   r   F)r   r=   rr   r   rS   
_smallmaskrm   r  s     r   test_smallmaskz(TestMaskedArrayAttributes.test_smallmask  ss    2JJ!!QWf%%%2JJ!!QWeBii(((((r   c                    t          g dg d          }|                                }t          ||           t          |j        t                     t
          j                             dgdt          fdt          fg          }|	                                }|                                 t          |j        |j                   d S )Nr   r  r   r  r   r   )
r   shrink_maskrr   r   rS   r}   r  r   r   r   r   s      r   test_shrink_maskz*TestMaskedArrayAttributes.test_shrink_mask  s    )))))),,,MMOOQQVV$$$ EKK
c3Z#u$>??FFHH	QVQV$$$$$r   c                 T   t          g dg dgdt          fdt          fdg          }t          |d         d<   t          |d         d<   t          |d	         d
<   t          |d<   |j        }t          |d         |d                    t          |d         |d                    t          |d         |d
                    t          |d d         |d                    t          |d         |d                    t          |d         |d                    t          |d         |d                    t          |dd          |d                    t          |d         |d                    d}d}|D ]7}t          ||||f                    |dz  }||j        d         k    rd}|dz  }8d S )N))r   rF  one)r   rG  two)r   ffffff
@thr))r   皙@fou)r         @fiv)r   gffffff@sixr   r   r  r  r   r  r  r  )r   r   r  r   r  r   r   r   r   r  r   rM  r   )r   r   r   r=   r  rr   r`   )r   r   xflatr  jr   s         r   	test_flatz#TestMaskedArrayAttributes.test_flat  s    FFFFFFHsc5\<@B B B #t#t#t&	U1Xqw'''U1Xqw'''U1Xqw'''U2A2Y!%%%U1Xqw'''U1Xqw'''U1Xqw'''U122Y!%%%U2Y&	*** 	 	BQq!tW%%%FAAGBK Q	 	r   c                    t          j        dd          t           j                                      }t          j        d          |_        t          |           t          |j        t          j        d                     fd}t          t          |           	                    dt           j        j
                  }t          |j        t          j        d                     t          j        dd          t           j                                      }t          j        d          |_        t          |j        t          j        d                     t          |j        t           j        j                   d S )Nr   zf4,i4r   f4c                  x    t           j                                      } t          j        d          | _        d S )Nf8)r}   r  r   r~   )rC  r   s    r   assignz;TestMaskedArrayAttributes.test_assign_dtype.<locals>.assign  s'    AAhtnnAGGGr   )r~   ri  )r}   rm   r  r   r~   rh  rr   rx   r  r  r   r   rS   )r   rC  r  r   r   s       @r   test_assign_dtypez+TestMaskedArrayAttributes.test_assign_dtype  s+   HQg&&&EKKNN(4..QQWbhtnn---	% 	% 	% 	% 	% 	j&)))FFBE$5F66QWbhtnn--- HQd###EKKNN(7##QWbhw//000QWbel+++++r   N)r  r  r  ro  r}  r  r  r  r  r  r  r|   r   r   rk  rk  (  s        ) ) )51 51 51n2 2 2: : :
) 
) 
)% % %  <, , , , ,r   rk  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d          d	             Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestFillingValuesc                    t           j        j        j        } |dt                    }t          |d            |d t                    }t          |t          d                      |dd          }t          |d            |d d          }t          |t          d                     t          t          |dt                     t          t          |dt                     d S )Nr   |S3   0s   camelot!r   stuff)	r}   r  r  _check_fill_valuer   rr   r#   rx   r4  )r   r  fvals      r   test_check_on_scalarz&TestFillingValues.test_check_on_scalar  s    EJ8  C((T1  s++T-a00111  E**T4     u--T-k::;;;i!2E3???i!2GSAAAAAr   c           
      r   t           j        j        j        }dt          fdt
          fdg} |g d|          }t          t          |t                               t          |
                                g d            |d |          }t          t          |t                               t          |
                                t          d          t          d          t          t          d                    g           t          j        d|	          } |||          }t          t          |t                               t          |
                                g d           t          j        dd
t          fdt
          fdg	          } |||          }t          t          |t                               t          |
                                g d           t          j        dt                    }d|d<    ||t                    }t          t          |t                               t          |
                                g d           dt          fg} |d|          }t          t          |t                               t          |
                                d           d S )Nr   r   )r  r  )r  )gr1  )r  r     ???r   r   r   r   r&  r  )rG  r  rX  r`   r~   6e)r  )r}   r  r  r  r   r   ro   r  r   rr   itemr#   r   r   rY  )r   r  r  r  fill_vals        r   test_check_on_fieldsz&TestFillingValues.test_check_on_fields  s   EJ8*sElL9  !;!;!;VDD
4))***TYY[["="="=>>>  v..
4))***TYY[[#5a#8#8#5b#9#9#*+=c+B+B#C#C#E 	F 	F 	F 86fEEE  622
4))***TYY[["="="=>>>
 86$':U|\"JL L L  622
4))***TYY[["="="=>>> :D7771  622
4))***TYY[["="="=>>> *  V44
4))***TYY[[-00000r   c                 $   t          g d          }|j                            ddi           t          |t                    }t	          |j        g d           t	          |j        t          d                     t          |t                    }t	          |j        g d           t	          |j        t          d                     |	                    t                    }t	          |j        g d           t	          |j        t          d                     t	          |j        d         d           |	                    dg          }t	          |d	         j        |j                   t	          |d	         j        |j                   d S )
N)   3   4   5commentzupdated!r   )r   r   r   r   r   )r   r  r   )
r   r3  updater   rr   r   r8  r#   r   r   r   s      r   test_fillvalue_conversionz+TestFillingValues.test_fillvalue_conversion	  sZ    $$$%%	
9j1222!3QWiii(((Q\#5a#8#8999!5!!!QWiii(((Q\#5b#9#9:::HHSMMQWiii(((Q\#5a#8#8999QZ	*J777HHl^$$QsV\17+++QsV&55555r   c                     t          d          }t          t          j        d                    }t          t          j        d          j                  }t	          ||           t	          ||           d S )Nr   )r#   r}   r   r~   rr   )r   r(  f2f3s       r   test_default_fill_valuez)TestFillingValues.test_default_fill_value1	  sb    ##-- 233RRr   c                 \   t          dgdt          fddt          fg          }t          |          }t          |j                  }t          j         t          d          t          d          t          d          f|j                  }t          ||           t          ||           d S )	Nr  r  r  r  r   r   r   r   )r   r   r   r#   r~   r}   rr   )r   fieldsr(  r  expecteds        r   "test_default_fill_value_structuredz4TestFillingValues.test_default_fill_value_structured9	  s    	{!3ZU|DF F F  ''--8/22/44/335<BLJ J J 	R"""R"""""r   c           	          t          j        dg          }t          |          }t          |d         t          j        t          |d                   |d                              d S )N)vV7r  )r}   r~   r#   rr   r   )r   r\  r  s      r   test_default_fill_value_voidz.TestFillingValues.test_default_fill_value_voidE	  sW    X{m$$r""QsVRX&8C&A&A2c7KKLLLLLr   c                 ^   t          g dd          }|g d         }t          |j        |j                   dt          fdg}t	          ddt
          d	fg|
          }d|_        t          |j                                        ddg           t          |d         j        d           t          |d         j        d           d|_        t          |j                                        d           t          |d         j        d           t          |d         j        d           t	          g d          }d|_        t          t          j	        |j                  j
        t                     t          |j        d           t          |j        t          j        d                     d S )Nr   r  r8  )r   r   r   r  r   r  )r   r   )r   r   r   r   r       8@s   999r   )rb  r1  )rb  r  rb  r  )r   r   r   )r>   rr   _fill_valuer   r   r   r8  r  r}   r   r~   )r   r   seriesmtyper   s        r   test_fillvaluez TestFillingValues.test_fillvalueJ	  sy   III$777iiiV')9:::u|,8XDz2%@@@Q\&&((4.999QsV&,,,QsV&///!Q\&&((+666QsV&***QsV&///+++RZ--3U;;;Q\4(((Q]BHTNN33333r   z+ignore:.*Numpy has detected.*:FutureWarningc                     t          dgdt          fddt          fg          }|ddg         }t          t	          |j                  d           |dd          |d d         k     d S )	Nr  r  r  r  r   )r  r   r   r   )r   r   r   rr   r  r8  )r   r  	subfieldss      r   test_subarray_fillvaluez)TestFillingValues.test_subarray_fillvalueb	  s|     	{!3ZU|DF F FC:&	U9/002BCCC!""3B3''''r   c                 T   t           j        j        j        }dt          fddt
          fg}t          j        t          d          t          d          t          d          f|          }t           |d |          |           dt
          d	fg}t          j        t          d          fdt
          fg          	                    |          }t           |d |          |           t          j        d
dt
          fg          	                    |          }t           |d|          |           t          j
        d          }t          j        t          d          t          d          t          d          fd          	                    |          } |d |          }t          ||           t          j        dd          	                    |          }t           |d|          |           t          |          }t          |d         j        j        d           d S )Nr  r  r  r   r   r   r   r'  rt  rg  r>  zint, float, floatr  r(  )r}   r  r  r  r   r   r   r#   rr   r   r~   r>   r8  r   )r   r  r  r)  r   Ms         r   test_fillvalue_exotic_dtypez-TestFillingValues.test_fillvalue_exotic_dtypel	  s'   EJ8*lS%L9(.q11.s33.r225 "() ) ) 	&&tV44g>>>'((.r224#'-2 2 228&.. 	&&tV44g>>>(4u777>>vFF&&q&117;;;233(.q11.r22.r225 "56 6 6 7=fVnn 	 ! v..T7###(9,?@@@GGOO&&q&117;;; !!QtW',a00000r   c                    dD ]}t          j        d|          }t          t          j        d|z   dz                       }t          j                            ||           t          j        d|          }t          t          j        d|z   dz                       }t          j                            ||           d S )N)asfspsnsusmsr   rC  hDWr  Yr  z<M8[]z<m8[)r  
datetime64r#   r~   r}   testingrr   timedelta64)r   timecoder)  r   s       r   !test_fillvalue_datetime_timedeltaz3TestFillingValues.test_fillvalue_datetime_timedelta	  s    
2 	3 	3H&uh77G%ek&82Cc2I&J&JKKDJ##D'222'x88G%ek&82Cc2I&J&JKKDJ##D'2222	3 	3r   c                 ^   t          ddgdt          fddt          fdt          fgfg          }|j        }t          |j        |j                   t          |d         t          |d                              t          |d         d         t          |d         d                              t          |d         d         t          |d         d                              t          |          }t          |j        |j                   t          |d         t          |d                              t          |d	         d         t          |d         d                              t          |d	         d	         t          |d         d                              t          |d	         t          |d                              t          |          }t          |j        |j                   t          |d         t          |d                              t          |d	         d         t          |d         d                              t          |d	         d	         t          |d         d                              t          |d	         t          |d                              d S )
N)r   r  )r   r   r   r&  r  r  r   r   r   r   )r   r   r8  rr   r~   r#   rO   rL   r   r   r   s      r   test_extremum_fill_valuez*TestFillingValues.test_extremum_fill_value	  s<   ;,scT3K$+E%FGI I I|TZ)))T#Y 21S6 : :;;;T#Yt_&83&F&FGGGT#Yt_&83&F&FGGG!!$$TZ)))T!W0388999T!WQZ!3AcF4L!A!ABBBT!WQZ!3AcF4L!A!ABBBT!W0388999!!$$TZ)))T!W0388999T!WQZ!3AcF4L!A!ABBBT!WQZ!3AcF4L!A!ABBBT!W038899999r   c           
         t          g dfdt          j        dfg          }t          |          }t	          |j        |j                   t	          |d         t          j        dt          |d                                        t          |          }t	          |j        |j                   t	          |d         t          j        dt          |d                                        d S )Nr   r   r   r|  r   r   r   )r   r}   r  rO   rr   r~   fullrL   r  s      r   !test_extremum_fill_value_subdtypez3TestFillingValues.test_extremum_fill_value_subdtype	  s    999,!'<&=>>>!!$$TZ)))T!Wbga);AgJ)G)GHHIII!!$$TZ)))T!Wbga);AgJ)G)GHHIIIIIr   c           	         dt           fdt           fg}t          t          t          g dg d                    d|          }|d         }|                    d           t          |j        t          j        d                     t          t          |j	                  d           d	|j	        d<   t          t          |j	                  d
           t          t          t          g dg d                    |          }|d         }|                    d           t          |j        t          j        d                     t          t          |j	                  dt          d          f           d S )Nr   r   r   r  r  r8  r~   r   )r   r  r  )r   r  r   r   )r   r   r   r   r   rr   r  r}   r  r8  r#   )r   r  r   aar:  tts         r    test_fillvalue_individual_fieldsz2TestFillingValues.test_fillvalue_individual_fields	  sQ   *sCj)$s999iii0011)9 9 9sV
"R^RXb\\222U1<((*555SU1<(()444$s999iii0011@@@sV
"R^RXb\\222U1<((2/A!/D/D*EFFFFFr   c                    dt           f}dt           f}t          ddgddgt          j        ft          j        |g                    }t          |j        ||g          }|d         |d<   |d                             |d         j                   |j	        d         }t          t          j        |d	                              t          |d
         t          d                     d S )Nr   r   r   r   )FrU  r   r|   r   r   r   )r   r   r}   rQ  r~   r&   r`   r   r8  r  ro   r  rr   r#   )r   r  adtyper   r   r  s         r   (test_fillvalue_implicit_structured_arrayz:TestFillingValues.test_fillvalue_implicit_structured_array	  s    uu5%.('; fYbhx.@.@B B B!'&&!12223#	#af/000M"1QrU.r2233333r   c                 Z   t          dd          }t          |j        d           t          ddt                    }t          |j        d           t          ddt                    }t          |j        d           t          ddt                    }t          |j        d           d S )Nr   r  r  r  r   )r&   rr   r8  rU   r   rm   complexr3   r  s     r   test_fillvalue_as_argumentsz-TestFillingValues.test_fillvalue_as_arguments	  s    !%%%Q\4(((t5111Q\4(((!'222Q\2&&&Q2W555Q\2&&&&&r   c                     t          d          }t          |j        d           t          dt                    }t          |j        d           t          dt                    }t          |j        d           d S )Nr   r`   r  )r&   rr   r`   rU   r   rm   r  r  s     r   test_shape_argumentz%TestFillingValues.test_shape_argument	  st     QWe$$$uE***QWe$$$W---QWe$$$$$r   c                 "   t          g ddt          j                  }|                                }t	          |j        dk               |                    t                    }t	          |j        dk               |                    t                    }t	          |j        dk               |                    t          j                  }|                    t          j                  }|                    t          d          }t	          |j        dk               |                    t          d          }t	          |j        dk               |                    t          j                  }t	          |j        d	k               d S )
Nr   r   r  )ri  r   r  )ri  r8  r   r  )	r   r}   int64r  ro   r8  r   r   int32r4  s      r   test_fillvalue_in_viewz(TestFillingValues.test_fillvalue_in_view	  sH    )))::: FFHH!""" FF;!"""
 FFF$$!""" FF2:FF
F## FF;1F--!""" FFF22!""" FFF""&'''''r   c                     t          dd          }t          |d         j        t          d                     t          |d         j        t          d                     d S )Nr   z(2,)3S,(2,)3Ur  r'  s   spamr(  eggs)r&   rr   r8  r#   r  s     r   test_fillvalue_bytes_or_strz-TestFillingValues.test_fillvalue_bytes_or_str!
  s\     _555QtW');G)D)DEEEQtW');F)C)CDDDDDr   N)r  r  r  r  r  r  r  r  r  r  r  rp  r  r  r  r  r  r  r  r  r  r  r  r  r|   r   r   r  r    sT       B B B -1 -1 -1^6 6 60  
# 
# 
#M M M
4 4 40 [ MNN( ( ON(1 1 1>3 3 3: : :0	J 	J 	JG G G&4 4 4' ' '
% 
% 
%(( (( ((TE E E E Er   r  c                   t    e Zd Zd Z ej        dd          d             Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )
TestUfuncsc                     t          dddt          dz  gdz  ddgdgdz  z             t          dddt          dz  gdz  ddgdgdz  z             fS )Nr   r   r   r   r   r   r   )r   r   r	  s    r   r   zTestUfuncs._create_data+
  sp    sAr26*Q.aVqcAg5EFFFaR!V,q01va7GHHHK 	Kr   Trv  rw  c              #      K   t          j                    }t          j        dd           |V  t          j        di | d S r{  r|  r  s     r   r  zTestUfuncs.err_status0
  r  r   c                    dD ]}	 t          t          |          }n%# t          $ r t          t          |          }Y nw xY wt          t          j        j        |          }|                                 d |j                 } || } || }t          |
                    d          |
                    d          |           t          |j        |j        |           d S )N)*re   r8   r9   r)   r   ra   r    ri   r   r   r   rb   r!   rj   arcsinhr   arctanhr   fabsnegativefloorceillogical_notr   rf   rQ   r%   r  floor_divide	remainderfmodhypotr   r(   rT   r7   r2   r6   r1   logical_and
logical_orlogical_xorr   )err_msg)r  umathAttributeErrorfromnumericr  r  r  r   ninrr   r*   rt   r   )r   r  ufmfargsurmrs          r   test_testUfuncRegressionz#TestUfuncs.test_testUfuncRegression7
  s     	; 	;A"-UA&&! - - -[!,,-**B$$&&ww/DTBTB1ryy||Q777bgrw:::::5	; 	;s   >>c                    |                                  d         }t          t          |d                      t          t          |d                     t	          t          |d d         d          d           t	          t          |d          d           t	          t          j        |          t                     d S )Nr   r  r   )
r   ro   r   rc   rr   rg   rY   r   r   r   r  s     r   test_reducezTestUfuncs.test_reduceU
  s    "GAA&&&&'''###$$$S2A2Q'''+++WQQ'''+++SZ]]B'''''r   c                    t          dd                              dd          }t          |dk     |          }t          |                                |                                           t          |                                d           t          |                    d          |                    d                     t          |                    d          g d           t          |                    d          d         j                   t          |                    d          d         j                   d S )Nr      r   r   r   r   )r   r   rs  r+  )r   r^   rI   rr   rJ   rM   ro   r   )r   r   amasks      r   test_minmaxzTestUfuncs.test_minmax^
  s    1bMM!!!Q''QUA&&UYY[[!%%''***UYY[[!$$$UYYq\\15588,,,UYYq\\<<<000		!Q$%%%		!Q$%%%%%r   c                 P   t          g dg d          }t          j        |          }t          dddt          j        d          dgg d          }t          ||           t          |j        |j                   t          t          |j        t                                d S )	Nr^  r  r   r   r   r   r   r   r   r   r   r   )r>   r}   re   rr   r   ro   r  r   )r   r   r   r)  s       r   test_ndarray_maskzTestUfuncs.test_ndarray_maski
  s    )))@@@wqzzAq"'!**b9$3OO5 5 5T7###TY---Jty+66677777r   c                    t          ddgddg          t          t          t          j        d           t          t          t          j        d            G fdd          } |            }t          |z  d	k               t          |z  d
k                G d d          } |            }t                              |          t          u            t          t          t          j        |          dk                         t                              |          t          u            t          |z  dk               t          |z  dk               t          |z  dk               d S )Nr   r   r   r   r   r  c                   0    e Zd Z j        dz   Zd Zd ZdS )<TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClassr   c                     dS )NMy mulr|   r   others     r   __mul__zDTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__mul__}
      xr   c                     dS )NMy rmulr|   r,  s     r   __rmul__zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__rmul__
       yr   N)r  r  r  __array_priority__r.  r2  r  s   r   MyClassr)  z
  sA        !"!5!9     ! ! ! ! !r   r5  r+  r1  c                   $    e Zd ZdZd Zd Zd ZdS )=TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2d   c                     dS )NMe2mulr|   r,  s     r   r.  zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__mul__
  r/  r   c                     dS )NMe2rmulr|   r,  s     r   r2  zFTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rmul__
  r3  r   c                     dS )NMe2rdivr|   r,  s     r   __rtruediv__zJTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rtruediv__
  r3  r   N)r  r  r  r4  r.  r2  r?  r|   r   r   MyClass2r7  
  sG        !$     ! ! !! ! ! ! !r   r@  r<  r:  r>  )r>   rx   r4  re  multruedivro   r.  NotImplementedr   rQ   rW   __truediv__)r   r5  mer@  me_toor   s        @r    test_treatment_of_NotImplementedz+TestUfuncs.test_treatment_of_NotImplementeds
  s    "bA///iq%888i!11e<<<	! 	! 	! 	! 	! 	! 	! 	! 	! 	! WYYQ("###B)#$$$
	! 
	! 
	! 
	! 
	! 
	! 
	! 
	! 		&!!^3444HN1f--:;;<<<f%%7888
h&'''F
i'(((F
i'(((((r   c                 "   t           j                            dt           j        gddg          }t	          j                    5  t	          j        d           t          |           t          |d           |dk     t          |           t          |           t          |           t          |           t          |           t          |           t          |d           t!          |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   errorr   )r}   r  r   rQ  r  r  r  r)   r   re   r8   ri   r   r   r   r%   r   r  s     r   test_no_masked_nan_warningsz&TestUfuncs.test_no_masked_nan_warnings
  s1    EKKbfQFK33$&& 	 	#G,,, FFF1IIIEE GGGFFFFFF1III1IIIAJJJ 1aLLL Q)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B4DDDc                    t          j        ddd          }t           j                            |          }t          j        d          5  |dz  }t           j                            ||dz             d d d            d S # 1 swxY w Y   d S )Nr   r   皙?raise)underr   r   )r}   r   r  r   rP  r  rq   )r   r   XX2s       r   test_masked_array_underflowz&TestUfuncs.test_masked_array_underflow
  s    IaC  EKKNN[w''' 	5 	5SBJ))"a!e444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   )BBBN)r  r  r  r   r  ra  r  r  r  r#  r&  rG  rJ  rQ  r|   r   r   r  r  )
  s        K K K
 V^D000  10; ; ;<( ( (	& 	& 	&8 8 8') ') ')R  85 5 5 5 5r   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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 )" TestMaskedArrayInPlaceArithmeticc                 z    t          d          }t          d          }t          d          }t          |d<   |||fS Nr   r   )r   r=   r   r   r   r   s       r   _create_intdataz0TestMaskedArrayInPlaceArithmetic._create_intdata
  s7    2JJ2JJBZZ1!Rxr   c                     |                                  \  }}}|                    t                    |                    t                    |                    t                    fS r   )rW  r   r   rV  s       r   _create_floatdataz2TestMaskedArrayInPlaceArithmetic._create_floatdata
  sF    ''))1bxx51A1AAAr   c                 T   t           j        d         t           j        d         z   }d |D             }|                                 \  }}}|                    t           j                  |                    t           j                  |                    t           j                  f}||fS )N
AllIntegerAllFloatc                 @    g | ]}t          j        |          j        S r|   r}   r~   ri  )r   r   s     r   r   zFTestMaskedArrayInPlaceArithmetic._create_otherdata.<locals>.<listcomp>
  s#    2221bhqkk&222r   )r}   	typecodesrW  r   uint8)r   o
othertypesr   r   r   	uint8datas          r   _create_otherdataz2TestMaskedArrayInPlaceArithmetic._create_otherdata
  s    L&j)AA22222
''))1bHHRXHHRXIIbh
	
 9$$r   c                 p   |                                  \  }}}t          |d<   |dz  }t          ||dz              |dz  }t          ||dz              |                                 \  }}}|j        j        j        }|dz  }t          ||j        j        j        k               t          ||dz              d S )Nr   r   r   )rW  r=   rr   rY  r   r  ro   )r   r   r   r   r   id1s         r   test_inplace_addition_scalarz=TestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar
  s    ''))1b1	QQA
aRQ))++1bfm 	Rqv}))***QBr   c                 >   |                                  \  }}}|j        }t          dt          j                  }t
          |d<   ||z  }||z  }t          |||z              t          |||z              t          |j        t          ||j                             d S Nr   r   r   )rW  r   r   r}   int16r=   rr   r<   r   r   r   r   rC  r   s         r   test_inplace_addition_arrayz<TestMaskedArrayInPlaceArithmetic.test_inplace_addition_array
  s    ''))1bG2RX&&&"	Q
aQARQRWga0011111r   c                     |                                  \  }}}|dz  }t          ||dz
             |dz  }t          ||dz
             d S r  )rW  rr   rV  s       r   test_inplace_subtraction_scalarz@TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar
  sY    ''))1b	QQA
aRQr   c                 4   |                                  \  }}}|j        }t          dt                    }t          |d<   ||z  }||z  }t          |||z
             t          |||z
             t          |j        t          ||j                             d S ri  rY  r   r   r   r=   rr   r<   rk  s         r   test_inplace_subtraction_arrayz?TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array
      ))++1bG2U###"	Q
aQARQRWga0011111r   c                     |                                  \  }}}|dz  }t          ||dz             |dz  }t          ||dz             d S )Nr   r   )rY  rr   rV  s       r   "test_inplace_multiplication_scalarzCTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar  sY    ))++1b	SQA
c	RQr   c                 4   |                                  \  }}}|j        }t          dt                    }t          |d<   ||z  }||z  }t          |||z             t          |||z             t          |j        t          ||j                             d S ri  rp  rk  s         r   !test_inplace_multiplication_arrayzBTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array  rr  r   c                     |                                  \  }}}t          d          dz  }t          d          dz  }t          |d<   |dz  }t          ||           |dz  }t          ||           d S rU  )rW  r   r=   rr   rV  s       r    test_inplace_division_scalar_intzATestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_int  sx    ''))1b2JJNBZZ!^1	aQ
qRr   c                     |                                  \  }}}|dz  }t          ||dz             |t          d          z  }t          |t          d                     d S )Nr   r   )r   )rY  rr   r   rU   rV  s       r   "test_inplace_division_scalar_floatzCTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_float&  sb    ))++1b	SQC   
fRjjRe%%%%%r   c           	      X   |                                  \  }}}|j        }t          dt                    }t          |d<   ||z  }||z  }t          |||z             t          |||z             t          |j        t          t          ||j                  |dk                         d S )Nr   r   r   r   rp  rk  s         r   !test_inplace_division_array_floatzBTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_float.  s    ))++1bG2U###"	Q
aQARQRWgga&8&816CCDDDDDr   c                    ddddt           dz  dddddddg}g d	}g d
}g d}t          ||          }t          ||          }||z  }t          |j        g d           t          |j        ddddt            dz  dddddddg           |                                }||z  }t          |j        g d           t          |j        ddddt            dz  ddddddd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>   rr   r   r   r   )r   r   r   r   r   r   r   r   s           r   test_inplace_division_miscz;TestMaskedArrayInPlaceArithmetic.test_inplace_division_misc:  s>   Rb2gr2tS"b"EAAA111111!"%%%!"%%%GQWBBBCCCQW"b#sRxRRRL	N 	N 	N WWYY
bRXCCCDDDQW"b#sRxRRRL	N 	N 	N 	N 	Nr   c                 h   t          g dg d          }|dz   }t          |j        g d           t          |j        g d           |dz  }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z   }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z  }t          |j        g d           t          |j        g d           d S )	Nr   rO  r   r   )r   r   r   r   r   r   r   r   r  r   s      r   test_datafriendly_addz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_addN  sV   )))))),,,URWiii(((RWiii(((	QQVYYY'''QVYYY''')))))),,,yyyyyy1111RWiii(((RWiii((()))))),,,	U999999----QVYYY'''QVYYY'''''r   c                    t          g dg d          }|dz
  }t          |j        g d           t          |j        g d           t          g dg d          }|dz  }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z
  }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z  }t          |j        g d           t          |j        g d           d S )	Nr   rO  r   r   )r   r   r   r   r  r   r  r   s      r   test_datafriendly_subz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_subd  sr    )))))),,,URWiii(((RWiii((()))))),,,	QQVYYY'''QVYYY''')))))),,,yyyyyy1111RWiii(((RWiii((()))))),,,	U999999----QVYYY'''QVYYY'''''r   c                    t          g dg d          }|dz  }t          |j        g d           t          |j        g d           t          g dg d          }|dz  }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z  }t          |j        g d           t          |j        g d	           t          g dg d          }|t          g dg d          z  }t          |j        g d           t          |j        g d	           d S )
Nr   rO  r   r   r   r   r   rv  r   )r   ru  r   r   r  r   s      r   test_datafriendly_mulz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul{  sr    )))))),,,URWiii(((RWiii((()))))),,,	QQVYYY'''QVYYY''')))))),,,|||)))4444RWjjj)))RWiii((()))))),,,	U<<<iii0000QVZZZ(((QVYYY'''''r   c                    t          g dg d          }|dz  }t          |j        g d           t          |j        g d           t          g dg d          }|dz  }t          |j        g d           t          |j        g d           t          g dg d          }|t          g dg d          z  }t          |j        g d	           t          |j        g d
           t          g dg d          }|t          g dg d          z  }t          |j        g d	           t          |j        g d
           d S )Nr   rO  r   r   )r   r   r   r  )r   r  g      >@r   )r   rL  r   r   r  r   s      r   test_datafriendly_divz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_div  s~    )))))),,,VRW111222RWiii(((,,,YYY///	RQV000111QVYYY''',,,YYY///YYY7777RW000111RWiii(((,,,YYY///	U???3333QV...///QVYYY'''''r   c                     t          g dg d          }|dz  }t          |j        g d           t          |j        g d           |dz  }t          |j        g d           t          |j        g d           d S )Nr  rO  r   r  )r   ;f@r   )r   r  r   r  r   s      r   test_datafriendly_powz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_pow  s     ,,,YYY///#XRW111222RWiii(((	c	QV///000QVYYY'''''r   c                    t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           |j        t          urt          |j        ddgddgg           t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           t          |j        ddgddgg           d S )Nr   r   r   r   r   r   r   rr   r   rS   r   s      r   test_datafriendly_add_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_add_arrays  	   Aq6Aq6"##1a&1v&&&	QQ!Q!Q()))6 	31a&1a&!1222Aq6Aq6"##1a&1v&&&	QQ!Q!Q()))QVq!fq!f-.....r   c                    t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           |j        t          urt          |j        ddgddgg           t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           t          |j        ddgddgg           d S )Nr   r   r   r   r   r  r   s      r   test_datafriendly_sub_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub_arrays  r  r   c                    t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           |j        t          urt          |j        ddgddgg           t          ddgddgg          }t          ddgddg          }||z  }t          |ddgddgg           t          |j        ddgddgg           d S )Nr   r   r   r   r  r   s      r   test_datafriendly_mul_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul_arrays  r  r   c           	         |                                  \  }}|D ]t          j                    5  t          j        d           fd|D             \  }}}t          |d<   | d          z  }t          || d          z              | d          z  }t          || d          z              d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r   r   r   r:  s     r   	<genexpr>zUTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type.<locals>.<genexpr>  -      ;;AAHHQKK;;;;;;r   r   r   )rd  r  r  r  r=   rr   r   rb  rc  r   r   r   r:  s         @r   !test_inplace_addition_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type  s*    $ 6 6 8 8
I 	+ 	+A(** + +'000;;;;;;;1b1QQqTT	QAAaDD)))aadd
RQQqTT***+ + + + + + + + + + + + + + +	+ 	+s   BCC	C	c           	         |                                  \  }}|D ]͊t          j                    5  t          j        d           fd|D             \  }}}|j        }t          d          }t          |d<   ||z  }||z  }t          |||z              t          |||z              t          |j        t          ||j                             d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zTTestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type.<locals>.<genexpr>  r  r   r   r   r   	rd  r  r  r  r   r   r=   rr   r<   	r   rb  rc  r   r   r   rC  r   r:  s	           @r    test_inplace_addition_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type  A    $ 6 6 8 8
I 	: 	:A(** 
: 
:'000;;;;;;;1bG2Q'''"QaQA&&&RQ'''RWga&8&8999
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
:	: 	:   B!CC!	$C!	c           	         |                                  \  }}|D ]t          j                    5  t          j        d           fd|D             \  }}}| d          z  }t	          || d          z
             | d          z  }t	          || d          z
             d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zXTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type.<locals>.<genexpr>  r  r   r   rd  r  r  r  rr   r  s         @r   $test_inplace_subtraction_scalar_typezETestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type  !    $ 6 6 8 8
I 	+ 	+A(** + +'000;;;;;;;1bQQqTT	QAAaDD)))aadd
RQQqTT***+ + + + + + + + + + + + + + +	+ 	+   A;B77B;	>B;	c           	         |                                  \  }}|D ]͊t          j                    5  t          j        d           fd|D             \  }}}|j        }t          d          }t          |d<   ||z  }||z  }t          |||z
             t          |||z
             t          |j        t          ||j                             d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zWTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type.<locals>.<genexpr>  r  r   r   r   r   r  r  s	           @r   #test_inplace_subtraction_array_typezDTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type  r  r  c           	         |                                  \  }}|D ]t          j                    5  t          j        d           fd|D             \  }}}| d          z  }t	          || d          z             | d          z  }t	          || d          z             d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  z[TestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type.<locals>.<genexpr>  r  r   r   r  r  s         @r   'test_inplace_multiplication_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type  r  r  c           	         |                                  \  }}|D ]͊t          j                    5  t          j        d           fd|D             \  }}}|j        }t          d          }t          |d<   ||z  }||z  }t          |||z             t          |||z             t          |j        t          ||j                             d d d            n# 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zZTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type.<locals>.<genexpr>*  r  r   r   r   r   r  r  s	           @r   &test_inplace_multiplication_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type$  r  r  c                 f   |                                  \  }}d t          j        d         D             }|D ]t          j                    5  t          j        d           fd|D             \  }}}t          d           d          z  }t          d           d          z  }t          |d<   	 | d          z  }| d          z  }t          ||           t          ||           n$# t          $ r d d	}|v s
J |            Y nw xY wd d d            n# 1 swxY w Y   d S )
Nc                 @    h | ]}t          j        |          j        S r|   r^  r   r:  s     r   	<setcomp>z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<setcomp>8  #    IIIArx{{'IIIr   ComplexrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<genexpr><  r  r   r   r   r   Supported type  throwing TypeError)
rd  r}   r_  r  r  r  r   r=   rr   r4  )	r   rb  rc  unsupportedr   r   r   r  r:  s	           @r   'test_inplace_floor_division_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type4  s    !% 6 6 8 8
IIIi1HIII 	1 	1A(** 1 1'000;;;;;;;1b2Q'''!!A$$.Ba(((11Q44/11!!A$$JA11Q44KB A&&& Q''''  1 1 1BABBBC+00S0000011 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1s7   A+D%8<C54D%5DD%DD%%D)	,D)	c                   
 |                                  \  }}d t          j        d         D             }|D ]
t          j                    5  t          j        d           
fd|D             \  }}}|j        }t          d
          }t          |d<   	 ||z  }||z  }t          |||z             t          |||z             t          |j        t          t          ||j                  | 
d          k                         n$# t          $ r d	
 d
}	
|v s
J |	            Y nw xY wd d d            n# 1 swxY w Y   d S )Nc                 @    h | ]}t          j        |          j        S r|   r^  r  s     r   r  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<setcomp>M  r  r   r  rI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<genexpr>Q  r  r   r   r   r   r   r  r  )rd  r}   r_  r  r  r  r   r   r=   rr   r<   r4  )r   rb  rc  r  r   r   r   rC  r   r  r:  s             @r   &test_inplace_floor_division_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_typeI  s    !% 6 6 8 8
IIIi1HIII 	1 	1A(** 1 1'000;;;;;;;1bG2Q'''"1!GA1HB AF+++ Q!V,,, 16 2 2Q!!A$$Y@@    ! 1 1 1BABBBC+00S0000011 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1s8   A	D;A3D
D;D,)D;+D,,D;;D?	D?	c           	         |                                  \  }}t          j                    5  t          j        dt                     |D ]fd|D             \  }}}t          d           d          z  }t          d           d          z  }t          |d<   d}	 | d          z  }t          ||           n# t          t          f$ r |dz  }Y nw xY w	 | d          z  }t          ||           n# t          t          f$ r |dz  }Y nw xY wt          t          j                  rt          |dd d	           t          |dd d	           	 d d d            d S # 1 swxY w Y   d S )
NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zUTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type.<locals>.<genexpr>h  r  r   r   r   r   r   r   Failed on type=.)rd  r  r  simplefilterDeprecationWarningr   r=   rr   r4  
issubclassr}   integer)r   rb  rc  r   r   r   nwarnsr:  s          @r   !test_inplace_division_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_typeb  s;    $ 6 6 8 8
I$&&  	D  	D!'+=>>> D D;;;;;;;1b2Q'''!!A$$.Ba(((11Q44/1 1IA A&&&&*I6      aKFFF  !!A$$JB Q''''*I6      aKFFF  a,, D ,Ba,B,B,BCCCC ,Ba,B,B,BCCCC=D 	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	D  	Ds[   A8E2%CE2CE2CE2!D ?E2 DE2DAE22E69E6c                 (  	 |                                  \  }}t          j                    5  t          j        dt                     |D ].		fd|D             \  }}}|j        }t          d	          }t          |d<   d}	 ||z  }t          |||z             n# t          t          f$ r |dz  }Y nw xY w	 ||z  }t          |||z             t          |j        t          t          ||j                  | 	d          k                         n# t          t          f$ r |dz  }Y nw xY wt          	t          j                  rt          |dd		 d
           t          |dd		 d
           0	 d d d            d S # 1 swxY w Y   d S )NrI  c              3   B   K   | ]}|                               V  d S r   r  r  s     r   r  zTTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type.<locals>.<genexpr>  r  r   r   r   r   r   r   r   r  r  )rd  r  r  r  r  r   r   r=   rr   r4  r<   r  r}   r  )
r   rb  rc  r   r   r   rC  r   r  r:  s
            @r    test_inplace_division_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type  sO    $ 6 6 8 8
I$&& $	D $	D!'+=>>> "D "D;;;;;;;1bG2Q'''" FA AE*****I6      aKFFF  !GB QU+++ 16 2 2Q!!A$$Y@@    +I6      aKFFF  a,, D ,Ba,B,B,BCCCC ,Ba,B,B,BCCCCE"D$	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	D $	Ds\   AFBFB52F4B55F9ADFD.+F-D..AFFFc                 "   |                                  d         }|D ]}t          j                    5  t          j        d           t	          g dg d|          }| |d          z  }t	          g dg d|          }t          |j        |j                   t          |j        |j                   | |d          z  }t          |j        |j                   t          |j        |j                   d d d            n# 1 swxY w Y   d S )Nr   rI  r   rO  r  r   r  )rd  r  r  r  r   rr   r   r   )r   rb  r:  r   r   xx_rs         r   test_inplace_pow_typez6TestMaskedArrayInPlaceArithmetic.test_inplace_pow_type  sQ   ++--a0
 	0 	0A(** 0 0'000))))))1===!!A$$Y^^^)))1EEERWdi000RWdi000aadd
QVTY///QVTY///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0s   CDD	
D	N)#r  r  r  rW  rY  rd  rg  rl  rn  rq  rt  rv  rx  rz  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  rS  
  s         B B B	% 	% 	%     
2 
2 
2     
2 
2 
2     
2 
2 
2	 	 	& & &
E 
E 
EN N N(( ( (,( ( (.( ( (.( ( (.
( 
( 
(/ / // / // / /+ + +: : : 
+ 
+ 
+: : : 
+ 
+ 
+: : : 1 1 1*1 1 12#D #D #DJ'D 'D 'DR0 0 0 0 0r   rS  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                            e          d             Zd Zd Zd Zd Zej                            dd          ej                            dd          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* Z-d+ Z.d,S )-TestMaskedArrayMethodsc           
         t          j        g d          }|                    dd          }|                    dddd          }t          j        g d          }t          ||          }t          ||                    |j                            }t          ||                    |j                            }t          j        g d          }t          ||          }	t          ||                    |j                            }
t          ||                    |j                            }||||||||	|
|f
S N$g      @gGz.@g-!@g      !@g&1?ʡE@\( @Q@{G#@Pn@h|?!@!rh@jt@J+@zGa@!rh@ʡE@-@)\(@(\B#@+@uV@~j@g"~@gK7@
ףp=J#@Gz@Mb@}?5^#@羟/$@!rhm@-#@J+@Mb@ʡ@g-?r   r   r   $r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   $r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}   r   r^   r`   r   r   rO  XXrC  r[  mXmXXr   m2xm2Xm2XXs               r   r   z#TestMaskedArrayMethods._create_data  T   H @ @ @ A A IIaOOYYq!Q""H ' ' ' ( ( """		!' 2 2333!))BH"5"5666X ( ( ( ) ) $$$AG!4!4555"2::bh#7#7888!RBCc477r   c           
         t          g d          }t          |                                |j                                                   t          |                                |j                                                   t          |                                |j                                                   t          |                                |j                                                   t          |                    ddddd          |j                            ddddd                     t          |                    g d          |j                            g d                     t          |	                                |j        	                                           t          |
                                |j        
                                           t          ddgddgg          }t          |                                |j                                                   t          |                                |j                                                   t          |                    ddg          |j                            ddg                     t          |                                |j                                                   d S )Nr   r   r   r   r   r   r   )r   rr   r   r   r   argmaxargminr   compressconjr   diagonalrg   rh   rk   r   r   rC  s      r   test_generic_methodsz+TestMaskedArrayMethods.test_generic_methods  s   )))QUUWWagkkmm,,,QUUWWagkkmm,,,QXXZZ!1!1222QXXZZ!1!1222QXXaAq!,,agnnQ1a.K.KLLLQZZ			**AG,<,<YYY,G,GHHHQVVXXqw||~~...Q[[]]AG$5$5$7$7888Aq6Aq6"##QZZ\\17#3#3#5#5666QUUWWagkkmm,,,QVVQF^^QW\\1a&%9%9:::Q[[]]AG$5$5$7$788888r   c                 0   t           j                            d          }|t           j                            d          dz  z   }t          t	          ||                     t           j        |d<   t          t	          ||                      t           j        |d<   t          t	          ||                     t          |          }t          |d<   t          t	          ||d                     t          t	          ||d                      |dz  }d|d<   t          t	          |dd                     t          t          j        t           j	                  j
        gt           j	                  }t          t	          ||                     d S )	Nr   g:0yE>r   r   T)r?   Fr   )r}   r   r   ro   r   ry  r>   r=   r  int_rM   r   s      r   test_allclosez$TestMaskedArrayMethods.test_allclose  sQ   INN2	r""T))Av!HQNN"###v!AOO"AD111222HQ6666777	T	!AD111222 "(27++/0@@@Ar   c                     t          j        g dgd          }t          ||d          sJ t          ||t          j        dd                    sJ d S )Nrd  zm8[ns]r   r   )atolr   r  )r}   r   r   r  r  s     r   test_allclose_timedeltaz.TestMaskedArrayMethods.test_allclose_timedelta  sf     Hlll^844411%%%%%%12>!T#:#:;;;;;;;;r   c                 (   t          j        g dg dg dg          }t          j        g dg dg dgt           j                  }t          ||          }|d	k    }|d	k     }t	          |                                            t	          |                                           t          |                    d
          g d           t          |                    d          g d           t          |                    d
          g d           t          |                    d          g d           t	          |                                            t	          |                                           t          |                    d
          g d           t          |                    d          g d           t          |                    d
          g d           t          |                    d          g d           d S )N)gp=
ף?gp=
ף?g?)gQ?gQ?g)\(?)gףp=
?gףp=
?gffffff?ru  r   r"  r   r   r   r   r=  r   r   )r}   r   r  r>   ro   r   r   rr   )r   r   rC  r[  mxbigmxsmalls         r   test_allanyz"TestMaskedArrayMethods.test_allany  s   H(((((((((* + + H***+++)))+24'; ; ; !!$$$c8EIIKK   		UYYq\\#7#7#7888UYYq\\#7#7#7888UYYq\\#7#7#7888UYYq\\#5#5#5666GKKMM!"""W[[^^%8%8%8999W[[^^%:%:%:;;;W[[^^%8%8%8999W[[^^%8%8%899999r   c                 f   t          dt                    }t          g dd          }t          |                                t
          u            |                    |           t          |           t          |j        d           t          |t
          u           t          dt                    }t          |                                t
          u            |                    |           t          |            t          |j        d           t          |t
          u           d S )Nr|   r   r   Tr   r  )r&   r  r   ro   r   r=   r   r   )r   storer  s      r   test_allany_odditiesz+TestMaskedArrayMethods.test_allany_oddities/  s   b%%%YYYT***

f$%%%UT"""V#$$$b%%%

f$%%%UE	T"""V#$$$$$r   c           
         |                                  \
  }}}}}}}}}}t          |                                d           t          |                                d           t          |                                d           t          |                                d           t          |                                d           t          |                                d           t          |                                d           t          |                                d           t          |                    d          g d           t          |                    d          g d           t          |                    d          g d           t          |                    d          g d	           t          |                    d
          g d           t          |                    d
          g d           t          |                    d
          g d           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   r   r   r   r   r   )r   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  r  r  s         r   test_argmax_argminz)TestMaskedArrayMethods.test_argmax_argminA  s   -1->->-@-@*1aBAsCRYY[["%%%RYY[["%%%SZZ\\1%%%SZZ\\1%%%RYY[["%%%RYY[["%%%SZZ\\2&&&SZZ\\2&&&RYYq\\#5#5#5666SZZ]]$6$6$6777RYYq\\#5#5#5666SZZ]]$6$6$6777RYYq\\#7#7#7888SZZ]]$6$6$6777RYYq\\#5#5#5666SZZ]]$6$6$677777r   c                    t          j        g d          }t          j        g d          }t          ||          }|                    dd          }t          |j        |j                   t          |j        |                    dd                     t          |j        |j                            dd                     d S )Nr  r  r   r   r+  )r}   r   cliprr   r   r   )r   r   rC  r[  clippeds        r   	test_clipz TestMaskedArrayMethods.test_clipX  s    H @ @ @ A A H : : : ; ; 11''!Q--W\27+++W]AFF1aLL111W]BHMM!Q$7$788888r   c                     t          j        d          }t           j                            |ddgdz            }|                    dd|           t          |j        ddgdz             d S )Nr   r   r   r   r   r  )r}   r   r  r   r  rr   r   r  s      r   test_clip_outz$TestMaskedArrayMethods.test_clip_outi  si    IbMMEaq!fqj11	q!QVaVaZ(((((r   c                 &   t          g dd          }|dk    |dk     z  }t          |                    |          ddg           t          |dd	g<   |                    |          }t          |j        ddg           t          |j        d
dg           t          |j        d           t          |||                    |dk     }|                    |          }t          |j        g d           t          |j        g d           t          |j        d           t          |||                    t          g dg dgg dg dg          }|                    |                                dk              }t          |j        g d           t          |j        g d           t          j	        g d          }|                    |dk    d          }t          |j        ddgddgg           t          |j        d
dgdd
gg           d S )Nr  i'  r  r        @r   r   r   r   r   r   r   r  rO  rv  ru  r  rr  r   r      )rw  ru  r  rr  r   )r   r   r   r  r   rw  ru  rr  )
r>   rr   r  r=   r   r   r8  r\   r}   r   )r   r   	conditionr   r   s        r   test_compressz$TestMaskedArrayMethods.test_compressp  s   ---$???WS)	QZZ	**RH5551a&	JJy!!QWr2h'''QWq!f%%%Q\4(((Q)%%%V	JJy!!QWlll+++QWiii(((Q\4(((Q)%%%,,,5(yy)))46 6 6JJqwwyyB''QW...///QWlll+++HYYYJJqAvAJ&&QWBx"b2333QW1v1v./////r   c                     t          g dg d          }|                                }t          ||           t          |d<   |                                }t          |g d           d S )Nrd  r   r   r   r   r   r   r  )r   
compressedrr   r=   r   s      r   test_compressedz&TestMaskedArrayMethods.test_compressed  si    ,,,\\\222LLNNQ!LLNNQ			"""""r   c                 ,   dt           fdt          fdg}t          g d|          }t          t	          |j                                                  t	          |                     t          |          }t          |j        |j                   t          |j        |j                   t          t	          |          |          }t          |j        |j                   t          |j        |j                   t          g dg d          }t          |          }t          t          j        |j        |j                              |                    t                    }t          t          j        |j        |j                             d S 	Nr   r   r  ))r   rF  z1.1)r   rG  z2.2)r   r  z3.3r   r   r  r   )r   r   r>   rr   r   r8  r  r'   r`   r&   ro   r}   r   r   r  r   datatyper   r   s       r   
test_emptyz!TestMaskedArrayMethods.test_empty  sW   #Jel;LLL') ) )S**,,--s8}}===qMMQWag&&&Q\1<000#a&&)))QWag&&&Q\1<000 )=)=)=>>>qMMB'777888FF<  #AFAF3344444r   c                     dt           fdt          fdg}t          g d|          }t          t	          |j                                                  t	          |                     t          t	          |          |          }t          |j        |j                   t          |j        |j                   t          |          }t          |j        |j                   t          |j        |j                   t          g dg d          }t          |          }t          t          j        |j        |j                              |                                }t          t          j        |j        |j                             d S r*  )r   r   r>   rr   r   r8  r  rm   r`   rn   ro   r}   r   r   r  r+  s       r   
test_zerosz!TestMaskedArrayMethods.test_zeros  sS   #Jel;LLL') ) )S**,,--s8}}===#a&&)))QWag&&&Q\1<000qMMQWag&&&Q\1<000 )=)=)=>>>qMMB'777888FFHH#AFAF3344444r   c                     dt           fdt          fdg}t          g d|          }t          t	          |j                                                  t	          |                     t          t	          |          |          }t          |j        |j                   t          |j        |j                   t          |          }t          |j        |j                   t          |j        |j                   t          g dg d          }t          |          }t          t          j        |j        |j                              |                                }t          t          j        |j        |j                             d S r*  )r   r   r>   rr   r   r8  r  rU   r`   rV   ro   r}   r   r   r  r+  s       r   	test_onesz TestMaskedArrayMethods.test_ones  sS   #Jel;LLL') ) )S**,,--s8}}===Qx(((QWag&&&Q\1<000aLLQWag&&&Q\1<000 )=)=)=>>>aLLB'777888FFHH#AFAF3344444r   c           	      ~   t          d          }g d}t          |          }t          ||          }t          |d         t          u            t          |d         t          u            ddg|ddg<   t          |d         t          u            t          |d         t          u           t          |g d	           t          t          d          g d
dz            }g d}|                    |g d           t          |t          g d                     t          |j	        g d           |                    |t          g dg d                     t          |g d           t          |j	        g d           t          t          d          g d
dz            }t          ||g d           t          |t          g d                     t          |j	        g d           t          ||t          g dg d                     t          |g d           t          |j	        g d           d S )Nr   rq  r   r   r   r   ru  r   )r   r   r   r   ru  r  r   )r   r   r   r   )r   r   r   r   )
r   r   r   r   r   r   r   rs  r+  rb  )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )
r   r   r   r   r   r   r   rs  r+  rb  )
r   r   r   r   r   r   r   r   r   r   )r   r:   r   ro   r=   rr   r>   rZ   r   r   rq   )r   rz  r  rC  r   r  s         r   test_putzTestMaskedArrayMethods.test_put  sO    1IIOOaLL!!!!H1a&	!!F"###Q***+++///A*=>>>LL	aQ @ @ @AABBBQV;;;<<<	alllLLL99:::1>>>???QV;;;<<<///A*=>>>Aq,,,Q @ @ @AABBBQV;;;<<<Aq,|||\\\::;;;1>>>???QV;;;<<<<<r   c                    t          d          }t          ddgddg          }|                    ddg|           t          |d	         t          u           t          |d	         d	           t          |d         t          u           t          |d         d
           t          |d         t          u            t          |d
         t          u           t          |d
         d	           d S )Nr   r   r   FTr   r   r   r   r   )rm   r   rZ   ro   r=   rr   )r   r   r   s      r   test_put_nomaskz&TestMaskedArrayMethods.test_put_nomask  s    "II2s)5$-000	q!fa!F"###QqT1!F"###QqT1!!F"###QqT1r   c                     t          d          }g d}t          |          }t          |dz   |dd          }|                    g dg d           t	          |j        g d           d S )	Nr   rq  r   Trt  )r   r   r   r   r   rX  )r   r   r   r   r   )r   r:   r   rZ   rr   r   r  s        r   test_put_hardmaskz(TestMaskedArrayMethods.test_put_hardmask  ss    1IIOOaLL1q5qDt<<<
000RX/////r   c                 x   t          d          dz   }t          |g d          }g d}|                                }t          ||d           t	          |g d           |                                }t          ||d           t	          |j        g d           t	          |j        g d           t          g d	g d
          }|                                }t          |||           t	          |j        g d           t	          |j        g d           |                                }t          |||           t	          |j        g d           t	          |j        g d           |                                }|                                 t          |||           t	          |g d           d S )Nr   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   rc  )r   r   rc  r   r   rc  )r   r   r   r   r   r   )r   r  rw  ru  r  rr  )r   r   r   r   r   r   )r   r   rw  r   r   rr  )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r[   rr   r   r   ry  )r   r   r[  r   r   mxxvaluess          r   test_putmaskz#TestMaskedArrayMethods.test_putmask  s   1IIM1---...!!!VVXXD"R---...ggiiT2SY 4 4 4555SY 2 2 2333///6H6H6HIIIVVXXD&!!!RX333444RX111222ggiiT6"""SY 4 4 4555SY 2 2 2333ggiiT6"""S.../////r   c                 
   t          g dgg dg          }|                                }t          |j        j        |j                   t          ddgddg          }|                                }t          |j        j        |j                   t          g dg dd	          }t          |                                j        g d           d
|_        d|_        |                                }t          |j        g d           t          |j        g d           t          |j        d
           t          |                    d          g d           t          |                    d          g d           d S )NrX  r   r   r   r   r   r   r   r   rd  r&  Fr  rt  rG  rH  r-  )r   r   r   r   )r   r\   rr   r   r`   r8  r   )r   r   aravelars       r   
test_ravelz!TestMaskedArrayMethods.test_ravel.  sa   ???#???*;<<<V\'6661a&1v&&&V\'111,,,\\\%@@@QWWYY_lll333WWYYRX|||,,,RX|||,,,R]C(((QWW3W''666QWW3W''66666r   rI  AKCF
data_orderCFc                 Z   t          j        d|          }d|dd d f<   t          j        dt          |          j        }d|dd d f<   t	          ||          }|j        j        j        |j        j        j        k    sJ |	                    d          dk    
                                sJ |                    |          }|	                    d          dk    
                                sJ t          |                    |          |                    |          j                   d S )N)r   r   rH  r   )r   r   )r~   rI  Fr   )r}   rU   r  r?  r   r   r@  fncr   r*   r   r\   rq   )r   rI  rC  rJ  r   r   raveleds          r   test_ravel_orderz'TestMaskedArrayMethods.test_ravel_orderD  s   
 ggZ000AqqqD	wwd*===?QT
#D!!!w} AGM$55555q %%'''''''%..q!!Q&++----- 	399U++QWWU^^-ABBBBBr   c                     t          d          }t          |d<   |                    dd          }t          |j        d           t          |j        j        d           t          |j        d           t          |j        j        d           d S )Nr   r   r   rt  r  )r   r=   r^   rr   r`   r   r4  s      r   test_reshapez#TestMaskedArrayMethods.test_reshapeV  sy    1II!IIaOOQWg&&&QW]G,,,QWd###QW]D)))))r   c                    t          g dg dt          j                  }t          |          }t	          |j        g d           t	          |j        g d           t          |d          }t	          |j        g d           t	          |j        g d	           |                                 t	          |j        g d           t	          |j        g d           t          g dg dt          j                  }|                    d           t	          |j        g d           t	          |j        g d	           g d}t          |          }t          t          t          t                                t          g d
t          t          j                  }t          |d          }t	          |j        g d           t          g d
g dt          j                  }t          |d          }t	          |j        g d           t	          |j        g d           t          ddgt          j                  }t          |d          }t	          |t          ddgt          j                             d S )Nr   r   r   r   r   r  rd  r   r   r   r   Fr`  )r   r   r   r   r   )r   r   r   r  r   )r  r   r   r   r   r   r   r   r   r   )r   r   r  r   r   r   r   r   r   r   r   r   r   stablekind)r   r}   r`  rd   rr   r   r   ro   r  sortedr   rS   r  )r   r   sortedxs      r   	test_sortz TestMaskedArrayMethods.test_sort`  sX   ,,,\\\BBBq''W]LLL111W]LLL111q%(((W]LLL111W]LLL111	QWlll+++QWlll+++,,,\\\BBB	uQWlll+++QWlll+++LLq''Jv{333444###&@@@q%(((W]$5$5$5666###///IIIq%(((W]$5$5$5666W]OOO4441b')))qx(((WeRG27;;;<<<<<r   c                     t          g dt          j                  }t          g d          }t          |d          }t	          ||           d S )N)r   r   r   r   r   r   r   )r   r   r   r   r   r   rP  rQ  )r   r}   r`  r   rr   )r   r   r  computeds       r   test_stable_sortz'TestMaskedArrayMethods.test_stable_sort  sY    $$$BH555+++,,18,,,Xx(((((r   c                    t          g dg dt          j                  }i ddiddiddiddd	ddd	fD ]V}t          |fi |}|t	          |fi |         }t          |j        |j                   t          |j        |j                   Wd S )
NrL  r   r  ra  TFr8  r   )r8  ra  )r   r}   r`  rd   r   rr   r   r   )r   r   kwargsrT  
argsortedxs        r   test_argsort_matches_sortz0TestMaskedArrayMethods.test_argsort_matches_sort  s    ,,,\\\BBB!4(!5)$a(&'D99&'E::< 		: 		:F 1''''G71////0J
(8999
(89999		: 		:r   c           	      t   t          g dg dg          }|                    d           t          |g dg dg           t          g dg dg          }|                    d           t          |g dg dg           t          g dg dgg d	g d
g          }|                    d           t          |g dg dg           t          |j        g dg dg           t          g dg dgg d	g d
g          }|                    d           t          |g dg dg           t          |j        g d
g d
g           t          g dg dg dgg dg dg dgg dg dg dgg dg dg dgg          }t          ||dz  dk    <   |                                }|                    d          }|                    d           |                    d           t          ||           |                                }|                    d          }|                    d           |                    d           t          ||           |                                }|                    d          }|                    d           |                    d           t          ||           d S )N)r+  r   r   )r   r   rb  r   r  )r+  r   rb  r   )r   r   r+  )r   r   rb  r   rO  r   r  r   rK  r  r   r   rc  r   )r>   rd   rr   r   r=   r   r*   )r   r   amans       r   test_sort_2dz#TestMaskedArrayMethods.test_sort_2d  s    )))YYY/00	q			QIII.///)))YYY/00	q			QIII.///)))YYY/yyy)))6LMMM	q			QIII.///QWyyy)))4555)))YYY/yyy)))6LMMM	q			QIII.///QWyyy)))4555999iii;$99iii;$99iii;$99iii;= > > !a%1*VVXXXXb\\







RVVXXXXb\\







RVVXXXXb\\







Rr   c                 v   t          g dg ddt          fdt          fg          }t          g dg ddt          fdt          fg          }t          g dg d	dt          fdt          fg          }t          |          }t          ||           t          |j        |j                   t          |d
          }t          ||           t          |j        |j                   t          j        dt          dfg          }|                    |          }t          |          }t          |d
          }d S )N)r  r)  rt  r   r   r  r  rM  )r  r  r  r  r  r  r  r&  r  r?  )r  rM  rb  rt  r  r)  r  )r  r  r  r  r  r  r  )r  r  rM  rb  rt  r)  r  )r  r  r  r  r  r  r  Fr`  r  r   )r   r   rd   rr   r   r}   r~   r  )r   r   	mask_last
mask_firstr   r\  s         r   test_sort_flexiblez)TestMaskedArrayMethods.test_sort_flexible  sX   IIIIII:Sz*, , , IIIIII:Sz*, , ,	 IIIIII:Sz*, , ,

 AwwT9%%%TY	///Au%%%T:&&&TY
000 XS!}o&&FF2JJAwwAu%%%r   c                     t          g dg d          }t          t          j        |          t          |                     d S )N)r   r   r   r   r   )r   r   r   r   r   r   )r   rr   r}   r   r  s     r   test_argsortz#TestMaskedArrayMethods.test_argsort  s@    ///888RZ]]GAJJ/////r   c                    t          g dg          }t          |                                g d           t          g dgg dg          }t          |                                g d           t          |                                j        g d           t	          j        dgg          }|                                }t          |d           d|d<   t          |d         d           t          dggd          }|                                }t          |t          j        j        u           t          |j	        d           d|d<   t          |d         d           d S )	Nr   r  r   r   r   .r  T)
r>   rr   squeezer   r}   r   ro   r  r=   r   )r   r   rJ  arr_sqm_arrm_arr_sqs         r   test_squeezez#TestMaskedArrayMethods.test_squeeze  sH   YYYK((T\\^^YYY///YYYKyyyk:::T\\^^YYY///T\\^^)999555 huooVQsSY""" qcU...==??,---X]D)))U4[!$$$$$r   c                    t          j        g d          }t          j        g d          }t          ||                              dd          }|                    dddd          }|                    dd          }t	          |d	         |d d d	f                    |                    dd          }t	          |j        d
           d S )Nr  r  r   r   r   r   r   r   r   )r   r   r   r   )r}   r   r^   swapaxesrr   r`   )r   r   rC  r  r  	mXswapped
mXXswappeds          r   test_swapaxesz$TestMaskedArrayMethods.test_swapaxes  s    H @ @ @ A A H ( ( ( ) ) 11%%a++jjAq!$$KK1%%	Yr]Bqqq"uI...\\!Q''
Z%|44444r   c           	      f   t          g dg d          }t          |                    g d          t          g dg d                     t          |                    g d          |g d                    t          |                    ddgddgg          t          dd	gdd	ggddgddgg                     t          |d         t          j        j        u            t          |                    d          t          j        j        u            t          g d
g dgg dg dg          }t          |                    ddgd          t          ddgddggddgddgg                     t          t          |ddgd          t          ddgddggddgddgg                     d S )N)r   r  rw  ru  r_  )r   r   r   )r   r   ru  rO  r   r   r   r  rv  r!  r   r   r   r  rw  ru  rr  )r>   rr   rh   ro   r}   r  r=   r   r   s     r   	test_takez TestMaskedArrayMethods.test_take  s   )))<<<88QVVIII&&\\\999(M(MNNNQVVIII&&)))555QVVaVaV,--!B8b"X"6!Q!Q8HII	K 	K 	K 	!$%%%q		RU\)***<<<.iii5MNNNQVVQFV++RHr2h/1v1v6FGGG	I 	I 	IT!aV!,,,RHr2h/1v1v6FGGG	I 	I 	I 	I 	Ir   c                    t          j        d          }t          j        d          d d d f         t          j        d          d d d f         z   }t          ||t          |          k              }t	          ||d          }t          g dg dg d	g d
g dg          }t          ||           t	          ||          }t          g dg dg d	g dg dg          }t          x|d<   x|d<   |d<   t          ||           t          |j        |j                   t          dd          }t	          ||          }t          x|d<   |d<   t          ||           t          |j        |j                   d S )N)ru  r  %   rb  r"  r   r   r   r  mode)ru  r  rv  )r  rv  rb  )rv  rb  r"  )rb  r"  r"  )r"  r"  r"  )rb  r"  ru  )r"  ru  ru  r)  )r   r   r   r   r=  r  r  )r}   r   r   r   rh   rr   r=   r   )r   r   indicesmindicesr   ctrls         r   test_take_masked_indicesz/TestMaskedArrayMethods.test_take_masked_indices&  s   H()))A,,tQQQw'")A,,qqq$w*??3q66(9;;;Axf---lll!kk!kk!kk"ll	$ % %
 	T4   Ax  lll!kk!kk!kk"ll	$ % %
 065T
5T$Z$t*T4   TY	***%O<<<Ax  "((T
T$ZT4   TY	*****r   c           
         t          t          j        d                    }t          |ddg<   |                                }t          |d         d u            t          |d         d u            d|_        |                                }g dg dg dg}t          |d         g d           t          |d         g d           t          |d	         g d           t          ||           t          t          t          g d
g dg d                    dt          fdt          fdg          }t          |d<   t          |                                g d           t          ddgddgdt          fdt          fg          }|                                }t          |dd gddgg           |d         }|                                }t          |dd g           d S )Nr  r   r  r   )r   Nr   r   )r   r   r   rs  )r+  rb  N   r   r   r   )rF  rG  r  )r  r  r  r   r   r  r   r   ))r   rF  s   one)r   rG     two)NNNrM  r  r  r  r   r   )r   r}   r   r=   tolistro   r`   rr   r   r   r   r   )r   r   xlistr|  r   r   s         r   test_tolistz"TestMaskedArrayMethods.test_tolistD  s    ")B--  1b'


aD !!!b	T!"""

/?/?/?@U1X///U1X|||,,,U1X///000UD!!!$s999*??0002 2 3 3 sc5\<@B B B "QXXZZ* * *	+ 	+ 	+
 7F#66*:sc3Z02 2 2xxzzTQI1v.///aDxxzzTAt9%%%%%r   c                 p   t          ddgdt          fdt          fg          }|D ]A}|                                D ]*}t          t	          |t
          j                              +Bd|j        d<   |D ]A}|                                D ]*}t          t	          |t
          j                              +Bd S )Nr  r  r   r   r   r   )r   r   r  ro   r  r}   genericr   )r   r   entryr  s       r   test_tolist_specialcasez.TestMaskedArrayMethods.test_tolist_specialcaseh  s    66"C:Sz*BCCC 	: 	:E : :JtRZ8889999: q	 	: 	:E : :JtRZ8889999:	: 	:r   c                    t          d          }|                                }t          |d         |j                   t          |d         |j                   t
          |g d<   |                                }t          |d         |j                   t          |d         |j                   dt          fddt          fg}t          t          t          t          j         d          dt          j                            d                              |	          }t
          |g d<   |                                }t          |d         |j                   t          |d         |j                   t          j        d
          }t          t          t          t          j         d          t          j                            d          t          j                            d                              |	          }t
          |g d<   |                                }t          |d         |j                   t          |d         |j                   d S )Nr   r   r   )r   r   r   r   r  r  r  ABCDEFGHIJKLMr   r>  )r   toflexrr   r   r   r=   r   r   r   r   r   r}   r   r   r~   rs   )r   r   recordr  s       r   test_toflexz"TestMaskedArrayMethods.test_toflexv  s   bzzVG_dj111VG_dj111$]]]VG_dj111VG_dj111*lS%L9T#bimm- innR002 2 3 3 "# # # %]]]VG_dj111VG_dj111233T#bimm innR00 innR002 2 3 3 "# # # %]]]VG_dj999VG_dj99999r   c                 `   t          g d          }t          |                                          }t          ||           t          |j        |j                   t          g dg d          }t          |                                          }t          ||           t          |j        |j                   t          g dg ddt
          fdt          fg          }t          |                                          }t          ||           t          |j        |j                   d S )	Nr   rO  r   )r  r  )r   r   )r  r  r  r&  r  r  )r   r.   r  rr   r   r   r   r   r  s      r   test_fromflexz$TestMaskedArrayMethods.test_fromflex  s   )))

##T1TY''')))))),,,

##T1TY'''---4L4L4Lsc5\24 4 4

##T1TY'''''r   c                 P   t          g dgg d          }t          dgdgdgdgdggg d          }t          |j        |           t          |                                |           t          t	          j        |j        d	          |                    d	                     d S )
NrX  r  r   r   r   r   r   r   r   )r>   rr   r?  rk   r   cumsum)r   marrayr)  s      r   test_arraymethodz'TestMaskedArrayMethods.test_arraymethod  s    /oooFFFaS1#sQC8$3OO5 5 5VXw'''V%%''111['!44gnnQ6G6GHHHHHr   c                     t           j                            dd          }t          |j        j        |j                   t          |j        j        |j                   d S )N*   Tr   )r}   r  r   rr   r?  r   r   r   s     r   test_arraymethod_0dz*TestMaskedArrayMethods.test_arraymethod_0d  sK    EKKK&&QSXqv&&&QSXqv&&&&&r   c                 4   t           j                            g dg dg          }t           j        j        |d<   |j        }d|d<   t           j        j        |d<   t          |j        |j        j                   t          |j        |j        j                   d S )Nr   r  r  r   r  )r}   r  r   r=   r?  rr   r   r   )r   r   xts      r   test_transpose_viewz*TestMaskedArrayMethods.test_transpose_view  s~    EKKIII.//%,$S45<4QVRTY'''QVRTY'''''r   c                 b   t           j                            d          }d|d<   t           j        j        |d<   d|d<   |                                }d|d<   t          |j        |                                j                   t          |j        |                                j                   d S )Nr  r   r  r  r  rt  r   )r}   r  rm   r=   r  rr   r   r   )r   r   xds      r   test_diagonal_viewz)TestMaskedArrayMethods.test_diagonal_view  s    EKK$%,$$ZZ\\$RWajjll/000RWajjll/00000r   N)/r  r  r  r   r  r  r  r  r  r  r  r  r$  r(  r-  r/  r1  r  rp  r  rq  r3  r5  r7  r;  rA  rb  rH  rJ  rU  rX  r\  r`  re  rg  rm  rr  rt  r}  r  r  r  r  r  r  r  r  r|   r   r   r  r    s       8 8 8@9 9 9$     0< < <: : :4% % %$8 8 8.9 9 9") ) )0 0 0># # #5 5 5,5 5 5,5 5 5, [ 122= = 32=<  0 0 00 0 0<7 7 7, [Wf--[\400C C 10 .-C * * *#= #= #=J) ) ): : :& & &P& & &@0 0 0
% % %.5 5 5.I I I$+ + +<"& "& "&H: : :: : :@( ( ($I I I' ' '	( 	( 	(1 1 1 1 1r   r  c                   D   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ej                            e          d             Zd Zd Zd Zej                            d           ed          d                         Zd Zd Zd Zd Z dS )TestMaskedArrayMathMethodsc           
         t          j        g d          }|                    dd          }|                    dddd          }t          j        g d          }t          ||          }t          ||                    |j                            }t          ||                    |j                            }t          j        g d          }t          ||          }	t          ||                    |j                            }
t          ||                    |j                            }||||||||	|
|f
S r  r  r  s               r   r   z'TestMaskedArrayMathMethods._create_data  r  r   c                    |                                  d         }|                    d          }t          |j        |                    d                              d                     |                    d          }t          |j        |                    d                              d                     |                    d          }t          |j        |                    d                              d                     |                    d          }t          |j        |                    d                              d                     d S )Nr   r   r   )r   r  rr   r   r*   cumprod)r   r  mXcps      r   test_cumsumprodz*TestMaskedArrayMathMethods.test_cumsumprod  s     #yy||TZ1!4!4Q!7!7888yy||TZ1!4!4Q!7!7888zz!}}TZ1!5!5a!8!8999zz!}}TZ1!5!5a!8!899999r   c                 J   t          t          j                            ddd                                        dd          }t
          x|d d df<   x|d<   |d<   dD ]}t          t          |          }t          ||          }t          j        dt          	          }|	                    d
            ||d|          }t          ||u            t          | |d|                     t          dt          	          } |d|          }t          ||u            d S )Nr   r   r  r   r   r  )r  r  r   r   r7  r  r  )r   r   r  r  r  r  r  s          r   test_cumsumprod_with_outputz6TestMaskedArrayMathMethods.test_cumsumprod_with_output  s9   29$$QB//0088A>>(..111a4.2a52f:- 	& 	&HR**FR**F XfE222FKKVBQF333FFf$%%%QF!;!;!;<<<6---FV///FFf$%%%%	& 	&r   c           
         |                                  \
  }}}}}}}}}}|j        \  }}t          |                                t	          j        |                                                     t	          j        |t                    }t	          j        |t                    }t          |          D ]5}	t	          j        |d d |	f                                                   ||	<   6t          |          D ]1}	t	          j        ||	                                                   ||	<   2t          |                    d          |           t          |                    d          |           d S )Nr   r   )	r   r`   rr   r  r}   r'  rm   r   r  )
r   r   rO  rC  r[  r  r  rowscolsks
             r   test_ptpz#TestMaskedArrayMathMethods.test_ptp  s5   )-):):)<)<&1aBAq!QARVVXXrvbmmoo66777x5!!x5!!q 	4 	4AfR1X002233DGGq 	1 	1AfRU--//00DGGRVVAYY%%%RVVAYY%%%%%r   c                     t          ddgddgt                    }|dz   }t          |d         d           t          |j        d                    d S )Nr   r   r   r   r  r   bx)r>   rY  rr   ro   r   r4  s      r   test_add_objectz*TestMaskedArrayMathMethods.test_add_object  sU    #s1a&???GQqT4   q	r   c                    t          g dg dt                    }t          |                                d           t          g dg dgt                    }t          |                    d          g d	           d S )
Nr   r   r  r   r  r   r   r  r   rs  rb  )r>   rY  rr   rg   r  s     r   test_sum_objectz*TestMaskedArrayMathMethods.test_sum_object%  s{    &AAAQUUWWa   )))YYY/v>>>QUUU]]III.....r   c                    t          g dg dt                    }t          |                                d           t          g dg dgt                    }t          |                    d          g d	           d S )
Nr   r   r  r   r  r   r   r  r   r   r  )r>   rY  rr   r  r  s     r   test_prod_objectz+TestMaskedArrayMathMethods.test_prod_object,  s{    &AAAQVVXXu%%%)))YYY/v>>>QVVV^^[[[11111r   c                     t          g dt                    }t          |                                d           t          |                                g d           d S )Nr   r   r   )r   r   r   )r>   rY  rr   r  r   r  s     r   test_meananom_objectz/TestMaskedArrayMathMethods.test_meananom_object3  sR    &111QVVXXq!!!QVVXXzzz*****r   c                 b   t          g d          }t          |                                j        |j                   d|_        t          |                                j        |j                   t          t          j                            |                                                     d S )Nr   T)	r>   rr   r   r`   r   ro   r}   r  	is_maskedr  s     r   test_anom_shapez*TestMaskedArrayMathMethods.test_anom_shape9  s|    ##QVVXX^QW---QVVXX^QW---))*****r   c                    t          t          j        dd                              dd                    }t	          |                                g dg dg           t	          |                    d          g d	g d
g           t	          |                    d          g dg dg           g dg dg|_        d}t	          |                                                    |          dd|gd|dgg           t	          |                    d                              |          dd|gd|dgg           t	          |                    d                              |          dd|gd|dgg           d S )Nr   rs  r   r   )g            r   )r   r  r  r   r  )r  r  r  )r  r  r  )r   r   r   rO  r2  r>  g      g      g      ?g      @r  r   r  r   r   r   r   )r>   r}   r   r^   rp   r   r   r*   )r   r   mvals      r   	test_anomz$TestMaskedArrayMathMethods.test_anom@  s   1a00A6677AFFHH///A	C 	C 	CAFFFNN///A	C 	C 	CAFFFNN*]]MMM:	< 	< 	<))YYY'AFFHHOOD11#UD1D$3EF	H 	H 	HAFFFNN11$77"C.dC0@A	C 	C 	CAFFFNN11$77"C.tS0AB	D 	D 	D 	D 	Dr   c           
      J   |                                  \
  }}}}}}}}}}|                                }t          |                                |                                                                                                           t          |                                |                                t          |j        |                                z  d          z
             t          t          j        |          |                                           t          j	        d          
                    ddd          }t          j                            |d          }t          |                    dd          |                    dd                     d S )	Nr   r      r   r   Fr   )axis1axis2)r   r  rr   tracer'  rg   rp   r   r}   r   r^   r  r>   )r   r   rO  r  mXdiagrJ  rk  s          r   
test_tracez%TestMaskedArrayMathMethods.test_traceQ  sP   (,(9(9(;(;%1aAr1aARXXZZ!9!9!;!;!?!?!A!ABBBBHHJJGGIIFK!**,,,F12)4 )4 )4 4	5 	5 	5 	RXb\\288::... i	""**1a33""3..SYYQaY00%++AQ+2O2OPPPPPr   c           
         |                                  \
  }}}}}}}}}}|                    d          }|                    |          }t          |                    d          |                    |                     t	          |j        t          u            |                    d          }|                    |          }t          |                    d          |                    |                     t	          |j        d                    t          |          }|                    ||           t          ||           |                    dd          }	|                    d          |	                    d          }}
|                    |	          }t          |                    d          |
                    |                     t          |          }|                    |	|           t          ||           d S )Nr   r   r  r   r  )	r   r*   dotrp   ro   r   rS   r'   ro  )r   r   r[  r  r  fxrfXr0  mYYfXXfYYs               r   test_dotz#TestMaskedArrayMathMethods.test_dot`  s   +/+<+<+>+>(1aBCAqYYq\\FF2JJAHHQKK444& !!!YYq\\FF2JJAHHQKK444t]]
rrAr"""ll2r""::a==#**Q--SGGCLLAHHQKK666]]Ar"""""r   c                 Z   t          ddgddggddgddgg          }t          ddgddggddgddgg          }t          ddgddgg          }|                    ||           t          |                    d          ddgdd	gg           t          |j        ddgddgg           d S )
Nr   r   r   r   r   r   r  r      )r>   r  rp   r*   r   r  s       r   test_dot_shape_mismatchz2TestMaskedArrayMathMethods.test_dot_shape_mismatchx  s    1a&1a&)!Q!Q0@AAA1a&1a&)!Q!Q0@AAA1a&1a&)**	aQAHHQKK1a&2r();<<<AFaVaV$455555r   c                    t          g dd          }t          g dd          }t          t          |                                          t          j                   t          t          |                                          t          j                   |                                |                                k    t	          j        d          u sJ t          t	          j        d          	                    d          d          }t          dd          }t          t          |                    d	
                    t                     t          t          |                    d	
                    t                     t          |                    d	|          |u            t          |                    d	|          |u            d S )Nrd  r  r   Tr  r  r   r  r   r  r  )r   rr   ri  r  r}   r  r  r  r   r^   r&   r   ro   )r   foobars      r   test_varmean_nomaskz.TestMaskedArrayMathMethods.test_varmean_nomask  sp   LLL---LLL---T#((**%%rz222T#''))__bj111

chhjj(RWT]]:::: BIbMM))&11>>>AT"""T#(((**++[999T#''q'//**K888aS))S0111QC((C/00000r   c           
         |                                  \
  }}}}}}}}}}t          |                    d           |                                                                           t          |                    d           |                                                                           t          |                    d d          |                                                    d                     t          |                    d d          |                                                    d                     t          |                    d          j        |                    d          j                   t          |                                j        |                                j                   |                    d          |                    d          }}t          |                    d d          |                                                    d                     t          |                    d d          |                                                    d                     t          d          D ]}t          ||         ||                                                                                    t          ||         |d d |f                                                                                    t          t          j	        ||                   |d d |f                                                                                    d S )	Nr  r   r  ddofr  r   r   r   r   
r   rp   r  r'  r  rr   r`   r  r}   re   	r   r   rO  r  r  r  mXvar0mXvar1r  s	            r   test_varstdz&TestMaskedArrayMathMethods.test_varstd  s   +/+<+<+>+>(1b!QCAqBFFF--r}}/B/B/D/DEEEBFFF--r}}/B/B/D/DEEEBFF1F55MMOO//Q/77	9 	9 	9BFF1F55MMOO//Q/77	9 	9 	9SWW!W__*BFFFNN,@AAARVVXX^QUUWW]333FFFNNBFFFNNBFF1F55MMOO//Q/77	9 	9 	9BFF1F55MMOO//Q/77	9 	9 	9q 	= 	=Aq	2a5+;+;+=+=+A+A+C+CDDDq	2aaad8+>+>+@+@+D+D+F+FGGGq	 2 2 "111a4 3 3 5 5 9 9 ; ;= = = =	= 	=r   c                 N   t          j        dt                    }t          dt                    }t          t          d          d          }dD ]}t	          ||          }t           |            t          u            t           |d          t          u            t           |d          t          u             ||           t          |t          u           t          |j        d            ||           t          t          j	        |                     t          t          d          d          }d	|d<   dD ]}t	          ||          }t           |d
          t          u            t           |dd
          t          u            t           |dd
          t          u             ||d
           t          |t          u           t          |j        d            ||d
           t          t          j	        |                     d S )Nr   r   r   Tr   )r  r  r   r  rb  r   r  )r  r  )
r}   r   r   r   r  ro   r=   rr   r   r  )r   r  moutr   
methodnamemethods         r   test_varstd_specialcasesz3TestMaskedArrayMathMethods.test_varstd_specialcases  s%    x%(((Ru%%%&**4(((( 	$ 	$JQ
++FFFHH&'''FF1II'(((FF2JJ&()))FtD&'''D)))FtBHTNN####&**4((("( 	$ 	$JQ
++FFFNNNf,---FF11%%%/000FF2A&&&&0111Ft!$$$$D&'''D)))Ft!$$$$BHTNN####	$ 	$r   c                 2   t          g dg dgg dg dg          }|                    dd          }t          |                    d          g d           t          |j        g d           |                    dd          }t          |                    d          g d           t          |j        g d           |                    dd          }t          |                    d          g d           t          |j        g d	           d S )
Nr  rO  r   r   r  r  r   r   r  )r   r  rr   r*   r   r  s      r   test_varstd_ddofz+TestMaskedArrayMathMethods.test_varstd_ddof  s   999iii(			999/EFFFuu!!u$$T[[^^YYY///TY			***uu!!u$$T[[^^YYY///TY			***uu!!u$$T[[^^YYY///TY			*****r   c                    t          d                              d          }t          |d<   t          j        |          }t          |g d           t	          |          }t          |g d           t          |j        g d           t	          |          }t          g dg dg dgg dg dg dg	          }t          ||           d S )
Nrb  r  r  )r   r   r+  r2  r  )r   r   r   )r   r   r+  r   )r   r^   r=   r}   r$   rr   r   r   )r   r   r  r)  s       r   	test_diagz$TestMaskedArrayMathMethods.test_diag  s    1IIf%%$gajjS)))$$$1ggS)))$$$SXyyy)))3iiIIIyyy9'iiIII>@ @ @S'"""""r   c                    t          g dg dg          }t          |                    d          g d           t          |                    d          ddg           t          |                    d          ddg           t          |                    d          g d	           t          |                    d          dd
g           t          |                    d          dd
g           t          |                    d          g d           t          |                    d          ddg           t          |                    d          ddg           t          |                    d          g d           t          |                    d          ddg           t          |                    d          ddg           d S )Nr   r  r   r  r   r   r   r   r  x   r   r   )r   rr   rg   r  rM   rJ   r  s     r   test_axis_methods_nomaskz3TestMaskedArrayMathMethods.test_axis_methods_nomask  s   999iii())QUU1XXyyy)))QUU2YYB(((QUU1XX2w'''QVVAYY,,,QVVBZZ!S***QVVAYYC)))QUU1XXyyy)))QUU2YYA'''QUU1XX1v&&&QUU1XXyyy)))QUU2YYA'''QUU1XX1v&&&&&r   zcrashes with low memoryrU  i Zb)
free_bytesc                     t          t          j        ddt          j                  t          j        d                    }t          |                                d           d S )N)'  r  i  r   r   g    @)r>   r}   r  uint16rm   rr   r  r  s     r   test_mean_overflowz-TestMaskedArrayMathMethods.test_mean_overflow  sX    
 biHHH h~668 8 8QVVXXw'''''r   c                    t          j        g d          }t           j                            |dd          d          }t           j                            |d d         d          }t           j                            ||d          }t           j                            |d          }t           j                            |d          }t          t           j                            ||                     d S )Nr   r   r   r   r   r   r   r   r   r   r|  r   )prependr  r  r}   r   r  r?   diffro   r   )r   r   r   a_prepdiff1r   diff2s          r   test_diff_with_prependz1TestMaskedArrayMathMethods.test_diff_with_prepend  s    H---..EquA..##AbqbE#33

1f1
55Eq**

11
%%ue,,-----r   c                    t          j        g d          }t           j                            |d d         d          }t           j                            |dd          d          }t           j                            ||d          }t           j                            |d          }t           j                            |d          }t          t           j                            ||                     d S )Nr  r   r   r  r   )appendr  r  r  )r   r   r   a_appr  r   r  s          r   test_diff_with_appendz0TestMaskedArrayMathMethods.test_diff_with_append  s    H---..Eq!uA..""1QRR5"22

1U
33Eq**

11
%%ue,,-----r   c                     t          j        t          d          5  t          j                            t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz4diff requires input that is at least one dimensionalr  r   )r  r  r  r}   r  r  r   r	  s    r   test_diff_with_dim_0z/TestMaskedArrayMathMethods.test_diff_with_dim_0  s    ]H   	$ 	$ EJJrx{{###		$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   2AA"Ac                     t           j                            g dd          }t           j                            |dd          }t	          t           j                            ||                     d S )Nr  r   r  r   )r  r  )r}   r  r?   r  ro   r   )r   r   r  s      r   test_diff_with_n_0z-TestMaskedArrayMathMethods.test_diff_with_n_0"  s`    E777qAAuzz!qqz))q$''(((((r   N)!r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rp  r  rq  r  r  r  r  rr  rz   r  r  r  r  r  r|   r   r   r  r    s       8 8 8@: : :& & &*& & &  / / /2 2 2+ + ++ + +D D D"Q Q Q# # #06 6 61 1 1 = = =, [ 122 $  $ 32 $D
+ 
+ 
+# # #' ' '( [&?@@_ 4555( ( 65 A@(. . .. . .$ $ $) ) ) ) )r   r  c                       e Zd Zd Zd ZdS )!TestMaskedArrayMathMethodsComplexc           
         t          j        g d          }|                    dd          }|                    dddd          }t          j        g d          }t          ||          }t          ||                    |j                            }t          ||                    |j                            }t          j        g d          }t          ||          }	t          ||                    |j                            }
t          ||                    |j                            }||||||||	|
|f
S )N)$y              @y        Gz.@y        -!@y              !@y        &1?r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  y        "~@y        K7@r  r  r  r  r  r  r  r  r  r  y        -?r   r   r   r  r  r  r  r  s               r   r   z.TestMaskedArrayMathMethodsComplex._create_data+  sT   H A A A B B IIaOOYYq!Q""H ' ' ' ( ( """		!' 2 2333!))BH"5"5666X ( ( ( ) ) $$$AG!4!4555"2::bh#7#7888!RBCc477r   c           
         |                                  \
  }}}}}}}}}}t          |                    d           |                                                                           t          |                    d           |                                                                           t          |                    d          j        |                    d          j                   t          |                                j        |                                j                   |                    d          |                    d          }}t          |                    d d          |                                                    d                     t          |                    d d          |                                                    d                     t          d          D ]}t          ||         ||                                                                                    t          ||         |d d |f                                                                                    t          t          j	        ||                   |d d |f                                                                                    d S )	Nr  r   r   r   r   r  r  r   r  r  s	            r   r  z-TestMaskedArrayMathMethodsComplex.test_varstdK  sT   +/+<+<+>+>(1b!QCAqBFFF--r}}/B/B/D/DEEEBFFF--r}}/B/B/D/DEEESWW!W__*BFFFNN,@AAARVVXX^QUUWW]333FFFNNBFFFNNBFF1F55MMOO//Q/77	9 	9 	9BFF1F55MMOO//Q/77	9 	9 	9q 	= 	=Aq	2a5+;+;+=+=+A+A+C+CDDDq	2aaad8+>+>+@+@+D+D+F+FGGGq	 2 2 "111a4 3 3 5 5 9 9 ; ;= = = =	= 	=r   N)r  r  r  r   r  r|   r   r   r   r   )  s3        8 8 8@= = = = =r   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d Zej                            ed          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                             dddg          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 )-TestMaskedArrayFunctionsc                 ~    ddg}t          d|          }t          |ddg           t          |d         d           d S )Nr   r   F)rI   rr   r4  s      r   test_masked_where_boolz/TestMaskedArrayFunctions.test_masked_where_bool`  sH    F""QAQqT1r   c                     g d}t          |d          }t          ||           t          |j        g d           t          |d          }t          ||           t          |j        g d           d S )Nr   r   rO  r  )r?   rr   r   rE   rn  s      r   test_masked_equal_wlistz0TestMaskedArrayFunctions.test_masked_equal_wlistf  s{    II!QRRXyyy)))a##RRXyyy)))))r   c                     g d}t          |d          }t          |j        g d           t          |j        d           d S )Nr   r   rO  )r?   rr   r   r8  rn  s      r   test_masked_equal_fill_valuez5TestMaskedArrayFunctions.test_masked_equal_fill_valueo  sH    II!QRXyyy)))R]A&&&&&r   c                    t          g d          }t          |d<   t          t          t	          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          t          |d          |          t          |d                     t          t          g dg d          g d           d S )Nr  r   rO  rX  )rc  rc  r   r   r   )r   r=   rr   rI   r1   r@   r2   rA   r6   rC   r7   rD   rT   rE   r(   r?   r   s     r   test_masked_where_conditionz4TestMaskedArrayFunctions.test_masked_where_conditionu  s   &&&''!\'!Q--33^Aq5I5IJJJ\-1"5"5q99)!Q//	1 	1 	1\$q!**a00+a2C2CDDD\*Q"2"2A66&q!,,	. 	. 	.\)Aq//1557G17M7MNNN\%1++q11<13E3EFFF\)Aq//1557G17M7MNNN\///???CC&&&	( 	( 	( 	( 	(r   c                     t          dt                    }t          |j        t                    }t          ||          }t          ||           d S )N)r   r   r   r   )rU   r   rm   r`   r
   rI   rr   )r   r  r  ctests       r   test_masked_where_odditiesz3TestMaskedArrayFunctions.test_masked_where_oddities  sJ    \///ek8,,UE**UE"""""r   c                     t          d          }t          t                    5  t          d|           d d d            n# 1 swxY w Y   t          |d          }t	          |j        g d           d S )Nr   r   )
r   r   r   r   r   r   r   r   r   r   )r   rx   
IndexErrorr?   rr   r   r  s      r   "test_masked_where_shape_constraintz;TestMaskedArrayFunctions.test_masked_where_shape_constraint  s    2JJ:&& 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Aq!!TY > > >?????s   AAAc           	         t          j        dddg          }t          j        d          5  t           j                            |d         dk     |          }d d d            n# 1 swxY w Y   t          |j        j        j        |j        j                   t          |d         t           j        	                    t          j        d          t          j
        d                               d S )	Nr   )r&  z<f2)r  z<f4r   rL  )overr&  r   )r}   rm   rP  r  rI   rr   r   r~   r,  r>   rU   )r   r   r^  s      r   test_masked_where_structuredz5TestMaskedArrayFunctions.test_masked_where_structured  s    HRl;<<<[h''' 	3 	3 ##AcFQJ22B		3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
 	RW]("(.999RWE&&rx||RWR[[AA	C 	C 	C 	C 	Cs   +A%%A),A)c                     t          j        d          }t          j        d          }t          t          t           j        j        |dk    |           d S )Nr   r   r   )r}   r   rx   r  r  rI   r4  s      r   test_masked_where_mismatchz3TestMaskedArrayFunctions.test_masked_where_mismatch  s?    IbMMIaLLj"%"4a!eQ?????r   c                 F   t          t          t          t          d                    dd          g d           t          t	          t          t          d                    dd          g d           t          t          t          t          t          d                    g d          dd          j        g d           t          t	          t          t          t          d                    g d	          dd          j        g d
           t          t          t          t          t          d                    g d          d          j        g d           t          t          t          g dg d          d          j        g d           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   r   r   r   r   )	rr   rB   r   r  rF   r   r   r?   rE   r	  s    r   test_masked_otherfunctionsz3TestMaskedArrayFunctions.test_masked_otherfunctions  s   ]4a>>1a88***	, 	, 	,^DqNNAq99;N;N;NOOO]5eAhh.=oo$? $? $?@A1F FFJ$__	& 	& 	& 	^E$uQxx../>%@ %@ %@ABAG GGK$__	& 	& 	& 	\%U1XX-<__#> #> #>?@B BBF$__	& 	& 	& 	%eOOO1@'B 'B 'BCDF FFJ$__	& 	& 	& 	& 	&r   c                    t          g dg d          }t          |                                g d           t          |                    d          g d           t          |                    d          g d           t          |          }|                    |	           t          |g d           t          g d
          }t          g d          }t          |d<   t          |||           }t          |g d           t          |d<   t          |||           }t          |g d           t          |d         t          u            t          |d         t          u           t          |d         t          u            d S )N)g82?g	@g,E|@gE@gŏ1@r=  r   )r   r   r   r   r;  r   )g333333?gffffff@r   gffffff@g@r   )g(\?gS㥛@g-@gʡE@gK@r  r  r  r   r  r   )r   rr   r  r'   r=   rl   ro   )r   r   r   r   r  r   s         r   
test_roundz#TestMaskedArrayFunctions.test_round  s   ???&( ( (QWWYY 4 4 4555QWWQZZ!:!:!:;;;QWWQZZ!D!D!DEEEqMM	AQ,,,---&&&''///""!!QOOQ---...!!QOOQ---...!!F"###!r   c                 0   t          t          j                            ddd                                        dd          }t
          x|d d df<   x|d<   |d<   t          j        dt                    }|                    d	           t          j	        |d
|          }t          ||u            t          ||	                    d
|                     t          dt                    }|	                    d
|          }t          ||u            d S )Nr   r   r  r   r   r  r   r   r7  r   )decimalsr  )r   r}   r   r  r^   r=   r&   r   r  r  ro   rr   )r   r   r  r  s       r   test_round_with_outputz/TestMaskedArrayFunctions.test_round_with_output  s	    29$$QB//0088A>>(..111a4.2a52f: &...E"qf555& !!!VRXXqfX==>>>vU+++1&11& !!!!!r   c                    t          ddg          }t          |                                d           t          ddg          }t          |                                t          u            t          ddg          }t          j        dt                    }|                    d           |                    |           t          |d           t          ddg          }t          d	dg          }|                    |           t          |d
         d           t          ddg          }t          d	dg          }|                    |           t          |d
         t          u            d S )NrF  Fr   r   Tr   r7  r  g    r|   )	r   rr   r  ro   r=   r}   r&   r   r  )r   r   r  s      r   test_round_with_scalarz/TestMaskedArrayFunctions.test_round_with_scalar  sf    #UG$$$QWWYY"""#TF###		V#$$$#UG$$$!5)))E	FVQ#UG$$$vTF+++	FVBZ####TF###vUG,,,	Fr
f$%%%%%r   c                     t          d          }t          t          |t                               t	          |t          j         d                     d S Nr   )r3   ro   r  r   rr   r}   r  s     r   test_identityz&TestMaskedArrayFunctions.test_identity  sC    QKK
1k**+++QA'''''r   c                    d}t          t          |d          d           t          t          |t                    t          u            t	          g d          }t	          g dg d          }t          ||          }t          |g d           t          |j        g d	           t          |_        t          ||          }t          |j        g d	           ||z  }t          |j        |j                   t          ||           t          |j	        |j	                   ||z  }t          |j        |j                   t          ||           t          |j	        |j	                   d S )
N皙r   \(\?)r&  r&  rF  rF  r   )r   r   r   r   r   r  r   )r   r'  gKTj?r'  r   r%  )
rp   rX   ro   r=   r   rr   r   rS   r   r   )r   r   r   r   r   s        r   
test_powerz#TestMaskedArrayFunctions.test_power  sY   E!RLL$///a  F*+++,,,--)))@@@!QKKAAAABBBQWooo...!QKKQWooo...FQWag&&&Aq!!!AGQW---	aQWag&&&Aq!!!AGQW-----r   c                 8   t          j        g dg dg          }t          |g dg dg          }t          j        g d          }t          j        ||g          }t          |g dg dg          }t          g dg d	gg d
g dg          }||z  }t          ||           t          |j        |j                   ||z  }t          ||           t          |j        |j                   ||z  }t          ||           t          |j        |j                   t          g dg dgg dg dg          }||z  }t          ||           t          |j        |j                   ||z  }t          ||           t          |j        |j                   d S )Nr  )r   r   r;  r   rO  r   r  r2  )r   r     )r  iq     r  r   r   r   )r      r*  )r}   r   rr   r   )r   a2a2mb1b2b2mr|  r   s           r   test_power_with_broadcastingz5TestMaskedArrayFunctions.test_power_with_broadcasting  s   X|||\\\233Biii3444Xiii  Xr2hBiii3444...0H0H0HI$99iii02 2 2 czT4   TY	***byT4   TY)))SyT4   TY)))...0H0H0HI$99iii02 2 2SyT4   TY	***byT4   TY	*****r   zfp errors don't work in wasmrU  c                 j   t          j        ddddt          dz  dddddddg          }t          j        g d	          }g d
}g d}t          ||          }t          ||          }|                    d           t          |dk    |d          }t          |g d           t          |j        |j                   t          |dk    d|          }t          |g d           t          |j        g d           t          |dk    |t                    }t          |g d           |j        	                                }d||dk    
                    d          <   t          |j        |           t          j        d          5  t          j        t          d          5  |                    t                     }	d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |	dk    |	t                    }t          |g d           t          |j        |	j                   d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )      "r6  r6  r6  r6  r   r6  r6  r   r6  r6  r   )r   r   r   r   r   r6  r6  r   r6  r   r   r6  )r   r   r   r   r   r   r   r   r   r   r   r   TwarnrM  zinvalid valuer  )r5  r5  r5  r5  r5  r   r5  r5  r   r5  r5  r   )r}   r   r   r>   r   rl   rr   r   r=   r   r*   rP  r  r  RuntimeWarningr   r   r~   )
r   r   r   r   r   r   r   rz  tmpixms
             r   
test_wherez#TestMaskedArrayFunctions.test_where2  s    Hb"b#rCxRsBBOPPHJJJKK111111!"%%%!"%%%
%   "q&"b!!Q 6 6 6 	7 	7 	7QWbh'''"q&"b!!Q 6 6 6 	7 	7 	7QWBBBCCC"q&"f%%Q 6 6 6 	7 	7 	7hmmoo&*R1WT""#QWc"""[((( 	% 	%nODDD % %iinn% % % % % % % % % % % % % % %	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% #'3''QFFFGGGQWci(((((s6   G"$G?G"G	G"G	G""G&)G&c                 0   t          j        d           }t          d           }|                                }t	          t           j                            d||          |           t	          t           j                            d||          |           d S )NT)r}   r   r>   r   rr   r  rl   )r   r   r   r  s       r   test_where_objectz*TestMaskedArrayFunctions.test_where_objectT  ss    HTNNFFHHRU[[q!,,a000RU[[q!,,a00000r   c                 X   t          d          }t          |d<   |dk    }t          ||t                    }t          |j        |j        u            t          |d         t          u            t          |d         t          u            t          |d         t          u            t          |d         t          u           t          |d         t          u           t          ||           t          |t          |          }t          |j        |j        u            t          |d         t          u            t          |d         t          u           t          |d         t          u           t          |d         t          u            t          |d         t          u            d S )Nr   r   r+  r   rs  rb  )r   r=   rl   ro   r~   rr   r  s       r   test_where_with_masked_choicez6TestMaskedArrayFunctions.test_where_with_masked_choice[  se   2JJ!F!Q17"###!!!!F"###!F"###Q!VQ17"###!!F"###!F"###!!r   c                    t          g d          }t          g d          }t          |d<   t          |||           }t          |g d           t          |d<   t          |||           }t          |g d           t	          |d         t          u            t	          |d         t          u           t	          |d         t          u            t          dd          }t          |d<   t          dd          d	z  }t          |d<   t          g dg d
          }|                    d          }t          |||          }t          |||          }t          ||           t	          t          |          t          u            t          |g d           t          |t          d          }t          |g d           t          |dt                    }t          |g d           d S )Nr  r  r   r  r   r   r   r   r   r  r   )r   r   r   ru  r  )rc  rc  rc  r   r   )rc  r   r   rc  rc  )	r   r=   rl   rr   ro   r   r*   r/   rS   )r   r   r  r   r   cmr   s          r    test_where_with_masked_conditionz9TestMaskedArrayFunctions.test_where_with_masked_conditionq  s   &&&''///""!!QOOQ---...!!QOOQ---...!!F"###!1aLL"1aLL2!///888XXa[[!QNN2q!__Qv%&&&R***+++!VQQ***+++!QQ***+++++r   c                 2   t          j        dt           j                  }t          j        dt           j                  dz  }t	          |dk    ||          j        }t          j        t           j        t           j                  }t          ||           d S )Nr   r   rG  r  )r}   r   r  rz  rl   r~   result_typerr   )r   r   r   r   r)  s        r   test_where_typez(TestMaskedArrayFunctions.test_where_type  sv    Iarx(((Iarz***S0QWa##).2:66T7#####r   c                 (   t          j        d                              dd          }t          j        d          }t          j        g d||          }t	          g d||          }t          ||           t          |j        |j                   d S )Nrb  r   r   )r}   r   r^   rm   rl   rr   r~   )r   r   r   r  r  s        r   test_where_broadcastz-TestMaskedArrayFunctions.test_where_broadcast  s    IaLL  A&&HQKKx			1a((999a##T2TZ*****r   c                 ^   t          j        dt          fdt          fg          }t          j        g d|          }t          j        d|          }t          j        g d||          }t          j        g d||          }t          ||           t          |j        |j                   d S )Nr   r   rM  r   r  r   )r   r  r,  )r}   r~   r   r   rl   rr   )r   r\  r   r   r  r  s         r   test_where_structuredz.TestMaskedArrayFunctions.test_where_structured  s    XSzC:.//H---R888HXR(((x			1a((XiiiA&&T2TZ*****r   c                 Z   t          j        dt          fdt          fg          }t          j        g d|          }t	          g d|t
                    }t          g d|          }t          |j        |j                   t          ||           t          |j        |j                   d S )Nr   r   rI  r   r,  r   )	r}   r~   r   r   rl   r=   rI   rr   r   )r   r\  r   r  r  s        r   test_where_structured_maskedz5TestMaskedArrayFunctions.test_where_structured_masked  s    XSzC:.//H---R888999a((			1--RXx~...R"""RWhm,,,,,r   c                    t          j        dt                    }t           j        |d<   t           j        |d<   t          j        t          d          5  t           j        	                    |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   z!not supported for the input typesr  )
r}   r   rY  ry  rQ  r  r  r4  r  masked_invalidr  s     r   test_masked_invalid_errorz2TestMaskedArrayFunctions.test_masked_invalid_error  s    Iav&&&v!v!]9!DF F F 	$ 	$E  ###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s    BB	Bc                      G d d          }t           j                             |                      }t          |j        t          j         |                                 t          |j        g d           d S )Nc                       e Zd ZdZddZdS )CTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.SeriesnonsenseNc                 X    t          j        dt           j        t           j        g          S r#  )r}   r   rQ  ry  )r   r~   r   s      r   	__array__zMTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.Series.__array__  s    xBFBF 3444r   )NN)r  r  r  r   rU  r|   r   r   SeriesrR    s-        E5 5 5 5 5 5r   rV  )FTT)r}   r  rN  rq   r   r   r   )r   rV  rJ  s      r   test_masked_invalid_pandasz3TestMaskedArrayFunctions.test_masked_invalid_pandas  s    	5 	5 	5 	5 	5 	5 	5 	5 e""6688,,39bhvvxx&8&899939&9&9&9:::::r   r   TFc                 4   t           j                            g d          }|j        t          u sJ t           j                            ||          }|j        t          usJ |j        t          u sJ t          j        |j        |j                  |k    sJ d S )Nrd  r  )	r}   r  r   r   rS   rN  r   r   r   )r   r   r   r"  s       r   test_masked_invalid_full_maskz6TestMaskedArrayFunctions.test_masked_invalid_full_mask  s     EKK%%w&    e""14"00xv%%%%v"17CI66$>>>>>>r   c                    g dg dg dg dg}t          g d|          }t          |t          g d                     t          g d|d	          }t          |t          g d                     t          g d|d
	          }t          |t          g d                     t          g dg d          }t          ||d
	          }t          |t          g d                     t          |j        g d           t          |g dg dg dg dg          }g d}t          ||d
	          }t          |t          g d                     t          |j        g d           d S )Nr   r   r   r   r   r  r  r!  r     r"     rw  r  r  !   r   r   r   r   r  r  r  r   )r   r   r   r   r  rw  wrap)r  r   r  r   r   r   r   r   r   )rc  r   r  rc  rM  r   r   r   r   r   r&  )r   rr   r   r   )r   choiceschosenindices_s       r   test_choosez$TestMaskedArrayFunctions.test_choose  s   <<!1!1!1###%5%5%57g..VU???33444gF;;;VU???33444gF;;;VU>>>22333LLL999'777VU???33444V[,,,///|||\\\'3||\\\'C D D D<<'777VU???33444V[,,,/////r   c                    g dg dg dg dg}t          dt                    }t          g d||          }t          |t	          g d	                     t          ||u            t          dt                    }t	          g dg d
          }t          ||d|          }t          |t	          g d                     t          |j        g d
           t	          |g dg dg dg dg          }g d}t          dt                                        t                    }t          ||d|          }t          |t	          g d                     d S )Nr[  r\  r]  r`  r   r   rb  r  rc  re  r   rd  )rx  r  )rc  r  r  rc  rM  rf  r   r&  )r  r  r  r  )	r&   r   r   rr   r   ro   r   r  r   )r   rg  r  rh  ri  s        r   test_choose_with_outz-TestMaskedArrayFunctions.test_choose_with_out  s   <<!1!1!1###%5%5%57as###g5999UE///22333   as###LLL999'EBBBUE"2"2"233444UZ...|||\\\'3||\\\'C D D D<<as###((11'EBBBUE":":":;;<<<<<r   c                 h   t          d          }t          |d<   |                    d          }t          |j        d           t          |j        d                    |                    dd          }t          |j        d           t          |j        d                    |                    dd          }t          |j        d           t          |j        d                    |                    ddd          }t          |j        d           t          |j        d                    t          j        |d	          }t          t          |t                               t          |j        d	           t          |d
         t          u            t          |j        d                    d S )Nr   r   )r   r   rG  r   r   r-  rH  )r   r   r  )
r   r=   r^   rr   r`   ro   r@  r}   r  r   )r   r   r   r  s       r   rJ  z%TestMaskedArrayFunctions.test_reshape  sh   2JJ!IIfQWf%%%IIaOOQWf%%%IIfCI((QWf%%%IIa#I&&QWf%%%Jq&!!
1k**+++QWf%%%$6!"""r   c           
         dt           fdt           fg}t          |          }t          |dt          fdt          fg           t	          |t          |          u            t           df}t          |          }t          |t          df           t	          |t          |          u            t           }t          |          }t          |t          j        t                               t	          |t          |          u            dt           fddt           fdt           fgfg}t          |          }t          j        ddddgfg          }t          ||           t	          |t          |          u            dt           dffg}t          |          }t          |t          j        dt          dffg                     t	          |t          |          u            d	t           fg}t          |          }t          |t          j        d	t          fg                     t	          |t          |          u            t          j        dt          d
fg          }t          |          }t          j        dt          fd|fg          }t          |          }t          |t          j        dt          fddt          d
fgfg                     t	          |j        d         d         |u            d S )Nr   r   r   rD  rE  )r   r0  )rD  r0  )rE  r0  )r&  r   r   r   )	r   r;   rr   r  ro   r}   r~   r   r  )r   ntyper   r)  	base_type
base_mtypesub_types          r   test_make_mask_descrz-TestMaskedArrayFunctions.test_make_mask_descr  s   uU|,u%%TS$K#t5666---... 
u%%TD!9%%%---... u%%T28D>>***---... utUmdE]%CDEu%%(K#l/K)LMNNT7###---... qz"#u%%T28cD!9%5$677888---... e$%u%%T28j$%7$899:::---... HsCm_--	$Y//
8c3Z#z):;<<x((T28c4[3#tQ8H2I$JKKLLLC #z122222r   c                 &   ddg}t          |          }t          |j        t                     t          |ddg           t	          j        ddgt                    }t          |          }t          |j        t                     t          |ddg           dt          fdt          fg}t	          j        ddg|          }t          |          }t          |j        t                     t          |ddg           dt          fdt          fg}t	          j        ddg|          }t          ||j                  }t          |j        |           t          ||           dt          fdt          fg}dt          fdt          fg}t	          j        ddg|          }t          ||j                  }t          |j        |           t          |t	          j        ddg|                     t	          j        dd	          d
         }t          t          |t          j
                             t          ||j                  }t          ||           t          ||u           t	          j        dd          d
         }t          ||j                  }t          ||           ddg}t          t          g}d}t          j        |||          D ];\  }	}
}t          t          |	|
|          }t          |t          u ||	|
|fz             <d S )Nr   r   r   r   r   r  r  r  z?,?r|   r`  TFzcopy=%s, shrink=%s, dtype=%s)r   r  r~   )r:   rr   r~   r
   r}   r   r  r   ro   r  void	itertoolsrY   rS   )r   r   r   mdtypebdtypetest2boolsdtypes	msgformatcpyshrr\  r"  s                r   test_make_maskz'TestMaskedArrayFunctions.test_make_maskM  s    1vTZ***TAq6"""xAd+++TZ***TAq6"""+T{+x(777TZ***TAq6"""+T{+x(777TZ000TZ(((T4   ,e-+T{+x(777TZ000TZ(((T28VV$4FCCCDDDxU333B7
4))***TZ000T4   D !!!xg...r2$dj111UD!!!uE"2	%-eUFCC 	? 	?LCbFSCCCCC6M9S"~#=>>>>	? 	?r   c                    dt           fdt           fg}t          j        g d|          }t          |t                    }t          ||           t          t          |          }t          ||           t          |d          }t          ||           t          j        g d|          }t          ||          }t          j        g d|          }t          ||           dt           fd	t           fg}t          j        g d|          }	 t          ||          }n# t          $ r Y nw xY wdt           fdd
t           fdt           fgfg}t          j        ddg|          }t          j        ddg|          }	t          j        ddg|          }
t          t          ||	          |
           t          j        ddg          }t          ||          t          u sJ d S )Nr   r   )r  r  r  r  r   F)r  r  r  r  )r  r  r  r  r&  r  rD  rE  r#  r%  r   r  r!  )r  r}   r   r<   rS   rr   r  )r   r  r   r   r-  r)  	othertyper~   r"  bmaskcntrlr   s               r   test_mask_orz%TestMaskedArrayFunctions.test_mask_or}  s   tsDk*x888FFFtV$$T4   vt$$T4   tU##T4   999GGGtU##(;;;5IIIT7###4[3+.	999KKK	4''DD 	 	 	D	 tsdD\D$<$@AB+{35AAA+{35AAA+{35AAAWUE**E222HeU^$$q!}}&&&&&&s   D! !
D.-D.c                    t          g dg d          }t          g dg d          }t          g dg dgg dg dg          }t          ||          sJ t          ||d          rJ t          ||          sJ t          ||          sJ t          ||d          sJ t          ||          sJ t          ||d          rJ d S )	Nr   r  r   r   r  r  Fr  )r   r   r  s       r   test_allequalz&TestMaskedArrayFunctions.test_allequal  s   )))))),,,)))))),,,999iii(			999/EFFF1~~AqU3333331~~ 1~~1//////1~~AqU33333333r   c                 (   t          j        g dt                    }t          t	          |          |           t          j        ddgdt          fdt          fg          }t	          |          }t          j        g dt                    }t          ||           dt          fddt          fd	t          fgfg}d
dg}t          j        ||          }t	          |          }t          j        g dt                    }t          ||           d S )NrO  r   r  r  r   r   rM  rD  rE  r  r$  )r   r   r   r   r   r   )r}   r   r  rr   r,   )r   r   r   r)  rw  r   s         r   test_flatten_maskz*TestMaskedArrayFunctions.test_flatten_mask  s    x			...\$''...x(#tsDk0JKKKD!!(<<<t444T7###+tTlT4L%ABC[)xF+++D!!(---T:::T7#####r   c                    t          j        g d          }t          |d          }t          |          }t          ||                                           t	          |d          }t          ||                    dd                     d S )Nrd  Fr   rt  r   )r}   r   r   rr   r^   )r   r   rC  r   s       r   test_on_ndarrayz(TestMaskedArrayFunctions.test_on_ndarray  s{    H\\\""!%   AwwT16688$$$q&!!T199Q??+++++r   c                    t          j        d          }d|_        t          j        g d          }|g d         }t           j                            ||d          }t          ||           t           j                            |          }t           j                            ||d          }t          ||           d S )Nr+  ry  TFTTr  r   r  )r}   r   r`   r   r  r  rr   )r   rJ  condr)  r   marrs         r   r$  z&TestMaskedArrayFunctions.test_compress  s     ill	x11122iii.u~~dCa~00T7###u{{3u~~dDq~11T7#####r   c                    t           j                            ddg          }t           j                            |          }t	          t          |          t           j        u             G d dt           j                  }t           j                             |d                    }t           j                            |          }t	          t          |          |u            t           j                            dgdgg          }t          |j        d           t           j                            dggggg          }t          |j        d            G d dt                    }t           j                             |g gg gg                    }t          |j        d            G d	 dt                    }t           j                             |g gg gg                    }t          |d
           d S )Nr   r   c                       e Zd ZdS )3TestMaskedArrayFunctions.test_compressed.<locals>.ANr  r  r  r|   r   r   r&  r            Dr   r&  r   r  c                       e Zd ZdS )3TestMaskedArrayFunctions.test_compressed.<locals>.MNr  r|   r   r   r  r    r  r   r  c                       e Zd Zd ZdS )r  c                     dS )Nr  r|   r	  s    r   r'  z>TestMaskedArrayFunctions.test_compressed.<locals>.M.compressed  s    rr   N)r  r  r  r'  r|   r   r   r  z3TestMaskedArrayFunctions.test_compressed.<locals>.M  s#            r   r  )
r}   r  r   r'  ro   ri  r   rr   r   r   )r   r   r   r&  r  s        r   r(  z(TestMaskedArrayFunctions.test_compressed  s    EKKAu""T

bj()))	 	 	 	 	
 	 	 	 EKK


##u""T

a    u!qc
++TY"""uQC5',,TY"""	 	 	 	 	 	 	 	 uB4",00TY"""	 	 	 	 	 	 	 	 uB4",00T2r   c                    t          t          j        d          d          }t          j        ddg          }t          g dd          }t          j                            ||d          }t          ||           t          j                            ||d          }t          ||d d                    t          j                            ||d	          }t          ||dd                    t          g d
d          }t          j                            ||dd          }t          ||           t          j                            ||dd          }t          ||d d                    t          j                            ||d	d          }t          ||dd                    t          j                            ddgg d          }t          |t          g dd                     ddg}t          g dd          }t          j                            ||d          }t          |t          g dd                     t          j                            ||d          }t          |t          g dd                     d S )Nr   r   r   )r   r   r   r   rs  r   r   r  rw  samevalid)r   r   r   r   rs  r   F)rx  propagate_maskr  )r   r   r   r   )r   r   r   r   )r  )r   r   r   r   r   T)r   r   r   r   r   )r?   r}   r   r   r  convolverr   )r   r   r   r  r   s        r   test_convolvez&TestMaskedArrayFunctions.test_convolve  sE   1q))HaV222B77u~~a~00T6"""u~~a~00T6#2#;'''u~~a~11T6!B$<(((000"55u~~a~FFT6"""u~~a~FFT6#2#;'''u~~a~GGT6!B$<(((u~~q!fiii00T<b99:::F,,u~~a5~99T<(8(8(8"==>>>u~~a4~88T<(<(<(<bAABBBBBr   N).r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r!  r$  r(  r3  r  rp  skipifrw   r;  r=  r?  rB  rE  rG  rJ  rL  rO  rW  rb  rY  rj  rl  rJ  rs  r  r  r  r  r  r$  r(  r  r|   r   r   r  r  ^  s         * * *' ' '( ( ( # # #@ @ @C C C@ @ @& & &"     ," " "$& & &2( ( (
. . .*+ + +@ [(FGG) ) HG)B1 1 1     ,, , ,:$ $ $+ + +	+ 	+ 	+	- 	- 	-$ $ $; ; ; [VdE]33	? 	? 43	?0 0 0.= = =,  4,3 ,3 ,3\.? .? .?` '  '  'D4 4 4"$ $ $$, , ,$ $ $" " "H C  C  C  C  Cr   r  c                   P    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S )TestMaskedFieldsc           	          g d}g d}g d}dt           fdt          fdg}dt          fdt          fdt          fg}g d}t          t	          t          |||                    ||	          }||||d
S )NrX  )rF  rG  r  r  r  )r  r  threefourfiver   r   r  r  rN  r  )baser   ddtyperw  )r   r   r  r   r   r   )r   ilistflistslistr  rw  r   r  s           r   r   zTestMaskedFields._create_data   s    )))777*sElL9+T{S$K8T#eUE2233$fMMMdfOOOr   c                    |                                  }|d         }|d         }t          |_        t          |j        t          j        |j        |                     t          |_        t          |j        t          j	        |j        |                     d|_        t          |j        t          j        |j        |                     d|_        t          |j        t          j	        |j        |                     g d|_        t          |j        t          j
        d dD             |                     d S )Nr  rw  r   FTrq  c                     g | ]}|||fS r|   r|   )r   r   s     r   r   z;TestMaskedFields.test_set_records_masks.<locals>.<listcomp>;  s    &J&J&JQ1ay&J&J&Jr   )r   rS   r   rs   r   r}   rm   r`   r=   rU   r   )r   r   r  rw  s       r   test_set_records_masksz'TestMaskedFields.test_set_records_masks*  s      ""F|h	TZ$*F)K)K)KLLL	TZ6)J)J)JKKK	TZ$*F)K)K)KLLL	TZ6)J)J)JKKK#OO	TZX&J&J/&J&J&J,24 4 4	5 	5 	5 	5 	5r   c                    |                                  d         }|d         |d         |d         }}}t          t          df|d<   t          |j        t                     t          |j        g d           t          |j        t                     t          |j        t          dd	d
dg           t          |j        d           t          |j        g d           d S )Nr  r   r   r  r   r   )r   r   r   r   r   rG  r  r  r  r  )   pir  s   three   four   fiver   r   rr   r~   r   r   r   r   r  base_abase_bbase_cs        r   test_set_record_elementz(TestMaskedFields.test_set_record_element>  s      ""6*$(ItCy$s)r4.QV\3'''V\???333V\5)))V\BS#s#;<<<V\5)))V\@@@	B 	B 	B 	B 	Br   c                    |                                  d         }|d         |d         |d         }}}t          t          df|d d<   t          |j        t                     t          |j        g d           t          |j        t                     t          |j        t          t          t          dd	g           t          |j        d
           t          |j        g d           d S )Nr  r   r   r  r   r   )r   r   r   r   r   r  r  r  )r  r  r  r  r  r  r  s        r   test_set_record_slicez&TestMaskedFields.test_set_record_sliceN  s      ""6*$(ItCy$s)D>RaRV\3'''V\???333V\5)))V\BBS#9:::V\5)))V\<<<	> 	> 	> 	> 	>r   c                     |                                  d         }t          |d<   dD ]E}t          ||         j        g d           t          ||         j        |j        |                    FdS )zCheck record accessr  r   r   r   r  r_  N)r   r=   rr   r   r   )r   r  r  s      r   test_mask_elementz"TestMaskedFields.test_mask_element]  ss      ""6*Q  	7 	7Aa777a
16666	7 	7r   c                 8   dt           fdt          fg}t          d|          }t          t	          |          t          j        g dddg                     t          |d d <   t          t	          |          t          j        g dddg                     d S )	Nr   r   r   r   )r  r  r  )r   |b1)r   r  )r  r  r  )r   r   r&   rr   r0   r}   r   r=   )r   r  r   s      r   test_getmaskarrayz"TestMaskedFields.test_getmaskarrayf  s    *sEl+Qf%%%\$''X666%1<$@B B B	C 	C 	C QQQ\$''X666%1<$@B B B	C 	C 	C 	C 	Cr   c                    t          t          t          j        d          t          j                            d                              }t          j        |          }t          |dt          fdt          fg          }d|j        d<   t          j        dgddgz  z   t                    }|
                    t                    }t          ||                                           t          |j        |           |
                    t          d	f          }t          ||           t          |j        |                    d
d	                     d S )Nr   r   r   r   r  r   r      r   r   )r   r   r}   r   r   r   r   r   r   r  r  rr   r\   r^   )r   iteratorr   r   controlmaskr   s         r   	test_viewzTestMaskedFields.test_viewr  s   BIbMM29>>"+=+=>>??x!!(C<#u">???q	hsR1#X~T:::vve}}T4::<<(((TY,,,vvuaj!!T4   TY 3 3B : :;;;;;r   c           
         dt           fdt           fg}t          t          t          t          j                            d          t	          j        d                              |          t	          j        t          t          g dg d                    dt          fdt          fg          _	        fd} |d            |d	            |d
           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   c                    t          t          |                    t                     t          |          j        j        |                     t          |          j        j        |                     t          t          | df                   t                     t          | df         j        j        | df                    t          | df         j        j        | df                    d S )N.)rr   ri  rR   rs   r   r   r   )r  r   s    r   _test_indexz2TestMaskedFields.test_getitem.<locals>._test_index  s    adU+++ 1QWQZ888 1QWQZ888a3i+666 1c6!'!S&/BBB 1c6!'!S&/BBBBBr   r   r   r  )
r   r   r   r   r}   r   r   r   r  r   )r   r  r  r   s      @r   test_getitemzTestMaskedFields.test_getitem  s    ,e-$s29>>"--ry}}==>>fMMM$s#A#A#A#A#A#A C  C D D"%tsDk :< < <	C 	C 	C 	C 	C 	AABr   c                 h   t          j        dt          fdt          fg          }t           j                            ddg|          }d|d         d<   t          |d         t          j        ddg                     d	|d         d<   t          |d         t          j        dd	g                     t          j        dt          fdt          fg          }t          j        d
dg|          }t           j        	                    d|          }d|d         d<   t          |j
        |           t           j        	                    d|          }d|d         d<   t          |j
        |           t          j        ddg|          }t           j        	                    d|          }|                                 d|d         d<   t          |j
        |           t           j        	                    d|          }|                                 d|d         d<   t          |j
        |           d S )Nr   r   )r   r   )r   r   r   r   r   r   r   r  )TTrQ  r   r   )r}   r~   r   r   r  r   rr   r   r  rx  r   ry  )r   r  r  rw  r)  r   s         r   test_setitemzTestMaskedFields.test_setitem  s    C<#s455U(36BB3
RWbhSz223331c
RWbhSz22333C;d455(M<8GGGET00#q	QVW%%%ET00!S	QVW%%%(L,7vFFFET00	#q	QVW%%%ET00	!S	QVW%%%%%r   c                     t           j                            dd          }t           j                            d          }||d<   t	          |j        g d           d S )Nr   Tr   r   r   ru  )r}   r  r>   r   rq   r   )r   mask_0drJ  s      r   test_setitem_scalarz$TestMaskedFields.test_setitem_scalar  sU    %$$QT$22ell1ooA38%9%9%9:::::r   c                     |                                  }|d         D ]2}t          t          |          t          |d                              3d S )Nr  r  )r   rr   r   )r   r   recs      r   test_element_lenz!TestMaskedFields.test_element_len  sU      ""< 	8 	8CS3tH~#6#67777	8 	8r   N)r  r  r  r   r  r  r  r  r  r  r  r  r  r  r|   r   r   r  r    s        P P P5 5 5(B B B > > >7 7 7
C 
C 
C< < <   (& & &<; ; ;8 8 8 8 8r   r  c                       e Zd Zd Zd ZdS )TestMaskedObjectArrayc                    t           j                            d d g          }t          t          fD ]>}t          j        d                              |          }t          j        d                              |          }||d<   ||d<   t          |d         |u            t          |d         |u            t          t          |d         t                               t          t          |d         t                               t          |d         d         |u            t          |d         d         |u            t           j        j
        |d<   t          |d         |u            t          t          |d         t                               t          t          |d         t                               t          |d         j        d           t          |d         d         |u            t          |d         j        |           t          |d         j        d           t          |d         d         j        |           t          |d         d         j        d           @d S )	Nr   r   r   r   r   .)r   .r|   T)r}   r  r   r   rY  r>  r   ro   r  r   r=   rr   r   r   )r   rJ  r\  a0a1s        r   r  z"TestMaskedObjectArray.test_getitem  s   ekk4,''&/ 	5 	5B!!"%%B!!"%%BCFCFCFbL!!!CFbL!!!Js6{K88999Js6{K88999CKOr)***CKOr)***U\CFCFbL!!!Js6{K88999Js6{K88999V)4000CKOr)*** Qb)))Qd+++VR-r222VR-t44443	5 	5r   c                    t           j                            d d g          }t          j        t           j        j        gt                    d         |d<   t          |j        d         t           j        j        u            t          |d         t           j        j        u            t           j        j        |d<   t          |d         t           j        j        u            d S )Nr  r   )r}   r  r   r=   rY  ro   r   )r   rJ  s     r   test_nested_maz$TestMaskedObjectArray.test_nested_ma  s    ekk4,''h~v66v>F 	ru|+,,, 	A"%,&''' AA"%,&'''''r   N)r  r  r  r  r  r|   r   r   r  r    s2        5 5 5:( ( ( ( (r   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestMaskedViewc                 h   t          t          t          j        d          t          j                            d                              }t          j        |          }t          |dt          fdt          fg          }d|j        d<   t          j        dgddgz  z   t                    }|||fS )	Nr   r   r   r   r  r   r   r  )
r   r   r}   r   r   r   r   r   r   r  )r   r  r   r   r  s        r   r   zTestMaskedView._create_data  s    BIbMM29>>"+=+=>>??x!!(C<#u">???q	hsR1#X~T:::Q##r   c                    |                                  d         }|                                }t          t          |t                               t          |j        |j                   t          |j        |j                   d S r  )r   r  ro   r  r   rr   r   r   r  s      r   test_view_to_nothingz#TestMaskedView.test_view_to_nothing  sk    "vvxx
4--...TZ)))TZ)))))r   c                 X   |                                  \  }}}|                    t          j                  }t	          t          |t                                t          ||j                   t          ||                    |j
                                                             d S r   )r   r  r}   r   ro   r  r   rr   r   rs   r~   ri  r   r   r   r   r   s        r   test_view_to_typez TestMaskedView.test_view_to_type  s    &&((
avvbj!!Jt[111222T17###T499QW#5#5#=#=#?#?@@@@@r   c                    |                                  \  }}}|                    t                    }t          t	          |t
                               t          ||                                           t          |j        |           d S r   )	r   r  r   ro   r  r   rr   r\   r   r   r   r   r  r   s        r   test_view_to_simple_dtypez(TestMaskedView.test_view_to_simple_dtype	  sq    #0022avve}}
4--...T4::<<(((TY,,,,,r   c                    |                                  d         }|                    dt          fdt          fg          }t          |j        j        j        d           t          |d         |d                    t          |d         |d                    |d                             dt          fdt          fg          }t          t          |t                               t          |j        j        j        d           t          |d         |d         d                    t          |d         |d         d                    |d                             dt          fdt          fg          }t          t          |t                               t          |j        j        d           t          |d         |d         d                    t          |d         |d         d                    d S )	Nr   r&  r  )r&  r  r   r   r   r   )
r   r  r   rr   r   r~   r,  ro   r  r   r  s      r   test_view_to_flexible_dtypez*TestMaskedView.test_view_to_flexible_dtype  s   "vvU|c5\233TY_*J777T#Y#'''T#Y#'''tyy3,e566
4--...TY_*J777T#Y#q	***T#Y#q	***uzzC<#u677
4--...TZ%z222T#Y#r
+++T#Y#r
+++++r   c                    |                                  \  }}}|                    t          df          }t          t	          |t
                               t          ||           t          |j        |                    dd                     |d                             t          df          }t          t	          |t
                               t          ||d                    t          |j        d           |d                             t          df          }t          t	          |t
                               t          ||d                    d S )Nr   r   r   r  )	r   r  r   ro   r  r   rr   r   r^   r  s        r   test_view_to_subdtypez$TestMaskedView.test_view_to_subdtype%  s   #0022avvuaj!!
4--...T4   TY 3 3B : :;;;tyy%$$
4--...T47###TY'''uzz5!*%%
4--...T48$$$$$r   c                 8   |                                  \  }}}|                    t          dft          j                  }t          ||           t          t          |t          j                             t          t          |t                                d S )Nr   )	r   r  r   r}   r  rr   ro   r  r   r  s        r   test_view_to_dtype_and_typez*TestMaskedView.test_view_to_dtype_and_type6  s}    &&((
avvuaj"+..T4   
4--...Jt[11122222r   N)
r  r  r  r   r  r  r  r  r  r  r|   r   r   r  r    s        $ $ $* * *A A A- - -, , ,(% % %"3 3 3 3 3r   r  c                       e Zd Zd Zd ZdS )TestOptionalArgsc                 T   t          j        d                              d          }t          j        dt                                        d          }d|d d d d df<   t           j                            ||          }d }d	 }d
D ]} ||||            ||||           dD ]} ||||           t          j        d                              d          dz  dk    }t           j                            ||          }dD ]} ||||            ||||           d S )N      8@r  r   r   Tr   r   c           	      T   t          j        |           }t          j                            |           }t	           ||d          dd df          ||dd df         d                     t	           ||d          dd df          ||dd df         d                     d S )Nr   r  .r   r  )r  __getattribute__r}   r  rr   r  r   rz  numpy_fma_fs        r   testaxisz4TestOptionalArgs.test_ndarrayfuncs.<locals>.testaxisI  s    ,Q//G5))!,,D aacrc2GGAc3B3hKa4P4P4PQQQaf---c3B3h7 386:::< < < < <r   c           	         t          j        |           }t          j                            |           }t	           ||d          j         ||d          j                   t	           ||d          j         ||d          j                   t	           ||dd          dd df          ||dd df         dd                     t	           ||dd          dd df          ||dd df         dd                     d S )	NTkeepdimsFr   r  r  .r   r  )r  r  r}   r  rr   r`   r  s        r   testkeepdimsz8TestOptionalArgs.test_ndarrayfuncs.<locals>.testkeepdimsR  sW   ,Q//G5))!,,D a$///5 T2228: : :a%0006 U3339; ; ; aa$777SbSA 381tDDDF F Faft<<<S#2#XF 386DIIIK K K K Kr   )rg   r  r  r  r  r  r   r   )r   r   )r}   r   r^   rm   r  r  r   )r   rz  rC  r   r  r  r  s          r   test_ndarrayfuncsz"TestOptionalArgs.test_ndarrayfuncs@  sr    IdOO##I..HRt$$$,,Y77!!!QQQ(EKKK""	< 	< 	<	K 	K 	K  7 	" 	"AHQ1LAq!!!! 	 	AHQ1Yr]]""9--1Q6EKKK"" 	" 	"AHQ1LAq!!!!	" 	"r   c                 P   t          j        d                              d          }t          j        dt                                        d          }d|d d dd d f<   t           j                            ||          }t          t          |          d           t          t          |d	
          dt          d          z             t          t          |d
          dt          d          z             t          t          |d          dt          d          z             t          t          |d	d          dt          d          z             t          t          |dd          dt          d          z             t          t          |d
          dt          d          z             t          t          t          |d
           t          t          t          |d
           t           j                            |t                    }t          t          |          d           t          t          |d	
          dt          d          z             t          t          |d
          dt          d          z             t          t          |d          dt          d          z             t          t          j        t          |d                    d           t          t          |d	d          dt          d          z             t          t          |dd          dt          d          z             t          t          |d
          dt          d          z             t          t          t          |d
           t          t          t          |d
           t          t          t           j        j                  d           t          t          t          t           j                            d	          d	
           d S )Nr  r  r   r   Tr   r   r  r   r  r   )r   r   r  r   r  r  r  r  )r   r   r   )r   r   r   r  r  r   r   )r}   r   r^   rm   r  r  r   rr   r"   rU   rx   r  r   rS   r   r=   )r   rz  rC  r   s       r   
test_countzTestOptionalArgs.test_counto  sf    IdOO##I..HRt$$$,,Y77!!!Q'
EKKK""U1XXr"""U11%%%q4<<'7888U16***AT

N;;;U1t,,,b4	??.BCCCU11t444a$y//6IJJJU16D9991tI;NOOOU12&&&DLL(8999j%8888i2222 EKKK''U1XXr"""U11%%%q4<<'7888U16***AT

N;;;U1t,,,b4	??.BCCCRWU1t44455q999U11t444a$y//6IJJJU16D9991tI;NOOOU12&&&DLL(8999j%8888i2222 	U25<((!,,, 	iAQ??????r   N)r  r  r  r  r  r|   r   r   r  r  ?  s8        -" -" -"^$@ $@ $@ $@ $@r   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ej                            d          d             Zej                            d          d             Zd Zd ZdS )TestMaskedConstantc                 H   t           |t          j        j        d          t          j        j        u            t          j        g d          } |t          j        j        |          }t          |t          j        j        u           t          t          |t          j        j        j                              t          |j	        |j	                   t          t          j        
                    |          t          j        |j	        t                               d S )Nr   r   r   )ro   r}   r  r=   r   r  r  MaskedConstantrr   r`   r/   rU   r  )r   r   vectorr  s       r   _do_add_testzTestMaskedConstant._do_add_test  s    BEL!$$4555 )))$$RU\6** 	bel*+++Jvruz'@AAABBBV\6<000RU]]6**BGFL,M,M,MNNNNNr   c                 D    |                      t          j                   d S r   )r  r}   r   r	  s    r   
test_ufunczTestMaskedConstant.test_ufunc  s    "&!!!!!r   c                 2    |                      d            d S )Nc                     | |z   S r   r|   r   r   s     r   r   z2TestMaskedConstant.test_operator.<locals>.<lambda>  s
    q1u r   )r  r	  s    r   test_operatorz TestMaskedConstant.test_operator  s     ,,-----r   c                    t           j                            t           j        j                  }t	          t          |t           j        j        j                              t	          |t           j        j        u           d S r   )r}   r  r   r=   ro   r  r  r  r  s     r   	test_ctorzTestMaskedConstant.test_ctor  sZ    EKK%% 	Jq"%*";<<<===%&&&&&r   c                    t          t          t          j        j                  d           t          j        j                            t          j        j        j                  }t          t          |          d           d S )Nr=   )
rr   rh  r}   r  r=   r   __new__r  r  ru   )r   masked2s     r   	test_reprzTestMaskedConstant.test_repr  s]     	T"%,''222 %#++BEJ,EFFg11111r   c                 t   ddl m} t          dt          j        dz             D ]} |            5 }t          j        t          j        j        ||           |	                    d           t          j
        |          }d d d            n# 1 swxY w Y   t          |t          j        j        u            d S )Nr   )BytesIOr   r   r  )ior  r  r  r  dumpr}   r  r=   seekloadro   )r   r  r  r  r"  s        r   test_picklezTestMaskedConstant.test_pickle  s    1f59:: 	) 	)E %aBEL!e<<<<q			k!nn% % % % % % % % % % % % % % % C25<'((((	) 	)s   ABB	B	c                     t          t          j        j                                        t          j        j        u t          j                                        t          j        u            d S r   )rr   r}   r  r=   r   True_r	  s    r   r  zTestMaskedConstant.test_copy  sP     	EL25</HMMOOrx'	) 	) 	) 	) 	)r   c                     dd l }t           |j         t          j        j                  t          j        j        u            d S r  )r   ro   r}   r  r=   r   r   s     r   
test__copyzTestMaskedConstant.test__copy  sC    DIbel##ru|3	5 	5 	5 	5 	5r   c                     dd l }t           |j        t          j        j                  t          j        j        u            d S r  )r   ro   r  r}   r  r=   r  s     r   r  z TestMaskedConstant.test_deepcopy  sC    DM"%,''25<7	9 	9 	9 	9 	9r   c                 l   t           j        j        }t          t           j        j        j        t          j        |dd           t          t          t          j        |j	        dd           t          t          t          j        |j
        dd           t           j        j                            t           j        j                  }t          t          t          j        |dd           t          t          t          j        |j	        dd           t          t          t          j        |j
        dd           d S )Nr|   r   F)r}   r  r=   rx   r  r	   re  setitemr  r   r   r  r   )r   origr  s      r   test_immutablez!TestMaskedConstant.test_immutable  s    u|bej*H,<dBJJJj("2DIr1EEEj("2DIr5IIIu|  !233j("2D"a@@@j("2DIr1EEEj("2DIr5IIIIIr   c                     t          j        dt                    }t          t          t
          j        |dt           j        j                   t          t          t          t           j        j                   d S Nr|   )	r}   rm   r   rx   r	   re  r  r  r=   )r   a_is     r   test_coercion_intz$TestMaskedConstant.test_coercion_int  sL    hr3i!13BELIIIibel33333r   c                     t          j        dt                    }t          j        t
          t          j        |dt           j        j	                   t          t          j        |d                              d S r   )r}   rm   r   r  r  r  re  r  r  r=   ro   r  )r   a_fs     r   test_coercion_floatz&TestMaskedConstant.test_coercion_float  sT    hr5!![("2CRU\JJJR!!"""""r   zSee gh-9750rU  c                     t          j        dd          }t           j        j        |d<   t	          |d         d           d S )Nr|   U10rU  r}   rm   r  r=   rr   )r   a_us     r   test_coercion_unicodez(TestMaskedConstant.test_coercion_unicode  s:    hr5!!%,BSWd#####r   c                     t          j        dd          }t           j        j        |d<   t	          |d         d           d S )Nr|   S10s   --r(  )r   a_bs     r   test_coercion_bytesz&TestMaskedConstant.test_coercion_bytes  s:    hr5!!%,BSWe$$$$$r   c                     G d dt          t          j        j                            } |            }t	          | |            u            t	          |t          j        j        u           t          t          |          d           d S )Nc                       e Zd ZdS )-TestMaskedConstant.test_subclass.<locals>.SubNr  r|   r   r   Subr1    r  r   r2  r=   )ri  r}   r  r=   ro   ru   rh  )r   r2  r   s      r   test_subclassz TestMaskedConstant.test_subclass  s    	 	 	 	 	$ru|$$ 	 	 	 CEESSUU
%&&&a(+++++r   c                     t          t          t          t          j        j        dd           t          t          t          t          j        j        dt          j                   d S )Nr`   rX  r~   )rx   r  setattrr}   r  r=   r  r	  s    r   test_attributes_readonlyz+TestMaskedConstant.test_attributes_readonly  s>    ngru|WdKKKngru|WbhOOOOOr   N)r  r  r  r  r  r  r	  r  r  r  r  r  r  r"  r%  r  rp  xfailr*  r.  r3  r6  r|   r   r   r  r    sO       O O O" " ". . .' ' '2 2 2) ) )) ) )5 5 5
9 9 9
	J 	J 	J4 4 4
# # #
 [m,,$ $ -,$
 [m,,% % -,%
, , ,P P P P Pr   r  c                       e Zd Zd ZdS )TestMaskedWhereAliasesc                    t          t          j        dg          t          j        d                    }t	          |j        dg           t          t          j        t          j                  }t	          |j        d           t          j                             t          j        t          j                   }t	          |j        d           t          j                             g ddd          }t          |j        t          j        j	        u            t          j                             g ddd          }t	          |j        dgdz             d S )	Ng      i TFrd  r   r  r   )
rH   r}   r   rj  rr   r   ry  r  ro   rS   )r   r"  s     r   test_masked_valuesz)TestMaskedWhereAliases.test_masked_values  s   BHhZ00"(62B2BCCSXv&&&BFBF++SXt$$$e!!"&26'22SXu%%%e!!,,,$!??BEL()))e!!,,,%!@@SXw{+++++r   N)r  r  r  r;  r|   r   r   r9  r9    s#        , , , , ,r   r9  c                      t           j                            g dg d          } t          t          j        |           dgdgg           d S )Nr[  )r   r   r   r   r   r   r   )r}   r  r   rr   argwherer  s    r   test_masked_arrayr>    sG    
LLL|||44AQ1#s,,,,,r   c                  R   t           j                            g d          } t           j                            | dk    | d          }t	          | j        g d           t           j                            g dg d          } t           j                            | dk    | d          }t	          | j        g d           t           j                            t           j        d	d
ddg          } t           j                            | d          }t	          | j        g d           d S )Nrd  r   Fr  )FFTFr   r   )TFTFr   r   r   )TFFFF)r}   r  r   rI   rq   r   ry  rN  )r   r   s     r   test_masked_array_no_copyr@  !  s   
LLL!!A
161511Aqv:::;;;
LLL|||44A
161511Aqv999:::
RVQ1a())A
QU++AqvAAABBBBBr   c                     t           j                            g dd          } t           j                            g dd          }t           j                            | |          }g d}g d}t	          |j        |           t	          |j        |           t           j                            d          } t           j                            d          }t           j                            | |          }d	gd
z  }dgdz  dgd
z  z   }t	          |j        d         |           t	          |j        |           t           j                            | |d           }t	          |j        d         |           t	          |j        |           d S )Nr   r   r  )r   r   r   )r   r   r   r   r   r   )FTFFFTrt  )r   r   r   r   Tr   Fr  r  )	r}   r  r?   r  rq   r   r   rx  rU   )r   r   r  expected_datar%  s        r   test_append_masked_arrayrC  0  sZ   
999A..A
999A..AU\\!QF&&&M<<<Mv{M222v{M222
  A


6AU\\!QFC!GMFQJ%1,Mv{2666v{M222U\\!QT\**Fv{2666v{M22222r   c                  R   t           j                            g dd          } t           j                            g dg dgd          }t	          t
          t           j        j        | |d           t           j                            | t           j        d d f         |d          }t           j                            d	d
          }t           j        j	        |d	dg<   |
                    d          }t          |j        |j                   t          |j        |j                   d S )Nr   r   r  r  rK  rs  r   r  r   r   r   r  )r}   r  r?   rH   rx   r  r  newaxisr   r=   r^   rq   r   r   )r   r   r  r  s       r   #test_append_masked_array_along_axisrF  H  s    
999A..A
YYY			2A66A *belAqq9999U\\!BJM*AA\66Fu||Ar""Hu|HaV''Hv{HM222v{HM22222r   c                  F    t          t          d          dk               d S )Ny      ?      ?y@xD        )ro   r#   r|   r   r   test_default_fill_value_complexrH  W  s$    v&&,677777r   c                  h   t           j                                        } t          j        g d|           }g d}t           j                            ||d|           }t          |j        t                    sJ |j        dk    sJ |	                                } |j
                    g dk    sJ d S )N)r&  r   variabler  r   r  FILLrU  )rK  r   rK  rK  r}   r{  StringDTyper   r  r   r  r8  r   r*   r  )r\  r   r   rJ  r*   s        r   ,test_string_dtype_fill_value_on_constructionrN  \  s    				 	 B8111<<<D$$$D
%

Dtb

I
ICcnc*****>V####ZZ\\F6=??>>>>>>>>>r   c                  h   t           j                                        } t          j        g d|           }t           j                            |g d|           }t          |j        t                    sJ |j        dk    sJ |	                                
                                g dk    sJ d S )N)r   r   r   r   r<  r  rR  )rR  r   rR  rL  )r\  r   rJ  s      r   $test_string_dtype_default_fill_valuerP  j  s    				 	 B8OOO2...D
%

D':':':"

E
ECcnc*****>U""""::<<  $7$7$7777777r   c                  ^   t           j                                        } t           j                            g dg d|           }d|_        |dd          }t          |j        t                    sJ |j        dk    sJ |                                	                                ddgk    sJ d S )Nr  r<  r  r*  r   r   )
r}   r{  rM  r  r   r8  r  r   r*   r  )r\  rJ  subs      r   3test_string_dtype_fill_value_persists_through_slicerS  w  s    				 	 B
%

      C
 CN
abb'Ccnc*****>S    ::<<  S#J......r   c                  v   t           j                                        } t           j                            g dg d|           }d|_        |j        dk    sJ |                                d         dk    sJ |                                d         dk    sJ |                                d         d	k    sJ d S )
N)r   
longstringmidr  r  r*  r   r   r   r   rV  )r}   r{  rM  r  r   r8  r*   )r\  rJ  s     r   !test_setting_fill_value_attributerW    s    				 	 B
%

""")=)=)=R   C CN>S    ::<<?c!!!!::<<?c!!!!::<<?e######r   c                      t          g dg d          } t          j        | d|           }t          || u            d S )Nr  rO  r   r   r  )r   r}   r   ro   r   s     r   test_ufunc_with_outputrY    sG     	lll+++A
q"!AAFOOOOOr   c                     t          g dg d          } t          g dg d          }t          g dg d          }t          g dg d          }|                                }t          j        | ||          }|                                }t          j        | ||          }|                                }t          j        | ||f          }	t	          |j        |j                   t	          |j        |j                   t	          |	j        |j                   t	          |	j        |j                   t	          |j        |j                   t	          |j        |j                   d	S )
z0 Test that masked arrays are immune to gh-10459 r   r   r   rv  r  rO  )r  r"  ra  r  N)r   r   r}   r   rr   r   r   )
r   r   r  r  out_posres_posout_kwres_kwout_tupres_tups
             r   test_ufunc_with_out_variedra    sR    	lll+++Alll+++A
999
-
-
-C\\\			222HhhjjGfQ7##GXXZZFVAqf%%%FhhjjGfQz***Gx}---x}---x}---x}---x}---x}-----r   c            	      L   t          j        dt          dfddt          fgfg          } t	          g ddfg ddfgg ddfg dd	fgg| 
          }t           j        j        |d         d         d<   |                    |           }|j        j        t          j        |           j        k    sJ |j	        j        j        t          j        |           j        k    sJ t          ||           t          ||                    |j        d          u            t          t          |                    |j        d                    t           j                   |                    |j        d          }t          |j        j                   t          |j	        j        j                   t          j        || d          }|j        j        t          j        |           j        k    sJ |j	        j        j        t          j        |           j        k    sJ t          ||           t          |t          j        || d d          u            t          j        ||j        dd          }t          |j        j                   t          |j	        j        j                   d S )Nr  r   r   r   r   r  r  )r   )r   r   r   Fr  )subokr-  rH  T)r~   rc  )r~   r   rc  )r~   rI  rc  )r}   r~   r   r   r   r  r=   r   r,  r   rr   ro   ri  r   r@  f_contiguous)descrr   x_ax_fx_a2x_f2s         r   test_astype_mask_orderingrj    s]   HsCmcS%L>%:;<<E
))V				623
))V				6235<A	C 	C 	CA 5<AaDIaL
((5//C9?bhuoo333338>28E??#88888CA!'...///ahhqweh4455rzBBB
((17#(
&
&CCI"###CHN'((( 8AU$///D:rx444449? BHUOO$99999DA!5t4@@@@AAA8AQWCt<<<DDJ#$$$DIO()))))r   r@  rA  rC  z'ignore::numpy.exceptions.ComplexWarningc                    t           j                            t          d|           d          }|                    |          }t          |j        dk               t          |j        | k               t          |j        j        | k               t          |j        dk               t          |j        |k               t          |j        j        |k               t          ||           d S )Nr   r   r  )	r}   r  r   rU   r   ro   r8  r~   rr   )r@  rC  srcdsts       r   test_astype_basicrn    s    
 %++d1cllq+
1
1C
**S//CCNa   CICN C'(((CNa   CICN C'(((cr   c                     t          j        g           } t          j        d|           }t           j                            |          }t          |j        |j                   t          |j        |j                   t           j                            ||          }t          |j        |j                   t          |j        |j                   d S )Nr   r   )r}   r~   r&   r  r   rr   r`   )r\  r   r[  s      r   test_fieldless_voidrp    s    	"B
BA 
QB17###17###	QQ		B17###17#####r   c                      t           j        j        } t           j                            d| j                  }d|_        t          | j        j        d           d S )Nr   r   rX  r|   )r}   r  r=   r   r   r`   rr   r  s     r   0test_mask_shape_assignment_does_not_break_maskedrr    sE    
A
AAF##AAGr"""""r   r   zHno docstrings present to inspect when PYTHONOPTIMIZE/Py_OptimizeFlag > 1rU  c                      d } d}t          t          j        j                            | j        d          |           d S )Nc                     dS )zyThis docstring

        Has multiple lines

        And notes

        Notes
        -----
        original note
        Nr|   r	  s    r   r  ztest_doc_note.<locals>.method  s	     	r   zNThis docstring

Has multiple lines

And notes

Notes
-----
note

original notenote)rr   r}   r  r  doc_note__doc__)r  expected_docs     r   test_doc_notery    sF      
L $$V^V<<lKKKKKr   c                      t           j                            dg dgt                    } t	          j        |           }|d                             d           t          | d                   dk    sJ d S )Nr   rv  r   r    this should not appear in sourcer   )r}   r  r   rY  r   r  r  r   sourcer  s     r   test_gh_22556r~     sj    U[[!YYYv[66F}V$$HQK9:::vay>>Qr   c                     t           j                            ddgdt           j                  } t          j        d          }t          j        | |d          }t           j                            |t          j        |j        t           j                            }t           j                            ddt           j                  }t          j
        |           t          j
        |           d S )	Nr   Tr?  r   Fr  r   r   )r}   r  r>   r  r   r  rU   r`   r  r   r  )r}  r  r  r   s       r   test_gh_21022r  '  s    Ub"XD
KKF8A;;DWV$777FU%'WV\%I%I%I   K KFEBTDDEM%M&r   c                     t           j                            ddgddgddgdggddgddgddggt                    } t	          j        |           }|d                             dd	g           t          | d                   dk    sJ t          |d                   d
k    sJ t          |j	        | j	                   d|j	        d<   | j	        d         dk    sJ d S )Nr   dogr   r   catr  r&  r{  r   r   r  )
r}   r  r   rY  r   r  extendr   rr   r   r|  s     r   test_deepcopy_2d_objr  3  s   U[[1e*a&q65/+  !!f !f !f& %  & &F }V$$HTN=qABBBvd|!!!!x~!####...HN4<""""""r   c                      t           j                            ddgt                    } t	          j        |           }d|d<   t          | d           t          |d           d S )Nr   r     .)r}   r  r   rY  r   r  rr   r|  s     r   test_deepcopy_0d_objr  D  s[    U[[!F[33F}V$$HHSM2r   c                  P   t           j                            ddgddgd          } | j        dk    sJ | j        j        j        dk    sJ t           j                            |                                 t          j	        ddg          
                    d          d           d S )	Nr   TFr  r   r  r  )strict)r}   r  r   r8  r~   rR  r  rq   r*   r   r   r  s    r   test_uint_fill_value_and_filledr  L  s    
1a&4-x@@A<6!!!!<"c))))J!!	

BHfa[))00::4 " I I I I Ir   fn	signaturez(a)z(a, axis=None, dtype=None)z$(a, axis=None, dtype=None, out=None)z#(condition, a, axis=None, out=None)c                 T    t          t          j        |                     |k    sJ d S r   )r   inspectr  r  s     r   test_frommethod_signaturer  X  s.     w $$%%222222r   zZ(shape, dtype=None, order='C', *, device=None, like=None, fill_value=None, hardmask=False)zM(prototype, /, dtype=None, order='K', subok=True, shape=None, *, device=None)z2(a, axis=None, *, fill_value=None, hardmask=False)z>(n, dtype=None, *, like=None, fill_value=None, hardmask=False)c                 n    t          t          j        |                     |k    sJ | j        dk    sJ d S )Nznumpy.ma.core)r   r  r  r  r  s     r   test_convert2ma_signaturer  e  sA    2 w $$%%2222=O++++++r   )rw  
__author__r   r  rv  re  r  sysr  r  	functoolsr   r  r  r}   numpy._core.fromnumeric_corer  numpy._core.umathr  numpy.ma.corer   numpy._utilsr   numpy.exceptionsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   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   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   numpy.ma.testutilsro   rp   rq   rr   rs   rt   ru   rv   numpy.testingrw   rx   ry   numpy.testing._private.utilsrz   r   rc  rd  WARNING_MESSAGErq  r   rt  rk  r  r  rS  r  r  r   r  r  r  r  r  r  r9  r>  r@  rC  rF  rH  rN  rP  rS  rW  rY  ra  rj  rp  rb  r  rn  rp  rr  r  r@  optimizery  r~  r  r  r  r  r  nonzero	anomaliesr  r  r  ri  r  r|   r   r   <module>r     s   
 )
         



              - - - - - - - - - ! ! ! ! ! ! ! ! !                       & & & & & &i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i iT	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ; : : : : : : : : : 8 8 8 8 8 8U 9
8$7
8
8
8
'
'w
'
'
'(XXXX N" N" N" N" N" N" N" N"bx. x. x. x. x. x. x. x.vm, m, m, m, m, m, m, m,`NE NE NE NE NE NE NE NEb
T5 T5 T5 T5 T5 T5 T5 T5n0 0 0 0 0 0 0 0DI1 I1 I1 I1 I1 I1 I1 I1XX) X) X) X) X) X) X) X)v
2= 2= 2= 2= 2= 2= 2= 2=j~
C ~
C ~
C ~
C ~
C ~
C ~
C ~
CB`8 `8 `8 `8 `8 `8 `8 `8F-( -( -( -( -( -( -( -(`J3 J3 J3 J3 J3 J3 J3 J3ZT@ T@ T@ T@ T@ T@ T@ T@nnP nP nP nP nP nP nP nPb, , , , , , , ,*- - -
C C C3 3 303 3 38 8 8
? ? ?
8 
8 
8/ / /"$ $ $  . . .2* * *@ W55W55EFF  GF 65 65 $ $ $# # # CI&*e  g gL Lg gL:  	 	 	# # #"  	I 	I 	I 		67	=>	>?	 3 3 3  EK3	
 E	
 
LMENL	
! 0, ,1 0, , ,r   