
    ,VhKK                       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	m
Z
 ddl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mZ ddlmZmZmZm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( ddl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mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ej$                  Z e       Zej)                  ej*                  j,                  j.                  d       dD  cg c]  }  ej0                  |        c} ZeD  cg c]  } | j4                   c} 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 d, d-      Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zejh                  jk                  d6ee7      ejh                  jk                  d8ee7      ejh                  jm                  d9      d:                      Zd; Zd< Zejh                  ju                  ejv                  jx                  d=kD  d>?      d@        ZdA ZdB ZdC ZdD Zyc c} w c c} w )EznTests suite for MaskedArray & subclassing.

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
zPierre GF Gerard-Marchant    N)reduce)	AxisError)assert_raisesassert_warnssuppress_warningsIS_WASM)requires_memory)ndarray)asbytes)assert_assert_array_equalassert_equalassert_almost_equalassert_equal_recordsfail_if_equalassert_not_equalassert_mask_equal)iMAError	MaskErrorMaskTypeMaskedArrayabsabsoluteaddallallcloseallequalalltrueangleanomarangearccosarccosharctan2arcsinarctanargsortarrayasarraychooseconcatenate	conjugatecoscoshcountdefault_fill_valuediagdividedoc_noteempty
empty_likeequalexpflatten_maskfilledfix_invalid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_likezGsetting an item on a masked array which has a shared mask will not copyz?bhilqBHILQefdgFDc                   |   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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d+        Z.d, Z/d- Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=y;)<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|      }
|j                  d       |||||||||	|
f
| _        y )N      ?              @      @      @      $      $@      @r           r   r               r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   mask      r         ?g?r   r   r   r   @xD)npr(   pirL   rz   set_fill_valuedselfxya10m1m2xmymzzmxfs              H/home/dcms/DCMS/lib/python3.12/site-packages/numpy/ma/tests/test_core.pysetup_methodzTestMaskedArray.setup_methodG   s    HHb"b#r#vr2tS"b"MNHHJK11!"%!"%HH&'!,/XXb%#
% QRRQB7    c                 H   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       y )Nr         r   r   r   r   r   r   r   )r(   r   ndimsizern   r   abs      r   test_basicattributesz$TestMaskedArray.test_basicattributesV   sl    ))),QVVQQVVQQVVQQVVQQWWd#QWWd#r   c                 r   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                  j                  u        y )Nr   0Tr   Fr   )	rL   r   strrU   r(   r   r9   dtype_datar   r   s     r   test_basic0dzTestMaskedArray.test_basic0da   s    OSVS!&SVS!456'SVS!!!
  AGGMM12r   c           
      ^   | j                   \
  }}}}}}}}}	}
t        t        |              t        t        |             t        ||z
  j                  d      j	                                t        |j                  j                  t              |j                  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#        ||       y )Nr   c                     | |z  S N r   r   s     r   <lambda>z.TestMaskedArray.test_basic1d.<locals>.<lambda>x   s
    Q r   c                     | |z   S r   r   r   s     r   r   z.TestMaskedArray.test_basic1d.<locals>.<lambda>y   s
    QU r   r   )r   r   rC   r9   anyr   r   astypeintrn   r   r   r   r   r   r/   lenr   r   r   r   r   r   r   r   r   r   r   r   ss               r   test_basic1dzTestMaskedArray.test_basic1dl   s(   15.AsBBAr2M!$$%b!"b  #'')*bggnnS)277>>#+>?GGRXXb\1%RXXq!RXXqww'RXXqww'RWWf%6:;U2YB&1BB*G GH2r"6"e,b11b!r   c           
      $   | j                   \
  }}}}}}}}}	}
dD ]  }||_        ||_        ||_        ||_        ||
_        t        t        |              t        t        |             t	        t        |      |       t	        |j                  |       t	        |j
                  t        d |             t	        t        |      t        |      t        d |      z
         t	        ||
       t	        t        |d      |
       t	        ||        y )N)   r   )   r   c                     | |z  S r   r   r   s     r   r   z.TestMaskedArray.test_basic2d.<locals>.<lambda>   s
    QU r   c                     | |z   S r   r   r   s     r   r   z.TestMaskedArray.test_basic2d.<locals>.<lambda>   s
    Q r   r   )
r   rn   r   rC   r   r   r   r/   r   r9   r   s               r   test_basic2dzTestMaskedArray.test_basic2d~   s    15.AsBBAr2! 	 AAGAGBHBHBHa(()M"%&rA&1%&):A">?rCGf5F.K$KLR E*B/B	 r   c           
         | j                   \
  }}}}}}}}}	}
t        t        j                  ||f      t        ||f             t        t        j                  ||f      t        ||f             t        t        j                  ||f      t        ||f             t        t        j                  |||f      t        |||f             y r   )r   r   r   r+   r   s              r   test_concatenate_basicz&TestMaskedArray.test_concatenate_basic   s    15.AsBBAr2R^^QF+["b-BCR^^QF+[!Q-@AR^^QF+["a-ABR^^Q1I.QAJ0GHr   c           
         | j                   \
  }}}}}}}}}	}
d}|x|_        x|_        x|_        |_        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
       y )Nr   r   r   r   FTr   )r   r   r   r   )FFFTr   r   r   r   )FTFF)r   rn   r   r   r   rl   r+   _maskr{   r(   rc   r   )r   r   r   r   r   r   r   r   r   r   r   r   xmyms                r   test_concatenate_alongaxisz*TestMaskedArray.test_concatenate_alongaxis   s-   15.AsBBAr22333!'3BHrxRWWbjjQ/0RWWbjjQ/0B8Q'R^^QFA.5R^^RWWbgg$6:DJJG!H$q'.A1l+166#>?A1l+166#>?r   c           
          t        t        t        t        j                  j                  d      t        j                  d                  dt        fdt        fg      }t        |d d |dd  g      }t        ||       y )N
   r   r   r      )rL   listzipr   randomrandr!   floatr   r+   r   )r   datatests      r   test_concatenate_flexiblez)TestMaskedArray.test_concatenate_flexible   sk    DRYY^^B%7%'YYr]"4 5$'<#s"<> D!Hd12h/0T4(r   c                     t        g dg dd      }t        |j                  d       t        |j                  g dg       t        |j                  g dg       y )Nr   r   r   r   r   r   r   )r   ndminr   r   )r(   r   rn   r   r   r   s     r   test_creation_ndminz#TestMaskedArray.test_creation_ndmin   s>    ))15QWWf%QWWyk*QWWyk*r   c                     t        g d      }t        |d<   t        |dt              }t        |j                  |j
                  j                         t        |j                  |j
                  j                         y )Nr   r   )r   r   )r(   rK   r   r   rn   r   r   r   xxs      r   $test_creation_ndmin_from_maskedarrayz4TestMaskedArray.test_creation_ndmin_from_maskedarray   sO    )"1AU+QWWaggmm,RXXrxx~~.r   c                 l   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       y )N   r   )r   r      r   r   r   r   r   r   r   TTTTFFFFr   copy)r!   r   rK   r   r   r   r   r(   r   r   r   may_share_memory)r   r   dma_1dma_2dma_3r   r   s          r   test_creation_maskcreationz*TestMaskedArray.test_creation_maskcreation   s%   b&!ZD!UZZ+E"UZZ,Eq(89ejj%**-)$'QWW01)%(QWW34)!''6##AFFAFF34)!''5B''778)$'QWW34r   c                    t        j                  t         j                  j                         t	        j
                  t              5  t        j                  dt         j                  j                  g       d d d        y # 1 sw Y   y xY w)Nr   )r   r(   marK   pytestwarnsUserWarningr   s    r   *test_masked_singleton_array_creation_warnsz:TestMaskedArray.test_masked_singleton_array_creation_warns   sT     	\\+& 	)
 HHb"%%,,'(	) 	) 	)s   0B  B	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        y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   )r(   r   r!   r   r   ra   r   r   )r   r   r   s      r   'test_creation_with_list_of_maskedarraysz7TestMaskedArray.test_creation_with_list_of_maskedarrays   s    "))A,_5a4R4\"TO_=>TZZ/?!CDa4R4\"TO_=>		V#$r   c                 p   t         j                  j                  ddgddg      }t        j                  d      }t         j                  j	                  ||gd      }t        |j                  ddgddgg        G d	 d
      }t         j                  j                   |       dgddg      }t        j                  t        d      5  t        j                  |gt               d d d        t         j                  j	                  ||g      }t        |j                  ddgddgg       y # 1 sw Y   GxY w)Nr   r   TFr   r   U21r   c                       e Zd Zd Zy)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    0r   r  r  match)r   r   rL   r!   r)   r   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_cast   s    UU''c
$'G
YYq\
eemmZ4EmB388tUmeU^%DE	0 	0 UU''C(8e}'M
]]:]; 	1JJ
|40	1 eemmZ45388tUmeU^%DE		1 	1s   	D,,D5c                 ^    t        j                  dgddgddgddgd	      }t        |       y )
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_padding	  s6    HHhZd37+34Q%(9 : 	ar   c                     t        j                  t        d      5  t        g dg d       d d d        y # 1 sw Y   y xY w)Nzunexpected keyword argumentr  r   r   r   r   )maks)r   r  	TypeErrorr   r  s    r   test_unknown_keyword_parameterz.TestMaskedArray.test_unknown_keyword_parameter  s0    ]]9,IJ 	3		2	3 	3 	3s	   7A c           
      d   | j                   \
  }}}}}}}}}	}
d|_        d|_        t        |      }t	        |j
                  |j
                         t	        |j                  |j                         t	        |j                  |j                         t	        |j                  |j                         y )NT)r   
fill_value	_hardmaskr)   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   xmms               r   test_asarrayzTestMaskedArray.test_asarray  s    15.AsBBAr2bkSYY)SYY)S^^R]]3S]]BLL1r   c                     t        j                  d      j                  }t        |j                  j
                          t        |      }t        |j                  j
                         y )Nr   r   eyeTr   flagsc_contiguousr)   r   mnew_ms      r   test_asarray_default_orderz*TestMaskedArray.test_asarray_default_order  sC    FF1IKKAGG((()
(()r   c                     t        j                  d      j                  }t        |j                  j
                          t        |d      }t        |j                  j
                         y )Nr   Corderr5  r:  s      r   test_asarray_enforce_orderz*TestMaskedArray.test_asarray_enforce_order%  sF    FF1IKKAGG((()%(()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        y # 1 sw Y   y xY w)Nignoreinvalidr   r   r   r   r   r   )r   r   r   )	r   errstaterL   nanr:   r   r   r0  r   )r   r   
data_fixeds      r   test_fix_invalidz TestMaskedArray.test_fix_invalid-  so    [[* 	9R 0yAD$T*J))DOOR+DE))<8		9 	9 	9s   A'BBc                     t        d      }t        |d<   t        t        t              dk(         t        |d   t        u        t	        t        |d   d      d       y )Nr   r   --r   )r!   rK   r   r   r   r9   r   s     r   test_maskedelementz"TestMaskedArray.test_maskedelement5  sI    1I!Ft#$!VAaD!_a(r   c                     t        dt              }d}||d<   t        |d   |       t        |d   |u        dd l}|j                  j                         }||d<   t        |d   |u        y )Nr   r   r   r   r   r   r   r   )r4   objectr   r   datetimenow)r   r   r   rR  dts        r   test_set_element_as_objectz*TestMaskedArray.test_set_element_as_object=  sj    !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(         y )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   reprr   rr   r   typerK   r   r=   rL   r!   rV   r   r   r0  rQ  rn   )r   x1x2x3x4s1s2s          r   test_indexingzTestMaskedArray.test_indexingJ  s   XXl#2L)2L)2YBRRWWR[$r5"9:RUtBqE{*+1A1 RUBqE"R!Wb1g&RUBqE"RVRV$11R1Q1QR1R1QR11eL&9:;\<81eL&9:;\<81eL&9:;U<012YYq\C2s#R9277CDS"--(%v.XX(&1UUT"Xs#T"Xs#R1Q%&r   c                    t         j                  j                  d      j                  d      }t	        ddd      ddgf}t         j                  j                  d      }t         j                  |j                  d<   |||<   t         j                  j                  |d<   t         j                  j                  d	t         j                  
      }t         j                  j                  g dg d      }||d<   ||g d<   y )N<   )r   r   r   r   r      r   r   .r   r   )gCD pr   r   TFFr   r   r   r   )r   r   r!   rl   slice
masked_allinfr   rK   float32r(   )r   r   indexvalues       r   test_setitem_no_warningz'TestMaskedArray.test_setitem_no_warning|  s    
 EELL$$W-q!Q!Q(  (66C%#EELL2::L.M0DE#)r   c                 B   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                  k7         t        |	j                  j                  |j                  k7         t        |	d   t        u        d|	d<   t        |	d   t        u       t        |	j                  j                  |j                  k7         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        ||       |j%                  dd      }t        ||       |j%                  dd      }t        ||       |j'                         }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                         y )Nr   r   r   r   r   Tr   r   r   r   rZ  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   r*  )rH   r   r   r!   r(   r   r   __array_interface__r   r   r   rK   r   r9   r   rm   r+   r=   rk   r   rL   ctypesr   )r   nr;  r   m3rb  y1y1ay2y2ay3re  y4y5y6y7y8y9r   r   s                       r   	test_copyzTestMaskedArray.test_copy  s    aLq\Rqt$YYq\2ARXX1123I3IJRWW%&RXX1113H3HIBi		--445 	6		--445 	6 2B,,0F0FFG,,0F0FFG1 11V#$,,0F0FFG!$%BQQ'		--1G1GGH		--1F1FFGA& !AAf$%		--1F1FFG1%&28!$r
  R#X$4$445AY1B["b*B/WR[":;B1-R12B"RYY|!Y,RYYq!_RWWYRXXrxx(RXXrxx(3OQWW^^((!''..*=*=>QWW^^((!''..*=*=>&,,aggnn.A.AB,,aggnn.A.ABr   c                     t         j                  j                  dd      }|j                         }t	        |j
                  d       y )N+   Tr   )r   r   r(   r   r   r   )r   r   xcs      r   test_copy_0dzTestMaskedArray.test_copy_0d  s1    EEKKK&VVXRWWd#r   c                     t        t        t        j                  j	                  g d                   t        t        t        j                  j	                  d                   y )Nr   )r   rC   r   r   r   r  s    r   test_copy_on_python_builtinsz,TestMaskedArray.test_copy_on_python_builtins  s6    beejj123beejj123r   c                     t         j                  j                  g d      }t         j                  j                  g d      }|j                  }|j                   t	         |       g d       y )Nr   r   r   r   )r   r   r(   r   r   )r   r   r   a_copy_methods       r   test_copy_immutablez#TestMaskedArray.test_copy_immutable  sB    EEKK	"EEKK	"	]_i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       y )
Nr   )deepcopyrn  FTFr   r   r   r   r   r*  F)r   r  r(   r   r   r   idr   )r   r  r   copieds       r   test_deepcopyzTestMaskedArray.test_deepcopy  s    !)"67!V[[!&&)AGGb&67q	V[[),QVVY'!V[[!&&)AV[[),QVVY'r   c                 6   t        g dg d      }t        t        |      d       t        t        t              d       t        t        t        d      d       t	        t
              5  t        t        d      }d d d        t        d       y # 1 sw Y   xY w)Nrn  r  r   [0 -- 2]rM   z >5)r(   r   formatrK   r   FutureWarning)r   r   with_format_strings      r   test_formatzTestMaskedArray.test_format  ss    )"67VAY
+VF^T*VFB'. -( 	7!'!6	7'.	7 	7s   )BBc           	         t        g dg d      }t        t        |      d       t        t        |      t	        j
                  d             t        j                  j                  d      }t        j                  j                  |dd t        t        |      t	        j
                  d	             t        j                  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        |j                  t                    t	        j
                  d             y )Nrn  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(   r   r   r`  textwrapdedentr   r   r!   rK   int8r   r   r   r   s     r   test_str_reprzTestMaskedArray.test_str_repr
  s   )"67SVZ(GOO ) *	
 EELL%%,,!BGOO ) *	
 EELLGOO ) *	
 9i(8#GOO ! ((6*2.1 2 
	
 	2AKOO !  "xx/36 7$' (	
 	#OO $ %		
r   c                    t        j                         }t        j                  d       	 t        g dg d      }t	        t        |      d       t	        t        |      d       t         j                  j                  d      }t         j                  j                  |d	d
 t	        t        |      d       t        j                  di | y # t        j                  di | w xY w)Nz1.13)legacyrn  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(   r   r   r`  r   r!   rK   )r   oldoptsr   s      r   test_str_repr_legacyz$TestMaskedArray.test_str_repr_legacyP  s    %%'
6*	+i&:;AQ,a #B C T"AeellAaGQ0 *'*B*'*s   BC C%c                     d}t        |      }t        j                  j                  |      }t        j                  j                  |d      }t	         ||      |       t	         ||      d       y )Nu   caféTr   rM  )ra  r   r   r(   r   )r   uutype
arr_nomask
arr_maskeds        r   test_0d_unicodezTestMaskedArray.test_0d_unicodee  sU    QUU[[^
UU[[[.
U:&*U:&-r   c           	      p   t         t        t        t        fD ]  }t	        d      j                  |      }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                  |          y )	Nr     )
r   r   r   r   r   r   r   r   r   r   TFr   r   protocol)r   r   r   rQ  r!   r   r0  rangepickleHIGHEST_PROTOCOLr   loadsdumpsr   r   r   r   )r   r   r   masksprotor   	a_pickleds          r   test_picklingzTestMaskedArray.test_picklingo  s    5#v. 	=Er
!!%(AAL3E q&"9"9A"=> 
=! 	=D!AF &V\\!e-L MI !'': !'':-$Y%9%93?$Y%9%95:F&y~~t<	=
=	=r   c                    t        j                  ddgdt        fdt        fg      j	                  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
                                y )N)r   r   )r   r   r   r   r   TFFTr   r   r   r  )r   r(   r   r   viewrecarrayrL   r  r  r  r  r  r   r   r   
isinstancer   )r   r   r   r  r  s        r   test_pickling_subbaseclassz*TestMaskedArray.test_pickling_subbaseclass  s    HHh) %L3*577;tBKK7H 	
-!?@1f559: 	>EV\\!e%DEI!''2A&Jy<=		>r   c                    t         j                  j                  }t        dt        j
                  dz         D ]  }t	        j                  t	        j                  ||            }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                          y )Nr   r   r  )r   r   rK   r  r  r  r  r  r   
_baseclassr   r   )r   mcr  
mc_pickleds       r   test_pickling_maskedconstantz,TestMaskedArray.test_pickling_maskedconstant  s    UU\\1f559: 	5Efll2&FGJ..>))2884))2884		5r   c                 4   t        ddgddgdt        fdt        fg      }t        dt        j
                  d	z         D ]X  }t	        j                  t	        j                  ||
            }t        |j                  |j                         t        ||       Z y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  )
r(   r   r   r  r  r  r  r  r   r   )r   r   r  r  s       r   test_pickling_wstructuredz)TestMaskedArray.test_pickling_wstructured  s    7G$FF+;sc5\241f559: 	'EV\\!e%DEI!''2A&	'r   c                     t        d      }d|_        |j                  }t        dt        j
                  dz         D ]8  }t	        j                  t	        j                  ||            }t        ||       : y )Nr   )r   r   r   r   r  )	r!   rn   r7  r  r  r  r  r  r   )r   r   r   r  r   s        r   test_pickling_keepalignmentz+TestMaskedArray.test_pickling_keepalignment  s_    2JCC1f5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       y )Nr   r   r   r   r   r   )r(   r   rn   r   s      r   test_single_element_subscriptz-TestMaskedArray.test_single_element_subscript  sN    ))),QqTZZ$QqTZZ$QqTZZ$r   c                 ^   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               5 }|j                  t        d       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        t	        t
        t               t        t        d         d       t	        t        fd       y # 1 sw Y   JxY w)Nr   r   z$Warning: converting a masked elementr   r   r   c                      t               S r   )r   r   s   r   r   z/TestMaskedArray.test_topython.<locals>.<lambda>  s    U1X r   r   r   r   r   c                       t         d         S Nr   )r   r  s   r   r   z/TestMaskedArray.test_topython.<locals>.<lambda>  s    c!A$i r   )r   r   r(   r   r   r,  r   filterr  r   r   isnanr   r   supr   s     @r   test_topythonzTestMaskedArray.test_topython  s%   QE!H&S%a/*QEQC5'N+,S%se-.iq!f6  	+CJJ{$JKBHHU5!A3#789:ii0A)%56qur*BHHU1Q4[)*	+ 	ia(S2Z#g/0	+ 	+s   )B1F##F,c           	         t        d      }|j                  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	        ||       y )Nr  r   r      r   r   y              $@r   e   r   .r   r$  r   rk  rZ  )r!   rl   flatr   r   realimagr,   rK   r   r/   rz   rn   rW   r   )r   r   r   cs       r   test_oddfeatures_1z"TestMaskedArray.test_oddfeatures_1  s}   2JIIaOq	$2aKQVVQQVVR!V$a)A,&,,cAgk:s2J!AaD	S[()FeAvv./145eAvv./177:;A177"#!!F"#!F"#!!Qr   c                 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        y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r(   rK   rz   r   r   r   r   r  r   s       r   test_oddfeatures_2z"TestMaskedArray.test_oddfeatures_2  s    &'/"!!QOQ-.!!QOQ-.!!F"#!r   c                 z    t        dgd      }t        dg      }|j                  }||   ||<   t        |dg       y )Nr   Tr   r  )r(   r   r   )r   atestbtestidxs       r   test_oddfeatures_3z"TestMaskedArray.test_oddfeatures_3  s?     rd&rdjj3Zc
URD!r   c                     t         j                  j                  dd      }t        |j	                  d      d   d       y )Nr   Or   r   r   )r   r   rp  r   r9   r  s     r   test_filled_with_object_dtypez-TestMaskedArray.test_filled_with_object_dtype  s2    EEQc*QXXc]1%s+r   c           
         t        dgdt        fddt        fg      }t        |d<   t	        |j                         t        j                   t        d      t        d      t        d      fg|j                               t        |d<   t	        |j                  d	      t        j                   d
g|j                               y )Nr   r   r   ir   |S8fr   r   r   r   r   )r   1r   )	r(   r   r   rK   r   r9   r   r0   r   )r   flexis     r   test_filled_with_flexible_dtypez/TestMaskedArray.test_filled_with_flexible_dtype  s    yk!3ZU|DFaU\\^XX 21 5 23 7 22 6 9 :AFN	O aU\\!_XX|nEKK@	Br   c                 B   dt         fdt        fg}t        ddg|      }|j                         }t	        t        |      dt        d      f       |j                  d      }t	        t        |      d	       d
|_        t	        t        |j                               d       y )Nr   r   r   r   r  r  r   r   r   r   )r   r   r  )r   r  )r   r   r`   r9   r   tupler0   r0  )r   ndtyper   r   s       r   test_filled_with_mvoidz&TestMaskedArray.test_filled_with_mvoid  s    *sEl+'7xxzU4[1&8&<"=>xx!U4['*#U188:&	2r   c                    dt         fddt         fdt         fgfg}t        ddgddg|	      }|j                  d
      }t        j                  ddg|      }t	        ||       |d   j                  d
      }t        j                  ddg|d   j
                        }t	        ||       t        j                  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             y )Nr  BBABBr   r  r   rl  r   r  r   r  r  r   r   r  )r   r   r   r   r  r  r   )r  z(2,2)i1,(2,2)i1rl  )r   i1rl  )r!  r  rl  rl  )r   ?rl  )r!  r  rl  )r   r(   r9   r   r   r   numpyr   r{   r   r   )r   r  r   r   controlZs         r   test_filled_with_nested_dtypez-TestMaskedArray.test_filled_with_nested_dtype  s=   *sdC[4+$>?@;,#[1Axx{((K5VDT7#v}}Q((FF+1S6<<@T7# HHNN1ekk+J*KLMQVV\\5;;7K*>7@AG1I 0J $K 	LQVV\\5;;7J*=7?@F1H 0I $J 	Kr   c                     t        t        j                   ddgd      t        j                   ddgd      d      }t        |j                  d          t        |j	                  d	      j                  d          y )
Nrn  r  Fr@  rG  r   )r   rA  F_CONTIGUOUSr   )r(   r   r   r8  r9   r  s     r   test_filled_with_f_orderz(TestMaskedArray.test_filled_with_f_order-  sb    "((Iy1=xxI 6cB 	'(!!.12r   c                     t        g dt              }d|j                  d<   |j                         }t	        |j                  d   d       d|j                  d<   t	        |j                  d   d       y )Nr   r   ???infoz!!!)r(   r   _optinfor   r   r   r   r   s      r   test_optinfo_propagationz(TestMaskedArray.test_optinfo_propagation5  s[    +U+"

6FFHQZZ'/"

6QZZ'/r   c                 ~   t        g d      }d|j                  d<   t        |j                  d   |dk(  j                  d          t        |j                  d   |dk7  j                  d          t        |j                  d   |dkD  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          y )N)r   r   r   r   rt  keyr   )r   r   r   Trx  )r(   r(  r   r   r7   r   r|   r  s     r    test_optinfo_forward_propagationz0TestMaskedArray.test_optinfo_forward_propagation>  s(   )#

5QZZ&a(9(9%(@AQZZ&a(9(9%(@AQZZ&Q(8(8(?@QZZ&a(9(9%(@AQZZ&a(9(9%(@AQZZ&Q(8(8(?@QZZ&Q(8(8(?@QZZ&Q(8(8(?@QZZ&Q(8(8(?@QZZ&"1u(=>QZZ&'
(;(;E(BCQZZ&q	(:(:5(ABQZZ&q	(:(:5(ABQZZ&ad(;(D(DU(KLQZZ&a(8(A(A%(HIr   c                    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        |      |       y )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(   r   r   rL   )r   
fancydtyper   r  t_2d0s        r   test_fancy_printoptionsz'TestMaskedArray.test_fancy_printoptionsQ  s    XXSzC3*sEl1K+LMN
m]3&4%' 3SY( Q(7)9$'%) &+-@-A-C%*%, &>? >SZ)r   c                 `   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                         y )Nr   r   r  rl  r   r   r   r  r  r  r   r   babb)r   )r   皙?)r   )r   皙@r  r  )r   r   r:  )r   r   r;  r*  r   )r   r   r   r(   r;   r   r   r   )r   r  r   r   r  s        r   test_flatten_structured_arrayz-TestMaskedArray.test_flatten_structured_arraye  s    *sEl+HHff%V4'*((RHr2h/u=T7#TZZ/66"&&)9H'*"bB8, !fq!f-U<T7#TZZ/TYY-*sdC[4-$@AB=-0#[1A'*6'35BT7#TZZ/TYY-*sEl+HHvj6*-V<'*((b"XLB8,7uET7#TZZ/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                     y )	Nr   r   r   r   r   r   r  r  r  )	r   r   r(   r`   r   r  rL   r   r   )r   r  r   r  s       r   test_void0dzTestMaskedArray.test_void0d  s    *sCj)HHgYf-a0!H
1e$%&?B
1e$%&&)0@O!''!*aggaj)
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             y )Nr   r   r>  r   r  r  r  r   r  r   r   r   TF)r  >i2r   r3  r  rA  )r   rL   r   r  r`   r   rK   )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 1xj!%u/0 23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       y )Nr   r   r>  r   r  r  r  r   r   r   r   )r   rL   r   r   rK   )r   r  r   s      r   test_mvoid_iterzTestMaskedArray.test_mvoid_iter  s]    *sCj)'6*&&1A%' 	T!A$Z!Q(T!A$Z&!-r   c                    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                  |       t        d
dgdg      }t        t        |d         d       y # t        j                  |       w xY w)Nr  rl  r   r   r   r   z(1, 1)z-X-z(1, -X-)r   rB  )r   r  z(1,))	r(   r   r   r   rK   rU   _displayset_displayr`  )r   mxini_displays      r   test_mvoid_printz TestMaskedArray.test_mvoid_print  s    FF#S#Jc
+CDSAZ*3
)22''.	9RUZ0bej1++K8 D$<
|4SAZ(	  ++K8s   (0C C-c                    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(         y )Nr   r  )r  r  r  )r   <i4r   )r   r   r0  r   r   z([1, --, 3],)r   r   r   r   FT)r   rN  rl  r3  z([[1, --], [--, 4]],)r>  r  )r   rN  )r   rN  z(--, 2)r   z([[1, --], [--, 4]], 1.0)r  )Tr  )r   i4,i4z(--, (--, 1)))rL   r   r   r`  r   )r   t_mat_2dt_0dt_nes        r   test_mvoid_multidim_printz)TestMaskedArray.test_mvoid_multidim_print  s    YL>%9$;#<*B)D%7$8: 	DG/0T!W01 q!fqe_$6#7',dmdE]%C$E#F%8$9; 	DG 778T!W!889E7$0>%1<$@B 	DG	)*T!W*+q!fqe_a$8#9',dmdE]%CU$K#L%83,$GI 	DG ;;<T!W!<<=+"7!8%1>$BD 	DG/0T!W0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(         y )
Nr   Tr   r   Fr  r   r   r   )rL   rQ  r   r   r   r   r   )r   mx1mx2rJ  s       r   test_object_with_arrayz&TestMaskedArray.test_object_with_array  s    B4tf-B8$3*E4=G11S !r!uzzSXX-./r!uzz"#1

1A"r   N)>r  r  r  r   r   r   r   r   r   r   r   r   r   r   r  r  r  r(  r-  r3  r=  rB  rK  rN  rU  rh  ru   suppress_copy_mask_on_assignmentr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r$  r*  r-  r6  r<  r?  rC  rE  rL  rT  rX  r   r   r   r~   r~   D   sR   8	$	3"$ (I@*)+/5,	)
%F(32**9)0'd$ &FC &FCP$4
1("/D
L+*.=,	>5'"%1(8  &" &",B3K(30J&*(!0F&;2.)""2H
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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%jL                  jO                  d#d$d%g      e%jL                  jO                  d&d'd(g      d)               Z(e%jL                  jO                  d#d$d%g      e%jL                  jO                  d&d'd(g      d*               Z)e%jL                  jO                  d+e*e+,      e%jL                  jO                  d-e*e+,      e%jL                  jO                  d&d'd.g      d/                      Z,e%jL                  jO                  d0e-j\                  e-j^                  g      d1        Z0e%jL                  jO                  d0e-j\                  e-jb                  g      d2        Z2e%jL                  jO                  d+e*e+,      e%jL                  jO                  d-e*e+,      e%jL                  jO                  d&d'd.g      d3                      Z3e%jL                  jO                  d+e*e+,      e%jL                  jO                  d-e*e+,      e%jL                  jO                  d&d'd.g      e%jL                  jO                  d0e-jh                  e-j^                  e-jj                  e-jb                  g      d4                             Z6e%jL                  jO                  d0e-jh                  e-j^                  e-jj                  e-jb                  g      e%jL                  jO                  d&d'd5g      d6               Z7d7 Z8d8 Z9d9 Z:d: Z;y');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|      }
|j                  d       |||||||||	|
f
| _        t        j                         | _        t        j                  dd       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r2   rF  )
r   r(   r   rL   rz   r   r   geterr
err_statusseterrr   s              r   r   z&TestMaskedArrayArithmetic.setup_method  s    HHb"b#r#vr2tS"b"MNHHJK11!"%!"%HH&'!,/XXb%#
% QRRQB7))+
		84r   c                 B    t        j                  di | j                   y Nr   r   r`  r_  r  s    r   teardown_methodz)TestMaskedArrayArithmetic.teardown_method      
		$DOO$r   c           
      L   | j                   \
  }}}}}}}}}	}
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 ].  }|j	                  |      }|j	                  |      }|j	                  |      }|j	                  |      }|
j	                  |      }
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        ||             1 y )Nr   r   r   r   ))r  r   )r   r         @)r   r(   rL   r   rl   r   r   r   rt   r_   r2   )r   r   r   r   r   r   r   r   r   r   r   a2da2dmr   s                 r   test_basic_arithmeticz/TestMaskedArrayArithmetic.test_basic_arithmetic  sf   15.AsBBAr2aVaV$%C1a&1a&!1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ar*1s2r{3Q*HR,<=Q*HR,<=1a&R.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       y )Nr   r   r   r   r   )r   r   r   )r   r   rg  r   r   )r   r   r   )r   r   r   r  r  )r!   r   rn   r   r   r   r   r   r   s       r   test_divide_on_different_shapesz9TestMaskedArrayArithmetic.test_divide_on_different_shapes5  s    1E"1E"EQ78QVVi34$q&	MQ78QVVi341E"!T'
NQ,78QVVi34r   c                     t        j                  dg      }t        dg      }t        t        ||z   t                     t        t        ||z   t                     y Nr   )r   r(   r   r  r   )r   nar   s      r   test_mixed_arithmeticz/TestMaskedArrayArithmetic.test_mixed_arithmeticG  sB    XXqc]A3Z
27K01
27K01r   c                     t        j                  t              j                  }t	        |d|z  dg      }t        t        |dz        g d       t        t        d|z        g d       y )Nr   r   r   r  r   )r   finfor   tinyr(   r   r>   )r   ru  r   s      r   test_limits_arithmeticz0TestMaskedArrayArithmetic.test_limits_arithmeticN  sP    xx##4dB'(\!a%()4\!a%()4r   c                 8   t        dd      }t        dt        d      z  j                         t        d|z   j                         t        | j                         t        t        ||      j                         t        t	        ||      j                         y )Nr   r   r   )r(   r   r   rY   r\   )r   r   s     r    test_masked_singleton_arithmeticz:TestMaskedArrayArithmetic.test_masked_singleton_arithmeticT  sl     11U1X##$R"

B$$%B$$%r   c                     t        g dg d      }t        |d   dk(  t        u        t        |d   dk7  t        u        t        |d   dk(  d       t        |d   dk7  d       y )Nr   r   r   r   r   r   r   FT)r(   r   rK   r   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       y )Nr   r   Tr   )rL   rK   r   rn   r   r   r)  s      r   %test_arithmetic_with_masked_singletonz?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singletonf  s    !Q JQWWagg&QWWtTl+aD6MVJQWWagg&QWWtTl+r   c                     t        dg      }|t        z   }t        |j                  |j                         t        |j                  dg       y )Nr   T)rL   rK   r   rn   r   r)  s      r   5test_arithmetic_with_masked_singleton_on_1d_singletonzOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singletonr  s9    !JQWWagg&QVVdX&r   c                    t        dd      }t        |j                         j                  j                  |j                  j                         t        d      dz  }t        |j
                  d       t        |j                  ddg       y )Nr   r   r  r   rB  r   )r(   r   r9   r|  r   rn   r   )r   r   r   s      r   test_scalar_arithmeticz0TestMaskedArrayArithmetic.test_scalar_arithmeticy  s`    !!QXXZ&&++QXX]];6]RRXXt$RWWq!f%r   c           
      <   | j                   \
  }}}}}}}}}	}
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        j0                  ||      t1        ||             t        t        j2                  ||      t3        ||             t        t        j4                  |      t5        |             y )N              ?T)deg)r   r   r   r-   r.   ro   rp   rw   rx   rs   r   rF   rG   r7   r%   r"   r&   r$   r   r   r6   rb   rD   r?   rE   r@   r,   r   s              r   test_basic_ufuncsz+TestMaskedArrayArithmetic.test_basic_ufuncs  s   15.AsBBAr2RVVAYB(RWWQZb*RVVAYB(RWWQZb*RVVAYB(RWWQZb*RWWSV_d2h/RVVCF^SW-RXXc!f%uRy1RVVAYB(RYYq\6":.RYYq\6":.RYYq\6":.RZZ1%wr27R[[^Xb\2RXXa"Q$h'rBrEz):;RXXa"Q$hD15be3NORXXa^U2r]3R\\!Q'2r):;RWWQ]DRL1RZZ1%wr27R]]1a(*R*<=R%%a+]2r-BCR\\!_im4r   c                 N   t        dt        d             t        dt        ddg             t        g dg d      }t        |      }t        |j                  j
                  t        j                  u        t        d|       |j                  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	       y )
Nr   r   r   )r   r   r   r   r   r   rl  r   ry  )r   r/   r(   r   r   ra  r   intprl   r  r
   r=   ra   r   r   )r   ottr  s      r   test_count_funcz)TestMaskedArrayArithmetic.test_count_func  s   Qa!Qaqc*+$<8Cj		"'')*Qkk&!Cj		"'')*QCm
3()aVS!&'$%Cm
3()		"'')*i3r   c                 \    t        dt        g d             t        dt        d             y )Nr   r   r   r>  )r   r/   r  s    r   test_count_on_python_builtinsz7TestMaskedArrayArithmetic.test_count_on_python_builtins  s    Qg'Qe%r   c           
         | j                   \
  }}}}}}}}}	}
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	      j                  dd      }t        |d
<   t        t        j                  |d       d       y )Nr   )r   r   rZ  r   r   r   )r   r   rZ  r   r   r   r   r   r  ry  )r   r   rj   r   rX   rY   r   r[   r\   r!   rK   rz   rD   r?   r   rl   )r   r   r   r   r   r   r   r   r   r   r   xrxmrs                r   test_minmax_funcz*TestMaskedArrayArithmetic.test_minmax_func  sL   15.AsBBAr2XXa[BiSWgnnS12SWgnnS12WY	2I>WY	2I>1I1IM!!WQ]E$q!*a$;<WQ]E'!Q-A$>?q!Q&'q!Q&'1Ia#&	W^^AD115r   c                    t        j                  d      }t        ||      }t        t	        |t
                     t        |t        j                  ||             t        j                  ||      }t        t	        |t
                     t        |t         j                  j                  ||             t        ||      }t        t	        |t
                     t        |t        j                  ||             t        j                  ||      }t        t	        |t
                     t        |t         j                  j                  ||             y )Nrl  )	r   rc   r\   r   r  r   r   re   rY   )r   r   aminimumamaximums       r   test_minimummaximum_funcz2TestMaskedArrayArithmetic.test_minimummaximum_func  s    GGFO1a=
8[12Xrzz!Q/0==A&
8[12Xrzz//1561a=
8[12Xrzz!Q/0==A&
8[12Xrzz//156r   c                 |    t        g dg d      }t        j                  j                  |      }t	        |d       y )Nr   r   r   r   )r(   r   rY   r   r   r   s      r   test_minmax_reducez,TestMaskedArrayArithmetic.test_minmax_reduce  s-    )"78JJa Qr   c                 ^   t         j                  j                  d      j                         }t	        t         j                  j                  ddd      |      }d|_        dD ]  }t        t         |      }t        t        j                  j                  |      }t        j                  dt              }	  ||d|	      }t        j                  dt              } ||d|	      }t        ||u        |j!                  d
        ||d|	      }t        ||u         y # t        $ r Y jw xY w)Nr  r   r   r   r   r[   rX   r   r   rz  outr  )r   r   r   roundr(   uniformrn   getattrr  r   corer4   r   r   r   r   fill)r   r   r   funcnamenpfuncmafuncnoutresults           r   test_minmax_funcs_with_outputz7TestMaskedArrayArithmetic.test_minmax_funcs_with_output  s    yy~~b!'')299$$QB/d;& 	$HR*FUXX]]H5F88D,D5 88D.DBQD1FFdN#IIdOBQD1FFdN#!	$  s   6D  	D,+D,c           
      :   | j                   \
  }}}}}}}}}}|j                  f|_        t        |j	                         d       t        |d   j	                         t        u        t        |d   j	                  d      t        u        t        |d   j	                  d      t        u        t        |j                         d       t        |d   j                         t        u        t        |d   j                  d      t        u        t        |d   j                  d      t        u        t        |j                         d       t        |d   j                         t        u        t        |d   j                  d      t        u        t        |d   j                  d      t        u        t        g dd      }t        |j                         t        u        t        |j	                         t        u        t        |j                         t        u        y )	Nr   r   r   r         4@r   Tr   )
r   r   rn   r   rX   r   rK   r[   ptpr(   )r   _r   r   s       r   test_minmax_methodsz-TestMaskedArrayArithmetic.test_minmax_methods  s}   *.&&'Aq!QAq!QGG:RVVXr"1		v%&1		!&'1		"'(RVVXt$1		v%&1		!&'1		"'(RVVXs#1		v%&1		!&'1		"'()$'6!"6!"6!"r   c                    t        j                  ddddt        dz  dddddddg      }d}d}g d	}t        ||
      }|j	                  d       t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  g}|D ]Z  }t        t        |||      j                          ||             t        t        |||      j                          ||             \ t        |j                         |       t        |j                         |       |d d D ]Z  }t        t        |||      j                          ||             t        t        |||      j                          ||             \ |dd  D ]  }t        g dg d|      }t        |j                          |d             t        |j                          |d             t        t         j                  dz   t         j                  dz   t         j                   dz
  gg d|      }	t        |	j                          |t         j                   dz
               t        |	j                          |t         j                  dz                t         j                  dt        j                   t         j                        j                  z  z
  }
t        |
 dgddg
      j                         |
 k(  sJ t        |
dgddg
      j                         |
k(  rJ  y )Nr   r   r   r   r   r   r   r   r   r   r   r  r   )@xD      ?y@xD       @xD      r*  r  r  y               @y              @r  r   r   )r   r(   r   rL   r   float16rr  float64
longdouble	complex64
complex128clongdoubler   rX   r[   rq  rt  )r   r   r   an10r   r   float_dtypesfloat_dtyper   r   cmaxs              r   test_minmax_dtypesz,TestMaskedArrayArithmetic.test_minmax_dtypes  s   HHb"b#r#vr2tS"b"MN1!"%
% 

BJJ

BMMbmmR^^E' 	,KabDHHJ$S)+abDHHJ$T*,	, 	RVVXt$RVVXs# (+ 	,KabDHHJ$S)+abDHHJ$T*,	, (, 	FK9	 +-B;w#78;w#78rvvby"&&)bffWRZ@y$/1B;wrz#:;;rvvby#9:66B"**!5!9!999D$
!Q8<<>4%GGGq	A7;;=EEE	Fr   c           
         | j                   \
  }}}}}}}}}	}
t        t        j                  j	                  |      t        j                  |             t        t        j                  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kD  rt        t        j                  ||fd      t        ||fd             t        t        j                  j	                  |d      t        j                  |d             t        t        j                  |d      t        |d             t        t        j                  |d      t        |d             y y )Nr   r   ry  r   r   )r   r   r   r   r   
accumulateru   r(   r9   prodrg   rn   r   r+   r   s               r   test_addsumprodz)TestMaskedArrayArithmetic.test_addsumprodC  s   15.AsBBAr2RVV]]1%szz!}5RVV&&q)3>>!+<=QE!H1-.QE!H1-.RVVAA&AA7RVVF2qM2CODRVVAq\3q!9-RWWQQ');<RWWQ]GAqM2RWWVB]3WRa5HI2333!'3BHrxq6A:A2KR!4LMq!,cjjA.>?1s1ay1A16	 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                         y )Nr   r   r   FTr   r   r   r0        @r   r   r   r   r$  r      rk  r(   r   r   r   r   r   r   r   r  s        r   test_binops_d2Dz)TestMaskedArrayArithmetic.test_binops_d2DX  sA   B4"t$UGdVdV+DEB8b"XBx011u"bB8b"X6 !fq!fq!f57T7#TYY-TYY-1u"bB8b"X6 !fq!fq!f57T7#TYY-TYY-B4"t$%B8b"XBx0AAA/11u!Q!R2q'2 !fq!fq!f57T7#TYY-TYY-1u!Q!R2q'2 !fq!fq!f57T7#TYY-TYY-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                         y )Nr   r   r   FTr   r   r   r0  r  r   gUUUUUU?r   r   g?r   rg  rk  r  r  s        r   test_domained_binops_d2Dz2TestMaskedArrayArithmetic.test_domained_binops_d2D|  sG   B4"t$UGdVdV+DEB8b"XBx011u'7+b"XBx@ !fq!fq!f57T7#TYY-TYY-1u'7+b"XBx@ !fq!fq!f57T7#TYY-TYY-B4"t$%B8b"XBx0AAA/11u&&)FF+;fa[I !fq!fq!f57T7#TYY-TYY-1u&&)FF+;fa[I !fq!fq!f57T7#TYY-TYY-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       y )Nr   r   r   r   Fr   shrinkr   r  r   rL   r   r   r   s      r   test_noshrinkingz*TestMaskedArrayArithmetic.test_noshrinking  sr     ,A %'EQVVY'	QQVVY'FQVVY'	RQVVY'r   c                     t         j                  j                  dg      }t        t        j                  |d      j
                  j                  d       y )Nr   r   r   )r   r   r(   r   true_divider   rn   r   r;  s     r   test_ufunc_nomaskz+TestMaskedArrayArithmetic.test_ufunc_nomask  s7    EEKKR^^Aq)..44b9r   c                 |    t         j                  j                  g ddd      }t        |j                  g d       y )N)r   rg  @      ?Fr  r  )r   r   rV   r   r   r  s     r   test_noshink_on_creationz2TestMaskedArrayArithmetic.test_noshink_on_creation  s+    EEEBQVVY'r   c           
         | j                   \
  }}}}}}}}}	}
t        t        ||      t        ||             t        ||      }t        |t        j                  ||             t        |j                  t        |j                  |j                               t        ||      }t        |t        j                  ||             t        |j                  t        t        |j                  |j                        |dk(               y r  )r   r   r^   r   r   rJ   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   test_modz"TestMaskedArrayArithmetic.test_mod  s    15.AsBBAr2SAYB,2r{T266"b>*TYY 9:2r{T266"b>*TYY(AB!G MNr   c           	         t        d      }t        j                   d      }t        |dd |j                  ddd      }|j                  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(         y )Nr   r   r   r   r   r   r   r   r   r   r   )abcr   defr   r   )r   r   r   r  )r!   r   rK   rl   r   ry   rv   rB   r9   re   r(   rQ  r   )r   r   r   r/  s       r   test_TakeTransposeInnerOuterz6TestMaskedArrayArithmetic.test_TakeTransposeInnerOuter  s)   2JIIbM!AIIaAIIaAR\\!Y/1i1HIRWWQ	1-tAy!/DERXXfQlF1aL91a[	"RXXfQlF1aL91a[	")62!I!!	!	r   c                    t        ddgddg      }t        |j                  ddg       t        |j                  j                         ddg       t        |j                  j                  |j
                  j                  j                         t        |j                  dd	g       t        |j                  j                         dd	g       t        |j                  j                  |j
                  j                  j                         y )
Ny      ?      $@y      4@       @r   r   r   r   r   r   r  )r(   r   r  r9   r   r   r  )r   r   s     r   test_imag_realz(TestMaskedArrayArithmetic.test_imag_real  s    GW%QF3RWWr1g&RWW^^%qz2RWW]]BHHMM$7$78RWWq"g&RWW^^%r{3RWW]]BHHMM$7$78r   c                    t        t        j                  j                  ddd            j	                  dd      }t
        x|d d df<   x|d<   |d<   d}|D ]  }t        t        |      }t        ||      }t        j                  dt              }|j                  d	        ||d|
      }t        ||u        t        | |d|
             t        dt              } |d|
      }t        ||u        t        |d   t
        u         y )Nr   r   r  r   r   r  )ru   r  varstdrX   r[   r  meanr   r/  r  r(   r   r   r  rl   rK   r  r4   r   r  r   r   r   )r   r   funclistr  r  xmmethoutputr  s           r   test_methods_with_outputz2TestMaskedArrayArithmetic.test_methods_with_output  s    299$$QB/088A>(..1a4.2a52f:N  	)HR*FR*FXXau-FKKBQF3FFf$%QF!;<1C(F/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(         y )Nr  r  r  rl  r  r  r  TFr   r  r  r  r  r  r   r   r   r   r   r   r  r  r   r  r   r(   r   r   r   r   r0  r   r  r   r   r   s        r   test_eq_on_structuredz/TestMaskedArrayArithmetic.test_eq_on_structured  sI   *sCj)66"&&)9HQTYYt-TYY/4'(QqT	TYYu.TYY/4'(66"&&)9HQTYY.TYYu.4'(!	TYY/TYYu.4'(66"&&)9HQTYYt-TYY/4'( *sdC[4+$>?@K--/$k2$k24;AC $1TYY$ ?@TYY%% ?@4'(r   c                    dt         fdt         fg}t        ddgddg|      }||k7  }t        |j                  ddg       t        |j                  ddg       t        |j                  d	k(         ||d
   k7  }t        |j                  dd	g       t        |j                  ddg       t        |j                  d	k(         t        ddgddg|      }||k7  }t        |j                  d	dg       t        |j                  d	dg       t        |j                  d	k(         |d
   |k7  }t        |j                  d	d	g       t        |j                  d	dg       t        |j                  d	k(         t        ddgddg|      }||k7  }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   |k7  }t        |j                  dd	gd	d	gg       t        |j                  ddgdd	gg       t        |j                  d	k(         y )Nr  r  r  rl  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&  sI   *sCj)66"&&)9HQTYY/TYY/4'(QqT	TYY.TYY/4'(66"&&)9HQTYYu.TYYu.4'(!	TYYt-TYYu.4'(66"&&)9HQTYY/TYY/4'( *sdC[4+$>?@K--/$k2$k24;AC $1TYY%t =>TYY%% ?@4'(r   c                    t        g dg dd      }||j                  k(  }|j                  |k7  }t        t        j                  |             t        t        j
                  |              |j                  t        j                  d|j                  j                        k(  }t        |j                  |       t        |j                  |       t        |j                  g d       t        |j                  |j                          y )N)r  rl  r   )r  r  r  rO  r  r   TTF)r(   r   r   r   r   r   r   rc   r   r   r   )r   r   eqneexpected_masks        r   %test_eq_ne_structured_with_non_maskedz?TestMaskedArrayArithmetic.test_eq_ne_structured_with_non_maskedQ  s    */w@!&&[VVq[r
BFF2J"''"affll";;277M2277M2 	RWW12277RWWH-r   c           	         t        j                  d      }t        dd|      t        dd|      t        dd|      t        dd|      fD ]  }|j                  t              }|j                  d      }t        j
                  d|	      t        d|	      t        dd|      t        d
d|      fD ]{  }|j                  t              }|j                  d      }||k(  j                         }t        ||k(  |       t        ||k(  |       t        ||k(  |       t        ||k(  |       t        ||k(  |       |j                  D 	cg c]  }	||	   ||	   k(   }
}	t        t        |
t        	      j                         |       ||k7  j                         }t        ||k7  |       t        ||k7  |       t        ||k7  |       t        ||k7  |       t        ||k7  |       |j                  D 	cg c]  }	||	   ||	   k7   }
}	t        t        |
t        	      j                         |       ~  y c c}	w c c}	w )NrO  r>  r  r  r  r  r  2i4r   r   r   )r   r   r`   r  r   r(   r   r   r%  r  r   )r   rT  r   ma1r1r   ma2r2eq_expectednameel_by_elne_expecteds               r   test_eq_ne_structured_extraz5TestMaskedArrayArithmetic.test_eq_ne_structured_extrab  s    XXgfB7fB7fB7fB79 	MB ''+&C%Bxxb1V2.V&;V&;= M ggk*XXe_!Rxnn.R2X{3R2X{3SBY4R3Y4SCZ5=?XXFTBtH40FFU848<<>L!Rxnn.R2X{3R2X{3SBY4R3Y4SCZ5=?XXFTBtH40FFU848<<>L-M	M& G Gs   
H73H<rT  SUr  Nr  c                 d   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(         y )Nr   r   r   r   r   r   r0  TFr(   r   r   r   r   r0  r   rT  r  r   r   r   s         r   test_eq_for_stringsz-TestMaskedArrayArithmetic.test_eq_for_strings  sv    3*BaVEQTYYt-TYY.4'(QqT	TYYu.TYY.4'(3*BaVEQTYY/TYYt-4'(!	TYY/TYYu.4'(QqT	TYY/TYYu.4'(r   c                 d   t        ddg|ddg|      }||k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         ||d   k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         t        ddg|ddg|      }||k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         |d   |k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         ||d   k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         y )Nr   r   r   r   r  FTr	  r
  s         r   test_ne_for_stringsz-TestMaskedArrayArithmetic.test_ne_for_strings  sv    3*BaVEQTYY/TYY.4'(QqT	TYY.TYY.4'(3*BaVEQTYYt-TYYt-4'(!	TYYt-TYYu.4'(QqT	TYYt-TYYu.4'(r   dt1idsdt2r   c                 d   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(         y )Nr   r   r  TFr	  r   r  r  r  r   r   r   s          r   test_eq_for_numericz-TestMaskedArrayArithmetic.test_eq_for_numeric  sv   
 1a&1a&TBQTYYt-TYY.4'(QqT	TYYu.TYY.4'(1a&1a&TBQTYY/TYYt-4'(!	TYY/TYYu.4'(QqT	TYY/TYYu.4'(r   opc                 d   t        ddgddg      }t        j                  d      j                  dd      } |||      }t	        |j
                  j                  |j                  k(         t        |j
                  t        j                  |j                  t              |j
                  z         y )Nr   r   r   r   r   r   )
r(   r   r!   rl   r   r   rn   r   r{   r  )r   r  r   r   r  s        r   test_eq_broadcast_with_unmaskedz9TestMaskedArrayArithmetic.test_eq_broadcast_with_unmasked  s|    1a&1v&IIbM!!!Q'Aq!!QWW,-V[["((177D"9AFF"BCr   c                     t        g dg dg dg      } ||d      }t        |j                  j                          t        |j                  t        u        y )Nr   r  rk  r$  rZ  r   )r(   r   r   rn   ra   )r   r  r   r  s       r   test_comp_no_mask_not_broadcastz9TestMaskedArrayArithmetic.test_comp_no_mask_not_broadcast  sF     9i34AqFKK%%%&v%&r   c                 d   t        ddg|ddg|      }||k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         ||d   k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         t        ddg|ddg|      }||k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         |d   |k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         ||d   k7  }t        |j                  ddg       t        |j                  ddg       t	        |j
                  dk(         y Nr   r   r  FTr	  r  s          r   test_ne_for_numericz-TestMaskedArrayArithmetic.test_ne_for_numeric  sv   
 1a&1a&TBQTYY/TYY.4'(QqT	TYY.TYY.4'(1a&1a&TBQTYYt-TYYt-4'(!	TYYt-TYYu.4'(QqT	TYYt-TYY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(         y r  )r(   r   r   r   r   r   r0  )r   r  r  r  r  r   r   r   s           r   test_comparisons_for_numericz6TestMaskedArrayArithmetic.test_comparisons_for_numeric  s    1a&1a&TB!QxTYY177AGG 45TYY.4'(!QqT{TYY177AGGAJ 78TYY.4'(1a&1a&TB!QxTYY177AGG 45TYYt-4'(!A${TYY1771:qww 78TYYu.4'(!QqT{TYY177AGGAJ 78TYYu.4'(r   zN/Ac                     t        g dg d|      }t        g dg d|      }t         |||      j                   ||j                  |j                               y )N)r   r   cder*  )r   r0  )r!  r   r   )rL   r   r   )r   r  r  r  r  s        r   test_comparisons_stringsz2TestMaskedArrayArithmetic.test_comparisons_strings:  sG     ,9N,9NRS\''CIIsyy)ABr   c           	      `   t               5 }|j                  t        d       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 k7  t        ddgddg             t        d dgd      }t	        |d k(  ddg       t	        |d k7  ddg       t        d dgd      }t	        |d k(  t        ddgd             t	        |d k7  t        ddgd             t        }t	        |d k(  t               d d d        y # 1 sw Y   y xY w)NzComparison to `None`r   r   r   TFr   )r   r  r  r(   r   r   rK   r  s      r   test_eq_with_Nonez+TestMaskedArrayArithmetic.test_eq_with_NoneE  s      	,CJJ}&<=tQiq!f-AdE4-q!f$EF4$7dE5$-q!f$EFtQie,AdT5M2dUDM2tQid+AdE5$-d$CDdE4-d$CDAdF+!	, 	, 	,s   DD$$D-c                 D   t        d      }t        |dk(  d       t        |dk(  d       t        |dk7  d       t        |dk7  d       t        dd      }t        |dk(  t               t        |dk(  t               t        |dk7  t               t        |dk7  t               y )Nr   Tr   Fr   )r(   r   rK   r   s      r   test_eq_with_scalarz-TestMaskedArrayArithmetic.test_eq_with_scalar^  s    !H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       A y )Nr   r   r   r   FT)r(   r   r   r   r   )r   r   r   r   s       r   test_eq_different_dimensionsz6TestMaskedArrayArithmetic.test_eq_different_dimensionsj  s    Aq6A'1a&1a&)*88aVaV,-/ 	5B"HDeU^&*E]%4 5eT]&+T]%4 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       y )Nr   r   r   r   r   r  r   r   r   r   r   r   r   r   r   )rL   r   rI  rF   r   r   )r   r   r  r   s       r   test_numpyarithmeticz.TestMaskedArrayArithmetic.test_numpyarithmeticu  s    )@266!9bA$35 1vT7#TYY-QVV_-vvayT7#TYY-QVV_-r   )<r  r  r  r   rd  rj  rn  rr  rv  rx  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   markparametrizer  r  num_dtsnum_idsr  operatorr  ltr  gtr  r  leger  r"  r$  r&  r(  r,  r   r   r   r[  r[    s   5"%!:F5$25&)
,'&5842&
627$$.#,(FT7*".H".H(":(
	O(9),))V))V." MD [[TC:.[[VdC[1) 2 /)< [[TC:.[[VdC[1) 2 /)< [[UG9[[UG9[[VdAY/) 0 : :)< [[THKK#=>D ?D [[THKK#=>' ?' [[UG9[[UG9[[VdAY/) 0 : :)< [[UG9[[UG9[[VdAY/[[T[[(++x{{HKK@B)B 0 : :
)< [[T[[(++x{{HKK@B[[VdE]3C 4BC,2
%	5.r   r[  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestMaskedArrayAttributesc                 j   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       y )	Nr   r   r   r*  F)r   	keep_maskTrz  r  r   r   rJ  s      r   test_keepmaskz'TestMaskedArrayAttributes.test_keepmask  s{    3!_RWWaff%!)u=RWWi(!)t<RWWi(!),RWWi(r   c                     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               |j                          t        d      |d d  t        |j                  g d       t        |j
                  t               |j                          t        ||dk  <   t        |j                  g d       t        |j                  g d       d|t        |d	kD  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       y )Nr   r   r   r   r   r   Tr   	hard_maskFr   r?  r   r   (   r   r   )r   r   r   r   r   )r   r   r   r   rA  r]  r   r     )r   r   r  r   r   )r   r   r  rC  rA  r   )r   r   r   r   r   r  )r   r   r   r   r   )r   r   r   r   r   r  r   r  )r   r   r   r   r   r   r  )r!   rH   r(   r   r   r   r   r1  ra   rK   soften_maskharden_maskr   r9   )r   r   r}  r;  xhxss         r   test_hardmaskz'TestMaskedArrayAttributes.test_hardmask  s   1IaL11-11D9"XAq6
"XAq6
RXX/0RXX01RWWo.BLL !1Q1QRXX01RXX23RWWf%11RWWo.RWWo.11RXX/RXX/RWWo.RWWf%
q	1RXX/RWWf%
26
RXX/RXX/$%6"q&% !RXX/RXX/QFQF#Aq6Aq6*:dK1RXXAA/0RXXAA/06
RXXAA/0RXXAA/0$%6"q&% !RXXAA/0RXXAA/0r   c                     t        d      }g d}t        |      }t        ||d      }d|dd d|dd t        |j                  g d	       y )
Nr   r=  Tr>  r  r   r   r   )r  r   r   r   r   )r!   rH   r(   r   r   r   r   r}  r;  rF  s        r   test_hardmask_againz-TestMaskedArrayAttributes.test_hardmask_again  sL    1IaL11-1Q1QRXX01r   c                 .   t        g dg d      }|j                         }t        ||       d|d<   t        ||       t        |t        g dg d             |j                         }d|d<   t        ||       t        |t        g dg d             y )Nr   r   r   r   r   r   r   r  )r(   rE  r   rD  r   s      r   test_hardmask_oncemore_yayz4TestMaskedArrayAttributes.test_hardmask_oncemore_yay  sx     )),MMOQ!QQii89MMO!QQii89r   c                     t        d      }t        |d<   d|d<   t        |j                  t               t        d      }d|_        t        |d<   d|d<   t        |j                  t        d             y )Nr   r   F)r!   rK   r   r   ra   
_smallmaskr{   r  s     r   test_smallmaskz(TestMaskedArrayAttributes.test_smallmask  s_    2J!!QWWf%2J!!QWWeBi(r   c                 p   t        g dg d      }|j                         }t        ||       t        |j                  t               t
        j                  j                  dgdt        fdt        fg      }|j                         }|j                          t        |j                  |j                         y )Nr   r  r   r
  r   r   )
r(   shrink_maskr   r   ra   r   r   r   r   r   r   s      r   test_shrink_maskz*TestMaskedArrayAttributes.test_shrink_mask  s|    )),MMOQQVVV$ EEKK
c3Z#u$>?FFH	QVVQVV$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 ]2  }t        ||||f          |dz  }||j                  d   k\  s,d}|dz  }4 y )N))r   r:  one)r   r;  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   r>  r   )r(   r   r   rK   r  r   rn   )r   r   xflatr  jr   s         r   	test_flatz#TestMaskedArrayAttributes.test_flat  s`    FFHsc5\<@B #t#t#t&	U1Xqw'U1Xqw'U1Xqw'U2AY!%U1Xqw'U1Xqw'U1Xqw'U12Y!%U2Y&	* 	BQq!tW%FAAGGBKQ	r   c                 .   t        j                  dd      t         j                  j                        }t        j                  d      |_        t        |       t        |j                  t        j                  d             fd}t        t        |       j                  dt         j                  j                        }t        |j                  t        j                  d             t        j                  dd      t         j                  j                        }t        j                  d      |_        t        |j                  t        j                  d             t        |j                  t         j                  j                         y )Nr   zf4,i4r   f4c                  x    t         j                  j                        } t        j                  d      | _        y )Nf8)r   r   r(   r   )r;  r   s    r   assignz;TestMaskedArrayAttributes.test_assign_dtype.<locals>.assign&  s#    AAhhtnAGr   )r   ra  )r   r{   r   r(   r   r`  r   r   r  r  r   r   ra   )r   r;  rg  r   r   s       @r   test_assign_dtypez+TestMaskedArrayAttributes.test_assign_dtype  s    HHQg&EEKKN((4.QQWWbhhtn-	% 	j&)FFBEE$5$5F6QWWbhhtn- HHQd#EEKKN((7#QWWbhhw/0QWWbeell+r   N)r  r  r  r;  rH  rK  rN  rQ  rT  rb  rh  r   r   r   r7  r7    s+    )51n2:
)%<,r   r7  c                   x    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y)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               y )Nr   |S3   0s   camelot!r   stuff)	r   r   r  _check_fill_valuer   r   r0   r   r,  )r   ro  fvals      r   test_check_on_scalarz&TestFillingValues.test_check_on_scalar8  s    EEJJ88 C(T1 s+T-a01 E*T4  u-T-k:;i!2E3?i!2GSAr   c           
      t   t         j                  j                  j                  }dt        fdt
        fdg} |g d|      }t        t        |t                     t        |j                         g d        |d |      }t        t        |t                     t        |j                         t        d      t        d      t        t        d            g       t        j                  d|	      } |||      }t        t        |t                     t        |j                         g d       t        j                  dd
t        fdt
        fdg	      } |||      }t        t        |t                     t        |j                         g d       t        j                  dt              }d|d<    ||t              }t        t        |t                     t        |j                         g d       dt        fg} |d|      }t        t        |t                     t        |j                         d       y )Nr   r   )r  rl  )r  )gr&  )r  rs     ???r   r   r   r   r  r  )r?  rl  rG  rn   r   6e)rv  )r   r   r  ro  r   r   r   r  r
   r   itemr0   r   r(   rQ  )r   ro  r  rp  fill_vals        r   test_check_on_fieldsz&TestFillingValues.test_check_on_fieldsH  s   EEJJ88*sElL9 !;VD
4)*TYY["=> v.
4)*TYY[#5a#8#5b#9#*+=c+B#C#E 	F 886fE 62
4)*TYY["=>
 886$':U|\"JL 62
4)*TYY["=> ::D71 62
4)*TYY["=> * V4
4)*TYY[-0r   c                    t        g d      }|j                  j                  ddi       t        |t              }t	        |j
                  g d       t	        |j                  t        d             t        |t              }t	        |j
                  g d       t	        |j                  t        d             |j                  t              }t	        |j
                  g d       t	        |j                  t        d             t	        |j                  d   d       |j                  dg      }t	        |d	   j
                  |j
                         t	        |d	   j                  |j                         y )
N)   3   4   5commentzupdated!r   )r   r   r   r   r   )r   rl  r   )
r(   r(  updater   r   r   r0  r0   r   r   r   s      r   test_fillvalue_conversionz+TestFillingValues.test_fillvalue_conversionw  s    $%	

9Z01!3QWWi(Q\\#5a#89!5!QWWi(Q\\#5b#9:HHSMQWWi(Q\\#5a#89QZZ	*J7HHl^$QsV\\177+QsV&&5r   c                     t        d      }t        t        j                  d            }t        t        j                  d      j                        }t	        ||       t	        ||       y )Nr   )r0   r   r(   r   r   )r   r!  f2f3s       r   test_default_fill_valuez)TestFillingValues.test_default_fill_value  sJ    #- 2 2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        ||       y )	Nr  r  r  r  r   r   r   r   )r(   r   r   r0   r   r   r   )r   fieldsr!  r  expecteds        r   "test_default_fill_value_structuredz4TestFillingValues.test_default_fill_value_structured  s    	{!3ZU|DF  '-88/2/4/35<BLLJ 	R"R"r   c           	          t        j                  dg      }t        |      }t        |d   t        j                  t        |d         |d                y )N)vV7r  )r   r   r0   r   r(   )r   rT  r  s      r   test_default_fill_value_voidz.TestFillingValues.test_default_fill_value_void  sC    XX{m$r"QsVRXX&8C&A2c7K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                  j                         ddg       t        |d   j                  d       t        |d   j                  d       d|_        t        |j                  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             y )Nr   r  r0  )r   r   r   r  r   rl  )r   r   )r   r   r   r   r       8@s   999r   )rZ  r&  )rZ  rt  rZ  rt  )r   r   r  )rL   r   _fill_valuer   r(   r   r0  rw  r   r)   r   )r   r   seriesmtyper   s        r   test_fillvaluez TestFillingValues.test_fillvalue  s4   I$7iV'')9)9:u|,8XDz2%@Q\\&&(4.9QsV&&,QsV&&/!Q\\&&(+6QsV&&*QsV&&/+RZZ-33U;Q\\4(Q]]BHHTN3r   c                 
   t        dgdt        fddt        fg      }t               5 }|j	                  t
        d       |ddg   }t        t        |j                        d       |dd  |d d	 k(   d d d        y # 1 sw Y   y xY w)
Nr  r  r  r  r   zNumpy has detected)r  r   r   r   )	r(   r   r   r   r  r  r   r  r0  )r   r  r  	subfieldss       r   test_subarray_fillvaluez)TestFillingValues.test_subarray_fillvalue  s    	{!3ZU|DF  	,CJJ}&:;Sz*Iy3346FGabMYs^+	, 	, 	,s   AA99Bc                    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      j                  |      }t         |d |      |       t        j                  d
dt
        fg      j                  |      }t         |d|      |       t        j                  d      }t        j                  t        d      t        d      t        d      fd      j                  |      } |d |      }t        ||       t        j                  dd      j                  |      }t         |d|      |       t        |      }t        |d   j                  j                  d       y )Nr  r  r  r   r   r   r   r   rl  r_  r2  zint, float, floatr  r!  )r   r   r  ro  r   r   r(   r0   r   r   r   rL   r0  r   )r   ro  r  r  r   Ms         r   test_fillvalue_exotic_dtypez-TestFillingValues.test_fillvalue_exotic_dtype  s   EEJJ88*lS%L9((.q1.s3.r25 "() 	&tV4g>'(((.r24#'-228&. 	&tV4g>((4u7>>vF&q&17;23((.q1.r2.r25 "56 7=fVn 	 !v.T7#((9,?@GGO&q&17; !QtW'',,a0r   c                 z   dD ]  }t        j                  d|      }t        t        j                  d|z   dz               }t        j
                  j                  ||       t        j                  d|      }t        t        j                  d|z   dz               }t        j
                  j                  ||        y )N)asfspsnsusmsr   r;  hDWr  YNaTz<M8[]z<m8[)r  
datetime64r0   r   r   testingr   timedelta64)r   timecoder  r   s       r   !test_fillvalue_datetime_timedeltaz3TestFillingValues.test_fillvalue_datetime_timedelta  s    
2 	3H&&uh7G%ekk&82Cc2I&JKDJJ##D'2''x8G%ekk&82Cc2I&JKDJJ##D'2	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                y )
N)r   rl  )r   r   r   r  r  r  r  r   r   r   )r(   r   r0  r   r   r0   r]   rZ   r   r   r   s      r   test_extremum_fill_valuez*TestFillingValues.test_extremum_fill_value  s   ;,scT3K$+E%FGI||TZZ)T#Y 21S6 :;T#Yt_&83&FGT#Yt_&83&FG!!$TZZ)T!W0389T!WQZ!3AcF4L!ABT!WQZ!3AcF4L!ABT!W0389!!$TZZ)T!W0389T!WQZ!3AcF4L!ABT!WQZ!3AcF4L!ABT!W038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                      y )Nr   r   r   rt  r   r   r   )r(   r   r  r]   r   r   fullrZ   r  s      r   !test_extremum_fill_value_subdtypez3TestFillingValues.test_extremum_fill_value_subdtype	  s    9,!'<&=>!!$TZZ)T!Wbgga);AgJ)GHI!!$TZZ)T!Wbgga);AgJ)GHIr   c           	         dt         fdt         fg}t        t        t        g dg d            d|      }|d   }|j	                  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   }|j	                  d       t        |j                  t        j                  d             t        t        |j                        dt        d      f       y )Nr   r   r   r  r  r0  r   r   )r   r  )r   r  r   r   )r   r(   r   r   r   r   r  r   r  r0  r0   )r   r  r   aar/  tts         r    test_fillvalue_individual_fieldsz2TestFillingValues.test_fillvalue_individual_fields	  s    *sCj)$s9i01)9sV
"R^^RXXb\2U1<<(*5SU1<<()4$s9i01@sV
"R^^RXXb\2U1<<(2/A!/D*E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   j                  |d   j                         |j                  d   }t        t        j                  |d	                t        |d
   t        d             y )Nr   r   r   r   )F)r   r0  r   r   r   r   r   r   )r   r(   r   rI  r   r4   rn   r   r0  r  r   r  r   r0   )r   r  adtyper   r   r  s         r   (test_fillvalue_implicit_structured_arrayz:TestFillingValues.test_fillvalue_implicit_structured_array/	  s    uu5%.('; ffYbhhx.@B!''&&!123#	#af//0MM"1QrU.r23r   c                 :   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       y )Nr   r  r  r  r   )r4   r   r0  rc   r   r{   complexrA   r  s     r   test_fillvalue_as_argumentsz-TestFillingValues.test_fillvalue_as_arguments<	  sp    !%Q\\4(t51Q\\4(!'2Q\\2&Q2W5Q\\2&r   c                     t        d      }t        |j                  d       t        dt              }t        |j                  d       t        dt              }t        |j                  d       y )Nr   rn   ru  )r4   r   rn   rc   r   r{   r  r  s     r   test_shape_argumentz%TestFillingValues.test_shape_argumentJ	  sP     QWWe$uE*QWWe$W-QWWe$r   c                    t        g ddt        j                        }|j                         }t	        |j
                  dk(         |j                  t              }t	        |j
                  dk(         |j                  t              }t	        |j
                  dk(         |j                  t        j                        }|j                  t        j                        }|j                  t        d      }t	        |j
                  dk(         |j                  t        d      }t	        |j
                  dk(         |j                  t        j                        }t	        |j
                  d	k(         y )
Nr   r   r  )ra  r   r  )ra  r0  r   r  )	r(   r   int64r  r   r0  r   r
   int32r)  s      r   test_fillvalue_in_viewz(TestFillingValues.test_fillvalue_in_viewV	  s    ): FFH!" FF;!"
 FFF$!" FF2::FF

F# FF;1F-!" FFF2!" FFF"&'r   c                     t        dd      }t        |d   j                  t        d             t        |d   j                  t        d             y )Nr   z(2,)3S,(2,)3Uru  r   s   spamr!  eggs)r4   r   r0  r0   r  s     r   test_fillvalue_bytes_or_strz-TestFillingValues.test_fillvalue_bytes_or_str	  sD     _5QtW'');G)DEQtW'');F)CDr   N)r  r  r  rq  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rj  rj  6  sc    B -1^60
#M
40	,1>3:0	JG&4'
%((TEr   rj  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)
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| _        t        j                         | _        t        j                  dd	       y )
Nr   r   r   r   r   r   r   rD  r]  )r(   r   r   r   r^  r_  r`  r  s    r   r   zTestUfuncs.setup_method	  s}    aR!V,q01va7GHaR!V,q01va7GHK))+
		84r   c                 B    t        j                  di | j                   y rb  rc  r  s    r   rd  zTestUfuncs.teardown_method	  re  r   c                    dD ]  }	 t        t        |      }t        t        j
                  j                  |      }| j                  d |j                   } || } || }t        |j                  d      |j                  d      |       t        |j                  |j                  |        y # t        $ r t        t        |      }Y w xY w)N)*rs   rF   rG   r7   r,   ro   r-   rw   r%   r"   r&   rp   r.   rx   arcsinhr#   arctanhr   fabsnegativefloorceillogical_notr   rt   r_   r2   r  floor_divide	remainderfmodhypotr$   r6   rb   rE   r@   rD   r?   logical_and
logical_orlogical_xorr   )err_msg)r  umathAttributeErrorfromnumericr  r   r  r   ninr   r9   r   r   )r   r  ufmfargsurmrs          r   test_testUfuncRegressionz#TestUfuncs.test_testUfuncRegression	  s     	;A"-UA& *B66'266?DTBTB1ryy|Q7bggrww:5	;& " -[!,-s   B..C
	C
c                 $   | j                   d   }t        t        |d              t        t        |d             t	        t        |d d d      d       t	        t        |d      d       t	        t        j                  |      t               y )Nr   ry  r   )
r   r   r   rq   r   ru   rg   r   r   r   r  s     r   test_reducezTestUfuncs.test_reduce	  sj    FF1IGAA&&'#$S2AQ'+WQQ'+SZZ]B'r   c                    t        dd      j                  dd      }t        |dk  |      }t        |j	                         |j	                                t        |j                         d       t        |j	                  d      |j	                  d             t        |j                  d      g d       t        |j	                  d      d   j                         t        |j                  d      d   j                         y )Nr      r   r   r   r   )r   r   rk  r$  )r!   rl   rW   r   rX   r[   r   r   )r   r   amasks      r   test_minmaxzTestUfuncs.test_minmax	  s    1bM!!!Q'QUA&UYY[!%%'*UYY[!$UYYq\1558,UYYq\<0		!Q$$%		!Q$$%r   c                 >   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                      y )	Nr*  r  r   r   r   r   r   r   r   r   r   r   )rL   r   rs   r   r   r   r  r   )r   r   r   r  s       r   test_ndarray_maskzTestUfuncs.test_ndarray_mask	  sp    )@wwqzAq"''!*b9$35T7#TYY-Jtyy+667r   c                 p   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        j                  |      t        u        t        t        t        j                  |      dk(               t        j                  |      t        u        t        |z  dk(         t        |z  dk(         t        |z  dk(         y )Nr   r   r   r   r   r  c                   :    e Zd ZW  j                  dz   Zd Zd Zy)<TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClassr   c                      y)NMy mulr   r   others     r   __mul__zDTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__mul__	      r   c                      y)NMy rmulr   r  s     r   __rmul__zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__rmul__	       r   N)r  r  r  __array_priority__r  r  r  s   r   MyClassr  	  s    !"!5!5!9 !r   r  r  r  c                   &    e Zd ZdZd Zd Zd ZeZy)=TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2d   c                      y)NMe2mulr   r  s     r   r  zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__mul__	  r  r   c                      y)NMe2rmulr   r  s     r   r  zFTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rmul__	  r   r   c                      y)NMe2rdivr   r  s     r   __rdiv__zFTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rdiv__	  r   r   N)r  r  r  r  r  r  r  __rtruediv__r   r   r   MyClass2r  	  s    !$ !! $Lr   r  r	  r  r  )rL   r   r,  r1  multruedivr   r  NotImplementedr   r_   re   __truediv__)r   r  mer  me_toor   s        @r    test_treatment_of_NotImplementedz+TestUfuncs.test_treatment_of_NotImplemented	  s    "bA/iq%8i!1!11e<	! 	! YQ("#B)#$	$ 	$ 		&!^34HNN1f-:;<f%78
h&'F
i'(F
i'(r   c                    t         j                  j                  dt         j                  gddg      }t	        j
                         5  t	        j                  d       t        |       t        |d       |dkD   t        |       t        |       t        |       t        |       t        |       t        |       t        |d       t!        |d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   errorr   )r   r   r(   rI  warningscatch_warningsfilterwarningsr7   r   rs   rF   rw   r%   r"   r#   r2   r   r  s     r   test_no_masked_nan_warningsz&TestUfuncs.test_no_masked_nan_warnings	  s     EEKKbffQqEK2$$& 	##G, F1IE GFF1I1IAJ 1aL Q)	 	 	s   BCC&c                    t        j                  ddd      }t         j                  j                  |      }t        j                  d      5  |dz  }t         j
                  j                  ||dz         d d d        y # 1 sw Y   y xY w)Nr   r   皙?raise)underr   r   )r   r!   r   r(   rH  r  r   )r   r   XX2s       r   test_masked_array_underflowz&TestUfuncs.test_masked_array_underflow
  sg    IIaC EEKKN[[w' 	33BJJ))"ac2	3 	3 	3s   )A??BN)r  r  r  r   rd  r  r  r  r  r  r  r"  r   r   r   r  r  	  s0    5%;<(	&8))V83r   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 y)  TestMaskedArrayInPlaceArithmeticc                    t        d      }t        d      }t        d      }t        |d<   |||f| _        |j                  t              |j                  t              |j                  t              f| _        t        j                  d   t        j                  d   z   | _        | j                  D cg c]!  }t        j                  |      j                  # c}| _        |j                  t        j                        |j                  t        j                        |j                  t        j                        f| _        y c c}w )Nr   r   
AllIntegerAllFloat)r!   rK   intdatar   r   	floatdatar   	typecodes
othertypesr   ra  uint8	uint8data)r   r   r   r   r  s        r   r   z-TestMaskedArrayInPlaceArithmetic.setup_method"
  s    2J2JBZ11bz((5/188E?BIIe<LM,,|4r||J7OO59__E288A;++EHHRXXHHRXXIIbhh
 Fs   2&Ec                 f   | j                   \  }}}t        |d<   |dz  }t        ||dz          |dz  }t        ||dz          | j                  \  }}}|j                  j
                  j                  }|dz  }t        ||j                  j
                  j                  k(         t        ||dz          y )Nr   r   r   )r(  rK   r   r)  r   r|  r   )r   r   r   r   r  id1s         r   test_inplace_addition_scalarz=TestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar1
  s    \\
Ar1	QQA
aRQ^^
Arffmm  	Rqvv}})))*QBr   c                 (   | j                   \  }}}|j                  }t        dt        j                        }t
        |d<   ||z  }||z  }t        |||z          t        |||z          t        |j                  t        ||j                               y Nr   r   r   )r(  r   r!   r   int16rK   r   rJ   r   r   r   r   r;  r   s         r   test_inplace_addition_arrayz<TestMaskedArrayInPlaceArithmetic.test_inplace_addition_array@
  sz    \\
ArGG2RXX&"	Q
aQARQRWWga01r   c                 t    | j                   \  }}}|dz  }t        ||dz
         |dz  }t        ||dz
         y rp  )r(  r   r   r   r   r   s       r   test_inplace_subtraction_scalarz@TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalarL
  s?    \\
Ar	QQA
aRQr   c                    | j                   \  }}}|j                  }t        dt              }t        |d<   ||z  }||z  }t        |||z
         t        |||z
         t        |j                  t        ||j                               y r2  r)  r   r!   r   rK   r   rJ   r4  s         r   test_inplace_subtraction_arrayz?TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_arrayT
  v    ^^
ArGG2U#"	Q
aQARQRWWga01r   c                 t    | j                   \  }}}|dz  }t        ||dz         |dz  }t        ||dz         y )Nr   r   )r)  r   r7  s       r   "test_inplace_multiplication_scalarzCTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar`
  s?    ^^
Ar	SQA
c	RQr   c                    | j                   \  }}}|j                  }t        dt              }t        |d<   ||z  }||z  }t        |||z         t        |||z         t        |j                  t        ||j                               y r2  r:  r4  s         r   !test_inplace_multiplication_arrayzBTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_arrayh
  r<  r   c                     | j                   \  }}}t        d      dz  }t        d      dz  }t        |d<   |dz  }t        ||       |dz  }t        ||       y )Nr   r   )r(  r!   rK   r   r7  s       r    test_inplace_division_scalar_intzATestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_intt
  sZ    \\
Ar2JNBZ!^1	aQ
qRr   c                     | j                   \  }}}|dz  }t        ||dz         |t        d      z  }t        |t        d             y )Nr   r   )r   )r)  r   r!   rc   r7  s       r   "test_inplace_division_scalar_floatzCTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_float
  sD    ^^
Ar	SQC 
fRjRe%r   c           	      .   | j                   \  }}}|j                  }t        dt              }t        |d<   ||z  }||z  }t        |||z         t        |||z         t        |j                  t        t        ||j                        |dk(               y )Nr   r   r   r   r:  r4  s         r   !test_inplace_division_array_floatzBTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_float
  s    ^^
ArGG2U#"	Q
aQARQRWWgga&816C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       |j                         }||z  }t        |j                  g d       t        |j                  ddddt          dz  dddddddg       y )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rL   r   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11!"%!"%GQWWBCQWW"b#sRxRRRL	N WWY
bRXXCDQWW"b#sRxRRRL	Nr   c                 N   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       y )	Nr   rG  r   r   )r   r   r   r   r   r   r   r   r  r   s      r   test_datafriendly_addz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_add
  s    )),URWWi(RWWi(	QQVVY'QVVY')),yy11RWWi(RWWi()),	U99--QVVY'QVVY'r   c                 p   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       y )	Nr   rG  r   r   )r   r   r   r   r  r   r  r   s      r   test_datafriendly_subz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub
  s     )),URWWi(RWWi()),	QQVVY'QVVY')),yy11RWWi(RWWi()),	U99--QVVY'QVVY'r   c                 p   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	       y )
Nr   rG  r   r   r   r   r   rB  r   )r   rA  r   r   r  r   s      r   test_datafriendly_mulz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul
  s     )),URWWi(RWWi()),	QQVVY'QVVY')),|)44RWWj)RWWi()),	U<i00QVVZ(QVVY'r   c                 p   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
       y )Nr   rG  r   r   )r   r   r   r  )r   r  g      >@r   )r   r  r   r   r  r   s      r   test_datafriendly_divz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_div
  s     )),VRWW12RWWi(,Y/	RQVV01QVVY',Y/Y77RWW01RWWi(,Y/	U?33QVV./QVVY'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       y )Nr  rG  r   rg  )r   ;f@r   )r   rT  r   r  r   s      r   test_datafriendly_powz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_pow  s\     ,Y/#XRWW12RWWi(	c	QVV/0QVVY'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       y )Nr   r   r   r   r   r   r(   r   r   ra   r   s      r   test_datafriendly_add_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_add_arrays      Aq6Aq6"#1a&1v&	QQ!Q!Q()661a&1a&!12Aq6Aq6"#1a&1v&	QQ!Q!Q()QVVq!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       y )Nr   r   r   r   r   rW  r   s      r   test_datafriendly_sub_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub_arrays  rY  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       y )Nr   r   r   r   rW  r   s      r   test_datafriendly_mul_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul_arrays*  rY  r   c           	      h   | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}t
        |d<   | d      z  }t        || d      z          | d      z  }t        || d      z          d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r   .0r  r/  s     r   	<genexpr>zUTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type.<locals>.<genexpr>=       BaahhqkB   r   r   )r+  r  r  r  r-  rK   r   r   r   r   r   r/  s       @r   !test_inplace_addition_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type8  s     	+A((* +''0B4>>B
Ar1QqT	QAaD)ad
RQqT*+ +	++ +s   A8B((B1	c           	         | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}|j
                  }t        d      }t        |d<   ||z  }||z  }t        |||z          t        |||z          t        |j
                  t        ||j
                               d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zTTestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type.<locals>.<genexpr>I  rd  re  r   r   r   
r+  r  r  r  r-  r   r!   rK   r   rJ   r   r   r   r   r;  r   r/  s         @r    test_inplace_addition_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_typeD       	:A((* 
:''0B4>>B
ArGG2Q'"QaQA&RQ'RWWga&89
: 
:	:
: 
:   B#CC	c           	      V   | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}| d      z  }t        || d      z
         | d      z  }t        || d      z
         d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zXTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type.<locals>.<genexpr>X  rd  re  r   r+  r  r  r  r-  r   rf  s       @r   $test_inplace_subtraction_scalar_typezETestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_typeS       	+A((* +''0B4>>B
ArQqT	QAaD)ad
RQqT*+ +	++ +   A/BB(	c           	         | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}|j
                  }t        d      }t        |d<   ||z  }||z  }t        |||z
         t        |||z
         t        |j
                  t        ||j
                               d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zWTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type.<locals>.<genexpr>c  rd  re  r   r   r   rj  rk  s         @r   #test_inplace_subtraction_array_typezDTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type^  rm  rn  c           	      V   | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}| d      z  }t        || d      z         | d      z  }t        || d      z         d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  z[TestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type.<locals>.<genexpr>r  rd  re  r   rq  rf  s       @r   'test_inplace_multiplication_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_typem  rs  rt  c           	         | j                   D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}|j
                  }t        d      }t        |d<   ||z  }||z  }t        |||z         t        |||z         t        |j
                  t        ||j
                               d d d         y # 1 sw Y   xY w)Nr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zZTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type.<locals>.<genexpr>}  rd  re  r   r   r   rj  rk  s         @r   &test_inplace_multiplication_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_typex  rm  rn  c                 b   t         j                  d   D ch c]!  }t        j                  |      j                  # }}| j                  D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}t        d       d      z  }t        d       d      z  }t        |d<   	 | d      z  }| d      z  }t        ||       t        ||       d d d         y c c}w # t        $ r d d}|v sJ |       Y ,w xY w# 1 sw Y   xY w)	NComplexr  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<genexpr>  rd  re  r   r   r   Supported type  throwing TypeError)r   r*  r   ra  r+  r  r  r  r-  r!   rK   r   r,  )r   r/  unsupportedr   r   r   msgs    `     r   'test_inplace_floor_division_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type  s)    24i1HIArxx{''II 	1A((* 1''0B4>>B
Ar2Q'!A$.Ba(1Q4/11!A$JA1Q4KB A& Q'1 1	1 J ! 1+A3.ABC+0S0+11 1s0   &D "A$D%.DD"D%!D""D%%D.	c                    t         j                  d   D ch c]!  }t        j                  |      j                  # }}| j                  D ]  t        j                         5  t        j                  d       fd| j                  D        \  }}}|j                  }t        d      }t        |d<   	 ||z  }||z  }t        |||z         t        |||z         t        |j                  t        t        ||j                        | d      k(               d d d         y c c}w # t        $ r d d	}|v sJ |       Y ,w xY w# 1 sw Y   xY w)
Nr  r  c              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<genexpr>  rd  re  r   r   r   r   r  r  )r   r*  r   ra  r+  r  r  r  r-  r   r!   rK   r   rJ   r,  )	r   r/  r  r   r   r   r;  r   r  s	    `       r   &test_inplace_floor_division_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type  s@    24i1HIArxx{''II 	1A((* 1''0B4>>B
ArGG2Q'"1!GA1HB AF+ Q!V, 166 2Q!A$Y@1 1	1 J" ! 1+A3.ABC+0S0+11 1s1   &D$"AE	4A%D))EE	EE		E	c           	      H   | j                   D ]  t               5 }|j                  t               fd| j                  D        \  }}}t        d       d      z  }t        d       d      z  }t        |d<   	 | d      z  }t        ||       	 | d      z  }t        ||       t        t        j                        r%t        t!        |j"                        dd d       n$t        t!        |j"                        d	d d       d d d         y # t        t        f$ r*}t        j                  t        |      d       Y d }~d }~ww xY w# t        t        f$ r*}t        j                  t        |      d       Y d }~d }~ww xY w# 1 sw Y   xY w)
Nc              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zUTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type.<locals>.<genexpr>  rd  re  r   r   r   r   
stacklevelFailed on type=.r   )r+  r   recordr  r-  r!   rK   r   DeprecationWarningr,  r  warnr   
issubclassr   integerr   rF   )r   r  r   r   r   er/  s         @r   !test_inplace_division_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type  sk     	JA"$ J

;'B4>>B
Ar2Q'!A$.Ba(1Q4/181IA A&8!A$JB Q' a, SWWqOA3a2HI SWWqOA3a2HI?J J 	J* +I6 8MM#a&Q778
 +I6 8MM#a&Q7783J Js[   A$FDE0A#FE. EFEFF* F
FFFF!	c                    | j                   D ]0  t               5 }|j                  t               fd| j                  D        \  }}}|j
                  }t        d      }t        |d<   	 ||z  }t        |||z         	 ||z  }t        |||z         t        |j
                  t        t        ||j
                        | d      k(               t        t         j"                        r%t        t%        |j&                        dd	 d
       n$t        t%        |j&                        dd	 d
       d d d        3 y # t        t        f$ r*}t        j                  t        |      d       Y d }~d }~ww xY w# t        t        f$ r*}t        j                  t        |      d       Y d }~d }~ww xY w# 1 sw Y   xY w)Nc              3   @   K   | ]  }|j                          y wr   r`  ra  s     r   rc  zTTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type.<locals>.<genexpr>  rd  re  r   r   r   r   r  r   r   r  r  )r+  r   r  r  r-  r   r!   rK   r   r  r,  r  r  r   rJ   r  r   r  r   rF   )	r   r  r   r   r   r;  r   r  r/  s	           @r    test_inplace_division_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type  s    #	JA"$ "J

;'B4>>B
ArGG2Q'"8FA AE*8!GB QU+ 166 2Q!A$Y@ a, SWWqOA3a2HI SWWqOA3a2HIE"J "J#	J( +I6 8MM#a&Q778 +I6 8MM#a&Q7789"J "Js\   AF;.EAE?A#F;E< E72F;7E<<F;?F8 F3.F;3F88F;;G	c                    | j                   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         y # 1 sw Y   xY w)Nr  r   rG  r  r   rJ  )r+  r  r  r  r(   r   r   r   )r   r/  r   r   xx_rs        r   test_inplace_pow_typez6TestMaskedArrayInPlaceArithmetic.test_inplace_pow_type  s     	0A((* 0''0))1=!A$Y^)1ERWWdii0RWWdii0ad
QVVTYY/QVVTYY/0 0	00 0s   CC??D	N)!r  r  r  r   r0  r5  r8  r;  r>  r@  rB  rD  rF  rH  rK  rM  rP  rR  rU  rX  r[  r]  rg  rl  rr  rw  rz  r}  r  r  r  r  r  r   r   r   r$  r$  
  s    
 
2 
2 
2	&
EN((,(.(.(.
(///
+:	+:	+:1(10"JH%JN0r   r$  c                   |   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zed        Zd Zd Zd Zd Zej0                  j3                  dd      ej0                  j3                  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-y,)-TestMaskedArrayMethodsc           
      `   t        j                  g d      }|j                  dd      }|j                  dddd      }t        j                  g d      }t        ||      }t        ||j                  |j                              }t        ||j                  |j                              }t        j                  g d      }t        ||      }	t        ||j                  |j                              }
t        ||j                  |j                              }||||||||	|
|f
| _        y 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(   rl   rn   r   r   r   r   XXr;  rJ  mXmXXr   m2xm2Xm2XXs               r   r   z#TestMaskedArrayMethods.setup_method      HH @ A IIaOYYq!Q"HH ' ( "		!'' 23!))BHH"56XX ( ) $AGG!45"2::bhh#78QAr2sCd;r   c           
         t        g d      }t        |j                         |j                  j                                t        |j	                         |j                  j	                                t        |j                         |j                  j                                t        |j                         |j                  j                                t        |j                  ddddd      |j                  j                  ddddd             t        |j                  g d      |j                  j                  g d             t        |j                         |j                  j                                t        |j                         |j                  j                                t        ddgddgg      }t        |j                         |j                  j                                t        |j                         |j                  j                                t        |j                  ddg      |j                  j                  ddg             t        |j                         |j                  j                                y )Nr   r   r   r   r   r   r   )r(   r   r   r   r   argmaxargminr*   compressconjr,   diagonalru   rv   ry   r   r   r;  s      r   test_generic_methodsz+TestMaskedArrayMethods.test_generic_methods1  s   )QUUWaggkkm,QUUWaggkkm,QXXZ!12QXXZ!12QXXaAq!,aggnnQ1a.KLQZZ	*AGG,<,<Y,GHQVVXqww||~.Q[[]AGG$5$5$78Aq6Aq6"#QZZ\177#3#3#56QUUWaggkkm,QVVQF^QWW\\1a&%9:Q[[]AGG$5$5$78r   c                    t         j                  j                  d      }|t         j                  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	        ||             y )	Nr   g:0yE>r   r   T)rM   Fr   )r   r   r   r   r   rq  rL   rK   iinfoint_r[   r   s      r   test_allclosez$TestMaskedArrayMethods.test_allcloseC  s   IINN2		r"T))Avv!HQN"#vv!AO"AD12HQ667	T	!AD12 "((277+//0@Ar   c                     t        j                  g dgd      }t        ||d      sJ t        ||t        j                  dd            sJ y )Nr\  zm8[ns]r   r   )atolr   r  )r   r(   r   r  r  s     r   test_allclose_timedeltaz.TestMaskedArrayMethods.test_allclose_timedelta[  sE     HHl^8411%%%12>>!T#:;;;r   c                 f   t        j                  g dg dg dg      }t        j                  g dg dg dgt         j                        }t        ||      }|d	kD  }|d	k  }t	        |j                                 t	        |j                                t        |j                  d
      g d       t        |j                  d      g d       t        |j                  d
      g d       t        |j                  d      g d       t	        |j                                 t	        |j                                t        |j                  d
      g d       t        |j                  d      g d       t        |j                  d
      g d       t        |j                  d      g d       y )N)gp=
ף?gp=
ף?g?)gQ?gQ?g)\(?)gףp=
?gףp=
?gffffff?rm  r   r  r   r   r   r   r1  r   r   )r   r(   r  rL   r   r   r   r   )r   r   r;  rJ  mxbigmxsmalls         r   test_allanyz"TestMaskedArrayMethods.test_allanyb  s8   HH(((* + HH*+)+24''; !!$c8EIIK 		UYYq\#78UYYq\#78UYYq\#78UYYq\#56GKKM!"W[[^%89W[[^%:;W[[^%89W[[^%89r   c                    t        dt              }t        g dd      }t        |j	                         t
        u        |j	                  |       t        |       t        |j                  d       t        |t
        u       t        dt              }t        |j                         t
        u        |j                  |       t        |        t        |j                  d       t        |t
        u       y )Nr   r   r   Tr   r  )r4   r  r(   r   r   rK   r   r   )r   storer  s      r   test_allany_odditiesz+TestMaskedArrayMethods.test_allany_oddities|  s    b%YT*
f$%UT"V#$b%
f$%UE	T"V#$r   c           
         | j                   \
  }}}}}}}}}	}
t        |j                         d       t        |j                         d       t        |j                         d       t        |	j                         d       t        |j                         d       t        |j                         d       t        |j                         d       t        |	j                         d       t        |j                  d      g d       t        |	j                  d      g d       t        |j                  d      g d       t        |	j                  d      g d	       t        |j                  d
      g d       t        |	j                  d
      g d       t        |j                  d
      g d       t        |	j                  d
      g d       y )N#   r         r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   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  r  r  r  r  r  s              r   test_argmax_argminz)TestMaskedArrayMethods.test_argmax_argmin  s8   59VV2Ar1b"c3TRYY["%RYY["%SZZ\1%SZZ\1%RYY["%RYY["%SZZ\2&SZZ\2&RYYq\#56SZZ]$67RYYq\#56SZZ]$67RYYq\#78SZZ]$67RYYq\#56SZZ]$67r   c                    t        j                  g d      }t        j                  g d      }t        ||      }|j                  dd      }t        |j                  |j                         t        |j
                  |j                  dd             t        |j
                  |j
                  j                  dd             y )Nr  r  r   r   r$  )r   r(   clipr   r   r   )r   r   r;  rJ  clippeds        r   	test_clipz TestMaskedArrayMethods.test_clip  s    HH @ A HH : ; 11''!Q-W\\277+W]]AFF1aL1W]]BHHMM!Q$78r   c                     t        j                  d      }t         j                  j                  |ddgdz        }|j	                  dd|       t        |j                  ddgdz         y )Nr   r   r   r   r   r  )r   r!   r   r   r  r   r   r  s      r   test_clip_outz$TestMaskedArrayMethods.test_clip_out  sX    IIbMEEaq!fqj1	q!QVVaVaZ(r   c                    t        g dd      }|dkD  |dk  z  }t        |j                  |      ddg       t        |dd	g<   |j                  |      }t        |j                  ddg       t        |j
                  d
dg       t        |j                  d       t        |||          |dk  }|j                  |      }t        |j                  g d       t        |j
                  g d       t        |j                  d       t        |||          t        g dg dgg dg dg      }|j                  |j                         dk\        }t        |j                  g d       t        |j
                  g d       t        j                  g d      }|j                  |dk\  d      }t        |j                  ddgddgg       t        |j
                  d
dgdd
gg       y )Nr  i'  r  r        @r   r   r   r   r   r   r   r  rG  rB  rA  r  rj  r   r      )rC  rA  r  rj  r   )r   r   r   ry  r   rC  rA  rj  )
rL   r   r  rK   r   r   r0  rj   r   r(   )r   r   	conditionr   r   s        r   test_compressz$TestMaskedArrayMethods.test_compress  s   -$?WS)	QZZ	*RH51a&	JJy!QWWr2h'QWWq!f%Q\\4(Q)%V	JJy!QWWl+QWWi(Q\\4(Q)%,5()46JJqwwyB'QWW./QWWl+HHYJJqAvAJ&QWWBx"b23QWW1v1v./r   c                     t        g dg d      }|j                         }t        ||       t        |d<   |j                         }t        |g d       y )Nr\  r   r   r   r   r   r   r  )r(   
compressedr   rK   r   s      r   test_compressedz&TestMaskedArrayMethods.test_compressed  sA    ,\2LLNQ!LLNQ	"r   c                 "   dt         fdt        fdg}t        g d|      }t        t	        |j
                  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                                |j                  t              }t        t        j                  |j                  |j                               y 	Nr   r   r_  ))r   r:  z1.1)r   r;  z2.2)r   rX  z3.3r   r   r  r   )r   r   rL   r   r   r0  rw  r5   rn   r4   r   r   r   r   r  r   datatyper   r   s       r   
test_emptyz!TestMaskedArrayMethods.test_empty  s
   #Jel;L')S**,-s8}=qMQWWagg&Q\\1<<0#a&)QWWagg&Q\\1<<0 )=>qMB''778FF< ##AFFAFF34r   c                    dt         fdt        fdg}t        g d|      }t        t	        |j
                  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                                |j                         }t        t        j                  |j                  |j                               y r  )r   r   rL   r   r   r0  rw  r{   rn   r|   r   r   r   r   r  r  s       r   
test_zerosz!TestMaskedArrayMethods.test_zeros  s   #Jel;L')S**,-s8}=#a&)QWWagg&Q\\1<<0qMQWWagg&Q\\1<<0 )=>qMB''778FFH##AFFAFF34r   c                    dt         fdt        fdg}t        g d|      }t        t	        |j
                  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                                |j                         }t        t        j                  |j                  |j                               y r  )r   r   rL   r   r   r0  rw  rc   rn   rd   r   r   r   r   r  r  s       r   	test_onesz TestMaskedArrayMethods.test_ones  s   #Jel;L')S**,-s8}=Qx(QWWagg&Q\\1<<0aLQWWagg&Q\\1<<0 )=>aLB''778FFH##AFFAFF3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}|j                  |g d       t        |t        g d             t        |j                  g d       |j                  |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       y )Nr   r=  r   r   r   r   rA  r   )r   r   r   r   rA  r  r   )r   r   r   r   )r   r   r   r   )
r   r   r   r   r   r   r   rk  r$  rZ  )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )
r   r   r   r   r   r   r   rk  r$  rZ  )
r   r   r   r   r   r   r   r   r   r   )r!   rH   r(   r   rK   r   rL   rh   r)   r   r   )r   r   r}  r;  r   r  s         r   test_putzTestMaskedArrayMethods.test_put'  sg    1IaL!!!!H1a&	!!F"#Q*+/A*=>	aQ @ABQVV;<	alL9:1>?QVV;</A*=>Aq,Q @ABQVV;<Aq,|\:;1>?QVV;<r   c                 ^   t        d      }t        ddgddg      }|j                  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	       y )Nr   r   r   FTr   r   r   r   r   )r{   r(   rh   r   rK   r   )r   r   r   s      r   test_put_nomaskz&TestMaskedArrayMethods.test_put_nomaskF  s    "I2s)5$-0	q!fa!F"#QqT1!F"#QqT1!!F"#QqT1r   c                     t        d      }g d}t        |      }t        |dz   |dd      }|j                  g dg d       t	        |j
                  g d       y )	Nr   r=  r   Tr@  )r   r   r   r   r   rP  )r   r   r   r   r   )r!   rH   r(   rh   r   r   rJ  s        r   test_put_hardmaskz(TestMaskedArrayMethods.test_put_hardmaskT  sI    1IaL1q5qDt<
0RXX/r   c                    t        d      dz   }t        |g d      }g d}|j                         }t        ||d       t	        |g d       |j                         }t        ||d       t	        |j
                  g d       t	        |j                  g d       t        g d	g d
      }|j                         }t        |||       t	        |j
                  g d       t	        |j                  g d       |j                         }t        |||       t	        |j
                  g d       t	        |j                  g d       |j                         }|j                          t        |||       t	        |g d       y )Nr   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r[  )r   r   r[  r   r   r[  )r   r   r   r   r   r   )r   r  rC  rA  r  rj  )r   r   r   r   r   r   )r   r   rC  r   r   rj  )r   r   r   r   r   r   )r   r   r   r   r   r   )r!   r(   r   ri   r   r   r   rE  )r   r   rJ  r   r   mxxvaluess          r   test_putmaskz#TestMaskedArrayMethods.test_putmask]  s   1IM1-.!VVXD"R-.ggiT2SYY 45SYY 23/6HIVVXD&!RXX34RXX12ggiT6"SYY 45SYY 23ggiT6"S./r   c                    t        g dgg dg      }|j                         }t        |j                  j                  |j                         t        ddgddg      }|j                         }t        |j                  j                  |j                         t        g dg dd	      }t        |j                         j                  g d       d
|_        d|_        |j                         }t        |j                  g d       t        |j                  g d       t        |j
                  d
       t        |j                  d      g d       t        |j                  d      g d       y )NrP  r   r   r   r   r   r   r   r   r\  r  Fr  rl  r?  r@  r"  )r   r   r   r   )r(   rj   r   r   rn   r0  r   )r   r   aravelars       r   
test_ravelz!TestMaskedArrayMethods.test_ravel{  s    ?#?*;<V\\''61a&1v&V\\''1,\%@QWWY__l3WWYRXX|,RXX|,R]]C(QWW3W'6QWW3W'6r   rA  AKCF
data_orderCFc                 \   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                  k7  sJ |j                  d      dk(  j                         sJ |j                  |      }|j                  d      dk(  j                         sJ t        |j                  |      |j                  |      j
                         y )N)r   r   r@  r   )r   r   )r   rA  Fr   )r   rc   r  r7  r(   r   r8  fncr   r9   r   rj   r   )r   rA  r  arrr   r   raveleds          r   test_ravel_orderz'TestMaskedArrayMethods.test_ravel_order  s    
 gggZ0AqD	wwwd*=??QT
#D!ww}}  AGGMM$5$5555q %%'''''%.q!Q&++--- 	399U+QWWU^-A-ABr   c                 (   t        d      }t        |d<   |j                  dd      }t        |j                  d       t        |j
                  j                  d       t        |j                  d       t        |j
                  j                  d       y )Nr   r   r   rl  r  )r!   rK   rl   r   rn   r   r)  s      r   test_reshapez#TestMaskedArrayMethods.test_reshape  sc    1I!IIaOQWWg&QWW]]G,QWWd#QWW]]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	       |j                          t	        |j
                  g d       t	        |j                  g d       t        g dg dt        j                        }|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                               y )Nr   r   r   r   r   r  r\  r   r   r   r   FrX  )r   r   r   r   r   )r   r   r   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,  rr   r   r   r   r   r  sortedr   ra   r  )r   r   sortedxs      r   	test_sortz TestMaskedArrayMethods.test_sort  s   ,\Bq'W]]L1W]]L1q%(W]]L1W]]L1	QWWl+QWWl+,\B	uQWWl+QWWl+q'Jv{334#&@q%(W]]$56#/Iq%(W]]$56W]]O41b')qx(WeRG277;<r   c                     t        g dt        j                        }t        g d      }t        |d      }t	        ||       y )N)r   r   r   r   r   r   r   )r   r   r   r   r   r   r  r  )r(   r   r,  r'   r   )r   r   r  computeds       r   test_stable_sortz'TestMaskedArrayMethods.test_stable_sort  s4    $BHH5+,18,Xx(r   c           	         t        g dg dt        j                        }t               t        d      t        d      t        d      t        dd	      t        dd	      fD ]]  }t	        |fi |}|t        |fi |   }t        |j                  |j                         t        |j                  |j                         _ y )
Nr  r   r  TrX  Fr   r  )r0  rY  )	r(   r   r,  dictrr   r'   r   r   r   )r   r   kwargsr"  
argsortedxs        r   test_argsort_matches_sortz0TestMaskedArrayMethods.test_argsort_matches_sort  s    ,\BvD)E*q)q$7q%8: 		:F 1''G71//0J
(8(89
(8(89		:r   c           	         t        g dg dg      }|j                  d       t        |g dg dg       t        g dg dg      }|j                  d       t        |g dg dg       t        g dg dgg d	g d
g      }|j                  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      }|j                  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(  <   |j                         }|j                  d      }|j                  d       |j                  d       t        ||       |j                         }|j                  d      }|j                  d       |j                  d       t        ||       |j                         }|j                  d      }|j                  d       |j                  d       t        ||       y )N)r$  r   r   )r   r   rZ  r   r  )r$  r   rZ  r   )r   r   r$  )r   r   rZ  r   rG  r   r  r   r  r  r   r   r[  r   )rL   rr   r   r   rK   r   r9   )r   r   amans       r   test_sort_2dz#TestMaskedArrayMethods.test_sort_2d  s    )Y/0	q	QI./)Y/0	q	QI./)Y/y)6LM	q	QI./QWWy)45)Y/y)6LM	q	QI./QWWy)459i;$i;$i;$i;= > !a%1*VVXXXb\



RVVXXXb\



RVVXXXb\



Rr   c                 0   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      }|j                  |      }t        |      }t        |d
      }y )N)r  r  rl  r   r   r  r  r>  )r  r  r  r  r  r  r  r  r  r3  )r  r>  r1  rl  r  r  r  )r  r  r  r  r  r  r  )r  r  r>  r1  rl  r  r  )r  r  r  r  r  r  r  FrX  r  r   )r(   r   rr   r   r   r   r   r  )r   r   	mask_last
mask_firstr   rT  s         r   test_sort_flexiblez)TestMaskedArrayMethods.test_sort_flexible  s    II:Sz*, II:Sz*,	 II:Sz*,

 AwT9%TYY	/Au%T:&TYY
0 XXS!}o&FF2JAwAu%r   c                 v    t        g dg d      }t        t        j                  |      t        |             y )N)r   r   r   r   r   )r   r   r   r   r   r   )r(   r   r   r'   r  s     r   test_argsortz#TestMaskedArrayMethods.test_argsort.  s$    /8RZZ]GAJ/r   c                 l   t        g dg      }t        |j                         g d       t        g dgg dg      }t        |j                         g d       t        |j                         j                  g d       t	        j
                  dgg      }|j                         }t        |d       d|d<   t        |d   d       t        dggd      }|j                         }t        |t        j                  j                  u       t        |j                  d       d|d<   t        |d   d       y )	Nr   r  r   r   r   .r  T)
rL   r   squeezer   r   r(   r   r   rK   r   )r   r   r  arr_sqm_arrm_arr_sqs         r   test_squeezez#TestMaskedArrayMethods.test_squeeze3  s    YK(T\\^Y/YKyk:T\\^Y/T\\^))95 hhuoVQsSXq! qcU.==?,-X]]D)U3Z#r   c                 b   t        j                  g d      }t        j                  g d      }t        ||      j                  dd      }|j                  dddd      }|j                  dd      }t	        |d	   |d d d	f          |j                  dd      }t	        |j
                  d
       y )Nr  r  r   r   r   r   r   r   r   )r   r   r   r   )r   r(   rl   swapaxesr   rn   )r   r   r;  r  r  	mXswapped
mXXswappeds          r   test_swapaxesz$TestMaskedArrayMethods.test_swapaxesJ  s    HH @ A HH ( ) 11%%a+jjAq!$KK1%	Yr]Bq"uI.\\!Q'
Z%%|4r   c           	         t        g dg d      }t        |j                  g d      t        g dg d             t        |j                  g d      |g d          t        |j                  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        |j                  d      t        j
                  j                  u        t        g d
g dgg dg dg      }t        |j                  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             y )N)r   r  rC  rA  rW  )r   r   r   )r   r   rA  rG  r   r   r   r  rB  r  r   r   r   ry  rC  rA  rj  )rL   r   rv   r   r   r   rK   r(   r   s     r   	test_takez TestMaskedArrayMethods.test_takea  sO   )<8QVVI&\9(MNQVVI&)5QVVaVaV,-!B8b"X"6!Q!Q8HI	K 	!$%q	RUU\\)*<.i5MNQVVQFV+RHr2h/1v1v6FG	IT!aV!,RHr2h/1v1v6FG	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                         y )N)rA  r  %   rZ  r  r   r   r   r  mode)rA  r  rE  )r  rE  rZ  )rE  rZ  r  )rZ  r  r  )r  r  r  )rZ  r  rA  )r  rA  rA  r  )r   r   r   r   r	  r  r  )r   r(   r!   r   rv   r   rK   r   )r   r   indicesmindicesr   ctrls         r   test_take_masked_indicesz/TestMaskedArrayMethods.test_take_masked_indicess  s2   HH()))A,tAv&1ag)>>3q6(9;Axf-l!!!"	$ %
 	T4 Ax l!!!"	$ %
 065T
5T$Z$t*T4 TYY		*%O<Ax "((T
T$ZT4 TYY		*r   c           
         t        t        j                  d            }t        |ddg<   |j	                         }t        |d   d u        t        |d   d u        d|_        |j	                         }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        |j	                         g d       t        ddgddgdt        fdt        fg      }|j	                         }t        |dd gddgg       |d   }|j	                         }t        |dd g       y )Nr  r   r  r   )r   Nr   r   )r   r   r   rk  )r$  rZ  N   r   r   r   )r:  r;  rX  )rV  rW  rY  r   r   r_  r   r   ))r   r:  s   one)r   r;     two)NNNr>  r  r  r  r   r   )r(   r   r!   rK   tolistr   rn   r   r   r   r   r   )r   r   xlistrK  r   r   s         r   test_tolistz"TestMaskedArrayMethods.test_tolist  sg    "))B- 1b'

aD !b	T!"
/?@U1X/U1X|,U1X/0UD!$s9*02 3 sc5\<@B "QXXZ*	+
 7F#66*:sc3Z02xxzTQI1v./aDxxzTAt9%r   c                 \   t        ddgdt        fdt        fg      }|D ];  }|j                         D ]&  }t        t	        |t
        j                                ( = d|j                  d<   |D ];  }|j                         D ]&  }t        t	        |t
        j                                ( = y )Nr  rl  r   r   r   r   )r(   r   rP  r   r  r   genericr   )r   r   entryrw  s       r   test_tolist_specialcasez.TestMaskedArrayMethods.test_tolist_specialcase  s    66"C:Sz*BC 	:E :JtRZZ889:	:
 q	 	:E :JtRZZ889:	:r   c           
         t        d      }|j                         }t        |d   |j                         t        |d   |j                         t
        |g d<   |j                         }t        |d   |j                         t        |d   |j                         dt        fddt        fg}t        t        t        j                   d      dt        j                  j                  d            D cg c]  \  }}}|||f c}}}|	      }t
        |g d<   |j                         }t        |d   |j                         t        |d   |j                         t        j                  d
      }t        t        t        j                   d      t        j                  j                  d      t        j                  j                  d            D cg c]  \  }}}|||f c}}}|	      }t
        |g d<   |j                         }t        |d   |j                         t        |d   |j                         y c c}}}w c c}}}w )Nr   r   r   )r   r   r   r   r  r  r  ABCDEFGHIJKLMr   r2  )r!   toflexr   r   r   rK   r   r   r(   r   r   r   r   r   r   )r   r   r  r  r  r   r  ffs           r   test_toflexz"TestMaskedArrayMethods.test_toflex  s   bzVG_djj1VG_djj1$]VG_djj1VG_djj1*lS%L9RYYr]5D57YY^^B5G2I J JIQ1q!Qi J "# %]VG_djj1VG_djj1233ryy}79yy~~b7I79yy~~b7I4K L LZaBq!Rj L "# %]VG_djj9VG_djj9#JLs   2H;Ic                    t        g d      }t        |j                               }t        ||       t        |j                  |j                         t        g dg d      }t        |j                               }t        ||       t        |j                  |j                         t        g dg ddt
        fdt        fg      }t        |j                               }t        ||       t        |j                  |j                         y )	Nr   rG  r   )r  r  )r   r   )r  r  r  r  r  r  )r(   r<   rY  r   r   r   r   r   r  s      r   test_fromflexz$TestMaskedArrayMethods.test_fromflex  s    )
#T1TYY')),
#T1TYY'-4Lsc5\24
#T1TYY'r   c                 ,   t        g dgg d      }t        dgdgdgdgdggg d      }t        |j                  |       t        |j                         |       t        t	        j
                  |j                  d	      |j                  d	             y )
NrP  rw  r   r   r   r   r   r   r   )rL   r   r7  ry   r   cumsum)r   marrayr  s      r   test_arraymethodz'TestMaskedArrayMethods.test_arraymethod  sz    /oFaS1#sQC8$35VXXw'V%%'1[''!4gnnQ6GHr   c                     t         j                  j                  dd      }t        |j                  j
                  |j
                         t        |j                  j                  |j                         y )N*   Tr   )r   r   r(   r   r7  r   r   r   s     r   test_arraymethod_0dz*TestMaskedArrayMethods.test_arraymethod_0d  sD    EEKKK&QSSXXqvv&QSSXXqvv&r   c                    t         j                  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                         y )Nr   r  r  r   r  )r   r   r(   rK   r7  r   r   r   )r   r   xts      r   test_transpose_viewz*TestMaskedArrayMethods.test_transpose_view  sy    EEKKI./#SS3%%,,3QVVRTTYY'QVVRTTYY'r   c                 r   t         j                  j                  d      }d|d<   t         j                  j                  |d<   d|d<   |j	                         }d|d<   t        |j                  |j	                         j                         t        |j                  |j	                         j                         y )Nr  r   r  r  r  rl  r   )r   r   r{   rK   r  r   r   r   )r   r   xds      r   test_diagonal_viewz)TestMaskedArrayMethods.test_diagonal_view  s    EEKK###ZZ\#RWWajjl//0RWWajjl//0r   N).r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  rY  r  r  r  r  r  r   r-  r.  r  r  r#  r&  r+  r/  r4  r6  r<  rA  rC  rL  rR  rV  r[  r]  ra  rd  rg  rj  r   r   r   r  r    s   <@9$ 0<:4%$8.9")0>#5,5,5, &= &=<00<7, [[Wf-[[\40C 1 .C *#=J):&P&@0
$.5.I$+<"&H::@($I'	(1r   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d        Zd Zd Zd Z ed      d        Zd Zd Zd Zd Zy)TestMaskedArrayMathMethodsc           
      `   t        j                  g d      }|j                  dd      }|j                  dddd      }t        j                  g d      }t        ||      }t        ||j                  |j                              }t        ||j                  |j                              }t        j                  g d      }t        ||      }	t        ||j                  |j                              }
t        ||j                  |j                              }||||||||	|
|f
| _        y r  r  r  s               r   r   z'TestMaskedArrayMathMethods.setup_method  r  r   c           
      Z   | j                   \
  }}}}}}}}}	}
|j                  d      }t        |j                  |j	                  d      j                  d             |j                  d      }t        |j                  |j	                  d      j                  d             |j                  d      }t        |j                  |j	                  d      j                  d             |j                  d      }t        |j                  |j	                  d      j                  d             y Nr   r   )r   r_  r   r   r9   cumprod)r   r   r   r  r;  rJ  r  r  r  r  r  mXcps               r   test_cumsumprodz*TestMaskedArrayMathMethods.test_cumsumprod=  s    59VV2Ar1b"c3Tyy|TZZ1!4!4Q!78yy|TZZ1!4!4Q!78zz!}TZZ1!5!5a!89zz!}TZZ1!5!5a!89r   c                    t        t        j                  j                  ddd            j	                  dd      }t
        x|d d df<   x|d<   |d<   dD ]  }t        t        |      }t        ||      }t        j                  dt        	      }|j                  d
        ||d|      }t        ||u        t        | |d|             t        dt        	      } |d|      }t        ||u         y )Nr   r   r  r   r   r  )r_  rp  r   r   r/  r  r  )r   r   r  r  r  r  r  s          r   test_cumsumprod_with_outputz6TestMaskedArrayMathMethods.test_cumsumprod_with_outputJ  s    299$$QB/088A>(..1a4.2a52f:- 	&HR*FR*F XXfE2FKKBQF3FFf$%QF!;<6-F/FFf$%	&r   c           
         | j                   \
  }}}}}}}}}	}
|j                  \  }}t        |j                         t	        j                  |j                                      t	        j                  |t              }t	        j                  |t              }t        |      D ]/  }t	        j                  |d d |f   j                               ||<   1 t        |      D ]+  }t	        j                  ||   j                               ||<   - t        |j                  d      |       t        |j                  d      |       y ro  )	r   rn   r   r  r   r  r{   r   r  )r   r   r   r  r;  rJ  r  r  r  r  r  r}  rowscolsks                  r   test_ptpz#TestMaskedArrayMathMethods.test_ptp_  s    59VV2Ar1b"c3TARVVXrvvbmmo67xx5!xx5!q 	4AffR1X0023DG	4q 	1AffRU--/0DG	1RVVAY%RVVAY%r   c                     t        ddgddgt              }|dz   }t        |d   d       t        |j                  d          y )Nr   r   r   r   r  r   bx)rL   rQ  r   r   r   r)  s      r   test_add_objectz*TestMaskedArrayMathMethods.test_add_objectm  s?    #s1a&?GQqT4 q	r   c                     t        g dg dt              }t        |j                         d       t        g dg dgt              }t        |j                  d      g d	       y )
Nr   r   r  r   r  r   r   ry  r   rk  rZ  )rL   rQ  r   ru   r  s     r   test_sum_objectz*TestMaskedArrayMathMethods.test_sum_objects  sE    &AQUUWa )Y/v>QUUU]I.r   c                     t        g dg dt              }t        |j                         d       t        g dg dgt              }t        |j                  d      g d	       y )
Nr   r   r  r   r  r   r   ry  r   r   r  )rL   rQ  r   r  r  s     r   test_prod_objectz+TestMaskedArrayMathMethods.test_prod_objectz  sE    &AQVVXu%)Y/v>QVVV^[1r   c                     t        g dt              }t        |j                         d       t        |j	                         g d       y )Nr   r   r   )r   r   r   )rL   rQ  r   r  r    r  s     r   test_meananom_objectz/TestMaskedArrayMathMethods.test_meananom_object  s.    &1QVVXq!QVVXz*r   c                 P   t        g d      }t        |j                         j                  |j                         d|_        t        |j                         j                  |j                         t        t        j                  j                  |j                                      y )Nr   T)	rL   r   r    rn   r   r   r   r   	is_maskedr  s     r   test_anom_shapez*TestMaskedArrayMathMethods.test_anom_shape  s^    #QVVX^^QWW-QVVX^^QWW-)*r   c                 v   t        t        j                  dd      j                  dd            }t	        |j                         g dg dg       t	        |j                  d      g d	g d
g       t	        |j                  d      g dg dg       g dg dg|_        d}t	        |j                         j                  |      dd|gd|dgg       t	        |j                  d      j                  |      dd|gd|dgg       t	        |j                  d      j                  |      dd|gd|dgg       y )Nr   rk  r   r   )g            r   )r   r  rg  r   ry  )r  r  r  )r  r  r  )r   r   r   rG  r*  r
  g      g      g      ?g      @r  r   r  r   r   r   r   )rL   r   r!   rl   r   r    r   r9   )r   r   mvals      r   	test_anomz$TestMaskedArrayMathMethods.test_anom  s"   1a00A67AFFH/A	CAFFFN/A	CAFFFN*M:	<Y'AFFHOOD1#UD1D$3EF	HAFFFN11$7"C.dC0@A	CAFFFN11$7"C.tS0AB	Dr   c           
         | j                   \
  }}}}}}}}}	}
|j                         }t        |j                         |j                         j	                         j                                t        |j                         |j                         t        |j                  |j                         z  d      z
         t        t        j                  |      |j                                t        j                  d      j                  ddd      }t        j                  j                  |d      }t        |j                  dd      |j                  dd             y )	Nr   ry      r   r   Fr   )axis1axis2)r   r  r   tracer  ru   r   r   r   r!   rl   r   rL   )r   r   r   r  r;  rJ  r  r  r  r  r  mXdiagr  r:  s                 r   
test_tracez%TestMaskedArrayMathMethods.test_trace  s    59VV2Ar1b"c3TRXXZ!9!9!;!?!?!ABBHHJGGIFKK!**,,F12)4 4	5 	RXXb\288:. ii&&q1-""3.SYYQaY0%++AQ+2OPr   c           
      N   | j                   \
  }}}}}}}}}	}
|j                  d      }|j                  |      }t        |j                  d      |j                  |             t	        |j
                  t        u        |j                  d      }|j                  |      }t        |j                  d      |j                  |             t	        |j
                  d          t        |      }|j                  ||       t        ||       |j                  dd      }|j                  d      |j                  d      }}|j                  |      }t        |j                  d      |j                  |             t        |      }|j                  ||       t        ||       y )Nr   r   r  r   r  )	r   r9   dotr   r   r   ra   r5   r>  )r   r   r   r  r;  rJ  r  r  r  r  r  fxrfXr  mYYfXXfYYs                     r   test_dotz#TestMaskedArrayMathMethods.test_dot  s?   59VV2Ar1b"c3TYYq\FF2JAHHQK4& !YYq\FF2JAHHQK4s]
rrAr"ll2r"::a=#**Q-SGGCLAHHQK6]Ar"r   c                 *   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      }|j                  ||       t        |j                  d      ddgdd	gg       t        |j                  ddgddgg       y )
Nr   r   r   r   r   r   r  r      )rL   r  r   r9   r   rm  s       r   test_dot_shape_mismatchz2TestMaskedArrayMathMethods.test_dot_shape_mismatch  s    1Q%1qeQqE];1Q%1qeQqE];1Q%1'	aQAHHQK1a&2r();<AFFaVaV$45r   c                    t        g dd      }t        g dd      }t        t        |j                               t        j
                         t        t        |j                               t        j
                         |j                         |j                         k(  t	        j                  d      u sJ t        t	        j                  d      j                  d      d      }t        dd      }t        t        |j                  d	
            t               t        t        |j                  d	
            t               t        |j                  d	|      |u        t        |j                  d	|      |u        y )Nr\  rf  r   Tr  r  r   rd  r   ry  r  )r(   r   ra  r  r   r  r  r  r!   rl   r4   r   r   )r   foobars      r   test_varmean_nomaskz.TestMaskedArrayMathMethods.test_varmean_nomask  s   IT*IT*T#((*%rzz2T#'')_bjj1
chhj(RWWT]:;: BIIbM))%0=AT"T#(((*+[9T#''q'/*K8aS)S01QC(C/0r   c           
         | j                   \
  }}}}}}}}}	}
t        |j                  d       |j                         j                                t        |j	                  d       |j                         j	                                t        |j	                  d d      |j                         j	                  d             t        |j                  d d      |j                         j                  d             t        |j                  d      j                  |j                  d      j                         t        |j                         j                  |j                         j                         |j                  d      |j                  d      }}t        |j                  d d      |j                         j                  d             t        |j	                  d d      |j                         j	                  d             t        d      D ]  }t        ||   ||   j                         j                                t        ||   |d d |f   j                         j                                t        t        j                  ||         |d d |f   j                         j	                                 y )	Nry  r   rz  ddofr  r   r   r   r   
r   r   r  r  r  r   rn   r  r   rs   r   r   r   r  r;  rJ  r  r  r  r  r  mXvar0mXvar1rx  s                 r   test_varstdz&TestMaskedArrayMathMethods.test_varstd  s   59VV2Ar1b"c3TBFFF-r}}/B/B/DEBFFF-r}}/B/B/DEBFF1F5MMO//Q/7	9BFF1F5MMO//Q/7	9SWW!W_**BFFFN,@,@ARVVX^^QUUW]]3FFFNBFFFNBFF1F5MMO//Q/7	9BFF1F5MMO//Q/7	9q 	=Aq	2a5+;+;+=+A+A+CDq	2ad8+>+>+@+D+D+FGq	 2 "1a4 3 3 5 9 9 ;=	=r   c                    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                  |              y )Nr   r   r   Tr   )r  r  r   r  rZ  r   r  )r  r  )
r   r(   r   r!   r  r   rK   r   r   r  )r   r  moutr   
methodnamemethods         r   test_varstd_specialcasesz3TestMaskedArrayMathMethods.test_varstd_specialcases  se    xx%(Ru%&*4(( 	$JQ
+FFH&'F1I'(F2J&()tD&'D)tBHHTN#	$ &*4("( 	$JQ
+FFNf,-F11%/0F2A&&01t!$D&'D)t!$BHHTN#	$r   c                    t        g dg dgg dg dg      }|j                  dd      }t        |j                  d      g d       t        |j                  g d       |j                  dd      }t        |j                  d      g d       t        |j                  g d       |j                  dd      }t        |j                  d      g d       t        |j                  g d	       y )
Nrz  rG  r   r   r  r  r   r   r  )r(   r  r   r9   r   r  s      r   test_varstd_ddofz+TestMaskedArrayMathMethods.test_varstd_ddof  s    9i(	9/EFuu!!u$T[[^Y/TYY	*uu!!u$T[[^Y/TYY	*uu!!u$T[[^Y/TYY	*r   c                 ^   t        d      j                  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        ||       y )
NrZ  r  r  )r   r   r$  r*  r  )r   r   r   )r   r   r$  r   )r!   rl   rK   r   r1   r   r   r(   )r   r   r  r  s       r   	test_diagz$TestMaskedArrayMathMethods.test_diag$  s    1If%$ggajS)$1gS)$SXXy)3iIy9'I>@S'"r   c                    t        g dg dg      }t        |j                  d      g d       t        |j                  d      ddg       t        |j                  d      ddg       t        |j                  d      g d	       t        |j                  d      dd
g       t        |j                  d      dd
g       t        |j	                  d      g d       t        |j	                  d      ddg       t        |j	                  d      ddg       t        |j                  d      g d       t        |j                  d      ddg       t        |j                  d      ddg       y )Nr   r  r   r~  r   r   r   r   r  x   r   r   )r(   r   ru   r  r[   rX   r  s     r   test_axis_methods_nomaskz3TestMaskedArrayMathMethods.test_axis_methods_nomask2  s	   9i()QUU1Xy)QUU2YB(QUU1X2w'QVVAY,QVVBZ!S*QVVAYC)QUU1Xy)QUU2YA'QUU1X1v&QUU1Xy)QUU2YA'QUU1X1v&r   i Zb)
free_bytesc                     t        t        j                  ddt        j                        t        j                  d            }t        |j                         d       y )N)'  r  i  r   r   g    @)rL   r   r  uint16r{   r   r  r  s     r   test_mean_overflowz-TestMaskedArrayMathMethods.test_mean_overflowF  s=     biiH hh~68QVVXw'r   c                    t        j                  g d      }t         j                  j                  |dd  d      }t         j                  j                  |d d d      }t         j                  j	                  ||d      }t         j                  j                  |d      }t         j                  j	                  |d      }t        t         j                  j                  ||             y )Nr   r   r   r   r   r   r   r   r   r   rt  r   )prependrz  ry  r   r(   r   rM   diffr   r   )r   r   r   a_prepdiff1r   diff2s          r   test_diff_with_prependz1TestMaskedArrayMathMethods.test_diff_with_prependN  s    HH-.EEquA.##AbqE#3

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

11
%ue,-r   c                    t        j                  g d      }t         j                  j                  |d d d      }t         j                  j                  |dd  d      }t         j                  j	                  ||d      }t         j                  j                  |d      }t         j                  j	                  |d      }t        t         j                  j                  ||             y )Nr  r   r   r  r   )appendrz  ry  r  )r   r   r   a_appr  r   r  s          r   test_diff_with_appendz0TestMaskedArrayMathMethods.test_diff_with_append[  s    HH-.EEq!uA.""1QR5"2

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

11
%ue,-r   c                     t        j                  t        d      5  t        j                  j                  t        j                  d             d d d        y # 1 sw Y   y xY w)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_0h  sC    ]]H 	$ EEJJrxx{#		$ 	$ 	$s   3AA!c                     t         j                  j                  g dd      }t         j                  j                  |dd      }t	        t         j                  j                  ||             y )Nr  r   r  r   )r}  rz  )r   r   rM   r  r   r   )r   r   r  s      r   test_diff_with_n_0z-TestMaskedArrayMathMethods.test_diff_with_n_0o  sK    EE7qAuuzz!qqz)q$'(r   N)r  r  r  r   rr  rt  ry  r|  r  r  r  r  r  r  r  r  r  r  rY  r  r  r  r  r	   r  r  r  r  r  r   r   r   rl  rl    s    <@:&*&/2++D"Q#061 =, & $ & $D
+#'(  45( 6(..$)r   rl  c                       e Zd Zd Zd Zy)!TestMaskedArrayMathMethodsComplexc           
      `   t        j                  g d      }|j                  dd      }|j                  dddd      }t        j                  g d      }t        ||      }t        ||j                  |j                              }t        ||j                  |j                              }t        j                  g d      }t        ||      }	t        ||j                  |j                              }
t        ||j                  |j                              }||||||||	|
|f
| _        y )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.setup_methodx  s    HH A B IIaOYYq!Q"HH ' ( "		!'' 23!))BHH"56XX ( ) $AGG!45"2::bhh#78QAr2sCd;r   c           
         | j                   \
  }}}}}}}}}	}
t        |j                  d       |j                         j                                t        |j	                  d       |j                         j	                                t        |j                  d      j                  |j                  d      j                         t        |j                         j                  |j                         j                         |j                  d      |j                  d      }}t        |j                  d d      |j                         j                  d             t        |j	                  d d      |j                         j	                  d             t        d      D ]  }t        ||   ||   j                         j                                t        ||   |d d |f   j                         j                                t        t        j                  ||         |d d |f   j                         j	                                 y )	Nry  r   r   r   r   r  r  r   r  r  s                 r   r  z-TestMaskedArrayMathMethodsComplex.test_varstd  s   59VV2Ar1b"c3TBFFF-r}}/B/B/DEBFFF-r}}/B/B/DESWW!W_**BFFFN,@,@ARVVX^^QUUW]]3FFFNBFFFNBFF1F5MMO//Q/7	9BFF1F5MMO//Q/7	9q 	=Aq	2a5+;+;+=+A+A+CDq	2ad8+>+>+@+D+D+FGq	 2 "1a4 3 3 5 9 9 ;=	=r   N)r  r  r  r   r  r   r   r   r  r  v  s    <@=r   r  c                   r   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  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(                  jC                  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-y,)-TestMaskedArrayFunctionsc                     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        ||      }|j	                  d       ||f| _        y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r   r(   r   rL   r   r'  )r   r   r   r   r   r   r   s          r   r   z%TestMaskedArrayFunctions.setup_method  sw    HHb"b#r#vr2tS"b"MNHHJK11!"%!"%
% H	r   c                 ^    ddg}t        d|      }t        |ddg       t        |d   d       y )Nr   r   F)rW   r   r)  s      r   test_masked_where_boolz/TestMaskedArrayFunctions.test_masked_where_bool  s3    F"QAQqT1r   c                     g d}t        |d      }t        ||       t        |j                  g d       t        |d      }t        ||       t        |j                  g d       y )Nr   r   rG  rz  )rM   r   r   rS   r:  s      r   test_masked_equal_wlistz0TestMaskedArrayFunctions.test_masked_equal_wlist  sO    !QRRXXy)a#RRXXy)r   c                     g d}t        |d      }t        |j                  g d       t        |j                  d       y )Nr   r   rG  )rM   r   r   r0  r:  s      r   test_masked_equal_fill_valuez5TestMaskedArrayFunctions.test_masked_equal_fill_value  s/    !QRXXy)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       y )Nr  r   r  rP  )r[  r[  r   r   r   )r(   rK   r   rW   r?   rN   r@   rO   rD   rQ   rE   rR   rb   rS   r6   rM   r   s     r   test_masked_where_conditionz4TestMaskedArrayFunctions.test_masked_where_condition  s   &'!\'!Q-3^Aq5IJ\-1"5q9)!Q/	1\$q!*a0+a2CD\*Q"2A6&q!,	.\)Aq/157G17MN\%1+q1<13EF\)Aq/157G17MN\/?C&	(r   c                     t        dt              }t        |j                  t              }t        ||      }t        ||       y )N)r   r   r   r   )rc   r   r{   rn   r   rW   r   )r   r  r  ctests       r   test_masked_where_odditiesz3TestMaskedArrayFunctions.test_masked_where_oddities  s4    \/ekk8,UE*UE"r   c                     t        d      }t        t              5  t        d|       d d d        t        |d      }t	        |j
                  g d       y # 1 sw Y   .xY w)Nr   r   )
r   r   r   r   r   r   r   r   r   r   )r!   r   
IndexErrorrM   r   r   r  s      r   "test_masked_where_shape_constraintz;TestMaskedArrayFunctions.test_masked_where_shape_constraint  sM    2J:& 	A	Aq!TYY >?	 	s   AAc           	         t        j                  dddg      }t        j                  d      5  t         j                  j	                  |d   dk  |      }d d d        t        j                  j                  j                  |j                  j                         t        |d   t         j                  j                  t        j                  d      t        j                  d                   y # 1 sw Y   xY w)	Nr   )r  z<f2)r  z<f4r   rD  )overr  r   )r   r{   rH  r   rW   r   r   r   r%  rL   rc   )r   r   r-  s      r   test_masked_where_structuredz5TestMaskedArrayFunctions.test_masked_where_structured  s     HHRl;<[[h' 	3 ##AcFQJ2B		3
 	RWW]](("((..9RWEE&&rxx|RWWR[A	C	3 	3s   'C11C:c                     t        j                  d      }t        j                  d      }t        t        t         j                  j
                  |dkD  |       y )Nr   r   r   )r   r!   r   r  r   rW   r)  s      r   test_masked_where_mismatchz3TestMaskedArrayFunctions.test_masked_where_mismatch  s8    IIbMIIaLj"%%"4"4a!eQ?r   c                    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       y )Nr   r   r   )r      r  r  r   )r  r   r   r   r  r  r   )r   r   r   r   r   r	  r+  r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )	r   rP   r   r  rT   r(   r   rM   rS   r  s    r   test_masked_otherfunctionsz3TestMaskedArrayFunctions.test_masked_otherfunctions  s    ]4a>1a8*	,^DqNAq9;NO]5eAh.=$?@A1FFJd$	& 	^E$uQx./>%@ABAGGKt$	& 	\%U1X-<#>?@BBF$$	& 	%eO1@'BCDFFJd$	&r   c                 h   t        g dg d      }t        |j                         g d       t        |j                  d      g d       t        |j                  d      g d       t        |      }|j                  |	       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        y )N)g82?g	@g,E|@gE@gŏ1@r	  r   )r   r   r   r   r0  r   )g333333?gffffff@r  gffffff@g@r   )g(\?gS㥛@g-@gʡE@gK@r  r  r  r   r  r   )r(   r   r  r5   rK   rz   r   )r   r   r   r   r  r   s         r   
test_roundz#TestMaskedArrayFunctions.test_round  s    ?&(QWWY 45QWWQZ!:;QWWQZ!DEqM	AQ,-&'/"!!QOQ-.!!QOQ-.!!F"#!r   c                    t        t        j                  j                  ddd            j	                  dd      }t
        x|d d df<   x|d<   |d<   t        j                  dt              }|j                  d	       t        j                  |d
|      }t        ||u        t        ||j                  d
|             t        dt              }|j                  d
|      }t        ||u        y )Nr   r   r  r   r   r  r   r   r/  r   )decimalsr  )r(   r   r   r  rl   rK   r4   r   r  r  r   r   )r   r   r  r  s       r   test_round_with_outputz/TestMaskedArrayFunctions.test_round_with_output%  s     299$$QB/088A>(..1a4.2a52f: &.E"qf5& !VRXXqfX=>vU+1&1& !r   c                 \   t        ddg      }t        |j                         d       t        ddg      }t        |j                         t        u        t        ddg      }t        j                  dt              }|j                  d       |j                  |       t        |d       t        ddg      }t        d	dg      }|j                  |       t        |d
   d       t        ddg      }t        d	dg      }|j                  |       t        |d
   t        u        y )Nr:  Fr   r   Tr   r/  r  g    r   )	r(   r   r  r   rK   r   r4   r   r  )r   r   r  s      r   test_round_with_scalarz/TestMaskedArrayFunctions.test_round_with_scalar7  s     #UG$QWWY"#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             y Nr   )rA   r   r  r   r   r   r  s     r   test_identityz&TestMaskedArrayFunctions.test_identityP  s,    QK
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                         y )
N皙r   \(\?)r  r  r:  r:  r   )r   r   r   r   r   r  r   )r   r  gKTj?r  r   r  )
r   rf   r   rK   r(   r   r   ra   r   r   )r   r   r   r   r   s        r   
test_powerz#TestMaskedArrayFunctions.test_powerU  s    E!RL$/a F*+,-)@!QKAABQWWo.!QKQWWo.FQWWagg&Aq!AGGQWW-	aQWWagg&Aq!AGGQWW-r   c                 0   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                         y )Nr  )r   r   r0  r   rG  r   rO  r*  )r   r     )r  iq     rz  r   r   r   )r      r  )r   r(   r   r   )r   a2a2mb1b2b2mrK  r   s           r   test_power_with_broadcastingz5TestMaskedArrayFunctions.test_power_with_broadcastingj  sH   XX|\23Bi34XXi XXr2hBi34.0HI$i02 czT4 TYY		*byT4 TYY)SyT4 TYY).0HI$i02SyT4 TYY		*byT4 TYY		*r   zfp errors don't work in wasmreasonc                    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        ||      }|j	                  d       t        |dkD  |d      }t        |g d       t        |j                  |j                         t        |dkD  d|      }t        |g d       t        |j                  g d       t        |dkD  |t              }t        |g d       |j                  j                         }d||dk  j                  d      <   t        |j                  |       t        j                  d      5  t        j                  t        d      5  |j                  t               }	d d d        d d d        t        	dkD  |	t              }t        |g d       t        |j"                  |	j"                         y # 1 sw Y   TxY w# 1 sw Y   XxY w)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	  )r   r   r   r   r   r   r   r   r   r   r   r   Tr  rE  zinvalid valuer  )r  r  r  r  r  r   r  r  r   r  r  r   )r   r(   r   rL   r   rz   r   r   rK   r   r9   rH  r   r   RuntimeWarningr   r   r   )
r   r   r   r   r   r   r   r   tmpixms
             r   
test_wherez#TestMaskedArrayFunctions.test_where  s    HHb"b#r#vr2tS"b"MNHHJK11!"%!"%
% "q&"b!Q 6 	7QWWbhh'"q&"b!Q 6 	7QWWBC"q&"f%Q 6 	7hhmmo&*R1WT"#QWWc"[[( 	%nOD %iin%	% #'3'QFGQWWcii(	% %	% 	%s$   &G7G+G7+G4	0G77H c                    t        j                  d       }t        d       }|j                         }t	        t         j
                  j                  d||      |       t	        t         j
                  j                  d||      |       y )NT)r   r(   rL   r   r   r   rz   )r   r   r   r  s       r   test_where_objectz*TestMaskedArrayFunctions.test_where_object  sZ    HHTNFFHRUU[[q!,a0RUU[[q!,a0r   c                    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        y )Nr   r   r$  r   rk  rZ  )r!   rK   rz   r   r   r   r  s       r   test_where_with_masked_choicez6TestMaskedArrayFunctions.test_where_with_masked_choice  s   2J!F!Q177"#!!!!F"#!F"#Q!VQ177"#!!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
      }|j                  d      }t        |||      }t        |||      }t        ||       t	        t        |      t        u        t        |g d       t        |t        d      }t        |g d       t        |dt              }t        |g d       y )Nr  r  r   r  r   r   r   r   r   r  r   )r   r   r   rA  r  )r[  r[  r[  r   r   )r[  r   r   r[  r[  )	r(   rK   rz   r   r   r!   r9   r=   ra   )r   r   r  r   r   cmr   s          r    test_where_with_masked_conditionz9TestMaskedArrayFunctions.test_where_with_masked_condition  sF   &'/"!!QOQ-.!!QOQ-.!!F"#!1aL"1aL2!/8XXa[!QN2q!_Qv%&R*+!VQQ*+!QQ*+r   c                 N   t        j                  dt         j                        }t        j                  dt         j                        dz  }t	        |dkD  ||      j
                  }t        j                  t         j                  t         j                        }t        ||       y )Nr   r   r;  r  )r   r!   r  rr  rz   r   result_typer   )r   r   r   r   r  s        r   test_where_typez(TestMaskedArrayFunctions.test_where_type  si    IIarxx(IIarzz*S0QWa#))..2::6T7#r   c                     t        j                  d      j                  dd      }t        j                  d      }t        j                  g d||      }t	        g d||      }t        ||       t        |j                  |j                         y )NrZ  r   r   )r   r!   rl   r{   rz   r   r   )r   r   r   r  r   s        r   test_where_broadcastz-TestMaskedArrayFunctions.test_where_broadcast  se    IIaL  A&HHQKxx	1a(9a#T2TZZ*r   c                 f   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                         y )Nr   r   r>  r   r  r   )r   r  r  )r   r   r   r(   rz   r   )r   rT  r   r   r  r   s         r   test_where_structuredz.TestMaskedArrayFunctions.test_where_structured  s~    XXSzC:./HH-R8HHXR(xx	1a(XXiA&T2TZZ*r   c                 V   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                         y )Nr   r   r  r   r  r   )	r   r   r   r(   rz   rK   rW   r   r   )r   rT  r   r   r  s        r   test_where_structured_maskedz5TestMaskedArrayFunctions.test_where_structured_masked  sv    XXSzC:./HH-R89a(	1-RXXx~~.R"RWWhmm,r   c                 $   t        j                  dt              }t         j                  |d<   t         j                  |d<   t        j                  t        d      5  t         j                  j                  |       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   z!not supported for the input typesr  )
r   r!   rQ  rq  rI  r   r  r,  r   masked_invalidr  s     r   test_masked_invalid_errorz2TestMaskedArrayFunctions.test_masked_invalid_error  se    IIav&vv!vv!]]9!DF 	$EE  #	$ 	$ 	$s    BBc                      G d d      }t         j                  j                   |             }t        |j                  t        j
                   |                    t        |j                  g d       y )Nc                       e Zd ZdZddZy)CTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.SeriesnonsenseNc                 j    t        j                  dt         j                  t         j                  g      S r  )r   r(   rI  rq  )r   r   r   s      r   	__array__zMTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.Series.__array__  s     xxBFFBFF 344r   )NN)r  r  r  r   r'  r   r   r   Seriesr$    s    E5r   r(  )FTT)r   r   r   r   r   r(   r   )r   r(  r  s      r   test_masked_invalid_pandasz3TestMaskedArrayFunctions.test_masked_invalid_pandas  sL    	5 	5 ee""68,399bhhvx&89399&9:r   r   TFc                 ^   t         j                  j                  g d      }|j                  t        u sJ t         j                  j                  ||      }|j                  t        usJ |j                  t        u sJ t        j                  |j                  |j                        |k7  sJ y )Nr\  rx  )	r   r   r(   r   ra   r   r   r   r   )r   r   r   r  s       r   test_masked_invalid_full_maskz6TestMaskedArrayFunctions.test_masked_invalid_full_mask$  s     EEKK%ww&   ee""14"0xxv%%%vv""177CII6$>>>r   c                 V   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       y )Nr   r   r   r   r   rN  r  r  r     r     rC  r  r  !   r   r   r   r   r  r  r  r   )r   r   r   r   r  rF  wrap)r  r   r  r   r   r   r   r   r   )r[  r   r  r[  r  r   r   r   r   r   r  )r*   r   r(   r   )r   choiceschosenindices_s       r   test_choosez$TestMaskedArrayFunctions.test_choose0  s    !1#%57g.VU?34gF;VU?34gF;VU>23L9'7VU?34V[[,/|\'3\'C D'7VU?34V[[,/r   c                 8   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              j                  t              }t        ||d|      }t        |t	        g d             y )Nr-  r.  r/  r2  r   r   r4  r  r5  r7  r   r6  )rG  r  )r[  r  r  r[  r  r8  r   r  )r  r  r  r  )	r4   r   r*   r   r(   r   r   r  r
   )r   r9  r  r:  r;  s        r   test_choose_with_outz-TestMaskedArrayFunctions.test_choose_with_outG  s    !1#%57as#g59UE/23 as#L9'EBUE"234UZZ.|\'3\'C Das#((1'EBUE":;<r   c                    t        d      }t        |d<   |j                  d      }t        |j                  d       t        |j                  d          |j                  dd      }t        |j                  d       t        |j                  d          |j                  dd      }t        |j                  d       t        |j                  d          |j                  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          y )Nr   r   )r   r   r?  r   r   r"  r@  )r   r   r  )
r!   rK   rl   r   rn   r   r8  r   r  r   )r   r   r   r  s       r   r  z%TestMaskedArrayFunctions.test_reshape]  s   2J!IIfQWWf%IIaOQWWf%IIfCI(QWWf%IIa#I&QWWf%JJq&!
1k*+QWWf%$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        y )Nr   r   r   r8  r9  )r   r  )r8  r  )r9  r  )r  r   r   r   )	r   rI   r   r  r   r   r   r   r  )r   ntyper   r  	base_type
base_mtypesub_types          r   test_make_mask_descrz-TestMaskedArrayFunctions.test_make_mask_descrw  s7   uU|,u%TS$K#t56--. 
u%TD!9%--. u%T288D>*--. utUmdE]%CDEu%((K#l/K)LMNT7#--. qz"#u%T288cD!9%5$678--. e$%u%T288j$%7$89:--. HHsCm_-	$Y/
88c3Z#z):;<x(T288c4[3#tQ8H2I$JKLC #z1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 ]1  \  }	}
}t        t        |	|
|      }t        |t        u ||	|
|fz         3 y )Nr   r   r   r   r   r  r  r  z?,?r   rO  TFzcopy=%s, shrink=%s, dtype=%s)r   r  r   )rH   r   r   r   r   r(   r  r   r   r  void	itertoolsrg   ra   )r   r   r   mdtypebdtypetest2boolsdtypes	msgformatcpyshrrT  r  s                r   test_make_maskz'TestMaskedArrayFunctions.test_make_mask  sZ    1vTZZ*TAq6"xxAd+TZZ*TAq6"+T{+xx(7TZZ*TAq6"+T{+xx(7TZZ0TZZ(T4 ,e-+T{+xx(7TZZ0TZZ(T288VV$4FCDxxU3B7
4)*TZZ0T4 D !xxg.r2$djj1UD!uE"2	%--eUFC 	?LCbFS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        ||      }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        ||	      |
       y # t        $ r Y w xY w)Nr   r   )r  r  r  r  r   F)r  r  r  r  )r  r  r  r  r  r  r8  r9  r  r  r   r  r  )r  r   r(   rJ   ra   r   r  )r   r  r   r   r  r  	othertyper   r  bmaskcntrls              r   test_mask_orz%TestMaskedArrayFunctions.test_mask_or  sY   tsDk*xx8FtV$T4 vt$T4 tU#T4 9GtU#((;5IT7#4[3+.	9K	4'D tsdD\D$<$@AB+{35A+{35A+{35AWUE*E2  		s   .E6 6	FF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        ||       y )NrG  r   r  r  r   r   r  r8  r9  rS  r  )r   r   r   r   r   r   )r   r(   r  r   r8   )r   r   r   r  rI  r   s         r   test_flatten_maskz*TestMaskedArrayFunctions.test_flatten_mask  s     xx	.\$'.xx(#tsDk0JKD!((<t4T7#+tTlT4L%ABC[)xxF+D!((-T:T7#r   c                     t        j                  g d      }t        |d      }t        |      }t        ||j                                t	        |d      }t        ||j	                  dd             y )Nr\  Fr   rl  r   )r   r(   r    r   rl   )r   r   r;  r   s       r   test_on_ndarrayz(TestMaskedArrayFunctions.test_on_ndarray  sU    HH\"!% AwT1668$q&!T199Q?+r   c                 n   t        j                  d      }d|_        t        j                  g d      }|g d   }t         j                  j                  ||d      }t        ||       t         j                  j                  |      }t         j                  j                  ||d      }t        ||       y )Nr$  rH  )TFTTrM  r   ry  )r   r!   rn   r(   r   r  r   )r   r  condr  r   marrs         r   r  z&TestMaskedArrayFunctions.test_compress  s     iil	xx12i.uu~~dCa~0T7#uu{{3uu~~dDq~1T7#r   c                    t         j                  j                  ddg      }t         j                  j                  |      }t	        t        |      t         j                  u         G d dt         j                        }t         j                  j                   |d            }t         j                  j                  |      }t	        t        |      |u        t         j                  j                  dgdgg      }t        |j                  d       t         j                  j                  dggggg      }t        |j                  d        G d dt              }t         j                  j                   |g gg gg            }t        |j                  d        G d	 dt              }t         j                  j                   |g gg gg            }t        |d
       y )Nr   r   c                       e Zd Zy)3TestMaskedArrayFunctions.test_compressed.<locals>.ANr  r  r  r   r   r   r  ra  $      r   r  r   r  c                       e Zd Zy)3TestMaskedArrayFunctions.test_compressed.<locals>.MNrb  r   r   r   r  re  2  rc  r   r  c                       e Zd Zd Zy)re  c                      y)Nrc  r   r  s    r   r  z>TestMaskedArrayFunctions.test_compressed.<locals>.M.compressed:  s    r   N)r  r  r  r  r   r   r   r  z3TestMaskedArrayFunctions.test_compressed.<locals>.M9  s    r   rc  )
r   r   r(   r  r   ra  r
   r   r   r   )r   r   r   r  r  s        r   r  z(TestMaskedArrayFunctions.test_compressed  s[    EEKKAuu"T
bjj()	

 	 EEKK
#uu"T
a  uu!aS	*TYY"uuQC5',TYY"	 	 uuB4",0TYY"	 	 uuB4",0T2r   c                 r   t        t        j                  d      d      }t        j                  ddg      }t        g dd      }t        j                  j                  ||d      }t        ||       t        j                  j                  ||d      }t        ||d d        t        j                  j                  ||d	      }t        ||dd        t        g d
d      }t        j                  j                  ||dd      }t        ||       t        j                  j                  ||dd      }t        ||d d        t        j                  j                  ||d	d      }t        ||dd        t        j                  j                  ddgg d      }t        |t        g dd             ddg}t        g dd      }t        j                  j                  ||d      }t        |t        g dd             t        j                  j                  ||d      }t        |t        g dd             y )Nr   r   r   )r   r   r   r   rk  r   r   r  rF  samevalid)r   r   r   r   rk  r   F)rG  propagate_maskr  )r   r   r   r   )r   r   r   r   )rk  )r   r   r   r   r   T)r   r   r   r   r   )rM   r   r!   r(   r   convolver   )r   r   r   r  r   s        r   test_convolvez&TestMaskedArrayFunctions.test_convolve@  s   1q)HHaV2B7uu~~a~0T6"uu~~a~0T6#2;'uu~~a~1T6!B<(0"5uu~~a~FT6"uu~~a~FT6#2;'uu~~a~GT6!B<(uu~~q!fi0T<b9:F,uu~~a5~9T<(8"=>uu~~a4~8T<(<bABr   N).r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r-  skipifr   r  r  r  r  r  r  r  r  r!  r)  r.  r+  r<  r>  r  rE  rQ  rW  rY  r[  r  r  rm  r   r   r   r  r    s   *'( #@C@&" ,"$&2(
.*+@ [[(FG) H)B1 ,,:$+	+	-$; [[VdE]3	? 4	?0.=,4,3\.?`3>$$,$"H Cr   r  c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)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        |||            ||	      }t        ||||
      | _        y )NrP  )r:  r;  rX  rZ  r\  )rV  rW  threefourfiver   r   r_  r  r  r  )baser   ddtyperI  )r   r   r  r(   r   r   r(  r   )r   ilistflistslistrv  rI  r   ru  s           r   r   zTestMaskedFields.setup_methode  sp    )7*sElL9+T{S$K8T#eUE23$fMdfVL	r   c                    | j                   d   }| j                   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 cg c]  }|||f	 c}|             y c c}w )Nru  rI  r   FTr=  )r   ra   r   r   r   r   r{   rn   rK   rc   r(   )r   ru  rI  r   s       r   test_set_records_masksz'TestMaskedFields.test_set_records_maskso  s    yy 8$	TZZ$**F)KL	TZZ6)JK	TZZ$**F)KL	TZZ6)JK#	TZZXX/&JQ1ay&J,24	5&Js   Ec                    | j                   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       y )Nru  r   r   r  r   r   )r   r   r   r   r   r;  rX  rZ  r\  r  )   pirO  s   three   four   fiver   r   r   r   r   r   r   r   ru  base_abase_bbase_cs        r   test_set_record_elementz(TestMaskedFields.test_set_record_element  s    yy $(ItCy$s)r4.QV\\3'V\\?3V\\5)V\\BS#s#;<V\\5)V\\@	Br   c                    | j                   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       y )Nru  r   r   r  r   r   )r   r   r   r   r   rZ  r\  r  )r}  r}  r}  r~  r  r  r  s        r   test_set_record_slicez&TestMaskedFields.test_set_record_slice  s    yy $(ItCy$s)D>RaV\\3'V\\?3V\\5)V\\BBS#9:V\\5)V\\<	>r   c                     | j                   d   }t        |d<   dD ]C  }t        ||   j                  g d       t        ||   j                  |j                  |          E y)zCheck record accessru  r   )r   r   r  r+  N)r   rK   r   r   r   )r   ru  r}  s      r   test_mask_elementz"TestMaskedFields.test_mask_element  sT    yy Q  	7Aa7a

16	7r   c                    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             y )	Nr   r   r   r   )r  r  r  )r   |b1)r   r  )r  r  r  )r   r   r4   r   r>   r   r(   rK   )r   r  r   s      r   test_getmaskarrayz"TestMaskedFields.test_getmaskarray  s{    *sEl+Qf%\$'XX6%1<$@B	C Q\$'XX6%1<$@B	Cr   c                 n   t        t        t        j                  d      t        j                  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              }|j                  t              }t        ||j                                t        |j                  |       |j                  t        d	f      }t        ||       t        |j                  |j                  d
d	             y )Nr   r   r   r   r  r   r      r   r   )r   r   r   r!   r   r   r(   r   r   r  r  r   rj   rl   )r   iteratorr   r   controlmaskr   s         r   	test_viewzTestMaskedFields.test_view  s    BIIbM299>>"+=>?xx!(C<#u">?q	hhsR1#X~T:vve}T4::<(TYY,vvuaj!T4 TYY 3 3B :;r   c           
         dt         fdt         fg}t        t        t        t        j
                  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
       y )Nr   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   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          y )N.)r   ra  r`   r   r   r   r   )r  r   s    r   _test_indexz2TestMaskedFields.test_getitem.<locals>._test_index  s    adU+ 1QWWQZ8 1QWWQZ8a3i+6 1S53@ 1S53@r   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-$s299>>"-ryy}=>fM$s#A#A C D"%tsDk :<	A 	AABr   c                 "   t        j                  dt        fdt        fg      }t         j                  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                  j                  d|      }d|d   d<   t        |j                  |       t         j                  j                  d|      }d|d   d<   t        |j                  |       t        j                  ddg|      }t         j                  j                  d|      }|j                          d|d   d<   t        |j                  |       t         j                  j                  d|      }|j                          d|d   d<   t        |j                  |       y )Nr   r   )r   r   )r   r   r   r   r   r   r   r  )TTrB  r   r   )r   r   r   r   r   r   r   r(   r  rp  r   rE  )r   r  r   rI  r  r   s         r   test_setitemzTestMaskedFields.test_setitem  s    C<#s45UU(36B3
RWbhhSz231c
RWbhhSz23C;d45((M<8GEET0#q	QVVW%EET0!S	QVVW%((L,7vFEET0	#q	QVVW%EET0	!S	QVVW%r   c                     t         j                  j                  dd      }t         j                  j                  d      }||d<   t	        |j
                  g d       y )Nr   Tr   r   r   rm  )r   r   rL   r!   r   r   )r   mask_0dr  s      r   test_setitem_scalarz$TestMaskedFields.test_setitem_scalar  sD    %%$$QT$2eell1oA388%9:r   c                     | j                   d   D ]-  }t        t        |      t        | j                   d                / y )Nru  rv  )r   r   r   )r   recs     r   test_element_lenz!TestMaskedFields.test_element_len  s6    99V$ 	=CS3tyy':#;<	=r   N)r  r  r  r   r{  r  r  r  r  r  r  r  r  r  r   r   r   rp  rp  c  s<    M5&B >7
C< (&<;=r   rp  c                       e Zd Zd Zd Zy)TestMaskedObjectArrayc                    t         j                  j                  d d g      }t        t        fD ]  }t        j
                  d      j                  |      }t        j
                  d      j                  |      }||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        y )	Nr   r   r   r   r   .)r   .r   T)r   r   r(   r   rQ  r6  r   r   r  r   rK   r   r   r   )r   r  rT  a0a1s        r   r  z"TestMaskedObjectArray.test_getitem  s   eekk4,'&/ 	4B!!"%B!!"%BCFCFCFbL!CFbL!Js5z;78Js5z;78CJrNb()CJrNb()UU\\CFCFbL!Js5z;78Js5z;78U$/CJrNb() Qb)Qd+UB,,b1UB,,d33	4r   c                    t         j                  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        y )Nr  r   )r   r   r(   rK   rQ  r   r   )r   r  s     r   test_nested_maz$TestMaskedObjectArray.test_nested_ma$  s    eekk4,'XXruu||nf5e<E
 	ruu||+, 	A"%%,,&' AA"%%,,&'r   N)r  r  r  r  r  r   r   r   r  r    s    4:(r   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestMaskedViewc                 f   t        t        t        j                  d      t        j                  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| _
        y )	Nr   r   r   r   r  r   r   r  )r   r   r   r!   r   r   r(   r   r   r  r   )r   r  r   r   r  s        r   r   zTestMaskedView.setup_method7  s    BIIbM299>>"+=>?xx!(C<#u">?q	hhsR1#X~T:1k*	r   c                     | j                   \  }}}|j                         }t        t        |t                     t        |j                  |j                         t        |j                  |j                         y r   )r   r  r   r  r   r   r   r   r   r   r   r  r   s        r   test_view_to_nothingz#TestMaskedView.test_view_to_nothing?  sP    !%q+vvx
4-.TZZ)TZZ)r   c                 (   | j                   \  }}}|j                  t        j                        }t	        t        |t                      t        ||j                         t        ||j                  |j                        j                                y r   )r   r  r   r
   r   r  r   r   r   r   r   r8  r  s        r   test_view_to_typez TestMaskedView.test_view_to_typeF  sd    !%q+vvbjj!Jt[112T177#T499QWW#5#=#=#?@r   c                     | j                   \  }}}|j                  t              }t        t	        |t
                     t        ||j                                t        |j                  |       y r   )	r   r  r   r   r  r   r   rj   r   r  s        r   test_view_to_simple_dtypez(TestMaskedView.test_view_to_simple_dtypeM  sL    !%q+vve}
4-.T4::<(TYY,r   c                 &   | j                   \  }}}|j                  dt        fdt        fg      }t        |j                  j
                  j                  d       t        |d   |d          t        |d   |d          |d   j                  dt        fdt        fg      }t        t        |t                     t        |j                  j
                  j                  d       t        |d   |d   d          t        |d   |d   d          |d   j                  dt        fdt        fg      }t        t        |t                     t        |j
                  j                  d       t        |d   |d   d          t        |d   |d   d          y )Nr  r  )r  r  r   r   r   r   )
r   r  r   r   r   r   r%  r   r  r   r  s        r   test_view_to_flexible_dtypez*TestMaskedView.test_view_to_flexible_dtypeU  sI   !%q+vvU|c5\23TYY__**J7T#Y#'T#Y#'tyy3,e56
4-.TYY__**J7T#Y#q	*T#Y#q	*uzzC<#u67
4-.TZZ%%z2T#Y#r
+T#Y#r
+r   c                    | j                   \  }}}|j                  t        df      }t        t	        |t
                     t        ||       t        |j                  |j                  dd             |d   j                  t        df      }t        t	        |t
                     t        ||d          t        |j                  d       |d   j                  t        df      }t        t	        |t
                     t        ||d          y )Nr   r   r   r  )	r   r  r   r   r  r   r   r   rl   r  s        r   test_view_to_subdtypez$TestMaskedView.test_view_to_subdtypei  s    !%q+vvuaj!
4-.T4 TYY 3 3B :;tyy%$
4-.T47#TYY'uzz5!*%
4-.T48$r   c                    | j                   \  }}}|j                  t        dft        j                        }t        ||       t        t        |t        j                               t        t        |t                      y )Nr   )	r   r  r   r   r  r   r   r  r   r  s        r   test_view_to_dtype_and_typez*TestMaskedView.test_view_to_dtype_and_typez  sY    !%q+vvuaj"++.T4 
4-.Jt[112r   N)
r  r  r  r   r  r  r  r  r  r  r   r   r   r  r  5  s&    +*A-,(%"3r   r  c                       e Zd Zd Zd Zy)TestOptionalArgsc                 *   t        j                  d      j                  d      }t        j                  dt              j                  d      }d|d d d d df<   t         j
                  j                  ||      }d }d	 }d
D ]  } ||||        ||||        dD ]  } ||||        t        j                  d      j                  d      dz  dk(  }t         j
                  j                  ||      }dD ]  } ||||        ||||        y )N      8@r  r   r   Tr   r   c           	         t        j                  |       }t        j                  j                  |       }t	         ||d      dd df    ||dd df   d             t	         ||d      dd df    ||dd df   d             y )Nr   ry  .r   r  )r  __getattribute__r   r   r   r  r   r   numpy_fma_fs        r   testaxisz4TestOptionalArgs.test_ndarrayfuncs.<locals>.testaxis  s    ,,Q/G55))!,D aaSbS171S"W:A3NOae,S"W5 3ss7%8:r   c           	         t        j                  |       }t        j                  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             y )	NTkeepdimsFr   rz  r  .r   r  )r  r  r   r   r   rn   r  s        r   testkeepdimsz8TestOptionalArgs.test_ndarrayfuncs.<locals>.testkeepdims  s    ,,Q/G55))!,D a$/55 T288:a%066 U399; aa$7CRC@ 3ss7!dCEaed;CGD 3ss7%$GIr   )ru   r  r  r  r  r  r   r   )r   r   )r   r!   rl   r{   r  r   r(   )r   r   r;  r   r  r  r  s          r   test_ndarrayfuncsz"TestOptionalArgs.test_ndarrayfuncs  s    IIdO##G,HHRt$,,W5!Ab&	EEKKK"	:	I  7 	"AQ1Aq!	"   	AQ1	 YYr]""7+A-2EEKKK" 	"AQ1Aq!	"r   c                    t        j                  d      j                  d      }t        j                  dt              j                  d      }d|d d dd d f<   t         j
                  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
                  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
                  j                  d	      d	
       y )Nr  r  r   r   Tr   r   r  r   ry  r   )r   r   r  r   r  r  r  r  )r   r   r   )r   r   r   r  r  r   r   )r   r!   rl   r{   r  r   r(   r   r/   rc   r   r  r   ra   r   rK   )r   r   r;  r   s       r   
test_countzTestOptionalArgs.test_count  sM    IIdO##G,HHRt$,,W5!Aa%EEKKK"U1Xr"U11%qe}5U15)1T$Z<8U1t,bg.>?U11t4aWoFU1548!DM/JU12&$u+6j%7i2 EEKKK'U1Xr"U11%qe}5U15)1T$Z<8U1t,bg.>?RWWU1t45q9U11t4aWoFU1548!DM/JU12&$u+6j%7i2 	U255<<(!, 	iAQ?r   N)r  r  r  r  r  r   r   r   r  r    s    -"^$@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                   j#                  d      d        Zej                   j#                  d      d        Zd Zd Zy)TestMaskedConstantc                    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                  j                  |      t        j                  |j                  t                     y )Nr   r   r   )r   r   r   rK   r(   r  r  MaskedConstantr   rn   r=   rc   r  )r   r   vectorr  s       r   _do_add_testzTestMaskedConstant._do_add_test  s    BEELL!$45 )$RUU\\6* 	beell*+Jvruuzz'@'@AABV\\6<<0RUU]]6*BGGFLL,MNr   c                 B    | j                  t        j                         y r   )r  r   r   r  s    r   
test_ufunczTestMaskedConstant.test_ufunc  s    "&&!r   c                 (    | j                  d        y )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                  j                  t         j                  j                        }t	        t        |t         j                  j                  j                                t	        |t         j                  j                  u       y r   )r   r   r(   rK   r   r  r  r  r  s     r   	test_ctorzTestMaskedConstant.test_ctor  sS    EEKK% 	Jq"%%**";";<<=%&r   c                    t        t        t        j                  j                        d       t        j                  j
                  j                  t        j                  j                  j                        }t        t        |      d       y )NrK   )
r   r`  r   r   rK   r   __new__r  r  r   )r   masked2s     r   	test_reprzTestMaskedConstant.test_repr  sS     	T"%%,,'2 %%##++BEEJJ,E,EFg1r   c                    ddl m} t        dt        j                  dz         D ]  } |       5 }t        j
                  t        j                  j                  ||       |j                  d       t        j                  |      }d d d        t        t        j                  j                  u         y # 1 sw Y   1xY w)Nr   )BytesIOr   r   r  )ior  r  r  r  dumpr   r   rK   seekloadr   )r   r  r  r  r  s        r   test_picklezTestMaskedConstant.test_pickle   s    1f559: 	)E %aBEELL!e<q	kk!n% C255<<'(	)% %s   AB55B>	c                     t        t        j                  j                  j	                         t        j                  j                  u t        j
                  j	                         t        j
                  u        y r   )r   r   r   rK   r   True_r  s    r   r  zTestMaskedConstant.test_copy
  sC     	EELL255<</HHMMOrxx'	)r   c                     dd l }t         |j                   t        j                  j                        t        j                  j                  u        y r  )r   r   r   r   rK   r   r   s     r   
test__copyzTestMaskedConstant.test__copy  s0    DIIbeell#ruu||3	5r   c                     dd l }t         |j                  t        j                  j
                        t        j                  j
                  u        y r  )r   r   r  r   r   rK   r  s     r   r  z TestMaskedConstant.test_deepcopy  s0    DMM"%%,,'255<<7	9r   c                    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                  j                  t         j                  j                        }t        t        t        j                  |dd       t        t        t        j                  |j                  dd       t        t        t        j                  |j                  dd       y )Nr   r   F)r   r   rK   r   r  r   r1  setitemr  r   r   r  r   )r   origr  s      r   test_immutablez!TestMaskedConstant.test_immutable  s    uu||beejj**H,<,<dBJj!1!1499b!Dj("2"2DIIr5Iuu||  !2!23j("2"2D"a@j("2"2DIIr1Ej("2"2DIIr5Ir   c                    t        j                  dt              }t        t        t
        j                  |dt         j                  j                         t        t        t        t         j                  j                         y rb  )	r   r{   r   r   r   r1  r  r   rK   )r   a_is     r   test_coercion_intz$TestMaskedConstant.test_coercion_int&  sD    hhr3i!1!13BEELLIibeell3r   c                     t        j                  dt              }t        t        t
        j                  |dt         j                  j                         t        t        j                  |d                y rb  )r   r{   r   r   r  r1  r  r   rK   r   r  )r   a_fs     r   test_coercion_floatz&TestMaskedConstant.test_coercion_float+  sE    hhr5![("2"2CRUU\\JR!"r   zSee gh-9750r  c                     t        j                  dd      }t         j                  j                  |d<   t	        |d   d       y )Nr   U10rM  r   r{   r   rK   r   )r   a_us     r   test_coercion_unicodez(TestMaskedConstant.test_coercion_unicode0  s1    hhr5!%%,,BSWd#r   c                     t        j                  dd      }t         j                  j                  |d<   t	        |d   d       y )Nr   S10s   --r  )r   a_bs     r   test_coercion_bytesz&TestMaskedConstant.test_coercion_bytes6  s1    hhr5!%%,,BSWe$r   c                     G d dt        t        j                  j                              } |       }t	        | |       u        t	        |t        j                  j                  u       t        t        |      d       y )Nc                       e Zd Zy)-TestMaskedConstant.test_subclass.<locals>.SubNrb  r   r   r   Subr  >  s    r   r  rK   )ra  r   r   rK   r   r   r`  )r   r  r   s      r   test_subclassz TestMaskedConstant.test_subclass<  sO    +$ruu||$+ESU
%&a(+r   c                     t        t        t        t        j                  j
                  dd       t        t        t        t        j                  j
                  dt        j                         y )Nrn   rG  r   )r   r  setattrr   r   rK   r  r  s    r   test_attributes_readonlyz+TestMaskedConstant.test_attributes_readonlyE  s6    ngruu||WdKngruu||WbhhOr   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r-  xfailr  r  r  r  r   r   r   r  r    s    O".'2))5
9
	J4
#
 [[m,$ -$
 [[m,% -%
,Pr   r  c                       e Zd Zd Zy)TestMaskedWhereAliasesc                    t        t        j                  dg      t        j                  d            }t	        |j
                  dg       t        t        j                  t        j                        }t	        |j
                  d       t        j                  j                  t        j                  t        j                         }t	        |j
                  d       t        j                  j                  g ddd      }t        |j
                  t        j                  j                  u        t        j                  j                  g ddd      }t	        |j
                  dgdz         y )	Ng      i TFr\  r   r  r   )
rV   r   r(   r3  r   r   rq  r   r   ra   )r   r  s     r   test_masked_valuesz)TestMaskedWhereAliases.test_masked_valuesN  s    BHHhZ0"((62BCSXXv&BFFBFF+SXXt$ee!!"&&266'2SXXu%ee!!,$!?BEELL()ee!!,%!@SXXw{+r   N)r  r  r  r  r   r   r   r  r  J  s    ,r   r  c                      t         j                  j                  g dg d      } t        t        j                  |       dgdgg       y )Nr-  )r   r   r   r   r   r   r   )r   r   r(   r   argwherer  s    r   test_masked_arrayr	  _  s2    
L|4AQ1#s,r   c                  Z   t         j                  j                  g d      } t         j                  j                  | dk(  | d      }t	        | j
                  g d       t         j                  j                  g dg d      } t         j                  j                  | dk(  | d      }t	        | j
                  g d       t         j                  j                  t         j                  d	d
ddg      } t         j                  j                  | d      }t	        | j
                  g d       y )Nr\  r   Frx  )FFTFr   r   )TFTFr   r   r   )TFFFF)r   r   r(   rW   r   r   rq  r   )r   r  s     r   test_masked_array_no_copyr  c  s    
L!A
16151Aqvv:;
L|4A
16151Aqvv9:
RVVQ1a()A
QU+AqvvABr   c                     t         j                  j                  g dd      } t         j                  j                  g dd      }t         j                  j                  | |      }g d}g d}t	        |j
                  |       t	        |j                  |       t         j                  j                  d      } t         j                  j                  d      }t         j                  j                  | |      }d	gd
z  }dgdz  dgd
z  z   }t	        |j
                  d   |       t	        |j                  |       t         j                  j                  | |d       }t	        |j
                  d   |       t	        |j                  |       y )Nr   r   r  )r   r   r   )r   r   r   r   r   r   )FTFFFTrl  )r   r   r   r   Tr   Fr  ry  )	r   r   rM   r  r   r   r   rp  rc   )r   r   r  expected_datar  s        r   test_append_masked_arrayr  q  s!   
7!,A
7!,AUU\\!QF&M<Mv{{M2v{{M2
A


5AUU\\!QFC!GMFQJ%1,Mv{{26v{{M2UU\\!QT\*Fv{{26v{{M2r   c                  |   t         j                  j                  g dd      } t         j                  j                  g dg dgd      }t	        t
        t         j                  j                  | |d       t         j                  j                  | t         j                  d d f   |d      }t         j                  j                  d	d
      }t         j                  j                  |d	dg<   |j                  d      }t        |j                  |j                         t        |j                  |j                         y )Nr   r   r  r  r  rk  r   ry  r   r   r   r  )r   r   rM   rV   r   r  r  newaxisr!   rK   rl   r   r   r   )r   r   r  r  s       r   #test_append_masked_array_along_axisr    s    
7!,A
Y	2A6A *beellAqq9UU\\!BJJqL/11\5Fuu||Ar"Huu||HaV&Hv{{HMM2v{{HMM2r   c                  2    t        t        d      dk(         y )Ny      ?      ?y@xD        )r   r0   r   r   r   test_default_fill_value_complexr    s    v&,67r   c                  p    t        g dg d      } t        j                  | d|       }t        || u        y )Nr  rG  r   r   r  )r(   r   r   r   r   s     r   test_ufunc_with_outputr    s-     	l+A
q"!AAFOr   c                     t        g dg d      } t        g dg d      }t        g dg d      }t        g dg d      }|j                         }t        j                  | ||      }|j                         }t        j                  | ||      }|j                         }t        j                  | ||f      }	t	        |j
                  |j
                         t	        |j                  |j                         t	        |	j
                  |j
                         t	        |	j                  |j                         t	        |j
                  |j
                         t	        |j                  |j                         y	)
z0 Test that masked arrays are immune to gh-10459 r   r   r   rB  r  rG  )rN  r  r3  r  N)r(   r   r   r   r   r   r   )
r   r   r  r  out_posres_posout_kwres_kwout_tupres_tups
             r   test_ufunc_with_out_variedr    s     \	2A\	2A\	2C\	2HhhjGffQ7#GXXZFVVAqf%FhhjGffQz*Gx}}-x}}-x}}-x}}-x}}-x}}-r   c            	         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                  j                  t        j                  |       j                  k(  sJ |j                  j                  j                  t        j                  |       j                  k(  sJ t        ||       t        ||j                  |j                  d      u        t        t        |j                  |j                  d            t         j                         |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                         y )Nr  r   r   r   r   r  r  )r   )r   r   r   Frx  )subokr"  r@  T)r   r  )r   r   r  )r   rA  r  )r   r   r   r   r(   r   rK   r   r%  r   r   r   ra  r
   r8  f_contiguous)descrr   x_ax_fx_a2x_f2s         r   test_astype_mask_orderingr&    s'   HHsCmcS%L>%:;<E
V		623
V		6235<A	CA 55<<AaDIaL
((5/C99??bhhuo3333388>>288E?#8#8888CA!''../ahhqwweh45rzzB
((177#(
&CCII""#CHHNN''( 88AU$/D::rxx4444499??  BHHUO$9$9999DA!5t4@@A88AQWWCt<DDJJ##$DIIOO(()r   r  r  r  z'ignore::numpy.exceptions.ComplexWarningc                    t         j                  j                  t        d|       d      }|j	                  |      }t        |j                  dk(         t        |j                  | k(         t        |j                  j                  | k(         t        |j                  dk(         t        |j                  |k(         t        |j                  j                  |k(         t        ||       y )Nr   r   r  )	r   r   r(   rc   r   r   r0  r   r   )r  r  srcdsts       r   test_astype_basicr*    s    
 %%++d1clq+
1C
**S/CCNNa CIICNN  C'(CNNa CIICNN  C'(cr   c                     t        j                  g       } t        j                  d|       }t         j                  j	                  |      }t        |j                  |j                         t        |j                  |j                         t         j                  j	                  ||      }t        |j                  |j                         t        |j                  |j                         y )Nr   r   )r   r   r4   r   r(   r   rn   )rT  r   rJ  s      r   test_fieldless_voidr,    s    	"B
BA 
QB177#177#	QQ	B177#177#r   c                      t         j                  j                  } t         j                  j                  d| j                        }d|_        t        | j                  j
                  d       y )Nr   r   rG  r   )r   r   rK   r(   r   rn   r   r  s     r   0test_mask_shape_assignment_does_not_break_maskedr.    sB    
A
AAFF#AAGr"r   r   zHno docstrings present to inspect when PYTHONOPTIMIZE/Py_OptimizeFlag > 1r  c                      d } d}t        t        j                  j                  j	                  | j
                  d      |       y )Nc                      y)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)r   r   r   r  r3   __doc__)r  expected_docs     r   test_doc_noter4    s3    
L $$V^^V<lKr   c                      t         j                  j                  dg dgt              } t	        j
                  |       }|d   j                  d       t        | d         dk(  sJ y )Nr   rn  r   r    this should not appear in sourcer   )r   r   r(   rQ  r   r  r  r   sourcer  s     r   test_gh_22556r9  $  sS    UU[[!Yv[6F}}V$HQK9:vay>Qr   c                     t         j                  j                  ddgdt         j                        } t        j                  d      }t        j
                  | |d      }t         j                  j                  |t        j                  |j                  t         j                              }t         j                  j                  ddt         j                        }t        j                  |       t        j                  |       y )	Nr   Tr3  r   Fr  r   r   )r   r   rL   r  r(   r  rc   rn   r  r   r  )r8  rz  r  r(   s       r   test_gh_21022r;  +  s    UUb"XD

KF88A;DWWV$7FUU%'WWV\\%I   KFEEBTDEMM%MM&r   c                     t         j                  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   j                  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 y )Nr   dogr   r   catr  r  r6  r   r   r  )
r   r   r(   rQ  r   r  extendr   r   r   r7  s     r   test_deepcopy_2d_objr@  7  s    UU[[1e*a&q65/+  !!f !f !f& %  &F }}V$HTN=qABvd|!!!x~!###.HNN4<<"""r   c                      t         j                  j                  ddgt              } t	        j
                  |       }d|d<   t        | d       t        |d       y )Nr   r     .)r   r   r(   rQ  r   r  r   r7  s     r   test_deepcopy_0d_objrC  H  sG    UU[[!F[3F}}V$HHSM2r   )r2  
__author__sysr  r   r1  rH  r  r  	functoolsr   r   r  r   numpy.ma.corenumpy._core.fromnumeric_corer  numpy._core.umathr  numpy.exceptionsr   numpy.testingr   r   r   r   numpy.testing._private.utilsr	   r
   numpy._utilsr   numpy.ma.testutilsr   r   r   r   r   r   r   r   r   r   r   r   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   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r   rY  r  r   r  MaskedArrayFutureWarningr   r/  charr0  r~   r[  r7  rj  r  r$  r  rl  r  r  rp  r  r  r  r  r  r	  r  r  r  r  r  r  r&  r-  r.  r  r*  r,  r.  rn  r8  optimizer4  r9  r;  r@  rC  )dt_s   0r   <module>rT     s  
 )
 
           - - ! ! &  9     
                          $ UU $5#6     ' '	HHMM**MO %8
8S8288C=
8&
'388
't tnH. H.Vm, m,`OE OEd
U3 U3nm0 m0`I1 I1XX) X)v
2= 2=ju
C u
Cp_= _=D-( -(`K3 K3\T@ T@nmP mP`, ,*-C3038
.2*@ W5W5EF G 6 6 $# CII&&*e  gLgL:	#"Qp 9
's   M	 M