
    hCq                       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mc mZ ddlmc mZ ddlZddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.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mZ dd	lmZmZmZmZmZmZmZmZ dd
lmZmZmZmZmZ ddlmZ ej$                  Z e       Zej)                  ej*                  j,                  j.                  d       dD  cg c]  } ej1                  |        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 ZdE Zyc c} w c c} w )FznTests suite for MaskedArray & subclassing.

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
zPierre GF Gerard-Marchant    N)reduce)ndarray)asbytes)	AxisError)hMAErrorMaskedArray	MaskErrorMaskTypeabsabsoluteaddallallcloseallequalalltrueangleanomarangearccosarccosharcsinarctanarctan2argsortarrayasarraychooseconcatenate	conjugatecoscoshcountdefault_fill_valuediagdivideempty
empty_likeequalexpfilledfix_invalidflatten_maskflatten_structured_arrayfromflexgetmaskgetmaskarraygreatergreater_equalidentityinnerisMaskedArrayless
less_equalloglog10	make_maskmake_mask_descrmask_ormaskedmasked_arraymasked_equalmasked_greatermasked_greater_equalmasked_insidemasked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_optionmasked_valuesmasked_wheremaxmaximummaximum_fill_valueminminimumminimum_fill_valuemodmultiplymvoidnomask	not_equalones	ones_likeouterpowerproductputputmaskravelrepeatreshaperesizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh	transposewherezeros
zeros_like)assert_assert_almost_equalassert_array_equalassert_equalassert_equal_recordsassert_mask_equalassert_not_equalfail_if_equal)IS_WASMassert_raisesassert_warnssuppress_warningstemppath)requires_memoryzGsetting 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=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   pir>   rl   set_fill_valuedselfxya10m1m2xmymzzmxfs              =D:\jyotish\venv\Lib\site-packages\numpy/ma/tests/test_core.pysetup_methodzTestMaskedArray.setup_method   s    HHb"b#rCxRsBBOP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   rr   ndimsizer`   r   abs      r   test_basicattributesz$TestMaskedArray.test_basicattributes   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   )	r>   rr   strrG   r   ro   r*   dtype_datar   r   s     r   test_basic0dzTestMaskedArray.test_basic0d   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>   s    !a%r   c                     | |z   S r   r   r   s     r   r   z.TestMaskedArray.test_basic1d.<locals>.<lambda>   s    a!er   r   )r   ro   r5   r*   anyrv   r   astypeintr`   rr   r   r   r   r   r"   lenrq   r   r   r   r   r   r   r   r   r   r   r   ss               r   test_basic1dzTestMaskedArray.test_basic1d   s(   15.AsBBAr2M!$$%b!"b  #'')*bggnnS)277>>#+>?GGRXXb\1%RXXq!RXXqww'RXXqww'RWWf%7;<U2YB&1CR*H HI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    a!er   c                     | |z   S r   r   r   s     r   r   z.TestMaskedArray.test_basic2d.<locals>.<lambda>   s    !a%r   r   )
r   r`   ro   r5   rr   r   r   r"   r   r*   r   s               r   test_basic2dzTestMaskedArray.test_basic2d   s    15.AsBBAr2!AAGAGBHBHBHa(()M"%&rA&1%&);Q"?@rCGf5G.L$LM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   rr   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   r`   rr   r   r   r^   r   _maskrm   r   rU   rq   )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      )r>   listzipr   randomrandr   floatr   r   rs   )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   rr   r`   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   r=   r   rr   r`   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   r=   r   rr   r   rv   r   r   ro   r   may_share_memory)r   r   dma_1dma_2dma_3r   r   s          r   test_creation_maskcreationz*TestMaskedArray.test_creation_maskcreation)  s%   b&!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   mar=   pytestwarnsUserWarningr   s    r   *test_masked_singleton_array_creation_warnsz:TestMaskedArray.test_masked_singleton_array_creation_warns?  sK     	\\+&
 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   rr   r   rS   r   ro   )r   r   r   s      r   'test_creation_with_list_of_maskedarraysz7TestMaskedArray.test_creation_with_list_of_maskedarraysJ  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   r>   r   r   rq   r   r   raisesr  bool)r   
masked_str
normal_intresr  
masked_objs         r   4test_creation_with_list_of_maskedarrays_no_bool_castzDTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_castV  s    UU''c
$'G
YYq\
eemmZ4EmB388tUmeU^%DE	0 	0 UU''C(8e}'M
]]:];JJ
|40 < eemmZ45388tUmeU^%DE	 <;s   	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_paddingj  s6    HHhZ$48$<45q6(; < 	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_parameterp  s(    ]]9,IJ		2 KJJs	   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   rr   r   r   )r   r   r   r   r   r   r   r   r   r   r   xmms               r   test_asarrayzTestMaskedArray.test_asarrayt  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Tro   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orderr6  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   errstater>   nanr+   rr   r   r1  r   )r   r   
data_fixeds      r   test_fix_invalidz TestMaskedArray.test_fix_invalid  sf    [[*R 0yAD$T*J))DOOR+DE))<8	 +**s   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   r=   ro   r   rr   r*   r   s     r   test_maskedelementz"TestMaskedArray.test_maskedelement  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   )r&   objectrr   ro   datetimenow)r   r   r   rS  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   reprrr   rd   ro   typer=   r   r/   r>   r   rH   r
   r   r1  rR  r`   )r   x1x2x3x4s1s2s          r   test_indexingzTestMaskedArray.test_indexing  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   r^   slice
masked_allinfr   r=   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   r[  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+  )r:   ro   r   r   r   rr   r   __array_interface__r   r   r   r=   r   r*   r   r_   r   r/   r]   r   r>   ctypesru   )r   nr<  r   m3rc  y1y1ay2y2ay3rf  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   rr   r   )r   r   xcs      r   test_copy_0dzTestMaskedArray.test_copy_0d8  s1    EEKKK&VVXRWWd#r   c                     t        t        t        j                  j	                  g d                   t        t        t        j                  j	                  d                   y )Nr   )ro   r5   r   r   r   r  s    r   test_copy_on_python_builtinsz,TestMaskedArray.test_copy_on_python_builtins>  s6    beejj345beejj345r   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   rr   )r   r   r   a_copy_methods       r   test_copy_immutablez#TestMaskedArray.test_copy_immutableC  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   )deepcopyro  FTFr   r   r   r   r   r+  F)r   r  r   rr   r   ru   idr   )r   r  r   copieds       r   test_deepcopyzTestMaskedArray.test_deepcopyK  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)Nro  r  r   [0 -- 2]rN   z >5)r   rr   formatr=   ry   FutureWarning)r   r   with_format_strings      r   test_formatzTestMaskedArray.test_format\  sl    )"67VAY
+VF^T*VFB'. -(!'!6 )'. )(s   )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 )Nro  r  r   r  z            masked_array(data=[0, --, 2],
                         mask=[False,  True, False],
                   fill_value=999999)  r   2   z            masked_array(data=[0, --, --, ..., 1997, 1998, 1999],
                         mask=[False,  True,  True, ..., False, False, False],
                   fill_value=999999)   z            masked_array(data=[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13,
                               14, 15, 16, 17, 18, 19],
                         mask=False,
                   fill_value=999999)r   r  r   r   r   z            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=?B r   z,
              dtype=int8)z            masked_array(data=[[1, 2, 3]],
                         mask=[[False, False, False]],
                   fill_value=z%,
                        dtype=int8)z            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=999999))r   rr   r   ra  textwrapdedentr   r   r   r=   int8r   r   r   r   s     r   test_str_reprzTestMaskedArray.test_str_reprk  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)legacyro  r  r   r  zcmasked_array(data = [0 -- 2],
             mask = [False  True False],
       fill_value = 999999)
r  r   r  zmasked_array(data = [0 -- -- ..., 1997 1998 1999],
             mask = [False  True  True ..., False False False],
       fill_value = 999999)
r   )
r   get_printoptionsset_printoptionsr   rr   r   ra  r   r   r=   )r   oldoptsr   s      r   test_str_repr_legacyz$TestMaskedArray.test_str_repr_legacy  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   rN  )rb  r   r   r   rr   )r   uutype
arr_nomask
arr_maskeds        r   test_0d_unicodezTestMaskedArray.test_0d_unicode  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   rR  r   r   r1  rangepickleHIGHEST_PROTOCOLr   loadsdumpsrr   r   r   rq   )r   r   r   masksprotor   	a_pickleds          r   test_picklingzTestMaskedArray.test_pickling  s    5#v.Er
!!%(AAL3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recarrayr>   r  r  r  r  r  rr   r   ro   
isinstancer   )r   r   r   r  r  s        r   test_pickling_subbaseclassz*TestMaskedArray.test_pickling_subbaseclass  s    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   r=   r  r  r  r  r  rr   
_baseclassr   r   )r   mcr  
mc_pickleds       r   test_pickling_maskedconstantz,TestMaskedArray.test_pickling_maskedconstant  s    UU\\1f559:Efll2&FGJ..>))2884))2884	 ;r   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  rr   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   r`   r8  r  r  r  r  r  rr   )r   r   r   r  r   s        r   test_pickling_keepalignmentz+TestMaskedArray.test_pickling_keepalignment  sZ    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   rr   r`   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	    U1Xr   r   r   r   r   c                       t         d         S Nr   )r   r  s   r   r   z/TestMaskedArray.test_topython.<locals>.<lambda>&  s    s1Q4yr   )rr   r   r   r   rx   r-  rz   filterr  ro   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1 ! 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   rl  r[  )r   r^   flatro   rr   realimagr   r=   r   r"   rl   r`   rI   r   )r   r   r   cs       r   test_oddfeatures_1z"TestMaskedArray.test_oddfeatures_1(  s}   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   r=   rl   rr   ro   r   r   r  r   s       r   test_oddfeatures_2z"TestMaskedArray.test_oddfeatures_2D  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   rr   )r   atestbtestidxs       r   test_oddfeatures_3z"TestMaskedArray.test_oddfeatures_3R  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   rq  rr   r*   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   r=   rr   r*   r   r#   r   )r   flexis     r   test_filled_with_flexible_dtypez/TestMaskedArray.test_filled_with_flexible_dtype_  s    yk!3ZU|DF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   rR   r*   rr   tupler#   r1  )r   ndtyper   r   s       r   test_filled_with_mvoidz&TestMaskedArray.test_filled_with_mvoidl  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   rm  r   r  r   r  r  r   r   r  )r   r   r   r   r  r  r   )r  z(2,2)i1,(2,2)i1rm  )r   i1rm  )r!  r  rm  rm  )r   ?rm  )r!  r  rm  )r   r   r*   r   rr   r   numpyr   rm   r   r   )r   r  r   r   controlZs         r   test_filled_with_nested_dtypez-TestMaskedArray.test_filled_with_nested_dtypez  s=   *sdC[4+$>?@;,#[1Axx{((K5VDT7#v}}Q((FF+1S6<<@T7# HHNN1ekk+K*LMN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 )
Nro  r  FrA  rH  r   )r   rB  F_CONTIGUOUSr   )r   r   ro   r9  r*   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   rr   r   r   r   s      r   test_optinfo_propagationz(TestMaskedArray.test_optinfo_propagation  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   ru  keyr   )r   r   r   Try  )r   r)  rr   r   r)   r   rn   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(DE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   rr   r   r>   )r   
fancydtyper   r  t_2d0s        r   test_fancy_printoptionsz'TestMaskedArray.test_fancy_printoptions  s    XXSzC3*sEl1K+LMN
m]3&4%' 3SY( 1'6'8#&#( $)+>+?+A#(#* $<= >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  rm  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-   rr   r   r   )r   r  r   r   r  s        r   test_flatten_structured_arrayz-TestMaskedArray.test_flatten_structured_array  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   rR   ro   r  r>   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   r4  r  rB  )r   r>   ro   r  rR   rr   r=   )r   r  r   r  r  s        r   test_mvoid_getitemz"TestMaskedArray.test_mvoid_getitem  s!   *sCj)'6*&&1A%' aD
1e$%adAcF^V,QsVQaD
1e$%!#& !QqT1 Ayk!%u/0 235 	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   r>   rr   r   r=   )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  rm  r   r   r   r   z(1, 1)z-X-z(1, -X-)r   rC  )r   r  z(1,))	r   r   rr   r   r=   rG   _displayset_displayra  )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   r1  r   r   z([1, --, 3],)r   r   r   r   FT)r   rO  rm  r4  z([[1, --], [--, 4]],)r?  r  )r   rO  )r   rO  z(--, 2)r   z([[1, --], [--, 4]], 1.0)r  )Tr  )r   i4,i4z(--, (--, 1)))r>   ro   r   ra  r   )r   t_mat_2dt_0dt_nes        r   test_mvoid_multidim_printz)TestMaskedArray.test_mvoid_multidim_print+  s    9,#7"9!:(@'B#5"68 	DG/0T!W01 QFQF#3"5!6%*DMD%=#A"C!D#7"8: 	DG 778T!W!889&"/#/">@ 	DG	)*T!W*+QFQF#3Q"7!8%*DMD%=#A5"I!J#7#u"FH 	DG ;;<T!W!<<=+"7!8#/"@B 	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   )r>   rR  ro   r   r   r   r   )r   mx1mx2rK  s       r   test_object_with_arrayz&TestMaskedArray.test_object_with_arrayO  s    B4tf-B8$3*E4=G11S !r!uzzSXX-./r!uzz"#1

1A"r   c                     t        g dg d      }t        d      5 }t        j                  t              5  t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r  r   z.npy)suffix)r>   r{   r   r  NotImplementedErrorr   save)r   r   paths      r   2test_maskedarray_tofile_raises_notimplementederrorzBTestMaskedArray.test_maskedarray_tofile_raises_notimplementederror[  sS    )*>? V$23b! 4 %$33 %$s"   A,A A, A)	%A,,A5N)?r  r  r  r   r   r   r   r   r   r   r   r   r   r   r  r  r  r)  r.  r4  r>  rC  rL  rO  rV  ri  rv   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.  r7  r=  r@  rD  rF  rM  rU  rY  r_  r   r   r   r~   r~      sW   8	$	3"$ (I@*)+/5,	)
%F(32**9)0'd$ &FC &FCP$6
1("/D
L+*.=,	>5'"%2(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ej2                  j5                  dd      ej2                  j5                  dg dg dg dg      ej2                  j5                  dddg      d                      Zej2                  j5                  d d!d"g      d#        Zd$ Zd% Zd& Zd' Z d( Z!d) Z"d* Z#d+ Z$d, Z%d- Z&d. Z'd/ Z(d0 Z)d1 Z*ej2                  j5                  d2d3d4g      ej2                  j5                  d5dd6g      d7               Z+ej2                  j5                  d2d3d4g      ej2                  j5                  d5dd6g      d8               Z,ej2                  j5                  d9e-e.:      ej2                  j5                  d;e-e.:      ej2                  j5                  d5dd<g      d=                      Z/ej2                  j5                  d>e0jb                  e0jd                  g      d?        Z3ej2                  j5                  d>e0jb                  e0jh                  g      d@        Z5ej2                  j5                  d9e-e.:      ej2                  j5                  d;e-e.:      ej2                  j5                  d5dd<g      dA                      Z6ej2                  j5                  d9e-e.:      ej2                  j5                  d;e-e.:      ej2                  j5                  d5dd<g      ej2                  j5                  d>e0jn                  e0jd                  e0jp                  e0jh                  g      dB                             Z9ej2                  j5                  d>e0jn                  e0jd                  e0jp                  e0jh                  g      ej2                  j5                  d5ddCg      dD               Z:dE Z;dF Z<dG Z=dH Z>y)I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   rE  r%   rG  )
r   r   r   r>   rl   r   r   geterr
err_statusseterrr   s              r   r   z&TestMaskedArrayArithmetic.setup_methodg  s    HHb"b#rCxRsBBOP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   rg  rf  r  s    r   teardown_methodz)TestMaskedArrayArithmetic.teardown_methodx      
		$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   r>   rr   r^   r   r   r   rf   rQ   r%   )r   r   r   r   r   r   r   r   r   r   r   a2da2dmr   s                 r   test_basic_arithmeticz/TestMaskedArrayArithmetic.test_basic_arithmetic{  sa   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   rn  r   r   )r   r   r   )r   r   r   r  r  )r   r   r`   rr   r   r   r   r   r   s       r   test_divide_on_different_shapesz9TestMaskedArrayArithmetic.test_divide_on_different_shapes  s    1E"1E"EQ78QVVi34$'
N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   ro   r  r   )r   nar   s      r   test_mixed_arithmeticz/TestMaskedArrayArithmetic.test_mixed_arithmetic  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   rr   r0   )r   r|  r   s      r   test_limits_arithmeticz0TestMaskedArrayArithmetic.test_limits_arithmetic  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   ro   r   rK   rN   )r   r   s     r    test_masked_singleton_arithmeticz:TestMaskedArrayArithmetic.test_masked_singleton_arithmetic  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   ro   r=   rr   r  s     r   test_masked_singleton_equalityz8TestMaskedArrayArithmetic.test_masked_singleton_equality  s\    )),1v%&1v%&aeqj5)aeqj4(r   c                 \   t        ddg      }|t        z  }t        |j                  |j                         t        |j                  ddg       |d   t        z  }t        |t        u        |t        z   }t        |j                  |j                         t        |j                  ddg       y )Nr   r   Tr   )r>   r=   rr   r`   r   ro   r*  s      r   %test_arithmetic_with_masked_singletonz?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton  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)r>   r=   rr   r`   r   r*  s      r   5test_arithmetic_with_masked_singleton_on_1d_singletonzOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singleton  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   rC  r   )r   rr   r*   r}  r   r`   r   )r   r   r   s      r   test_scalar_arithmeticz0TestMaskedArrayArithmetic.test_scalar_arithmetic  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   rr   r   r    r!   ra   rb   ri   rj   re   r   r8   r9   r)   r   r   r   r   r   r   r(   rT   r6   r1   r7   r2   r   r   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&j)5b2g+>?RXXa"q&jd3U2R<T5RS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                     t        j                  t         j                  j                        t         j                  j                  u sJ y r   )r   re   r   r=   r  s    r   test_basic_ufuncs_maskedz2TestMaskedArrayArithmetic.test_basic_ufuncs_masked  s)    wwruu||$44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   rm  r   rz  )rr   r"   r   ro   r   rb  r   intpr^   r  r   r/   rS   rx   r   )r   ottr  s      r   test_count_funcz)TestMaskedArrayArithmetic.test_count_func
  s   Qa!Qaqc*+$<8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?  )rr   r"   r  s    r   test_count_on_python_builtinsz7TestMaskedArrayArithmetic.test_count_on_python_builtins#  s    Qi()Qf&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   r[  r   r   r   )r   r   r[  r   r   r   r   r   r  rz  )r   r   r\   rr   rJ   rK   r   rM   rN   r   r=   rl   r6   r1   ro   r^   )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 )Nrm  )	r   rU   rN   ro   r  r   rr   rW   rK   )r   r   aminimumamaximums       r   test_minimummaximum_funcz2TestMaskedArrayArithmetic.test_minimummaximum_funcA  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   rK   r   rr   r   s      r   test_minmax_reducez,TestMaskedArrayArithmetic.test_minmax_reduceS  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   rM   rJ   r   r   r{  outr  )r   r   r   roundr   uniformr`   getattrr  r   corer&   r   r	   r   ro   fill)r   r   r   funcnamenpfuncmafuncnoutresults           r   test_minmax_funcs_with_outputz7TestMaskedArrayArithmetic.test_minmax_funcs_with_outputY  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   r`   rr   rJ   ro   r=   rM   ptpr   )r   _r   r   s       r   test_minmax_methodsz-TestMaskedArrayArithmetic.test_minmax_methodsp  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   r>   r   float16rs  float64
longdouble	complex64
complex128clongdoublerr   rJ   rM   rr  r{  )r   r   r   an10r   r   float_dtypesfloat_dtyper   r   cmaxs              r   test_minmax_dtypesz,TestMaskedArrayArithmetic.test_minmax_dtypes  s   HHb"b#rCxRsBBOP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*, , (,K?i +-B;y#9:;y#9:rvv{BFFRK"&&2FY$/1B;w|#<=;rvv{#;<66B"**!5!9!999D$
!Q8<<>4%GGGq	A7;;=EEE -r   r   bBiIqQr   )FFFTT)FFFTF)FFFFTr{  Nr   c                    t        j                  |      }t        j                  ddd|j                  |j                  ggdz        j                  |      }t        j                  |gdz        }t        ||      }t        |j                  |      ||    j                  |             t        |j	                  |      ||    j	                  |             y )Nr   r   r   r   )	r   iinfor   rM   rJ   r   r   r>   rq   )r   r   r   r{  r  r   masked_as          r   test_minmax_intsz*TestMaskedArrayArithmetic.test_minmax_ints  s     HHq"c599eii89A=>EEeLzz4&1*%-8<<-q$x||D/AB8<<-q$x||D/ABr   	time_typezM8[s]zm8[s]c                     d }t        j                  g d|      }t        j                  g d|      }t        j                  g d|      }|||g}g d}|D ]  } |||        y )Nc                 :   t        | |      }| t        j                  |t                  j	                         }| t        j                  |t                  j                         }t        |j	                         |       t        |j                         |       y )Nr   r   )r>   r   r   r  rM   rJ   rq   )arrr   
masked_arrexpected_minexpected_maxs        r   minmax_with_maskzKTestMaskedArrayArithmetic.test_minmax_time_dtypes.<locals>.minmax_with_mask  sr    %c5JT ::;??ALT ::;??ALz~~/>z~~/>r   )
r   r   r   r   r  r   r   r   l r   )
NaTr   r  r   r   r  r   r   r   r   )
r  r  r  r   r   r  r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r(  )	r   r  r  rc  rd  re  x_testr<  r   s	            r   test_minmax_time_dtypesz1TestMaskedArrayArithmetic.test_minmax_time_dtypes  s`    	? XXASXX<INXX@	Rb"*AQ" 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   rz  r   r   )r   rr   r   r   r   
accumulaterg   r   r*   prodrY   r`   r   r   r   s               r   test_addsumprodz)TestMaskedArrayArithmetic.test_addsumprod  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   r1        @r   r   r   r   r$  r      rl  r   rr   r   r   r   r   r   r   r  s        r   test_binops_d2Dz)TestMaskedArrayArithmetic.test_binops_d2D  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   r1  r  r   gUUUUUU?r   r   g?r   rn  rl  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   r>   rr   r   r   s      r   test_noshrinkingz*TestMaskedArrayArithmetic.test_noshrinking2  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   rr   true_divider   r`   r   r<  s     r   test_ufunc_nomaskz+TestMaskedArrayArithmetic.test_ufunc_nomaskC  s7    EEKKR^^Aq)..44b9r   c                 |    t         j                  j                  g ddd      }t        |j                  g d       y )N)r   rn  @      ?Fr  r  )r   r   rH   rr   r   r  s     r   test_noshink_on_creationz2TestMaskedArrayArithmetic.test_noshink_on_creationI  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   rr   rP   r   r   r<   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   test_modz"TestMaskedArrayArithmetic.test_modN  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   r=   r^   rr   rk   rh   r4   r*   rW   r   rR  ro   )r   r   r   r0  s       r   test_TakeTransposeInnerOuterz6TestMaskedArrayArithmetic.test_TakeTransposeInnerOuterY  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   rr   r  r*   r   r   r  )r   r   s     r   test_imag_realz(TestMaskedArrayArithmetic.test_imag_realm  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  )rg   r  varstdrJ   rM   r  meanr   r0  r  r   r   r   r  r^   r=   r  r&   r   r  ro   rr   r   )r   r   funclistr  r  xmmethoutputr  s           r   test_methods_with_outputz2TestMaskedArrayArithmetic.test_methods_with_outputw  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  rm  r  r  r  TFr   r  r  r  r  r  r   r   r   r   r   r   r  r  r   r  r   r   rr   r   r   ro   r1  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  rm  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  rm  r   )r  r  r  rP  r  r   TTF)r   r   ro   r   r   r   r   rU   r   rq   rr   )r   r   eqneexpected_masks        r   %test_eq_ne_structured_with_non_maskedz?TestMaskedArrayArithmetic.test_eq_ne_structured_with_non_masked  s    */w@!&&[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 )NrP  r?  r  r  r  r  r  2i4r   r   r   )r   r   rR   r  r   r   r   rr   r%  r  r   )r   rU  r   ma1r1r   ma2r2eq_expectednameel_by_elne_expecteds               r   test_eq_ne_structured_extraz5TestMaskedArrayArithmetic.test_eq_ne_structured_extra  s    XXgfB7fB7fB7fB79B ''+&C%Bxxb1V2.V&;V&;= ggk*XXe_!Rxnn.R2X{3R2X{3SBY4R3Y4SCZ5=?XXFXTBtH40XFU848<<>L!Rxnn.R2X{3R2X{3SBY4R3Y4SCZ5=?XXFXTBtH40XFU848<<>L-=9& G Gs   
H73H<rU  SUr  r  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   r1  TFr   rr   r   r   ro   r1  r   rU  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_strings6  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_numericV  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   r^   ro   r   r`   rr   rm   r  )r   r0  r   r   r  s        r   test_eq_broadcast_with_unmaskedz9TestMaskedArrayArithmetic.test_eq_broadcast_with_unmaskedw  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  rl  r$  r[  r   )r   ro   r   r`   rS   )r   r0  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 r7  )r   rr   r   r   r   ro   r1  )r   r0  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   r1  )r<  r   r   )r>   rr   r   )r   r0  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   )rz   r  r  r   rr   r   r=   r  s      r   test_eq_with_Nonez+TestMaskedArrayArithmetic.test_eq_with_None  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   rr   r=   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   rr   r   r   )r   r   r   r   s       r   test_eq_different_dimensionsz6TestMaskedArrayArithmetic.test_eq_different_dimensions  s    Aq6A'1a&1a&)*88aVaV,-/B"HDeU^&*E]%4 5eT]&+T]%4 5/r   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   )r>   r   rJ  r8   rr   r   )r   r   r  r   s       r   test_numpyarithmeticz.TestMaskedArrayArithmetic.test_numpyarithmetic  s    )@266!9bA$35 1vT7#TYY-QVV_-vvayT7#TYY-QVV_-r   )?r  r  r  r   rk  rq  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   markparametrizer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r(  num_dtsnum_idsr/  operatorr  ltr2  gtr5  r8  leger:  r=  r?  rA  rC  rG  r   r   r   rb  rb  d  s    5"%!:F5$25&)
,'&58542'
627$$.#,(FT [[Wh/[[V)**& 
 [[VdBZ0C 1 0C [[[7G*<=# >#&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   rb  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_maskTr  r  r   r   rK  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   rZ  r   r   (   r   r   )r   r   r   r   r   )r   r   r   r   r\  r^  r   r     )r   r   r  r   r   )r   r   r  r^  r\  r   )r   r   r   r   r   r  )r   r   r   r   r   )r   r   r   r   r   r  r   r  )r   r   r   r   r   r   r  )r   r:   r   rr   r   r   ro   r2  rS   r=   soften_maskharden_maskr   r*   )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   rX  TrY  r  r   r   r   )r  r   r   r   r   )r   r:   r   rr   r   r   r   r~  r<  ra  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   r`  rr   r_  r   s      r   test_hardmask_oncemore_yayz4TestMaskedArrayAttributes.test_hardmask_oncemore_yayh  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   r=   rr   r   rS   
_smallmaskrm   r  s     r   test_smallmaskz(TestMaskedArrayAttributes.test_smallmaskv  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_maskrr   r   rS   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   r=   r  rr   r`   )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   rb  )r   rm   r   r   r   ra  rr   rx   r  r  r   r   rS   )r   r<  r  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  rV  rc  rf  ri  rl  ro  r}  r  r   r   r   rR  rR    s+    )51n2:
)%<,r   rR  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   rr   r#   rx   r-  )r   r  fvals      r   test_check_on_scalarz&TestFillingValues.test_check_on_scalar  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  r  )r  )gr'  )r  r     ???r   r   r   r   r  r  )r@  r  rH  r`   r   6e)r  )r   r   r  r  r   r   ro   r  r   rr   itemr#   r   r   rR  )r   r  r  r  fill_vals        r   test_check_on_fieldsz&TestFillingValues.test_check_on_fields  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   r  r   )
r   r)  updater   rr   r   r1  r#   r   r   r   s      r   test_fillvalue_conversionz+TestFillingValues.test_fillvalue_conversion		  s    $%	

9j12!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   )r#   r   r   r   rr   )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   r#   r   r   rr   )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   r#   rr   r   )r   rU  r  s      r   test_default_fill_value_voidz.TestFillingValues.test_default_fill_value_void5	  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  r1  )r   r   r   r  r   r  )r   r   )r   r   r   r   r       8@s   999r   )r[  r'  )r[  r  r[  r  )r   r   r  )r>   rr   _fill_valuer   r   r   r1  r  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   rz   r  r  rr   r  r1  )r   r  r  	subfieldss       r   test_subarray_fillvaluez)TestFillingValues.test_subarray_fillvalueR	  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   rm  r`  r3  zint, float, floatr  r!  )r   r   r  r  r   r   r   r#   rr   r   r   r>   r1  r   )r   r  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  Yr  z<M8[]z<m8[)r  
datetime64r#   r   r   testingrr   timedelta64)r   timecoder  r   s       r   !test_fillvalue_datetime_timedeltaz3TestFillingValues.test_fillvalue_datetime_timedelta|	  s    
2H&&uh7G%ekk&82Cc2I&JKDJJ##D'2''x8G%ekk&82Cc2I&JKDJJ##D'22r   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   rs  )r   r   r   r  r  r  r  r   r   r   )r   r   r1  rr   r   r#   rO   rL   r   r   r   s      r   test_extremum_fill_valuez*TestFillingValues.test_extremum_fill_value	  s   ;,scT3K$+E%FGI||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   ru  r   r   r   )r   r   r  rO   rr   r   fullrL   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  r1  r   r   )r   r  r  )r   r  r   r   )r   r   r   r   r   rr   r  r   r  r1  r#   )r   r  r   aar0  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   r1  r   r   r   r   r   r   )r   r   r   rJ  r   r&   r`   r   r1  r  ro   r  rr   r#   )r   r  adtyper   r   r  s         r   (test_fillvalue_implicit_structured_arrayz:TestFillingValues.test_fillvalue_implicit_structured_array	  s    uu5%.('; 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   )r&   rr   r1  rU   r   rm   complexr3   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   r`   r  )r&   rr   r`   rU   r   rm   r  r  s     r   test_shape_argumentz%TestFillingValues.test_shape_argument	  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  )rb  r   r  )rb  r1  r   r  )	r   r   int64r  ro   r1  r   r   int32r*  s      r   test_fillvalue_in_viewz(TestFillingValues.test_fillvalue_in_view	  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,)3Ur  r   s   spamr!  eggs)r&   rr   r1  r#   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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r    sc    B -1^60
#M
40	,1>3:0	JG&4'
%((TEr   r  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   rE  rd  )r   r   r   r   re  rf  rg  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 ri  rj  r  s    r   rk  zTestUfuncs.teardown_method$
  rl  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)*re   r8   r9   r)   r   ra   r    ri   r   r   r   rb   r!   rj   arcsinhr   arctanhr   fabsnegativefloorceillogical_notr   rf   rQ   r%   r  floor_divide	remainderfmodhypotr   r(   rT   r7   r2   r6   r1   logical_and
logical_orlogical_xorr   )err_msg)r  umathAttributeErrorfromnumericr  r   r  r   ninrr   r*   rt   r   )r   r  ufmfargsurmrs          r   test_testUfuncRegressionz#TestUfuncs.test_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   rz  r   )
r   ro   r   rc   rr   rg   rY   r   r   r   r  s     r   test_reducezTestUfuncs.test_reduceE
  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   rl  r$  )r   r^   rI   rr   rJ   rM   ro   r   )r   r   amasks      r   test_minmaxzTestUfuncs.test_minmaxN
  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 )	NrE  r  r   r   r   r   r   r   r   r   r   r   )r>   r   re   rr   r   ro   r  r   )r   r   r   r  s       r   test_ndarray_maskzTestUfuncs.test_ndarray_maskY
  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__m
      r   c                      y)NMy rmulr   r  s     r   __rmul__zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__rmul__p
       r   N)r  r  r  __array_priority__r  r  r  s   r   MyClassr  j
  s    !"!5!5!9 !r   r  r  r  c                   "    e Zd ZdZd Zd Zd 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   __rtruediv__zJTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rtruediv__
  r  r   N)r  r  r  r  r  r  r%  r   r   r   MyClass2r  x
  s    !$ !!r   r&  r"  r   r$  )r>   rx   r-  rL  multruedivro   r  NotImplementedr   rQ   rW   __truediv__)r   r  mer&  me_toor   s        @r    test_treatment_of_NotImplementedz+TestUfuncs.test_treatment_of_NotImplementedc
  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   rJ  warningscatch_warningsfilterwarningsr)   r   re   r8   ri   r   r   r   r%   r   r  s     r   test_no_masked_nan_warningsz&TestUfuncs.test_no_masked_nan_warnings
  s     EEKKbffQFK3$$&##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   rI  r  rq   )r   r   XX2s       r   test_masked_array_underflowz&TestUfuncs.test_masked_array_underflow
  s^    IIaC EEKKN[[w'SBJJ))"a!e4 (''s   )A??BN)r  r  r  r   rk  r  r  r	  r  r-  r3  r:  r   r   r   r  r  
  s0    5%;<(	&8')R85r   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z 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   r=   intdatar   r   	floatdatar   	typecodes
othertypesr   rb  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@  r=   rr   rA  r   r}  ro   )r   r   r   r   r  id1s         r   test_inplace_addition_scalarz=TestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar
  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   int16r=   rr   r<   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 rw  )r@  rr   r   r   r   r   s       r   test_inplace_subtraction_scalarz@TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar
  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 rJ  rA  r   r   r   r=   rr   r<   rL  s         r   test_inplace_subtraction_arrayz?TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array
  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   )rA  rr   rO  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 rJ  rR  rL  s         r   !test_inplace_multiplication_arrayzBTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array
  rT  r   c                     | j                   \  }}}t        d      dz  }t        d      dz  }t        |d<   |dz  }t        ||       |dz  }t        ||       y )Nr   r   )r@  r   r=   rr   rO  s       r    test_inplace_division_scalar_intzATestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_int  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   )rA  rr   r   rU   rO  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   rR  rL  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   r>   rr   r   r   r   )r   r   r   r   r   r   r   r   s           r   test_inplace_division_miscz;TestMaskedArrayInPlaceArithmetic.test_inplace_division_misc#  s    Rb2gr2tS"b"EA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   rH  r   r   )r   r   r   r   r   r   r   r   r  r   s      r   test_datafriendly_addz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_add7  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   rH  r   r   )r   r   r   r   r  r   r  r   s      r   test_datafriendly_subz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_subM  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   rH  r   r   r   r   r   r]  r   )r   r\  r   r   r  r   s      r   test_datafriendly_mulz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_muld  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   rH  r   r   )r   r   r   r  )r   r  g      >@r   )r   r5  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  rH  r   rn  )r   ;f@r   )r   rl  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   rr   r   rS   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   ro  r   s      r   test_datafriendly_sub_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub_arrays  rq  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   ro  r   s      r   test_datafriendly_mul_arraysz=TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul_arrays  rq  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  r0  s     r   	<genexpr>zUTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type.<locals>.<genexpr>       B>aahhqk>   r   r   )rC  r0  r1  r2  rE  r=   rr   r   r   r   r   r0  s       @r   !test_inplace_addition_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type  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   rx  ry  s     r   r{  zTTestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type.<locals>.<genexpr>  r|  r}  r   r   r   
rC  r0  r1  r2  rE  r   r   r=   rr   r<   r   r   r   r   r<  r   r0  s         @r    test_inplace_addition_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type      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   rx  ry  s     r   r{  zXTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type.<locals>.<genexpr>  r|  r}  r   rC  r0  r1  r2  rE  rr   r~  s       @r   $test_inplace_subtraction_scalar_typezETestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type      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   rx  ry  s     r   r{  zWTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type.<locals>.<genexpr>  r|  r}  r   r   r   r  r  s         @r   #test_inplace_subtraction_array_typezDTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type  r  r  c           	      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   rx  ry  s     r   r{  z[TestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type.<locals>.<genexpr>  r|  r}  r   r  r~  s       @r   'test_inplace_multiplication_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type  r  r  c           	         | 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   rx  ry  s     r   r{  zZTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type.<locals>.<genexpr>  r|  r}  r   r   r   r  r  s         @r   &test_inplace_multiplication_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type  r  r  c                 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   rx  ry  s     r   r{  z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<genexpr>  r|  r}  r   r   r   Supported type  throwing TypeError)r   rB  r   rb  rC  r0  r1  r2  rE  r   r=   rr   r-  )r   r0  unsupportedr   r   r   msgs    `     r   'test_inplace_floor_division_scalar_typezHTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type  s    24i1HI1HArxx{''1HIA((*''0B4>>B
Ar2Q'!A$.Ba(1Q4/11!A$JA1Q4KB A& Q' +* ! J ! 1+A3.ABC+0S0+1 +*s0   &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   rx  ry  s     r   r{  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<genexpr>2  r|  r}  r   r   r   r   r  r  )r   rB  r   rb  rC  r0  r1  r2  rE  r   r   r=   rr   r<   r-  )	r   r0  r  r   r   r   r<  r   r  s	    `       r   &test_inplace_floor_division_array_typezGTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type+  s5    24i1HI1HArxx{''1HIA((*''0B4>>B
ArGG2Q'"1!GA1HB AF+ Q!V, 166 2Q!A$Y@ +* ! J" ! 1+A3.ABC+0S0+1 +*s1   &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   rx  ry  s     r   r{  zUTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type.<locals>.<genexpr>I  r|  r}  r   r   r   r   
stacklevelFailed on type=.r   )rC  rz   recordr  rE  r   r=   rr   DeprecationWarningr-  r0  warnr   
issubclassr   integerr   r8   )r   r  r   r   r   er0  s         @r   !test_inplace_division_scalar_typezBTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_typeC  sV   A"$

;'B4>>B
Ar2Q'!A$.Ba(1Q4/181IA A&8!A$JB Q' a, SWWqOA3a2HI SWWqOA3a2HI? %$ !* +I6 8MM#a&Q778
 +I6 8MM#a&Q7783 %$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   rx  ry  s     r   r{  zTTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type.<locals>.<genexpr>l  r|  r}  r   r   r   r   r  r   r   r  r  )rC  rz   r  r  rE  r   r   r=   rr   r  r-  r0  r  r   r<   r  r   r  r   r8   )	r   r  r   r   r   r<  r   r  r0  s	           @r    test_inplace_division_array_typezATestMaskedArrayInPlaceArithmetic.test_inplace_division_array_typeg  sn   A"$

;'B4>>B
ArGG2Q'"8FA AE*8!GB QU+ 166 2Q!A$Y@ a, SWWqOA3a2HI SWWqOA3a2HIE %$ !( +I6 8MM#a&Q778 +I6 8MM#a&Q7789 %$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   rH  r  r   rb  )rC  r0  r1  r2  r   rr   r   r   )r   r0  r   r   xx_rs        r   test_inplace_pow_typez6TestMaskedArrayInPlaceArithmetic.test_inplace_pow_type  s    A((*''0))1=!A$Y^)1ERWWdii0RWWdii0ad
QVVTYY/QVVTYY/ +* !**s   CC??D	N)!r  r  r  r   rH  rM  rP  rS  rV  rX  rZ  r\  r^  r`  rc  re  rh  rj  rm  rp  rs  ru  r  r  r  r  r  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   r^   r`   r   r   r   r8  XXr<  rK  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   rr   r   r   r   argmaxargminr   compressconjr   diagonalrg   rh   rk   r   r   r<  s      r   test_generic_methodsz+TestMaskedArrayMethods.test_generic_methods  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)r?   Fr   )r   r   r   ro   r   rr  r>   r=   r  int_rM   r   s      r   test_allclosez$TestMaskedArrayMethods.test_allclose  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?rn  r   r  r   r   r   r   r2  r   r   )r   r   r  r>   ro   r   r   rr   )r   r   r<  rK  mxbigmxsmalls         r   test_allanyz"TestMaskedArrayMethods.test_allany  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  )r&   r  r   ro   r   r=   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   rr   r  r  )r   r   r8  r  r<  rK  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   cliprr   r   r   )r   r   r<  rK  clippeds        r   	test_clipz TestMaskedArrayMethods.test_clip5  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  rr   r   r  s      r   test_clip_outz$TestMaskedArrayMethods.test_clip_outF  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  rH  r]  r\  r  rk  r   r      )r^  r\  r  rk  r   )r   r   r   rz  r   r^  r\  rk  )
r>   rr   r  r=   r   r   r1  r\   r   r   )r   r   	conditionr   r   s        r   test_compressz$TestMaskedArrayMethods.test_compressM  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   
compressedrr   r=   r   s      r   test_compressedz&TestMaskedArrayMethods.test_compressedl  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   rz  ))r   r;  z1.1)r   r<  z2.2)r   rs  z3.3r   r   r  r   )r   r   r>   rr   r   r1  r  r'   r`   r&   ro   r   r   r   r  r   datatyper   r   s       r   
test_emptyz!TestMaskedArrayMethods.test_emptyu  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   r>   rr   r   r1  r  rm   r`   rn   ro   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   r>   rr   r   r1  r  rU   r`   rV   ro   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   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   rl  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   )r   r:   r   ro   r=   rr   r>   rZ   r   r   rq   )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   )rm   r   rZ   ro   r=   rr   )r   r   r   s      r   test_put_nomaskz&TestMaskedArrayMethods.test_put_nomask  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   rX  r   Tr[  )r   r   r   r   r   rQ  )r   r   r   r   r   )r   r:   r   rZ   rr   r   re  s        r   test_put_hardmaskz(TestMaskedArrayMethods.test_put_hardmask  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  r^  r\  r  rk  )r   r   r   r   r   r   )r   r   r^  r   r   rk  )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r[   rr   r   r   r`  )r   r   rK  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 )NrQ  r   r   r   r   r   r   r   r   r]  r	  Fr  rm  r@  rA  r#  )r   r   r   r   )r   r\   rr   r   r`   r1  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   rB  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   rA  r   )r   r   )r   rB  Fr   )r   rU   r  r8  r   r   r9  fncr   r*   r   r\   rq   )r   rB  r&  r  r   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   rm  r  )r   r=   r^   rr   r`   r   r*  s      r   test_reshapez#TestMaskedArrayMethods.test_reshape3  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   FrY  )r   r   r   r   r   )r   r   r   r  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   rD  rd   rr   r   r   ro   r  sortedr   rS   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   r3  r4  )r   r   rD  r   rr   )r   r   r  computeds       r   test_stable_sortz'TestMaskedArrayMethods.test_stable_sortb  s4    $BHH5+,18,Xx(r   c                 ,   t        g dg dt        j                        }i ddiddiddiddd	ddd	fD ]]  }t        |fi |}|t	        |fi |   }t        |j                  |j                         t        |j                  |j                         _ y )
Nr/  r   r  rZ  TFr1  r   )r1  rZ  )r   r   rD  rd   r   rr   r   r   )r   r   kwargsr7  
argsortedxs        r   test_argsort_matches_sortz0TestMaskedArrayMethods.test_argsort_matches_sorth  s    ,\B!4(!5)$a(&'D9&'E:<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   r[  r   r  )r$  r   r[  r   )r   r   r$  )r   r   r[  r   rH  r   r  r   r4  r  r   r   r\  r   )r>   rd   rr   r   r=   r   r*   )r   r   amans       r   test_sort_2dz#TestMaskedArrayMethods.test_sort_2dv  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  rm  r   r   r  r  r?  )r  r  r  r  r  r  r  r  r  r4  )r  r?  rE  rm  r  r  r  )r  r  r  r  r  r  r  )r  r  r?  rE  rm  r  r  )r  r  r  r  r  r  r  FrY  r  r   )r   r   rd   rr   r   r   r   r  )r   r   	mask_last
mask_firstr   rU  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   rr   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)
r>   rr   squeezer   r   r   ro   r   r=   r   )r   r   r  arr_sqm_arrm_arr_sqs         r   test_squeezez#TestMaskedArrayMethods.test_squeeze  s    YK(T\\^Y/YKyk:T\\^Y/T\\^))95 hhuoVQsSY" qcU.==?,-X]]D)U4[!$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   r^   swapaxesrr   r`   )r   r   r<  r  r  	mXswapped
mXXswappeds          r   test_swapaxesz$TestMaskedArrayMethods.test_swapaxes  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  r^  r\  rX  )r   r   r   )r   r   r\  rH  r   r   r   r  r]  r  r   r   r   rz  r^  r\  rk  )r>   rr   rh   ro   r   r   r=   r   r   s     r   	test_takez TestMaskedArrayMethods.test_take  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)r\  r  %   r[  r  r   r   r   r  mode)r\  r  rY  )r  rY  r[  )rY  r[  r  )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   rr   r=   r   )r   r   indicesmindicesr   ctrls         r   test_take_masked_indicesz/TestMaskedArrayMethods.test_take_masked_indices  s2   HH()))A,tQw'"))A,q$w*??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   rl  )r$  r[  N   r   r   r   )r;  r<  rs  )rq  rr  rt  r   r   rz  r   r   ))r   r;  s   one)r   r<     two)NNNr?  r  r  r  r   r   )r   r   r   r=   tolistro   r`   rr   r   r   r   r   )r   r   xlistr_  r   r   s         r   test_tolistz"TestMaskedArrayMethods.test_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  rs  r   r   r   r   )r   r   rd  ro   r  r   genericr   )r   r   entryr  s       r   test_tolist_specialcasez.TestMaskedArrayMethods.test_tolist_specialcaseE  s    66"C:Sz*BCEJtRZZ889 ' 
 q	EJtRZZ889 ' r   c                 6   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        t        j                   d      dt        j                  j                  d                  |	      }t
        |g d<   |j                         }t        |d   |j                         t        |d   |j                         t        j                  d
      }t        t        t        t        j                   d      t        j                  j                  d      t        j                  j                  d                  |	      }t
        |g d<   |j                         }t        |d   |j                         t        |d   |j                         y )Nr   r   r   )r   r   r   r   r  r  r  ABCDEFGHIJKLMr   r3  )r   toflexrr   r   r   r=   r   r   r   r   r   r   r   r   r   rs   )r   r   r  r  s       r   test_toflexz"TestMaskedArrayMethods.test_toflexS  s   bzVG_djj1VG_djj1$]VG_djj1VG_djj1*lS%L9T#biim- iinnR02 3 "# %]VG_djj1VG_djj123T#biim iinnR0 iinnR02 3 "# %]VG_djj9VG_djj9r   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   rH  r   )r  r  )r   r   )r  r  r  r  r  r  )r   r.   rm  rr   r   r   r   r   r  s      r   test_fromflexz$TestMaskedArrayMethods.test_fromflexs  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 )
NrQ  rx  r   r   r   r   r   r   r   )r>   rr   r8  rk   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   rr   r8  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   r=   r8  rr   r   r   )r   r   xts      r   test_transpose_viewz*TestMaskedArrayMethods.test_transpose_view  sy    EEKKI./%%,,$SS455<<4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  rm  r   )r   r   rm   r=   r  rr   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  r`  r  r  r  r  r$  r   rH  rI  r+  r-  r8  r;  r?  rC  rH  rJ  rP  rU  rW  r`  rf  rj  rn  rp  rt  rw  rz  r}  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   rr  rr   r   r*   cumprod)r   r   r8  r  r<  rK  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  )rr  r  r   r   r0  r  r  )r   r   r  r  r   r  r  s          r   test_cumsumprod_with_outputz6TestMaskedArrayMathMethods.test_cumsumprod_with_output  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 r  )	r   r`   rr   r  r   r
  rm   r   r  )r   r   r8  r  r<  rK  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AffR1X0023DG qAffRU--/0DG 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)r>   rR  rr   ro   r   r*  s      r   test_add_objectz*TestMaskedArrayMathMethods.test_add_object  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   rz  r   rl  r[  )r>   rR  rr   rg   r  s     r   test_sum_objectz*TestMaskedArrayMathMethods.test_sum_object  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   rz  r   r   r  )r>   rR  rr   r  r  s     r   test_prod_objectz+TestMaskedArrayMathMethods.test_prod_object
  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   )r>   rR  rr   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)	r>   rr   r   r`   r   ro   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   rl  r   r   )g            r   )r   r  rn  r   rz  )r  r  r  )r  r  r  )r   r   r   rH  r+  r!  g      g      g      ?g      @r  r   r  r   r   r   r   )r>   r   r   r^   rp   r   r   r*   )r   r   mvals      r   	test_anomz$TestMaskedArrayMathMethods.test_anom  s"   1a00A6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   rz      r   r   Fr   )axis1axis2)r   r  rr   tracer
  rg   rp   r   r   r   r^   r   r>   )r   r   r8  r  r<  rK  r  r  r  r  r  mXdiagr  rN  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	"**1a3""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   r*   dotrp   ro   r   rS   r'   rR  )r   r   r8  r  r<  rK  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t]
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      )r>   r  rp   r*   r   rt  s       r   test_dot_shape_mismatchz2TestMaskedArrayMathMethods.test_dot_shape_mismatchV  s    1a&1a&)!Q!Q0@A1a&1a&)!Q!Q0@A1a&1a&)*	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]  r  r   Tr  r  r   r  r   rz  r  )r   rr   rb  r  r   r  r  r  r   r^   r&   r   ro   )r   foobars      r   test_varmean_nomaskz.TestMaskedArrayMathMethods.test_varmean_nomask_  s   L-L-T#((*%rzz2T#'')_bjj1
chhj(RWWT]::: BIIbM))&1>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 )	Nrz  r   r{  ddofr  r   r   r   r   
r   rp   r  r
  r  rr   r`   r  r   re   r   r   r8  r  r<  rK  r  r  r  r  r  mXvar0mXvar1r  s                 r   test_varstdz&TestMaskedArrayMathMethods.test_varstdo  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  r[  r   r  )r  r  )
r   r   r   r   r  ro   r=   rr   r   r  )r   r  moutr   
methodnamemethods         r   test_varstd_specialcasesz3TestMaskedArrayMathMethods.test_varstd_specialcases  s[    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 )
Nr  rH  r   r   r  r  r   r   r  )r   r  rr   r*   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 )
Nr[  r  r  )r   r   r$  r+  r  )r   r   r   )r   r   r$  r   )r   r^   r=   r   r$   rr   r   r   )r   r   r  r  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   rr   rg   r  rM   rJ   r  s     r   test_axis_methods_nomaskz3TestMaskedArrayMathMethods.test_axis_methods_nomask  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    @)r>   r   r  uint16rm   rr   r  r  s     r   test_mean_overflowz-TestMaskedArrayMathMethods.test_mean_overflow  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   ru  r   )prependr{  rz  r   r   r   r?   diffro   r   )r   r   r   a_prepdiff1r   diff2s          r   test_diff_with_prependz1TestMaskedArrayMathMethods.test_diff_with_prepend  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   )appendr{  rz  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_0  s>    ]]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~  r{  )r   r   r?   r  ro   r   )r   r   r  s      r   test_diff_with_n_0z-TestMaskedArrayMathMethods.test_diff_with_n_0  sK    EE7qAuuzz!qqz)q$'(r   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    s    <@:&*&/2++D"Q#061 =, & $ & $D
+#'(  45( 6(..$)r   r  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_method  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 )	Nrz  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    s    <@=r   r  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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-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   r>   r   r(  )r   r   r   r   r   r   r   s          r   r   z%TestMaskedArrayFunctions.setup_method>  sw    HHb"b#rCxRsBBOPHHJK11!"%!"%
% H	r   c                 ^    ddg}t        d|      }t        |ddg       t        |d   d       y )Nr   r   F)rI   rr   r*  s      r   test_masked_where_boolz/TestMaskedArrayFunctions.test_masked_where_boolH  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   rH  r  )r?   rr   r   rE   rU  s      r   test_masked_equal_wlistz0TestMaskedArrayFunctions.test_masked_equal_wlistN  sO    !QRRXXy)a#RRXXy)r   c                     g d}t        |d      }t        |j                  g d       t        |j                  d       y )Nr   r   rH  )r?   rr   r   r1  rU  s      r   test_masked_equal_fill_valuez5TestMaskedArrayFunctions.test_masked_equal_fill_valueW  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   r2  rQ  )r\  r\  r   r   r   )r   r=   rr   rI   r1   r@   r2   rA   r6   rC   r7   rD   rT   rE   r(   r?   r   s     r   test_masked_where_conditionz4TestMaskedArrayFunctions.test_masked_where_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   )rU   r   rm   r`   r
   rI   rr   )r   r  r  ctests       r   test_masked_where_odditiesz3TestMaskedArrayFunctions.test_masked_where_odditiesm  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   rx   
IndexErrorr?   rr   r   r  s      r   "test_masked_where_shape_constraintz;TestMaskedArrayFunctions.test_masked_where_shape_constraintt  sF    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   rE  )overr  r   )r   rm   rI  r   rI   rr   r   r   r%  r>   rU   )r   r   rA  s      r   test_masked_where_structuredz5TestMaskedArrayFunctions.test_masked_where_structured{  s     HHRl;<[[h' ##AcFQJ2B	 (
 	RWW]](("((..9RWEE&&rxx|RWWR[A	C ('s   'C11C:c                     t        j                  d      }t        j                  d      }t        t        t         j                  j
                  |dkD  |       y )Nr   r   r   )r   r   rx   r  r   rI   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   rF  r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )	rr   rB   r   r  rF   r   r   r?   rE   r  s    r   test_masked_otherfunctionsz3TestMaskedArrayFunctions.test_masked_otherfunctions  s    ]4a>1a8*	,^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   r1  r   )g333333?gffffff@r  gffffff@g@r   )g(\?gS㥛@g-@gʡE@gK@r  r  r  r   r  r   )r   rr   r  r'   r=   rl   ro   )r   r   r   r   r  r   s         r   
test_roundz#TestMaskedArrayFunctions.test_round  s    ?&(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   r0  r   )decimalsr  )r   r   r   r  r^   r=   r&   r   r  r  ro   rr   )r   r   r  r  s       r   test_round_with_outputz/TestMaskedArrayFunctions.test_round_with_output  s     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   r0  r  g    r   )	r   rr   r  ro   r=   r   r&   r   r  )r   r   r  s      r   test_round_with_scalarz/TestMaskedArrayFunctions.test_round_with_scalar  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   )r3   ro   r  r   rr   r   r  s     r   test_identityz&TestMaskedArrayFunctions.test_identity  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  )
rp   rX   ro   r=   r   rr   r   rS   r   r   )r   r   r   r   r   s        r   
test_powerz#TestMaskedArrayFunctions.test_power  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   r1  r   rH  r   rg  r+  )r   r     )r  iq     r  r   r   r   )r      r  )r   r   rr   r   )r   a2a2mb1b2b2mr_  r   s           r   test_power_with_broadcastingz5TestMaskedArrayFunctions.test_power_with_broadcasting  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  rF  zinvalid valuer  )r  r  r  r  r  r   r  r  r   r  r  r   )r   r   r   r>   r   rl   rr   r   r=   r   r*   rI  r   r   RuntimeWarningr   r   r   )
r   r   r   r   r   r   r   r   tmpixms
             r   
test_wherez#TestMaskedArrayFunctions.test_where  s    HHb"b#rCxRsBBOP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 E ) #'3'QFGQWWcii(	 ED )(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   r>   r   rr   r   rl   )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   rl  r[  )r   r=   rl   ro   r   rr   r  s       r   test_where_with_masked_choicez6TestMaskedArrayFunctions.test_where_with_masked_choiceC  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   r\  r  )r\  r\  r\  r   r   )r\  r   r   r\  r\  )	r   r=   rl   rr   ro   r   r*   r/   rS   )r   r   r  r   r   cmr   s          r    test_where_with_masked_conditionz9TestMaskedArrayFunctions.test_where_with_masked_conditionY  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  rs  rl   r   result_typerr   )r   r   r   r   r  s        r   test_where_typez(TestMaskedArrayFunctions.test_where_typev  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 )Nr[  r   r   )r   r   r^   rm   rl   rr   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   rl   rr   )r   rU  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   rl   r=   rI   rr   r   )r   rU  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   rR  rr  rJ  r   r  r-  r   masked_invalidr  s     r   test_masked_invalid_errorz2TestMaskedArrayFunctions.test_masked_invalid_error  sc    IIav&vv!vv!]]9!DFEE  #F F F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   rJ  rr  )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   Seriesr7    s    E5r   r;  )FTT)r   r   r3  rq   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]  ry  )	r   r   r   r   rS   r3  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   rb  r  r  r     r     r^  r  r  !   r   r   r   r   r  r  r  r   )r   r   r   r   r  rZ  wrap)r  r   r  r   r   r   r   r   r   )r\  r   r  r\  r0  r   r   r   r   r   r	  )r   rr   r   r   )r   choiceschosenindices_s       r   test_choosez$TestMaskedArrayFunctions.test_choose  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@  rA  rB  rE  r   r   rG  r  rH  rJ  r   rI  )r[  r  )r\  r  r  r\  r0  rK  r   r	  )r  r  r  r  )	r&   r   r   rr   r   ro   r   r  r   )r   rL  r  rM  rN  s        r   test_choose_with_outz-TestMaskedArrayFunctions.test_choose_with_out  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#  rA  )r   r   r  )
r   r=   r^   rr   r`   ro   r9  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   r9  r:  )r   r  )r9  r  )r:  r  )r  r   r   r   )	r   r;   rr   r  ro   r   r   r   r  )r   ntyper   r  	base_type
base_mtypesub_types          r   test_make_mask_descrz-TestMaskedArrayFunctions.test_make_mask_descr  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   rP  TFzcopy=%s, shrink=%s, dtype=%s)r   r  r   )r:   rr   r   r
   r   r   r  r   ro   r  void	itertoolsrY   rS   )r   r   r   mdtypebdtypetest2boolsdtypes	msgformatcpyshrrU  r  s                r   test_make_maskz'TestMaskedArrayFunctions.test_make_mask5  sV    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CLCbFSCCC6M9S"~#=> D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        ||	      |
       t        j                  ddg      }t        ||      t        u sJ 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  r9  r:  r  r  r   r  r  )r  r   r   r<   rS   rr   r  )r   r  r   r   r  r  	othertyper   r  bmaskcntrlr   s               r   test_mask_orz%TestMaskedArrayFunctions.test_mask_ore  s   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HHeU^$q!}&&&  		s   .F! !	F-,F-c                 J   t        g dg d      }t        g dg d      }t        g dg dgg dg dg      }t        ||      sJ t        ||d      rJ t        ||      sJ t        ||      sJ t        ||d      sJ t        ||      sJ t        ||d      rJ y )	Nr   r  r   r   r  r  Fr  )r   r   rt  s       r   test_allequalz&TestMaskedArrayFunctions.test_allequal  s    )),)),9i(	9/EF1~~AqU3331~~ 1~~1///1~~AqU3333r   c                    t        j                  g dt              }t        t	        |      |       t        j                  ddgdt        fdt        fg      }t	        |      }t        j                  g dt              }t        ||       dt        fddt        fd	t        fgfg}d
dg}t        j                  ||      }t	        |      }t        j                  g dt              }t        ||       y )NrH  r   r  r  r   r   r0  r9  r:  rf  r  )r   r   r   r   r   r   )r   r   r  rr   r,   )r   r   r   r  r\  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   rm  r   )r   r   r   rr   r^   )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$  r\  )TFTTrh  r   rz  )r   r   r`   r   r   r  rr   )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  rv        r   r  r   r  c                       e Zd Zy)3TestMaskedArrayFunctions.test_compressed.<locals>.MNrw  r   r   r   r  rz    rx  r   r  c                       e Zd Zd Zy)rz  c                      y)Nrv  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>.M  s    r   rv  )
r   r   r   r
  ro   rb  r   rr   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!qc
+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   rl  r   r   r  rZ  samevalid)r   r   r   r   rl  r   F)r[  propagate_maskr  )r   r   r   r   )r   r   r   r   )r  )r   r   r   r   r   T)r   r   r   r   r   )r?   r   r   r   r   convolverr   )r   r   r   r  r   s        r   test_convolvez&TestMaskedArrayFunctions.test_convolve  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   rH  skipifrw   r   r"  r$  r'  r*  r,  r/  r1  r4  r<  rI  r>  rO  rQ  r-  rX  rd  rj  rl  rn  rp  r  r  r  r   r   r   r  r  ;  s   *'( #@C@&" ,"$&2(
.*+@ [[(FG) H)B1 ,,:$+	+	-$; [[VdE]3	? 4	?0.=,4,3\.?` 'D4"$$,$"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        |||            ||	      }||||d
| _        y )NrQ  )r;  r<  rs  ru  rw  )rq  rr  threefourfiver   r   rz  r  r1  r  )baser   ddtyper\  )r   r   r  r   r   r   r   )r   ilistflistslistr  r\  r   r  s           r   r   zTestMaskedFields.setup_method	  sn    )7*sElL9+T{S$K8T#eUE23$fM!46VT	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 )Nr  r\  r   FTrX  )r   rS   r   rs   r   r   rm   r`   r=   rU   r   )r   r  r\  r   s       r   test_set_records_masksz'TestMaskedFields.test_set_records_masks  s    yy 8$	TZZ$**F)KL	TZZ6)JK	TZZ$**F)KL	TZZ6)JK#	TZZXX/&J/Q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 )Nr  r   r   r  r   r   )r   r   r   r   r   r<  rs  ru  rw  r  )   pirc  s   three   four   fiver   r   rr   r   r   r   r   r   r  base_abase_bbase_cs        r   test_set_record_elementz(TestMaskedFields.test_set_record_element&  s    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 )Nr  r   r   r  r   r   )r   r   r   r   r   ru  rw  r  )r  r  r  r  r  r  r  s        r   test_set_record_slicez&TestMaskedFields.test_set_record_slice6  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 accessr  r   )r   r   r  rF  N)r   r=   rr   r   r   )r   r  r~  s      r   test_mask_elementz"TestMaskedFields.test_mask_elementE  sO    yy Q Aa7a

16 !r   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   r&   rr   r0   r   r   r=   )r   r  r   s      r   test_getmaskarrayz"TestMaskedFields.test_getmaskarrayN  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  rr   r\   r^   )r   iteratorr   r   controlmaskr   s         r   	test_viewzTestMaskedFields.test_viewZ  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.)rr   rb  rR   rs   r   r   r   )r  r   s    r   _test_indexz2TestMaskedFields.test_getitem.<locals>._test_indexq  s    adU+ 1QWWQZ8 1QWWQZ8a3i+6 1c6!''!S&/B 1c6!''!S&/Br   r   r   r  )
r   r   r   r   r   r   r   r   r  r   )r   r  r  r   s      @r   test_getitemzTestMaskedFields.test_getitemj  s    ,e-$s299>>"-ryy}=>fM$s#A#A C D"%tsDk :<	C 	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  )TTrC  r   r   )r   r   r   r   r   r   rr   r   r  rq  r   r`  )r   r  r   r\  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   rn  )r   r   r>   r   rq   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 )Nr  r  )r   rr   r   )r   recs     r   test_element_lenz!TestMaskedFields.test_element_len  s1    99V$CS3tyy':#;< %r   N)r  r  r  r   r  r  r  r  r  r  r  r  r  r  r   r   r   r  r    s<    U5&B >7
C< (&<;=r   r  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   rR  r7  r   ro   r  r   r=   rr   r   r   )r   r  rU  a0a1s        r   r  z"TestMaskedObjectArray.test_getitem  s   eekk4,'&/B!!"%B!!"%BCFCFCFbL!CFbL!Js6{K89Js6{K89CKOr)*CKOr)*UU\\CFCFbL!Js6{K89Js6{K89V))40CKOr)* Qb)Qd+VR--r2VR--t43 "r   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   r=   rR  ro   r   )r   r  s     r   test_nested_maz$TestMaskedObjectArray.test_nested_ma  s    eekk4,'hh~v6v>F 	ruu||+, 	A"%%,,&' AA"%%,,&'r   N)r  r  r  r  r  r   r   r   r  r    s    5:(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_method  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  ro   r  r   rr   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   ro   r  r   rr   r   rs   r   rL  r  s        r   test_view_to_typez TestMaskedView.test_view_to_type  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   ro   r  r   rr   r\   r   r  s        r   test_view_to_simple_dtypez(TestMaskedView.test_view_to_simple_dtype  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   rr   r   r   r%  ro   r  r   r  s        r   test_view_to_flexible_dtypez*TestMaskedView.test_view_to_flexible_dtype  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   ro   r  r   rr   r   r^   r  s        r   test_view_to_subdtypez$TestMaskedView.test_view_to_subdtype  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  rr   ro   r  r   r  s        r   test_view_to_dtype_and_typez*TestMaskedView.test_view_to_dtype_and_type  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    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   rz  .r   r  )r  __getattribute__r   r   rr   r  r   r   numpy_fma_fs        r   testaxisz4TestOptionalArgs.test_ndarrayfuncs.<locals>.testaxis1  s    ,,Q/G55))!,D aacrc2GAc3B3hKa4PQaf-c3B3h7 386:<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   r{  r  .r   r  )r  r  r   r   rr   r`   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SbSA 381tDFaft<S#2#XF 386DIKr   )rg   r  r  r  r  r  r   r   )r   r   )r   r   r^   rm   r  r   r   )r   r   r<  r   r  r  r  s          r   test_ndarrayfuncsz"TestOptionalArgs.test_ndarrayfuncs(  s     IIdO##I.HHRt$,,Y7!Q(EEKKK"	<	K  7AQ1Aq! 7  AQ1   YYr]""9-1Q6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   rz  r   )r   r   r  r   r  r  r  r  )r   r   r   )r   r   r   r  r  r   r   )r   r   r^   rm   r  r   r   rr   r"   rU   rx   r  r   rS   r   r=   )r   r   r<  r   s       r   
test_countzTestOptionalArgs.test_countW  sU    IIdO##I.HHRt$,,Y7!Q'
EEKKK"U1Xr"U11%q4<'78U16*AT
N;U1t,b4	?.BCU11t4a$y/6IJU16D91tI;NOU12&DL(89j%8i2 EEKKK'U1Xr"U11%q4<'78U16*AT
N;U1t,b4	?.BCRWWU1t45q9U11t4a$y/6IJU16D91tI;NOU12&DL(89j%8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   )ro   r   r   r=   r   r  r  MaskedConstantrr   r`   r/   rU   r  )r   r   vectorr  s       r   _do_add_testzTestMaskedConstant._do_add_test  s    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    q1ur   )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   r=   ro   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 )Nr=   )
rr   ra  r   r   r=   r   __new__r  r  ru   )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   r=   seekloadro   )r   r  r  r  r  s        r   test_picklezTestMaskedConstant.test_pickle  sz    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   )rr   r   r   r=   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   ro   r   r   r=   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   ro   r  r   r   r=   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   r=   rx   r  r	   rL  setitemr  r   r   r  r   )r   origr  s      r   test_immutablez!TestMaskedConstant.test_immutable  s    uu||beejj**H,<,<dBJj("2"2DIIr1E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 ri  )	r   rm   r   rx   r	   rL  r  r   r=   )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 ri  )r   rm   r   ry   r  rL  r  r   r=   ro   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   U10rN  r   rm   r   r=   rr   )r   a_us     r   test_coercion_unicodez(TestMaskedConstant.test_coercion_unicode  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_bytes  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>.SubNrw  r   r   r   Subr    rx  r   r  r=   )rb  r   r   r=   ro   ru   ra  )r   r  r   s      r   test_subclassz TestMaskedConstant.test_subclass  sU    	$ruu||$ 	 ESU
%&a(+r   c                     t        t        t        t        j                  j
                  dd       t        t        t        t        j                  j
                  dt        j                         y )Nr`   rH  r   )rx   r  setattrr   r   r=   r  r  s    r   test_attributes_readonlyz+TestMaskedConstant.test_attributes_readonly  s6    ngruu||WdKngruu||WbhhOr   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rH  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   )
rH   r   r   rK  rr   r   rr  r   ro   rS   )r   r  s     r   test_masked_valuesz)TestMaskedWhereAliases.test_masked_values  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    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   rr   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   Fry  )FFTFr   r   )TFTFr   r   r   )TFFFF)r   r   r   rI   rq   r   rr  r3  )r   r  s     r   test_masked_array_no_copyr     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   )FTFFFTrm  )r   r   r   r   Tr   Fr  rz  )	r   r   r?   r  rq   r   r   rq  rU   )r   r   r  expected_datar  s        r   test_append_masked_arrayr#    s!   
9A.A
9A.AUU\\!QF&M<Mv{{M2v{{M2
 A


6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  r4  rl  r   rz  r   r   r   r  )r   r   r?   rH   rx   r  r  newaxisr   r=   r^   rq   r   r   )r   r   r  r  s       r   #test_append_masked_array_along_axisr&  .  s    
9A.A
Y	2A6A *beellAqq9UU\\!BJJM*AA\6F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        )ro   r#   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  rH  r   r   r  )r   r   r   ro   r   s     r   test_ufunc_with_outputr*  A  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   r]  r  rH  )rb  r  rF  r  N)r   r   r   r   rr   r   r   )
r   r   r  r  out_posres_posout_kwres_kwout_tupres_tups
             r   test_ufunc_with_out_variedr2  I  s     	l+Al+A
9
-C\	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   Fry  )subokr#  rA  T)r   r4  )r   r   r4  )r   rB  r4  )r   r   r   r   r   r   r=   r   r%  r   rr   ro   rb  r   r9  f_contiguous)descrr   x_ax_fx_a2x_f2s         r   test_astype_mask_orderingr;  b  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   rU   r   ro   r1  r   rr   )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   r&   r   r   rr   r`   )rU  r   rK  s      r   test_fieldless_voidrA    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   rH  r   )r   r   r=   r   r   r`   rr   r  s     r   0test_mask_shape_assignment_does_not_break_maskedrC    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)rr   r   r   r  doc_note__doc__)r  expected_docs     r   test_doc_noterJ    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   ro  r   r    this should not appear in sourcer   )r   r   r   rR  r   r  r  r   sourcer  s     r   test_gh_22556rO    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   Tr4  r   Fr  r   r   )r   r   r>   r  r   r  rU   r`   r  r   r  )rN  r{  r  r   s       r   test_gh_21022rQ    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  rL  r   r   r  )
r   r   r   rR  r   r  extendr   rr   r   rM  s     r   test_deepcopy_2d_objrV    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   rR  r   r  rr   rM  s     r   test_deepcopy_0d_objrY    sG    UU[[!F[3F}}V$HHSM2r   c                  d   t         j                  j                  ddgddgd      } | j                  dk(  sJ | j                  j                  j
                  dk(  sJ t         j                  j                  | j                         t        j                  ddg      j                  d      d       y )	Nr   TFr  r   r  r  )strict)r   r   r   r1  r   r5  r  rq   r*   r   r   r  s    r   test_uint_fill_value_and_filledr\    s    
1a&4-x@A<<6!!!<<""c)))JJ!!	
BHHfa[)00:4 " Ir   )rH  
__author__r   r[  rL  r  sysr  r0  	functoolsr   r   r  r   numpy._core.fromnumeric_corer  numpy._core.umathr  numpy.ma.corer   numpy._utilsr   numpy.exceptionsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   numpy.ma.testutilsro   rp   rq   rr   rs   rt   ru   rv   numpy.testingrw   rx   ry   rz   r{   numpy.testing._private.utilsr|   r   r`  r  r   r  MaskedArrayFutureWarningr   rJ  charrK  r~   rb  rR  r  r  r<  r  r  r  r  r  r  r  r  r  r  r  r   r#  r&  r(  r*  r2  r;  rH  rI  r2  r?  rA  rC  r  r9  optimizerJ  rO  rQ  rV  rY  r\  )dt_s   0r   <module>rm     sA  
 )
     
      - - ! !     &i i i i i i i i i i i i i i i i i i i i i i i i i i iT	 	 	  9UU $5#6     ' '	HHMM**MO %8
8$7S288C=$7
8&
'w388w
'|" |"~q. q.hm, m,`OE OEd
S5 S5jm0 m0`I1 I1XX) X)v
2= 2=jIC ICX_= _=D-( -(`K3 K3\T@ T@nnP nPb, ,*-C3038
.2*@ W5W5EF G 6 6 $# CII&&*e  gLgL:	#"	Iir 9
's   M?M