o
    :‘ði€X ã                   @   s–  d Z dZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlZddlZddlZddlm  mZ ddlm  mZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ dd	lm Z  dd
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) ddlm*Z*m+Z+m,Z,m-Z-m.Z.m/Z/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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’ ej“Z“eƒ Z”e” •ej–j—j˜d¡ dd„ dD ƒZ™dd„ e™D ƒZšG dd„ dƒZ›G dd„ dƒZœG dd„ dƒZ�G dd„ dƒZžG dd„ dƒZŸG dd„ dƒZ G dd„ dƒZ¡G dd „ d ƒZ¢G d!d"„ d"ƒZ£G d#d$„ d$ƒZ¤G d%d&„ d&ƒZ¥G d'd(„ d(ƒZ¦G d)d*„ d*ƒZ§G d+d,„ d,ƒZ¨G d-d.„ d.ƒZ©G d/d0„ d0ƒZªd1d2„ Z«d3d4„ Z¬d5d6„ Z­d7d8„ Z®d9d:„ Z¯d;d<„ Z°d=d>„ Z±d?d@„ Z²ej³j´dAe™ešdB�ej³j´dCe™ešdB�ej³ µdD¡dEdF„ ƒƒƒZ¶dGdH„ Z·dIdJ„ Z¸ej³j¹ejºj»dKkdLdM�dNdO„ ƒZ¼dPdQ„ Z½dRdS„ Z¾dTdU„ Z¿dVdW„ ZÀdXdY„ ZÁdS )ZznTests suite for MaskedArray & subclassing.

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
zPierre GF Gerard-Marchanté    N)Úreduce)Ú	AxisError)Úassert_raisesÚassert_warnsÚsuppress_warningsÚIS_WASMÚtemppath)Úrequires_memory)Úndarray)Úasbytes)Úassert_Úassert_array_equalÚassert_equalÚassert_almost_equalÚassert_equal_recordsÚfail_if_equalÚassert_not_equalÚassert_mask_equal)iÚMAErrorÚ	MaskErrorÚMaskTypeÚMaskedArrayÚabsÚabsoluteÚaddÚallÚallcloseÚallequalÚalltrueÚangleÚanomÚarangeÚarccosÚarccoshÚarctan2ÚarcsinÚarctanÚargsortÚarrayÚasarrayÚchooseÚconcatenateÚ	conjugateÚcosÚcoshÚcountÚdefault_fill_valueÚdiagÚdivideÚdoc_noteÚemptyÚ
empty_likeÚequalÚexpÚflatten_maskÚfilledÚfix_invalidÚflatten_structured_arrayÚfromflexÚgetmaskÚgetmaskarrayÚgreaterÚgreater_equalÚidentityÚinnerÚisMaskedArrayÚlessÚ
less_equalÚlogÚlog10Ú	make_maskÚmake_mask_descrÚmask_orÚmaskedÚmasked_arrayÚmasked_equalÚmasked_greaterÚmasked_greater_equalÚmasked_insideÚmasked_lessÚmasked_less_equalÚmasked_not_equalÚmasked_outsideÚmasked_print_optionÚmasked_valuesÚmasked_whereÚmaxÚmaximumÚmaximum_fill_valueÚminÚminimumÚminimum_fill_valueÚmodÚmultiplyÚmvoidÚnomaskÚ	not_equalÚonesÚ	ones_likeÚouterÚpowerÚproductÚputÚputmaskÚravelÚrepeatÚreshapeÚresizeÚshapeÚsinÚsinhÚsometrueÚsortÚsqrtÚsubtractÚsumÚtakeÚtanÚtanhÚ	transposeÚwhereÚzerosÚ
zeros_likezGsetting an item on a masked array which has a shared mask will not copyc                 C   s   g | ]}t  |¡‘qS © )ÚnpÚdtype©Ú.0Údt_r}   r}   úW/root/parts/websockify/install/lib/python3.10/site-packages/numpy/ma/tests/test_core.pyÚ
<listcomp>@   ó    r„   z?bhilqBHILQefdgFDc                 C   s   g | ]}|j ‘qS r}   )Úcharr€   r}   r}   rƒ   r„   A   s    c                   @   sì  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zed1d2„ ƒZd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!d=d>„ Z"d?d@„ Z#dAdB„ Z$dCdD„ Z%dEdF„ Z&dGdH„ Z'dIdJ„ Z(dKdL„ Z)dMdN„ Z*dOdP„ Z+dQdR„ Z,dSdT„ Z-edUdV„ ƒZ.dWdX„ Z/dYdZ„ Z0d[d\„ Z1d]d^„ Z2d_d`„ Z3dadb„ Z4dcdd„ Z5dedf„ Z6dgdh„ Z7didj„ Z8dkdl„ Z9dmdn„ Z:dodp„ Z;dqdr„ Z<dsdt„ Z=dudv„ Z>dwS )xÚTestMaskedArrayc                 C   s´   t  ddddtd dddddddg¡}t  g d	¢¡}d}g d
¢}g d¢}t||d�}t||d�}t  g d¢¡}t|g d¢d�}	t  |d|¡}
| d¡ |||||||||	|
f
| _d S )Nç      ð?ç       Àç       @ç      @ç      @ç      $Àç      $@ç      @©rŒ   ç        r�   rŠ   ç      ð¿ç      Àr‘   r�   rŽ   rˆ   r‘   r�   ©é   r   r   r   r   r   r•   r   r   r   r   r   ©r   r   r•   r   r   r•   r•   r   r   r   r   r•   ©Úmask©ç      à¿r‘   ç      à?gš™™™™™é?©r   r•   r   r   ç@Œµx¯D)r~   r(   ÚpirL   rz   Úset_fill_valueÚd©ÚselfÚxÚyÚa10Úm1Úm2ÚxmÚymÚzÚzmÚxfr}   r}   rƒ   Úsetup_methodG   s   &
zTestMaskedArray.setup_methodc                 C   sl   t g d¢ƒ}t g d¢g d¢d�}t|jdƒ t|jdƒ t|jdƒ t|jdƒ t|jdƒ t|jdƒ d S )N©r•   é   é   ©r•   r   r•   r—   r•   r¯   ©r¯   )r(   r   ÚndimÚsizern   ©r¢   ÚaÚbr}   r}   rƒ   Útest_basicattributesV   s   z$TestMaskedArray.test_basicattributesc                 C   st   t dƒ}tt|ƒdƒ t ddd�}tt|ƒttƒƒ t ddd�}tt|ƒdƒ tddd�}t| ¡ j|jju ƒ d S )Nr   Ú0Tr—   Fr•   )	rL   r   ÚstrrU   r(   r   r9   r   Ú_data©r¢   r£   r}   r}   rƒ   Útest_basic0da   s   zTestMaskedArray.test_basic0dc              
   C   s   | j \
}}}}}}}}}	}
tt|ƒ ƒ tt|ƒƒ t||  d¡ ¡ ƒ t|j t¡|j t¡ƒ |j	}t
t 	|¡|ƒ t
|j	|ƒ t
|j|jƒ t
|	j|jƒ t
|jtdd„ |ƒƒ t
t|ƒt|ƒtdd„ |ƒ ƒ t||
ƒ tt|dƒ|
ƒ t||ƒ d S )Nr   c                 S   ó   | | S ©Nr}   ©r£   r¤   r}   r}   rƒ   Ú<lambda>x   ó    z.TestMaskedArray.test_basic1d.<locals>.<lambda>c                 S   ó   | | S r¿   r}   rÀ   r}   r}   rƒ   rÁ   y   rÂ   r�   )r    r   rC   r9   Úanyr   r˜   ÚastypeÚintrn   r   r~   r   r´   r   r/   Úlenr   ©r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   Úsr}   r}   rƒ   Útest_basic1dl   s    
zTestMaskedArray.test_basic1dc              
   C   sÔ   | j \
}}}}}}}}}	}
dD ]X}||_||_||_||_||
_tt|ƒ ƒ tt|ƒƒ tt|ƒ|ƒ t|j|ƒ t|jtdd„ |ƒƒ tt|ƒt|ƒtdd„ |ƒ ƒ t||
ƒ tt	|dƒ|
ƒ t||ƒ qd S )N)©é   r¯   )é   r°   c                 S   r¾   r¿   r}   rÀ   r}   r}   rƒ   rÁ   Œ   rÂ   z.TestMaskedArray.test_basic2d.<locals>.<lambda>c                 S   rÃ   r¿   r}   rÀ   r}   r}   rƒ   rÁ   �   rÂ   r�   )
r    rn   r   rC   r   r´   r   r/   rÇ   r9   rÈ   r}   r}   rƒ   Útest_basic2d~   s"    
ñzTestMaskedArray.test_basic2dc              
   C   s’   | j \
}}}}}}}}}	}
tt ||f¡t||fƒƒ tt ||f¡t||fƒƒ tt ||f¡t||fƒƒ tt |||f¡t|||fƒƒ d S r¿   )r    r   r~   r+   r¡   r}   r}   rƒ   Útest_concatenate_basic’   s
   $z&TestMaskedArray.test_concatenate_basicc              
   C   s  | j \
}}}}}}}}}	}
d}| |_ |_ |_|_t|jt ||¡ƒ t|jt ||¡ƒ t||fdƒ}tt ||fd¡|ƒ tt |j|jfd¡|jƒ tdƒ}t	t
dƒddgd�}t||fƒ}t|g d¢ƒ t|jg d¢ƒ t||fƒ}t|g d	¢ƒ t|jg d
¢ƒ d S )N©r¯   rÌ   r•   r°   FTr—   )r   r   r•   r•   )FFFT©r•   r•   r   r   )FTFF)r    rn   r   r˜   r~   rl   r+   Ú_maskr{   r(   rc   r   )r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   rÉ   Úxmymr}   r}   rƒ   Útest_concatenate_alongaxis›   s    z*TestMaskedArray.test_concatenate_alongaxisc                 C   sZ   t tttj d¡t d¡ƒƒdtfdtfgd�}t	|d d… |dd … gƒ}t
||ƒ d S )Né
   r¶   r·   ©r   é   )rL   ÚlistÚzipr~   ÚrandomÚrandr!   ÚfloatrÆ   r+   r   )r¢   ÚdataÚtestr}   r}   rƒ   Útest_concatenate_flexible°   s   ÿþz)TestMaskedArray.test_concatenate_flexiblec                 C   sJ   t g d¢g d¢dd�}t|jdƒ t|jg d¢gƒ t|jg d¢gƒ d S )N©r•   r°   r¯   ©r•   r   r   r°   )r˜   Úndmin©r•   r¯   )r(   r   rn   r»   rÒ   r¼   r}   r}   rƒ   Útest_creation_ndmin¹   s   z#TestMaskedArray.test_creation_ndminc                 C   sF   t g d¢ƒ}t|d< t |dtd�}t|j|jjƒ t|j|jjƒ d S )Nrà   éÿÿÿÿr°   )râ   r   )r(   rK   rÜ   r   rn   rÒ   ©r¢   r£   Úxxr}   r}   rƒ   Ú$test_creation_ndmin_from_maskedarrayÀ   s
   z4TestMaskedArray.test_creation_ndmin_from_maskedarrayc                 C   s  t dtd�}t|g d¢< t|ƒ}t|j|jƒ t|ƒ}t|j|jƒ t|g d¢d d�}t|j|jƒ tg d¢dd�}t|jg d	¢ƒ tg d¢d
d�}t|jg d¢ƒ tg d¢|jd
d�}t	t
 |j|j¡ƒ tg d¢|jdd�}t	t
 |j|j¡ ƒ tg d¢d d�}t|jg d¢ƒ d S )Né   rÖ   )r¯   rÍ   é   ©r•   r   r   r   rÍ   r—   rà   T©TTTF©FFF©r˜   Úcopy)r!   rÜ   rK   r   r   r˜   r   r(   rÒ   r   r~   Úmay_share_memory)r¢   rÝ   Údma_1Údma_2Údma_3r£   r¤   r}   r}   rƒ   Útest_creation_maskcreationÈ   s$   z*TestMaskedArray.test_creation_maskcreationc                 C   sP   t  t jj¡ t t¡� t  dt jjg¡ W d   ƒ d S 1 s!w   Y  d S )Nr�   )r~   r(   ÚmarK   ÚpytestÚwarnsÚUserWarning©r¢   r}   r}   rƒ   Ú*test_masked_singleton_array_creation_warnsÞ   s   "ûz:TestMaskedArray.test_masked_singleton_array_creation_warnsc                 C   sž   t t d¡g d¢d�}t ||d d d… fƒ}t|g d¢g d¢gƒ t|jg d¢g d¢gƒ t|_t ||d d d… fƒ}t|g d¢g d¢gƒ t|jtu ƒ d S )Nr×   ©r•   r   r   r   r   r—   rå   ©r   r•   r°   r¯   rÌ   )rÌ   r¯   r°   r•   r   ©r   r   r   r   r•   )r(   r~   r!   r   rÒ   ra   r˜   r   )r¢   r£   rÝ   r}   r}   rƒ   Ú'test_creation_with_list_of_maskedarraysé   s   z7TestMaskedArray.test_creation_with_list_of_maskedarraysc                 C   sà   t jjddgddgd�}t  d¡}t jj||gdd�}t|jddgddggƒ G d	d
„ d
ƒ}t jj|ƒ dgddgd�}tjt	dd�� t j|gt
d� W d   ƒ n1 sUw   Y  t j ||g¡}t|jddgddggƒ d S )Nr¶   r·   TFr—   r°   ÚU21rÖ   c                   @   ó   e Zd Zdd„ ZdS )zUTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast.<locals>.NotBoolc                 S   s   t dƒ‚)Núnot a bool!)Ú
ValueErrorrù   r}   r}   rƒ   Ú__bool__ÿ   s   z^TestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast.<locals>.NotBool.__bool__N)Ú__name__Ú
__module__Ú__qualname__r  r}   r}   r}   rƒ   ÚNotBoolþ   ó    r  r  ©Úmatch)r~   rõ   rL   r!   r)   r   r˜   rö   Úraisesr  Úbool)r¢   Ú
masked_strÚ
normal_intÚresr  Ú
masked_objr}   r}   rƒ   Ú4test_creation_with_list_of_maskedarrays_no_bool_castõ   s   
ÿzDTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_castc                 C   s0   t jdgddgddgddgdœd	�}t|ƒ d S )
N)ÚAr   Úf0Úf1ÚS4Úi8r   é   )ÚnamesÚformatsÚoffsetsrÖ   ©r~   r(   r¼   r}   r}   rƒ   Ú'test_creation_from_ndarray_with_padding	  s
   
þz7TestMaskedArray.test_creation_from_ndarray_with_paddingc                 C   sH   t jtdd�� tg d¢g d¢d� W d   ƒ d S 1 sw   Y  d S )Nzunexpected keyword argumentr	  rà   ©r   r•   r   )Úmaks)rö   r  Ú	TypeErrorr   rù   r}   r}   rƒ   Útest_unknown_keyword_parameter  s   "ÿz.TestMaskedArray.test_unknown_keyword_parameterc              
   C   sj   | j \
}}}}}}}}}	}
d|_d|_t|ƒ}t|j|jƒ t|j|jƒ t|j|jƒ t|j|jƒ d S )NéñØÿÿT)r    Ú
fill_valueÚ	_hardmaskr)   r   r»   rÒ   )r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   Úxmmr}   r}   rƒ   Útest_asarray  s   zTestMaskedArray.test_asarrayc                 C   s2   t  d¡j}t|jj ƒ t|ƒ}t|jjƒ d S )Nr¯   ©r~   ÚeyeÚTr   ÚflagsÚc_contiguousr)   ©r¢   ÚmÚnew_mr}   r}   rƒ   Útest_asarray_default_order  s   z*TestMaskedArray.test_asarray_default_orderc                 C   s6   t  d¡j}t|jj ƒ t|dd�}t|jjƒ d S )Nr¯   ÚC©Úorderr&  r+  r}   r}   rƒ   Útest_asarray_enforce_order%  s   z*TestMaskedArray.test_asarray_enforce_orderc                 C   sv   t jdd��+ tt jddgg d¢d�}t|ƒ}t|j|jddgƒ t|jg d¢ƒ W d   ƒ d S 1 s4w   Y  d S )NÚignore©Úinvalidr‘   rˆ   ©r   r   r•   r—   )rˆ   r‘   rˆ   )	r~   ÚerrstaterL   Únanr:   r   r»   r"  rÒ   )r¢   rÝ   Ú
data_fixedr}   r}   rƒ   Útest_fix_invalid-  s   "üz TestMaskedArray.test_fix_invalidc                 C   sH   t dƒ}t|d< tttƒdkƒ t|d tu ƒ tt|d dƒdƒ d S )NrÍ   r•   ú--r   )r!   rK   r   rº   r   r9   r¼   r}   r}   rƒ   Útest_maskedelement5  s
   z"TestMaskedArray.test_maskedelementc                 C   sd   t dtd�}d}||d< t|d |ƒ t|d |u ƒ dd l}|j ¡ }||d< t|d |u ƒ d S )Nr•   rÖ   ©r•   r°   r¯   rÌ   r×   r   )r4   Úobjectr   r   ÚdatetimeÚnow)r¢   r¶   r£   r?  Údtr}   r}   rƒ   Útest_set_element_as_object=  s   
z*TestMaskedArray.test_set_element_as_objectc                 C   sÄ  t  g d¢¡}t|g d¢d�}t|g d¢d�}t|ƒ}t|ƒ t|ƒ tt  |¡t|d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  d
¡d }t|dƒ}t||ƒ tt	tg d¢tƒ|jƒƒ td|jƒ tg d¢tƒ}t  g d¢t¡}|d }|d }tt|ƒtƒ tt|ƒtƒ t||ƒ t|dd… jdkƒ d S )N)r•   r°   rÌ   r¯   rë   r—   ©r   r•   r   r•   F©Úendwithr•   r   r°   r×   é	   éc   r¯   rœ   ©r•   r°   r¯   rÌ   )r   r•   r•   r   rˆ   r�   ©r   r   r   r•   r   )r•   Úhellor°   r¯   ©r   )r~   r(   rº   Úreprr   rr   r   ÚtyperK   r   r=   rL   r!   rV   r   r˜   r"  r>  rn   )r¢   Úx1Úx2Úx3Úx4Ús1Ús2r}   r}   rƒ   Útest_indexingJ  sZ   






zTestMaskedArray.test_indexingc                 C   s”   t j d¡ d¡}tdddƒddgf}t j d¡}t j|jd< |||< t jj|d< t jjd	t j	d
�}t jj
g d¢g d¢d�}||d< ||g d¢< d S )Né<   )rÍ   rÕ   r•   r×   r°   é   ©r°   r°   .r�   rÖ   )gCˆœDë ”pr•   r•   ©TFFr—   ©r   r•   r°   )r~   rõ   r!   rl   ÚsliceÚ
masked_allÚinfr»   rK   Úfloat32r(   )r¢   r£   ÚindexÚvaluer}   r}   rƒ   Útest_setitem_no_warning|  s   z'TestMaskedArray.test_setitem_no_warningc                 C   s  g d¢}t |ƒ}t |ƒ}t||u ƒ t |dd�}t||uƒ t d¡}t||d�}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||d�}t|jj|jkƒ t|j
j|jkƒ t|d tu ƒ d|d< t|d tuƒ t|j
j|jkƒ tt|jdƒƒ t||d	d
�}	t|	jj|jkƒ t|	j
j|jkƒ t|	d tu ƒ d|	d< t|	d tuƒ t|	j
j|jkƒ tt|	jdƒƒ t|d |d�}
tt|
ƒj|d ju ƒ tdƒ}t|d< t|dƒ}tt||gƒ|ƒ tt|ƒg d¢ƒ t|ddd�}t|g d¢ƒ t|ddd�}t||ƒ |jddd�}t||ƒ | dd¡}t||ƒ | ¡ }t|j|jƒ t|j
|j
ƒ tg d¢g d¢d�}t|ƒ}t|jjj	|jjj	ƒ t|j
jj	|j
jj	ƒ t|dd�}t|jjj	|jjj	ƒ t|j
jj	|j
jj	ƒ d S )N©r   r   r•   r   r   T©rï   r×   r—   r°   rF  r   r•   rî   rˆ   rÌ   )r  )r   r   r•   r   r   r   r•   r   )r°   r°   r°   r°   ©Úaxis)r   r   r•   r•   r°   r°   r¯   r¯   rà   r  )rH   r   r~   r!   r(   r   r»   Ú__array_interface__r   rÝ   rÒ   rK   r˜   r9   r   rm   r+   r=   rk   rï   rL   Úctypesr   )r¢   Únr,  r§   Úm3rN  Úy1Úy1aÚy2Úy2aÚy3rQ  Úy4Úy5Úy6Úy7Úy8Úy9r£   r¤   r}   r}   rƒ   Ú	test_copyŽ  sv   
ÿÿ



zTestMaskedArray.test_copyc                 C   s(   t jjddd�}| ¡ }t|jdƒ d S )Né+   Tr—   )r~   rõ   r(   rï   r   r˜   )r¢   r£   Úxcr}   r}   rƒ   Útest_copy_0d×  s   zTestMaskedArray.test_copy_0dc                 C   s0   t ttj g d¢¡ƒƒ t ttj d¡ƒƒ d S )Nrà   )r   rC   r~   rõ   rï   rù   r}   r}   rƒ   Útest_copy_on_python_builtinsÝ  s   z,TestMaskedArray.test_copy_on_python_builtinsc                 C   s@   t j g d¢¡}t j g d¢¡}|j}|j t|ƒ g d¢ƒ d S )Nrà   ©rÌ   r×   rÍ   )r~   rõ   r(   rï   r   )r¢   r¶   r·   Úa_copy_methodr}   r}   rƒ   Útest_copy_immutableâ  s
   z#TestMaskedArray.test_copy_immutablec                 C   s¸   ddl m} tg d¢g d¢d�}||ƒ}t|j|jƒ tt|jƒt|jƒƒ d|d< t|jg d¢ƒ t|jg d¢ƒ ||ƒ}t|j|jƒ d	|jd< t|jg d¢ƒ t|jg d¢ƒ d S )
Nr   )ÚdeepcopyrY  ©FTFr—   r•   ©r   r   r   r  F)rï   r|  r(   r   r˜   r   ÚidrÒ   )r¢   r|  r¶   Úcopiedr}   r}   rƒ   Útest_deepcopyê  s   
zTestMaskedArray.test_deepcopyc                 C   s€   t g d¢g d¢d�}tt|ƒdƒ tttƒdƒ tttdƒdƒ ttƒ� ttdƒ}W d   ƒ n1 s4w   Y  t|dƒ d S )NrY  r}  r—   ú[0 -- 2]r;  Ú z >5)r(   r   ÚformatrK   r   ÚFutureWarning)r¢   r¶   Úwith_format_stringr}   r}   rƒ   Útest_formatû  s   
ÿzTestMaskedArray.test_formatc                 C   s  t g d¢g d¢d�}tt|ƒdƒ tt|ƒt d¡ƒ tj d¡}tjj	|dd…< tt|ƒt d	¡ƒ tj d
¡}tt|ƒt d¡ƒ t g d¢g d¢gtj
d�}tjj	|d< tt|ƒt dt  d¡d ›d�¡ƒ tt|d d… ƒt dt  d¡d ›d�¡ƒ tt| t¡ƒt d¡ƒ d S )NrY  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à   ry  rÖ   ©r•   r•   zÊ            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=é?B r}   z,
              dtype=int8)z€            masked_array(data=[[1, 2, 3]],
                         mask=[[False, False, False]],
                   fill_value=z%,
                        dtype=int8)zÑ            masked_array(
              data=[[1, 2, 3],
                    [4, --, 6]],
              mask=[[False, False, False],
                    [False,  True, False]],
              fill_value=999999))r(   r   rº   rL  ÚtextwrapÚdedentr~   rõ   r!   rK   Úint8rÅ   rÆ   ©r¢   r¶   r}   r}   rƒ   Útest_str_repr
  sF   þ	þ	þ
úþýþ
þzTestMaskedArray.test_str_reprc              
   C   s˜   t  ¡ }t jdd� z8tg d¢g d¢d�}tt|ƒdƒ tt|ƒdƒ t j d¡}t jj	|d	d
…< tt|ƒdƒ W t jdi |¤Ž d S t jdi |¤Ž w )Nz1.13)ÚlegacyrY  r}  r—   r‚  zcmasked_array(data = [0 -- 2],
             mask = [False  True False],
       fill_value = 999999)
rˆ  r•   r‰  z�masked_array(data = [0 -- -- ..., 1997 1998 1999],
             mask = [False  True  True ..., False False False],
       fill_value = 999999)
r}   )
r~   Úget_printoptionsÚset_printoptionsr(   r   rº   rL  rõ   r!   rK   )r¢   Úoldoptsr¶   r}   r}   rƒ   Útest_str_repr_legacyP  s   þ&z$TestMaskedArray.test_str_repr_legacyc                 C   sH   d}t |ƒ}tj |¡}tjj|dd�}t||ƒ|ƒ t||ƒdƒ d S )Nu   cafÃ©Tr—   r;  )rM  r~   rõ   r(   r   )r¢   ÚuÚutypeÚ
arr_nomaskÚ
arr_maskedr}   r}   rƒ   Útest_0d_unicodee  s   zTestMaskedArray.test_0d_unicodec              	   C   sÄ   t tttfD ]Y}tdƒ |¡}d|_g d¢ddf}tdtj	d ƒD ]=}|D ]8}||_
t tj||d�¡}t|j|jƒ t|j|jƒ |tt fv rOt|jdƒ nt|j|dƒƒ t|j
|ƒ q%q!qd S )	NrÕ   éç  )
r   r   r   r•   r   r•   r   r•   r   r•   TFr°   r•   ©Úprotocol)rÆ   rÜ   rº   r>  r!   rÅ   r"  ÚrangeÚpickleÚHIGHEST_PROTOCOLr˜   ÚloadsÚdumpsr   rÒ   r»   r   )r¢   r   r¶   ÚmasksÚprotor˜   Ú	a_pickledr}   r}   rƒ   Útest_picklingo  s(   þ÷ÿøzTestMaskedArray.test_picklingc                 C   sŽ   t jddgdtfdtfgd� t j¡}t|ddgd�}td	tj	d
 ƒD ]!}t 
tj||d�¡}t|j|jƒ t||ƒ tt|jt jƒƒ q#d S )N)rˆ   r°   )r�   rÌ   r£   r¤   rÖ   ©TF©FTr—   r°   r•   r�  )r~   r(   rÜ   rÆ   ÚviewÚrecarrayrL   rŸ  r   r¡  r¢  r£  r   rÒ   r   Ú
isinstancer»   )r¢   r£   r¶   r¥  r¦  r}   r}   rƒ   Útest_pickling_subbaseclass…  s   
ÿÿ
üz*TestMaskedArray.test_pickling_subbaseclassc                 C   s`   t jj}tdtjd ƒD ]!}t tj||d�¡}t|j	|j	ƒ t|j
|j
ƒ t|j|jƒ qd S )Nr°   r•   r�  )r~   rõ   rK   rŸ  r   r¡  r¢  r£  r   Ú
_baseclassrÒ   r»   )r¢   Úmcr¥  Ú
mc_pickledr}   r}   rƒ   Útest_pickling_maskedconstant�  s   üz,TestMaskedArray.test_pickling_maskedconstantc                 C   sh   t ddgddgdtfdtfgd�}tdtjd	 ƒD ]}t tj||d
�¡}t|j	|j	ƒ t||ƒ qd S )N©r•   rˆ   ©r°   rŠ   ©r   r   ©r   r•   r¶   r·   ©r˜   r   r°   r•   r�  )
r(   rÆ   rÜ   rŸ  r   r¡  r¢  r£  r   rÒ   )r¢   r¶   r¥  r¦  r}   r}   rƒ   Útest_pickling_wstructured™  s   ÿýz)TestMaskedArray.test_pickling_wstructuredc                 C   sL   t dƒ}d|_|j}tdtjd ƒD ]}t tj||d�¡}t||ƒ qd S )NrÕ   )rå   r°   r°   r•   r�  )	r!   rn   r(  rŸ  r   r¡  r¢  r£  r   )r¢   r¶   r·   r¥  rÞ   r}   r}   rƒ   Útest_pickling_keepalignment¢  s   þz+TestMaskedArray.test_pickling_keepalignmentc                 C   sT   t g d¢ƒ}t g d¢g d¢d�}t|d jdƒ t|d jdƒ t|d jdƒ d S )Nr®   r±   r—   r   r}   r•   )r(   r   rn   rµ   r}   r}   rƒ   Útest_single_element_subscript«  s
   z-TestMaskedArray.test_single_element_subscriptc              	      s8  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ƒ �D}| td¡ t	t
 ttdgdgd�ƒ¡ƒ tg d¢g d¢d�‰ tt‡ fdd„ƒ t tˆ d	 ƒd
ƒ t	t
 tˆ d ƒ¡ƒ W d   ƒ n1 s}w   Y  tttˆ ƒ t tˆ d	 ƒdƒ tt‡ fdd„ƒ d S )Nr•   rˆ   z$Warning: converting a masked elementr—   rà   rá   c                      s   t ˆ ƒS r¿   )rÜ   r}   ©r¶   r}   rƒ   rÁ   À  rÂ   z/TestMaskedArray.test_topython.<locals>.<lambda>rå   r�   r   r¯   c                      s   t ˆ d ƒS ©Nr   )rÆ   r}   rº  r}   rƒ   rÁ   Å  s    )r   rÆ   r(   rÜ   r   r  r   Úfilterrø   r   r~   Úisnanr   )r¢   Úsupr}   rº  rƒ   Útest_topython³  s    ùzTestMaskedArray.test_topythonc                 C   sV  t dƒ}| dd¡}d|jd< t|d dkƒ |d|  }t|j|ƒ t|jd| ƒ t|t|ƒ jd| | ƒ d	|jd
< t dƒ}t|d< tt	|d ƒt	tƒkƒ |dk}tt
t|ttƒƒdkƒ ttt|ttƒƒ|jkƒ t||ƒ}t|j|ju ƒ t|d tu ƒ t|d tuƒ t|d tuƒ t|d tu ƒ t|d tu ƒ t||ƒ d S )NrŠ  rÌ   r×   é   ©r•   r   y              $@rÕ   ée   r‘   .r¯   r  r   rV  rF  )r!   rl   Úflatr   r   ÚrealÚimagr,   rK   rº   r/   rz   rn   rW   r   )r¢   r£   rª   Úcr}   r}   rƒ   Útest_oddfeatures_1Ç  s.   


z"TestMaskedArray.test_oddfeatures_1c                 C   s”   t g d¢ƒ}t g d¢ƒ}t|d< t||| ƒ}t|g d¢ƒ t|d< t||| ƒ}t|g d¢ƒ t|d tu ƒ t|d tuƒ t|d tu ƒ d S )N©rˆ   rŠ   r�   r‹   rŒ   ©r•   r•   r•   r   r   r°   ©rˆ   rŠ   r‘   r“   éûÿÿÿr   r•   )r(   rK   rz   r   r   ©r¢   r£   rÆ  rª   r}   r}   rƒ   Útest_oddfeatures_2ã  s   z"TestMaskedArray.test_oddfeatures_2c                 C   s:   t dgdd�}t dgƒ}|j}|| ||< t|dgƒ d S )NrÕ   Tr—   rŠ  )r(   r˜   r   )r¢   ÚatestÚbtestÚidxr}   r}   rƒ   Útest_oddfeatures_3ñ  s
   
z"TestMaskedArray.test_oddfeatures_3c                 C   s(   t jjddd�}t| d¡d dƒ d S )Nr•   ÚOrÖ   r£   r   )r~   rõ   r[  r   r9   r�  r}   r}   rƒ   Útest_filled_with_object_dtypeú  s   z-TestMaskedArray.test_filled_with_object_dtypec                 C   s|   t dgdtfddtfgd�}t|d< t| ¡ tj tdƒtdƒtdƒfg|jd�ƒ t|d< t| d	¡tj d
g|jd�ƒ d S )N©r•   r•   r•   Úi©rÉ   ú|S8ÚfrÖ   r   r¹   r‘   r•   )r•   Ú1rˆ   )	r(   rÆ   rÜ   rK   r   r9   r~   r0   r   )r¢   Úflexir}   r}   rƒ   Útest_filled_with_flexible_dtypeþ  s    ÿ
þþÿ
ÿz/TestMaskedArray.test_filled_with_flexible_dtypec                 C   sr   dt fdtfg}tddg|d�}| ¡ }tt|ƒdtdƒfƒ | d¡}tt|ƒd	ƒ d
|_tt| ¡ ƒdƒ d S )Nr¶   r·   ©r•   rŠ   rµ  r¶  r•   rˆ   ©rå   rå   )r•   rå   ©éüÿÿrß  )r•   rß  )rÆ   rÜ   r`   r9   r   Útupler0   r"  )r¢   Úndtyper¶   rÞ   r}   r}   rƒ   Útest_filled_with_mvoid  s   
z&TestMaskedArray.test_filled_with_mvoidc                 C   sâ   dt fddt fdt fgfg}tddgddg|d	�}| d
¡}tjddg|d�}t||ƒ |d  d
¡}tjddg|d jd�}t||ƒ tj dt dg¡¡}t|j	jt dddgdfg¡ƒ t|j
jt dddgdfg¡ƒ d S )Nr  ÚBÚBAÚBB©r•   r‹  ©r°   rW  ©r   rÁ  ©r   rµ  r¶  r   ©r•   rµ  )r°   ©r°   r   rÖ   rµ  rë  r°   )r  z(2,2)i1,(2,2)i1rW  )r  Úi1rW  )r  rì  rW  rW  )r  ú?rW  )r  rí  rW  )rÆ   r(   r9   r~   r   r   Únumpyrõ   r{   rÝ   r˜   )r¢   rá  r¶   rÞ   ÚcontrolÚZr}   r}   rƒ   Útest_filled_with_nested_dtype  s*   ÿ


ÿ
ÿÿÿz-TestMaskedArray.test_filled_with_nested_dtypec                 C   sP   t tj ddgdd�tj ddgdd�dd�}t|jd ƒ t| d	¡jd ƒ d S )
NrY  ry  ÚFr0  r6  rá   )r˜   r1  ÚF_CONTIGUOUSr   )r(   r~   r   r)  r9   r�  r}   r}   rƒ   Útest_filled_with_f_order-  s   þz(TestMaskedArray.test_filled_with_f_orderc                 C   sP   t g d¢td�}d|jd< | ¡ }t|jd dƒ d|jd< t|jd dƒ d S )Nrà   rÖ   ú???Úinfoz!!!)r(   rÜ   Ú_optinforï   r   ©r¢   r£   r¤   r}   r}   rƒ   Útest_optinfo_propagation5  s   

z(TestMaskedArray.test_optinfo_propagationc                 C   s²  t g d¢ƒ}d|jd< t|jd |dkjd ƒ t|jd |dkjd ƒ t|jd |dkjd ƒ t|jd |dkjd ƒ t|jd |dkjd ƒ t|jd |d jd ƒ t|jd |d jd ƒ t|jd |d jd ƒ t|jd |d jd ƒ t|jd |d d… jd ƒ t|jd |g d¢ jd ƒ t|jd t |¡jd ƒ t|jd t |¡jd ƒ t|jd t |dd�jd ƒ t|jd t |¡jd ƒ d S )N)r•   r°   r°   rÌ   r_  Úkeyr°   )r   r   r°   Trb  )r(   r÷  r   r~   r7   r   r|   r�  r}   r}   rƒ   Ú test_optinfo_forward_propagation>  s"   
 z0TestMaskedArray.test_optinfo_forward_propagationc                 C   s’   t  dtfddtfdtfgfg¡}tddgddg|d	�}d
}tt|ƒ|ƒ tdg d¢g d¢gdfdg d¢g d¢gdfdd�}d}tt|ƒ|ƒ d S )Nr£   r¤   ÚtrÉ   )r•   )r°   r�   )rÌ   )r×   ç      @rê  rè  r¶  z[(--, (2, --)) (4, (--, 6.0))]r   )r‘   r‘   r‘   r‘   F)TFT©FFTúint, (2,3)float, float©rÝ   r˜   r   z)(0, [[--, 0.0, --], [0.0, 0.0, --]], 0.0))r~   r   rÆ   rÜ   r(   r   rº   rL   )r¢   Ú
fancydtyperÞ   rï  Út_2d0r}   r}   rƒ   Útest_fancy_printoptionsQ  s*   "þ
ÿþÿþúz'TestMaskedArray.test_fancy_printoptionsc                 C   s´  dt fdtfg}tjddg|d�}t|ƒ}tjddgddggtd�}t||ƒ t|j|jƒ tddgdd	g|d
�}t|ƒ}tddgddggddgddggtd
�}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|d
�}t|ƒ}tg d¢g d¢gg d¢g d¢gtd
�}t||ƒ t|j|jƒ t|j|jƒ dt fdtfg}tjdgdgg|d�}t|ƒ}tjddggddgggtd�}t||ƒ t|j|jƒ d S )Nr¶   r·   r‹  rW  rÖ   rˆ   rŠ   rµ  rÁ  r¶  r   r•   ÚbaÚbb)r•   )r•   çš™™™™™ñ?)r°   )r°   çš™™™™™@rè  rê  )rˆ   rˆ   r  )rŠ   rŠ   r  r  r±   )rÆ   rÜ   r~   r(   r;   r   r   r˜   )r¢   rá  r¶   rÞ   rï  r}   r}   rƒ   Útest_flatten_structured_arraye  s>   
ÿ
ÿÿ

z-TestMaskedArray.test_flatten_structured_arrayc                 C   sœ   dt fdt fg}tjdg|d�d }t|ƒ}tt|tƒƒ tdgdg|d�d }tt|tƒƒ tddgddg|d�}t|jd |jd ƒ}tt|tƒƒ d S )	Nr¶   r·   ©r•   r°   rÖ   r   rÁ  r¶  r´  )	rÆ   r~   r(   r`   r   r¬  rL   r»   rÒ   )r¢   rá  r¶   rØ  r}   r}   rƒ   Útest_void0dˆ  s   zTestMaskedArray.test_void0dc                 C   s  dt fdt fg}tddgddg|d�}|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d�}t|d d |d d ƒ t|d d tddgddgdd�ƒ d S )Nr¶   r·   r	  rÐ   r´  rÁ  r¶  r   r‹  r°   r•   rÌ   TF)r  ú>i2©r°   r   r  r  )rÆ   rL   r   r¬  r`   r   rK   )r¢   rá  r¶   rØ  r  r}   r}   rƒ   Útest_mvoid_getitem–  s*   ÿ
þÿz"TestMaskedArray.test_mvoid_getitemc                 C   sV   dt fdt fg}tddgddg|d�}tt|d ƒd	d
gƒ tt|d	 ƒtdgƒ d S )Nr¶   r·   r	  rÐ   r´  rÁ  r¶  r   r•   r°   rÌ   )rÆ   rL   r   rØ   rK   )r¢   rá  r¶   r}   r}   rƒ   Útest_mvoid_iter¯  s   ÿzTestMaskedArray.test_mvoid_iterc              	   C   s²   t ddgdtfdtfgd�}tt|d ƒdƒ t|d d< tj}t d¡ ztt|d ƒd	ƒ tt|d ƒd	ƒ W t |¡ nt |¡ w t d
dgdgd�}tt|d ƒdƒ d S )Nr‹  rW  r¶   r·   rÖ   r   z(1, 1)z-X-z(1, -X-)©r•   r  )r¶   rÒ  z(1,))	r(   rÆ   r   rº   rK   rU   Ú_displayÚset_displayrL  )r¢   ÚmxÚini_displayr}   r}   rƒ   Útest_mvoid_print¹  s   
z TestMaskedArray.test_mvoid_printc                 C   sŠ  t g d¢fgg d¢fgg d¢fdgd�}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d�}tt|d ƒdkƒ tt|d ƒdkƒ t dgdgddgd�}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d�}tt|d ƒdkƒ tt|d ƒdkƒ t dgdgddgd�}tt|d ƒdkƒ tt|d ƒdkƒ d S )Nrà   r}  )rŒ  rŒ  rŒ  )r¶   ú<i4r²   )rÝ   r˜   r"  r   r   z([1, --, 3],)r•   r°   r¯   rÌ   FT)r¶   r  rW  r   z([[1, --], [--, 4]],)r	  r¨  )r¶   r  )r·   r  z(--, 2)r·   z([[1, --], [--, 4]], 1.0)ræ  )Tr¨  )r·   úi4,i4z(--, (--, 1)))rL   r   rº   rL  rÜ   )r¢   Út_maÚt_2dÚt_0dÚt_ner}   r}   rƒ   Útest_mvoid_multidim_printÊ  s>   
ýþþ
þþz)TestMaskedArray.test_mvoid_multidim_printc                 C   s¢   t dgdgd�}t ddgƒ}t ||gddgtd�}t|d |u ƒ t|d |uƒ tt |d j|jk¡ƒ tt |d j¡ƒ d	|d jd< t|d d	kƒ d S )
Nrˆ   Tr—   rŠ   Fr¶  r   r•   r‘   )rL   r>  r   r~   r   rÝ   r˜   )r¢   Úmx1Úmx2r  r}   r}   rƒ   Útest_object_with_arrayî  s   z&TestMaskedArray.test_object_with_arrayc              	   C   sŠ   t g d¢g d¢d�}tdd��,}t t¡� t ||¡ W d   ƒ n1 s&w   Y  W d   ƒ d S W d   ƒ d S 1 s>w   Y  d S )Nrà   r}  r—   z.npy)Úsuffix)rL   r   rö   r  ÚNotImplementedErrorr~   Úsave)r¢   r¨   Úpathr}   r}   rƒ   Ú2test_maskedarray_tofile_raises_notimplementederrorú  s   ÿÿ"ÿzBTestMaskedArray.test_maskedarray_tofile_raises_notimplementederrorN)?r  r  r  r­   r¸   r½   rÊ   rÎ   rÏ   rÔ   rß   rä   rè   rô   rú   rþ   r  r  r   r%  r.  r2  r:  r<  rB  rT  r`  Ú suppress_copy_mask_on_assignmentrt  rw  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  r  r  r  r#  r}   r}   r}   rƒ   r‡   D   s|    		
2
HF
			
	#
$r‡   c                
   @   sJ  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zej d+d,¡ej d-g d.¢g d/¢g d0¢g¡ej d1d2d3g¡d4d5„ ƒƒƒZej d6d7d8g¡d9d:„ ƒZd;d<„ Zd=d>„ Zd?d@„ ZdAdB„ Z dCdD„ Z!dEdF„ Z"dGdH„ Z#dIdJ„ Z$dKdL„ Z%dMdN„ Z&dOdP„ Z'dQdR„ Z(dSdT„ Z)dUdV„ Z*ej dWdXdYg¡ej dZd2d[g¡d\d]„ ƒƒZ+ej dWdXdYg¡ej dZd2d[g¡d^d_„ ƒƒZ,ejjd`e-e.da�ejjdbe-e.da�ej dZd2dcg¡ddde„ ƒƒƒZ/ej dfe0j1e0j2g¡dgdh„ ƒZ3ej dfe0j1e0j4g¡didj„ ƒZ5ejjd`e-e.da�ejjdbe-e.da�ej dZd2dcg¡dkdl„ ƒƒƒZ6ejjd`e-e.da�ejjdbe-e.da�ej dZd2dcg¡ej dfe0j7e0j2e0j8e0j4g¡dmdn„ ƒƒƒƒZ9ej dfe0j7e0j2e0j8e0j4g¡ej dZd2dog¡dpdq„ ƒƒZ:drds„ Z;dtdu„ Z<dvdw„ Z=dxdy„ Z>d2S )zÚTestMaskedArrayArithmeticc                 C   sÌ   t  ddddtd dddddddg¡}t  g d	¢¡}d}g d
¢}g d¢}t||d�}t||d�}t  g d¢¡}t|g d¢d�}	t  |d|¡}
| d¡ |||||||||	|
f
| _t  ¡ | _t j	ddd� d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r”   r–   r—   r™   rœ   r�   r3  ©r2   r5  )
r~   r(   rž   rL   rz   rŸ   r    ÚgeterrÚ
err_statusÚseterrr¡   r}   r}   rƒ   r­     s   &

z&TestMaskedArrayArithmetic.setup_methodc                 C   ó   t jdi | j¤Ž d S ©Nr}   ©r~   r)  r(  rù   r}   r}   rƒ   Úteardown_method  ó   z)TestMaskedArrayArithmetic.teardown_methodc              
   C   s>  | j \
}}}}}}}}}	}
tddgddggƒ}t|ddgddggƒ}t|| || ƒ t|| || ƒ t|| || ƒ dD ]Ý}| |¡}| |¡}| |¡}| |¡}|
 |¡}
t| | ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|| || ƒ t|d |d ƒ tt|ƒd t|ƒd ƒ t|| || ƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt 	||¡t	||ƒƒ tt 
||¡t
||ƒƒ q?d S )Nr•   r°   r   rÌ   ))rÀ  rË   )r°   rÍ   ç      @)r    r(   rL   r   rl   r   r~   r   rt   r_   r2   )r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   Úa2dÚa2dmrÉ   r}   r}   rƒ   Útest_basic_arithmetic  sB   




çz/TestMaskedArrayArithmetic.test_basic_arithmeticc                 C   sè   t dtd�}d|_t dtd�}|| }t|g d¢g d¢gƒ t|jg d¢g d¢gƒ ||d d d …f  }t|g d¢g d¢gƒ t|jg d¢g d¢gƒ t dtd�}||d d …d f  }t|g d	¢g d
¢gƒ t|jg d¢g d¢gƒ d S )NrÍ   rÖ   ©r°   r¯   r¯   )r’   rˆ   rˆ   )r’   r‹   r/  rá   r°   )r’   r’   r’   )r�   r‹   rŒ   rÔ  r~  )r!   rÜ   rn   r   r˜   ©r¢   r£   r¤   rª   r}   r}   rƒ   Útest_divide_on_different_shapes=  s   z9TestMaskedArrayArithmetic.test_divide_on_different_shapesc                 C   s>   t  dg¡}tdgƒ}tt|| tƒƒ tt|| tƒƒ d S ©Nr•   )r~   r(   r   r¬  r   )r¢   Únarõ   r}   r}   rƒ   Útest_mixed_arithmeticO  s   
z/TestMaskedArrayArithmetic.test_mixed_arithmeticc                 C   sN   t  t¡j}t|d| dgƒ}tt|d ƒg d¢ƒ ttd| ƒg d¢ƒ d S )Nrˆ   r‘   r°   r~  r±   )r~   ÚfinforÜ   Útinyr(   r   r>   )r¢   r:  r¶   r}   r}   rƒ   Útest_limits_arithmeticV  s   z0TestMaskedArrayArithmetic.test_limits_arithmeticc                 C   s\   t ddd�}tdt dƒ jƒ td| jƒ t| jƒ tt||ƒjƒ tt||ƒjƒ d S )Nr   r•   r—   )r(   r   r˜   rY   r\   )r¢   r¨   r}   r}   rƒ   Ú test_masked_singleton_arithmetic\  s   z:TestMaskedArrayArithmetic.test_masked_singleton_arithmeticc                 C   sd   t g d¢g d¢d�}t|d dktu ƒ t|d dktu ƒ t|d dkdƒ t|d dkdƒ d S )Nrà   ©r•   r•   r   r—   r   rå   FT)r(   r   rK   r   r�  r}   r}   rƒ   Útest_masked_singleton_equalityf  s
   z8TestMaskedArrayArithmetic.test_masked_singleton_equalityc                 C   st   t ddgƒ}|t }t|j|jƒ t|jddgƒ |d t }t|tu ƒ |t }t|j|jƒ t|jddgƒ d S )Nr•   r°   Tr   )rL   rK   r   rn   rÒ   r   rø  r}   r}   rƒ   Ú%test_arithmetic_with_masked_singletonn  s   z?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singletonc                 C   s2   t dgƒ}|t }t|j|jƒ t|jdgƒ d S )Nr•   T)rL   rK   r   rn   r˜   rø  r}   r}   rƒ   Ú5test_arithmetic_with_masked_singleton_on_1d_singletonz  s   
zOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singletonc                 C   sN   t ddd�}t| ¡ jj|jjƒ t dƒd }t|jdƒ t|jddgƒ d S )Nr   r—   r´  r‘   r  r•   )r(   r   r9   rf  rÝ   rn   r˜   )r¢   r£   r¨   r}   r}   rƒ   Útest_scalar_arithmetic�  s
   z0TestMaskedArrayArithmetic.test_scalar_arithmeticc              
   C   sN  | j \
}}}}}}}}}	}
tt |¡t|ƒƒ tt |¡t|ƒƒ tt |¡t|ƒƒ tt |¡t|ƒƒ tt |¡t|ƒƒ tt |¡t|ƒƒ tt 	t
|ƒ¡t	|ƒƒ tt t
|ƒ¡t|ƒƒ tt t
|ƒ¡t|ƒƒ tt |¡t|ƒƒ tt |¡t|	ƒƒ tt |¡t|	ƒƒ tt |¡t|	ƒƒ tt ||¡t||ƒƒ tt |¡t|ƒƒ tt |d|  ¡t|d|  ƒƒ ttj|d|  dd�t|d|  dd�ƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt ||¡t||ƒƒ tt |¡t|ƒƒ d S )Nù              ð?T)Údeg)r    r   r~   r-   r.   ro   rp   rw   rx   rs   r   rF   rG   r7   r%   r"   r&   r$   r   r   r6   rb   rD   r?   rE   r@   r,   r¡   r}   r}   rƒ   Útest_basic_ufuncs‰  s2   $,z+TestMaskedArrayArithmetic.test_basic_ufuncsc                 C   s   t  t jj¡t jju sJ ‚d S r¿   )r~   rs   rõ   rK   rù   r}   r}   rƒ   Útest_basic_ufuncs_masked¥  s   z2TestMaskedArrayArithmetic.test_basic_ufuncs_maskedc                 C   s  t dtdƒƒ t dtddgd�ƒ tg d¢g d¢d�}t|ƒ}t|jjtju ƒ t d|ƒ | d¡}t|ƒ}t|jjtju ƒ t d|ƒ t|dƒ}tt	|t
ƒƒ t ddg|ƒ tt|ƒtu ƒ tg d¢ƒ}t|dƒ}tt	|t
ƒƒ t|jjtju ƒ tt|jdd	� d S )
Nr•   r   r—   )r‘   rˆ   rŠ   r�   rë   r¯   rW  r°   rc  )r   r/   r(   r   r   rM  r~   Úintprl   r¬  r
   r=   ra   r   r   )r¢   Úottr  r}   r}   rƒ   Útest_count_func©  s&   




z)TestMaskedArrayArithmetic.test_count_funcc                 C   s$   t dtg d¢ƒƒ t dtdƒƒ d S )Nr¯   rà   r°   r	  )r   r/   rù   r}   r}   rƒ   Útest_count_on_python_builtinsÂ  s   z7TestMaskedArrayArithmetic.test_count_on_python_builtinsc              
   C   s@  | j \
}}}}}}}}}	}
t |¡}t|ƒ}tt|ƒt |¡ƒ tt|ƒt |¡ƒ ttg d¢g d¢ƒg d¢ƒ ttg d¢g d¢ƒg d¢ƒ t	dƒ}t	dƒd }t
|d< t
|d< tt||ƒtt||ƒ||ƒƒ tt||ƒtt||ƒ||ƒƒ tt |¡dkƒ tt |¡d	kƒ t	d	ƒ dd¡}t
|d
< ttj|d d�dƒ d S )Nrà   )rÌ   r   rF  ©r•   r   r¯   )rÌ   r°   rF  r×   r°   r¯   r   rÌ   rÝ  rc  )r    r~   rj   r   rX   rY   r   r[   r\   r!   rK   rz   rD   r?   r   rl   )r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   ÚxrÚxmrr}   r}   rƒ   Útest_minmax_funcÇ  s$   
z*TestMaskedArrayArithmetic.test_minmax_funcc                 C   s¾   t  d¡}t||ƒ}tt|tƒƒ t|t  ||¡ƒ t ||¡}tt|tƒƒ t|t j ||¡ƒ t||ƒ}tt|tƒƒ t|t  ||¡ƒ t ||¡}tt|tƒƒ t|t j ||¡ƒ d S )NrW  )	r~   rc   r\   r   r¬  r   r   re   rY   )r¢   r¶   ÚaminimumÚamaximumr}   r}   rƒ   Útest_minimummaximum_funcà  s   


z2TestMaskedArrayArithmetic.test_minimummaximum_funcc                 C   s.   t g d¢g d¢d�}tj |¡}t|dƒ d S )Nrà   rí   r—   r¯   )r(   r~   rY   r   r   rµ   r}   r}   rƒ   Útest_minmax_reduceò  s   z,TestMaskedArrayArithmetic.test_minmax_reducec              	   C   sÔ   t j d¡ ¡ }tt j ddd¡|d�}d|_dD ]N}tt |ƒ}ttj	j
|ƒ}t jdtd�}z	||d|d	�}W n	 ty@   Y nw t jdtd�}||d|d	�}t||u ƒ | d
¡ ||d|d	�}t||u ƒ qd S )NrÀ  r   rÕ   r—   rÐ   ©r[   rX   ©rÌ   rÖ   ©rd  Úoutrß  )r~   rÚ   rÛ   Úroundr(   Úuniformrn   Úgetattrrî  rõ   Úcorer4   rÆ   r   rÜ   r   Úfill)r¢   r˜   r¨   ÚfuncnameÚnpfuncÚmafuncÚnoutÚresultr}   r}   rƒ   Útest_minmax_funcs_with_outputø  s&   
ÿ
ðz7TestMaskedArrayArithmetic.test_minmax_funcs_with_outputc              
   C   sR  | j \
}}}}}}}}}}|jf|_t| ¡ dƒ t|d  ¡ tu ƒ t|d  d¡tu ƒ t|d  d¡tu ƒ t| ¡ dƒ t|d  ¡ tu ƒ t|d  d¡tu ƒ t|d  d¡tu ƒ t| ¡ dƒ t|d  ¡ tu ƒ t|d  d¡tu ƒ t|d  d¡tu ƒ t	g d¢dd�}t| ¡ tu ƒ t| ¡ tu ƒ t| ¡ tu ƒ d S )	NrÕ   r   rå   r�   ç      4@rà   Tr—   )
r    r´   rn   r   rX   r   rK   r[   Úptpr(   )r¢   Ú_r¨   r£   r}   r}   rƒ   Útest_minmax_methods  s$   
z-TestMaskedArrayArithmetic.test_minmax_methodsc                 C   s   t  ddddtd dddddddg¡}d}d}g d	¢}t||d
�}| d¡ t jt jt jt jt j	t j
t jg}|D ]}tt|||d� ¡ ||ƒƒ tt|||d� ¡ ||ƒƒ q8t| ¡ |ƒ t| ¡ |ƒ |d d… D ]}tt|||d� ¡ ||ƒƒ tt|||d� ¡ ||ƒƒ qk|dd … D ]}}tg d¢g d¢|d�}t| ¡ |dƒƒ t| ¡ |dƒƒ tt jd t jd t j d gg d¢|d�}	t|	 ¡ |t j d ƒƒ t|	 ¡ |t jd ƒƒ t jdt  t j¡j  }
t|
 dgddgd
� ¡ |
 ksüJ ‚t|
dgddgd
� ¡ |
k�sJ ‚q�d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r”   r—   r�   r¶  rÌ   éýÿÿÿ)ù@Œµx¯D      ð?y@Œµx¯D       Àù@Œµx¯D      ð¿r  rg  rf  y               @y              @rB  r   r•   )r~   r(   rž   rL   rŸ   Úfloat16r]  Úfloat64Ú
longdoubleÚ	complex64Ú
complex128Úclongdoubler   rX   r[   r\  r9  )r¢   r£   r¥   Úan10r¦   r¨   Úfloat_dtypesÚfloat_dtyper©   r«   Úcmaxr}   r}   rƒ   Útest_minmax_dtypes%  sP   &
ÿÿÿÿÿÿ$ÿ$$óz,TestMaskedArrayArithmetic.test_minmax_dtypesr   ÚbBiIqQr˜   )FFFTT)FFFTF)FFFFTrd  Nrå   c                 C   s†   t  |¡}t  ddd|j|jggd ¡ |¡}t  |gd ¡}t||d�}t| |¡||   |¡ƒ t| |¡||   |¡ƒ d S )Nr   rÕ   éöÿÿÿr°   r—   )	r~   Úiinfor(   r[   rX   rÅ   r)   rL   r   )r¢   r   r˜   rd  ru  r¶   Úmasked_ar}   r}   rƒ   Útest_minmax_intsO  s   
$ z*TestMaskedArrayArithmetic.test_minmax_intsÚ	time_typezM8[s]zm8[s]c           	      C   sh   dd„ }t jg d¢|d�}t jg d¢|d�}t jg d¢|d�}|||g}g d¢}|D ]}|||ƒ q*d S )Nc                 S   s\   t | |d�}| tj|td�   ¡ }| tj|td�   ¡ }t| ¡ |ƒ t| ¡ |ƒ d S )Nr—   rÖ   )rL   r~   r(   r  r[   rX   r   )Úarrr˜   Ú
masked_arrÚexpected_minÚexpected_maxr}   r}   rƒ   Úminmax_with_maskb  s
   zKTestMaskedArrayArithmetic.test_minmax_time_dtypes.<locals>.minmax_with_mask)
r•   r•   éþÿÿÿrÌ   r×   rt  rÕ   r•   r°   lûÿÿÿÿÿÿÿ rÖ   )
ÚNaTr•   r~  rÌ   r×   rt  rÕ   r•   r°   r¯   )
r  r  r~  rÌ   r×   rt  rÕ   r•   r°   r¯   )
r•   r   r   r   r   r   r•   r   r   r   r  )	r¢   rx  r}  rN  rO  rP  Úx_testr,  r£   r}   r}   rƒ   Útest_minmax_time_dtypes`  s   	
ÿz1TestMaskedArrayArithmetic.test_minmax_time_dtypesc              
   C   s¾  | j \
}}}}}}}}}	}
ttj |¡t |¡ƒ ttj |¡t |¡ƒ tdttdƒdd�ƒ tdttdƒdd�ƒ ttj|dd�t|dd�ƒ ttjt|dƒdd�t|dd�ƒ tt |d¡t|dƒƒ ttj	|dd�t
|dd�ƒ tt 	|d¡t
|dƒƒ ttj	t|dƒdd�t
|dd�ƒ d}| |_ |_ |_|_t|ƒdkrÝtt ||fd¡t||fdƒƒ ttj |d¡t |d¡ƒ tt |d¡t|dƒƒ tt 	|d¡t
|dƒƒ d S d S )NrÌ   r   rc  r•   rÐ   )r    r   r~   r   r   Ú
accumulateru   r(   r9   Úprodrg   rn   rÇ   r+   rÈ   r}   r}   rƒ   Útest_addsumprodt  s&   "" üz)TestMaskedArrayArithmetic.test_addsumprodc                 C   sþ  t dgdgdggdgdgdggd�}t ddgddgd	d
ggƒ}|| }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ || }t ddgddgd	d
ggddgddgddggd�}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d�}|| }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ || }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ d S )Nrˆ   rŠ   r�   FTr—   r‹   rŒ   rý  ç      @r   r•   r°   r¯   r  rÕ   é   rV  ©r(   r   rÝ   r˜   ©r¢   r¶   r·   rÞ   rï  r}   r}   rƒ   Útest_binops_d2D‰  óD   $ÿ
ÿ
ÿÿ
ÿ
z)TestMaskedArrayArithmetic.test_binops_d2Dc                 C   sþ  t dgdgdggdgdgdggd�}t ddgddgd	d
ggƒ}|| }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ || }t ddgddgd	d
ggddgddgddggd�}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d�}|| }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ || }t ddgddgddggddgddgddggd�}t||ƒ t|j|jƒ t|j|jƒ d S )Nrˆ   rŠ   r�   FTr—   r‹   rŒ   rý  r…  r›   gUUUUUUÕ?r   r•   gš™™™™™Ù?r¯   r/  rV  r‡  rˆ  r}   r}   rƒ   Útest_domained_binops_d2D­  rŠ  z2TestMaskedArrayArithmetic.test_domained_binops_d2Dc                 C   sz   t g d¢g d¢dd�}|d }t|jg d¢ƒ |d7 }t|jg d¢ƒ |d }t|jg d¢ƒ |d }t|jg d¢ƒ d S )N©rˆ   rŠ   r�   rí   F©r˜   Úshrinkr•   r~  rˆ   ©rL   r   r˜   rµ   r}   r}   rƒ   Útest_noshrinkingÑ  s   ÿz*TestMaskedArrayArithmetic.test_noshrinkingc                 C   s(   t j dg¡}tt  |d¡jjdƒ d S )Nr•   r×   r}   )r~   rõ   r(   r   Útrue_divider˜   rn   ©r¢   r,  r}   r}   rƒ   Útest_ufunc_nomaskâ  s   z+TestMaskedArrayArithmetic.test_ufunc_nomaskc                 C   s*   t jjg d¢ddd�}t|jg d¢ƒ d S )N)rˆ   r/  çÍÌÌÌÌÌ@ç      ø?F©rŽ  r~  )r~   rõ   rV   r   r˜   r�  r}   r}   rƒ   Útest_noshink_on_creationè  s   z2TestMaskedArrayArithmetic.test_noshink_on_creationc              
   C   s¢   | j \
}}}}}}}}}	}
tt||ƒt||ƒƒ t||ƒ}t|t ||¡ƒ t|jt|j|jƒƒ t||ƒ}t|t ||¡ƒ t|jtt|j|jƒ|dkƒƒ d S r»  )r    r   r^   r~   r˜   rJ   )r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   rÞ   r}   r}   rƒ   Útest_modí  s   

$z"TestMaskedArrayArithmetic.test_modc                 C   s  t dƒ}t  d¡}t|dd…< | ddd¡}| ddd¡}tt |d¡t|dƒƒ tt |dd¡t|ddƒƒ tt t|d	ƒt|d	ƒ¡t||ƒƒ tt 	t|d	ƒt|d	ƒ¡t	||ƒƒ t
g d
¢tƒ}t|d< t|g d¢ƒ}t|d	 dkƒ t|d dkƒ t|d dkƒ d S )Nré   r×   rÍ   r°   r¯   rÌ   ©r°   r   r•   r•   r   )Úabcr•   Údefr°   r¯   )r   r¯   rÌ   rš  )r!   r~   rK   rl   r   ry   rv   rB   r9   re   r(   r>  r   )r¢   r£   r¤   rü  r}   r}   rƒ   Útest_TakeTransposeInnerOuterø  s&   
ÿÿz6TestMaskedArrayArithmetic.test_TakeTransposeInnerOuterc                 C   sˆ   t ddgddgd�}t|jddgƒ t|j ¡ ddgƒ t|jj|jjjƒ t|jdd	gƒ t|j ¡ dd	gƒ t|jj|jjjƒ d S )
Ny      ð?      $@y      4@       @r•   r   r—   rÕ   r°   r�   rŠ  )r(   r   rÅ  r9   r   r»   rÄ  )r¢   rç   r}   r}   rƒ   Útest_imag_real  s   z(TestMaskedArrayArithmetic.test_imag_realc                 C   sÚ   t tj ddd¡ƒ dd¡}t |d d …df<  |d< |d< d}|D ]H}tt|ƒ}t||ƒ}tjdtd�}| 	d	¡ ||d|d
�}t
||u ƒ t||d|d
�ƒ tdtd�}|d|d
�}t
||u ƒ t
|d tu ƒ q"d S )Nr   rÕ   rÀ  r¯   rÌ   rÝ  )ru   rƒ  ÚvarÚstdrX   r[   rb  ÚmeanrÖ   r!  rT  ©r(   r~   rÚ   rW  rl   rK   rX  r4   rÜ   rZ  r   r   rÆ   )r¢   r¨   Úfunclistr[  r\  ÚxmmethÚoutputr_  r}   r}   rƒ   Útest_methods_with_output  s     


òz2TestMaskedArrayArithmetic.test_methods_with_outputc                 C   sø  dt fdt fg}tddgddg|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ƒ tddgddg|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ƒ tddgddg|d�}||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�}|d |k}t|jdd	gd	d	ggƒ t|jd	d	gd	dggƒ t|jdkƒ d S )Nr  rã  r‹  rW  rµ  r´  r¶  TFr   rÁ  rä  rå  ræ  rç  ©r¯   ©r¯   r¯   ©rÌ   ©rÌ   rÌ   rè  ré  ©r•   r´  ©rÆ   r(   r   rÝ   r˜   r   r"  ©r¢   rá  r¶   rÞ   r·   r}   r}   rƒ   Útest_eq_on_structured,  óJ   ÿÿýz/TestMaskedArrayArithmetic.test_eq_on_structuredc                 C   sø  dt fdt fg}tddgddg|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ƒ tddgddg|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ƒ tddgddg|d�}||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�}|d |k}t|jdd	gd	d	ggƒ t|jddgdd	ggƒ t|jd	kƒ d S )Nr  rã  r‹  rW  rµ  r´  r¶  FTr   rÁ  rä  rå  ræ  rç  r¦  r¨  rè  ré  rª  r«  r¬  r}   r}   rƒ   Útest_ne_on_structuredW  r®  z/TestMaskedArrayArithmetic.test_ne_on_structuredc                 C   sš   t g d¢g d¢dd�}||jk}|j|k}tt |¡ƒ tt |¡ ƒ |jt d|jj¡k}t	|j|ƒ t	|j|ƒ t
|jg d¢ƒ t	|j|j ƒ d S )N)r‹  rW  rÐ   )rµ  r´  r‹  r  r¶  r}   ©TTF)r(   rÝ   r   r~   r   rÄ   r˜   rc   r   r   r   )r¢   r¶   ÚeqÚneÚexpected_maskr}   r}   rƒ   Ú%test_eq_ne_structured_with_non_masked‚  s   ÿ

z?TestMaskedArrayArithmetic.test_eq_ne_structured_with_non_maskedc           	   	      s¤  t  d¡}tdd|d�tdd|d�tdd|d�tdd|d�fD ]°‰ ˆ  t¡}| d¡}t jd|d	�td|d	�tdd|d�td
d|d�fD ]Š‰ˆ t¡}| d¡}||k ¡ }tˆ ˆk|ƒ tˆˆ k|ƒ t|ˆk|ƒ tˆ |k|ƒ t||k|ƒ ‡ ‡fdd„|jD ƒ}tt|t	d	� ¡ |ƒ ||k 
¡ }tˆ ˆk|ƒ tˆˆ k|ƒ t|ˆk|ƒ tˆ |k|ƒ t||k|ƒ ‡ ‡fdd„|jD ƒ}tt|t	d	� 
¡ |ƒ qDqd S )Nr  r	  r´  r¶  rµ  rÁ  r‹  Ú2i4rÖ   ©r¯   r°   c                    s   g | ]
}ˆ | ˆ| k‘qS r}   r}   ©r�   Úname©r¦   r§   r}   rƒ   r„   ª  ó    zITestMaskedArrayArithmetic.test_eq_ne_structured_extra.<locals>.<listcomp>c                    s   g | ]
}ˆ | ˆ| k‘qS r}   r}   r·  r¹  r}   rƒ   r„   ²  rº  )r~   r   r`   rª  r   r(   r   r   r  r  rÄ   )	r¢   rA  Úma1Úr1Úma2Úr2Úeq_expectedÚel_by_elÚne_expectedr}   r¹  rƒ   Útest_eq_ne_structured_extra“  sB   
ý


ý

êúz5TestMaskedArrayArithmetic.test_eq_ne_structured_extrarA  ÚSÚUrZ  r  c                 C   sN  t ddg|ddg|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ƒ t ddg|ddg|d�}||k}t|jddgƒ t|jddgƒ t|jdkƒ |d |k}t|jddgƒ t|jddgƒ t|jdkƒ ||d k}t|jddgƒ t|jddgƒ t|jdkƒ d S )Nr¶   r·   r   r•   ©r   r˜   r"  TF©r(   r   rÝ   r˜   r   r"  ©r¢   rA  rZ  r¶   rÞ   r·   r}   r}   rƒ   Útest_eq_for_stringsµ  ó,   z-TestMaskedArrayArithmetic.test_eq_for_stringsc                 C   sN  t ddg|ddg|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ƒ t ddg|ddg|d�}||k}t|jddgƒ t|jddgƒ t|jdkƒ |d |k}t|jddgƒ t|jddgƒ t|jdkƒ ||d k}t|jddgƒ t|jddgƒ t|jdkƒ d S )Nr¶   r·   r   r•   rÅ  FTrÆ  rÇ  r}   r}   rƒ   Útest_ne_for_stringsÕ  rÉ  z-TestMaskedArrayArithmetic.test_ne_for_stringsÚdt1©ÚidsÚdt2r•   c                 C   sN  t ddg|ddg|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ƒ t ddg|ddg|d�}||k}t|jddgƒ t|jddgƒ t|jdkƒ |d |k}t|jddgƒ t|jddgƒ t|jdkƒ ||d k}t|jddgƒ t|jddgƒ t|jdkƒ d S )Nr   r•   rÅ  TFrÆ  ©r¢   rË  rÎ  rZ  r¶   rÞ   r·   r}   r}   rƒ   Útest_eq_for_numericõ  ó,   z-TestMaskedArrayArithmetic.test_eq_for_numericÚopc                 C   sb   t ddgddgd�}t d¡ dd¡}|||ƒ}t|jj|jkƒ t|jt |jt	¡|jB ƒ d S )Nr   r•   r—   rÕ   r×   r°   )
r(   r~   r!   rl   r   r˜   rn   r   r{   r  )r¢   rÒ  r¶   r·   r_  r}   r}   rƒ   Útest_eq_broadcast_with_unmasked  s
   
 z9TestMaskedArrayArithmetic.test_eq_broadcast_with_unmaskedc                 C   sD   t g d¢g d¢g d¢gƒ}||dƒ}t|jj ƒ t|jtu ƒ d S )Nrà   ry  ©rV  r  rF  r¯   )r(   r   r˜   rn   ra   )r¢   rÒ  r¶   r_  r}   r}   rƒ   Útest_comp_no_mask_not_broadcast  s   
z9TestMaskedArrayArithmetic.test_comp_no_mask_not_broadcastc                 C   sN  t ddg|ddg|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ƒ t ddg|ddg|d�}||k}t|jddgƒ t|jddgƒ t|jdkƒ |d |k}t|jddgƒ t|jddgƒ t|jdkƒ ||d k}t|jddgƒ t|jddgƒ t|jdkƒ d S ©Nr   r•   rÅ  FTrÆ  rÏ  r}   r}   rƒ   Útest_ne_for_numeric'  rÑ  z-TestMaskedArrayArithmetic.test_ne_for_numericc                 C   s‚  t ddg|ddg|d�}|||ƒ}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|d�}|||ƒ}t|j||j|jƒƒ t|jddgƒ t|jdkƒ ||d |ƒ}t|j||jd |jƒƒ t|jddgƒ t|jdkƒ |||d ƒ}t|j||j|jd ƒƒ t|jddgƒ t|jdkƒ d S rÖ  )r(   r   rÝ   r»   r˜   r   r"  )r¢   rÒ  rË  rÎ  rZ  r¶   rÞ   r·   r}   r}   rƒ   Útest_comparisons_for_numericH  s,   

z6TestMaskedArrayArithmetic.test_comparisons_for_numericzN/Ac                 C   sL   t g d¢g d¢|d�}t g d¢g d¢|d�}t|||ƒj||j|jƒƒ d S )N)r¶   r·   Úcder  )r˜   r"  )rÙ  r·   r¶   )rL   r   r»   )r¢   rÒ  rZ  r»  r½  r}   r}   rƒ   Útest_comparisons_stringsk  s    z2TestMaskedArrayArithmetic.test_comparisons_stringsc                 C   s&  t ƒ �†}| td¡ td dgddgd�}t|d ktddgddgd�ƒ t|jd kddgƒ t|d ktddgddgd�ƒ td dgdd�}t|d kddgƒ t|d kddgƒ td dgdd�}t|d ktddgdd�ƒ t|d ktddgdd�ƒ t}t|d ktƒ W d   ƒ d S 1 sŒw   Y  d S )NzComparison to `None`r•   r   r—   TFr°   )r   r¼  r…  r(   r   rÝ   rK   )r¢   r¾  r¶   r}   r}   rƒ   Útest_eq_with_Nonev  s   "ðz+TestMaskedArrayArithmetic.test_eq_with_Nonec                 C   sˆ   t dƒ}t|dkdƒ t|dkdƒ t|dkdƒ t|dkdƒ t ddd�}t|dktƒ t|dktƒ t|dktƒ t|dktƒ d S )Nr•   Tr   Fr—   )r(   r   rK   rµ   r}   r}   rƒ   Útest_eq_with_scalar�  s   z-TestMaskedArrayArithmetic.test_eq_with_scalarc                 C   s€   t ddgddgd�}t ddgddggƒt  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ƒ qd S )Nr•   r   r—   r°   FT)r(   r~   r   rÝ   r˜   )r¢   r¦   r§   rÞ   r}   r}   rƒ   Útest_eq_different_dimensions›  s   ÿÿÿûz6TestMaskedArrayArithmetic.test_eq_different_dimensionsc                 C   sž   t g d¢g d¢d�}t tjtjdt d¡dgg d¢d�}t|ƒ}t||ƒ t|j|jƒ t|jg d¢ƒ t |¡}t||ƒ t|j|jƒ t|jg d¢ƒ d S )N©rå   r   r•   r°   r¯   rý   r—   r   r°   rå   ©r•   r•   r   r   r•   )rL   r~   r8  rF   r   r˜   )r¢   r¶   rï  rÞ   r}   r}   rƒ   Útest_numpyarithmetic¦  s   ÿ


z.TestMaskedArrayArithmetic.test_numpyarithmetic)?r  r  r  r­   r-  r2  r5  r8  r;  r<  r>  r?  r@  rA  rD  rE  rH  rI  rM  rP  rQ  r`  rd  rr  rö   ÚmarkÚparametrizerw  r�  r„  r‰  r‹  r�  r“  r—  r˜  rœ  r�  r¥  r­  r¯  r´  rÂ  rÈ  rÊ  Únum_dtsÚnum_idsrÐ  Úoperatorr±  ÚltrÓ  ÚgtrÕ  r×  ÚleÚgerØ  rÚ  rÛ  rÜ  rÝ  rà  r}   r}   r}   rƒ   r%    s     #
*ý

$$
++"

ÿÿr%  c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestMaskedArrayAttributesc                 C   s’   t g d¢g d¢d�}t |ƒ}t|j|jƒ t |g d¢dd�}t|jg d¢ƒ t |g d¢dd�}t|jg d¢ƒ t |g d¢d�}t|jg d¢ƒ d S )	Nrà   rá   r—   r  F)r˜   Ú	keep_maskTr=  r�  ©r¢   r£   r  r}   r}   rƒ   Útest_keepmask¹  s   z'TestMaskedArrayAttributes.test_keepmaskc                 C   sâ  t dƒ}g d¢}t|ƒ}t||dd�}t||ddd�}ddg|d	d
g< ddg|d	d
g< t|jg d¢ƒ t|jg d¢ƒ t|jg d¢ƒ t|jƒ t|j ƒ g d¢|d	d
…< g d¢|d	d
…< t|jg d¢ƒ t|jg d¢ƒ t|jtƒ t	|d< t	|d< t|jg d¢ƒ t|jg d¢ƒ d	|d d …< d	|d d …< t|jg d¢ƒ t|jg d¢ƒ t|jg d¢ƒ t|jtƒ | 
¡  t dƒ|d d …< t|jg d¢ƒ t|jtƒ | ¡  t	||dk < t|jg d¢ƒ t|jg d¢ƒ d|t|d	kdƒ< t|jg d¢ƒ t|jg d¢ƒ td	dgdd
ggd	dgddggdd�}d|d< t|jd	dgdd
ggƒ t|jd	dgddggƒ d|d< t|jd	dgddggƒ t|jd	dgddggƒ d|t|dk dƒ< t|jd	dgddggƒ t|jd	dgddggƒ d S )Nr×   ©r   r   r   r•   r•   T©r˜   Ú	hard_maskF©r˜   rð  rï   rÕ   é(   r•   rÌ   )r   rÕ   r°   r¯   rÌ   )r   rÕ   r°   r¯   rò  rI  ©rÕ   rŠ  é   )r   rÕ   rŠ  r¯   rÌ   )r   rÕ   rŠ  rô  rò  r   )r•   r   r   r•   r•   rû   )r   r•   r•   r¯   rÌ   )r•   r•   r•   r•   r•   rü   r¯   rÉ  )r   r•   r°   r×   r×   r°   rÝ  )r!   rH   r(   r   r»   r˜   r   r#  ra   rK   Úsoften_maskÚharden_maskrÒ   r9   )r¢   r    rg  r,  ÚxhÚxsr}   r}   rƒ   Útest_hardmaskÆ  s`   
&z'TestMaskedArrayAttributes.test_hardmaskc                 C   sR   t dƒ}g d¢}t|ƒ}t||dd�}d|dd…< d|dd…< t|jg d	¢ƒ d S )
Nr×   rî  Trï  rœ  rÌ   r   r•   )rœ  r•   r°   r¯   rÌ   )r!   rH   r(   r   r»   ©r¢   r    rg  r,  r÷  r}   r}   rƒ   Útest_hardmask_againý  s   z-TestMaskedArrayAttributes.test_hardmask_againc                 C   sŠ   t g d¢g d¢d�}| ¡ }t||ƒ d|d< t||ƒ t|t g d¢g d¢d�ƒ | ¡ }d|d< t||ƒ t|t g d¢g d¢d�ƒ d S )Nrà   rá   r—   r   ©r   r°   r¯   r~  )r(   rö  r   rõ  rµ   r}   r}   rƒ   Útest_hardmask_oncemore_yay  s   


z4TestMaskedArrayAttributes.test_hardmask_oncemore_yayc                 C   sV   t dƒ}t|d< d|d< t|jtƒ t dƒ}d|_t|d< d|d< t|jtdƒƒ d S )NrÕ   r•   F)r!   rK   r   rÒ   ra   Ú
_smallmaskr{   r�  r}   r}   rƒ   Útest_smallmask  s   z(TestMaskedArrayAttributes.test_smallmaskc                 C   sp   t g d¢g d¢d�}| ¡ }t||ƒ t|jtƒ tj  dgdtfdtfg¡}| 	¡ }| ¡  t|j|jƒ d S )Nrà   r~  r—   rÜ  r¶   r·   )
r(   Úshrink_maskr   r˜   ra   r~   rõ   rÆ   rÜ   rï   rµ   r}   r}   rƒ   Útest_shrink_mask!  s   
z*TestMaskedArrayAttributes.test_shrink_maskc                 C   sL  t g d¢g d¢gdtfdtfdgd�}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 ]}t||||f ƒ |d7 }||jd kr£d}|d7 }q‡d S )N))r•   r  Úone)r°   r  Útwo)r¯   çffffff
@Úthr))rÌ   çš™™™™™@Úfou)r×   ç      @Úfiv)rÍ   gffffff@Úsixr¶   r·   ©rÆ  r×  rÖ   rµ  rÁ  rÆ  )r   r°   rÝ  r   r´  r•   r°   r¯   rÌ   r‹  r×   r	  rå   )r(   rÆ   rÜ   rK   rÃ  r   rn   )r¢   r£   ÚxflatrÕ  Újr¬   r}   r}   rƒ   Ú	test_flat.  s:   ÿþ€ûz#TestMaskedArrayAttributes.test_flatc                    sÆ   t jddd�‰ t j ˆ ¡}t  d¡|_t|ƒ t|jt  d¡ƒ ‡ fdd„}tt|ƒ ˆ j	dt jj
d�}t|jt  d¡ƒ t jddd�‰ t j ˆ ¡}t  d¡|_t|jt  d¡ƒ t|jt jjƒ d S )NrÌ   zf4,i4rÖ   Úf4c                     s   t j ˆ ¡} t  d¡| _d S )NÚf8)r~   rõ   r(   r   )r,  rº  r}   rƒ   ÚassignW  s   z;TestMaskedArrayAttributes.test_assign_dtype.<locals>.assign)r   rM  )r~   r{   rõ   r(   r   rL  r   r   r  rª  r   rÒ   ra   )r¢   r,  r  r·   r}   rº  rƒ   Útest_assign_dtypeL  s   
z+TestMaskedArrayAttributes.test_assign_dtypeN)r  r  r  rí  rù  rû  rý  rÿ  r  r  r  r}   r}   r}   rƒ   rê  ·  s    7
rê  c                   @   sœ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )&ÚTestFillingValuesc                 C   s‚   t jjj}|dtƒ}t|dƒ |d tƒ}t|tdƒƒ |ddƒ}t|dƒ |d dƒ}t|tdƒƒ tt|dtƒ tt|dtƒ d S )Nr   ú|S3ó   0s   camelot!r�   Ústuff)	r~   rõ   rY  Ú_check_fill_valuerÆ   r   r0   r   r  )r¢   r  Úfvalr}   r}   rƒ   Útest_check_on_scalari  s   






z&TestFillingValues.test_check_on_scalarc                 C   sx  t jjj}dtfdtfdg}|g d¢|ƒ}tt|tƒƒ t	| 
¡ g d¢ƒ |d |ƒ}tt|tƒƒ t	| 
¡ tdƒtdƒttdƒƒgƒ t jd|d	�}|||ƒ}tt|tƒƒ t	| 
¡ g d¢ƒ t jdd
tfdtfdgd	�}|||ƒ}tt|tƒƒ t	| 
¡ g d¢ƒ t jdtd�}d|d< ||tƒ}tt|tƒƒ t	| 
¡ g d¢ƒ dtfg}|d|ƒ}tt|tƒƒ t	| 
¡ dƒ d S )Nr¶   r·   )rÆ  r  )rß  çÍÌÌÜ)ŒgÁrõ  )rß  r  ó   ???r   r‘   r¹   rÖ   r  rã  )r/  r  r  ©rn   r   é6eÄ)r  )r~   rõ   rY  r  rÆ   rÜ   r   r¬  r
   r   Úitemr0   r   r(   r>  )r¢   r  rá  r  Úfill_valr}   r}   rƒ   Útest_check_on_fieldsy  s<   


þ
ÿ



z&TestFillingValues.test_check_on_fieldsc                 C   sâ   t g d¢ƒ}|j ddi¡ t |td�}t|jg d¢ƒ t|jtdƒƒ t |td�}t|jg d¢ƒ t|jtdƒƒ | 	t¡}t|jg d¢ƒ t|jtdƒƒ t|jd dƒ | 	dg¡}t|d	 j|jƒ t|d	 j|jƒ d S )
N)ó   3ó   4ó   5Úcommentzupdated!rÖ   )r¯   rÌ   r×   r   r‘   )r¶   r  r¶   )
r(   r÷  ÚupdaterÆ   r   r»   r"  r0   rÜ   rÅ   rµ   r}   r}   rƒ   Útest_fillvalue_conversion¨  s   
z+TestFillingValues.test_fillvalue_conversionc                 C   s>   t dƒ}t t d¡ƒ}t t d¡jƒ}t||ƒ t||ƒ d S )Nrˆ   )r0   r~   r(   r   r   )r¢   r  Úf2Úf3r}   r}   rƒ   Útest_default_fill_valueÀ  s
   
z)TestFillingValues.test_default_fill_valuec                 C   sh   t dgdtfddtfgd�}t|ƒ}t|jƒ}tj tdƒtdƒtdƒf|jd�}t||ƒ t||ƒ d S )	NrÔ  rÕ  rÖ  rØ  rÖ   r   r¹   r‘   )r(   rÆ   rÜ   r0   r   r~   r   )r¢   Úfieldsr  r'  Úexpectedr}   r}   rƒ   Ú"test_default_fill_value_structuredÈ  s   ÿ

þþ
z4TestFillingValues.test_default_fill_value_structuredc                 C   s:   t  dg¡}t|ƒ}t|d t  t|d ƒ|d ¡ƒ d S )N)ÚvÚV7r-  )r~   r   r0   r   r(   )r¢   rA  rØ  r}   r}   rƒ   Útest_default_fill_value_voidÔ  s   &z.TestFillingValues.test_default_fill_value_voidc                 C   s  t g d¢dd�}|g d¢ }t|j|jƒ dtfdg}tddtd	fg|d
�}d|_t|j ¡ ddgƒ t|d jdƒ t|d jdƒ d|_t|j ¡ dƒ t|d jdƒ t|d jdƒ tg d¢ƒ}d|_tt 	|j¡j
tƒ t|jdƒ t|jt d¡ƒ d S )Nrà   rß  ©r"  )r   r°   r•   rØ  ©rÉ   r  )r•   r¶   )r°   r·   rž   rÖ   rœ  ç     8�@s   999rÉ   )rF  rõ  )rF  r  rF  r  )r•   r°   r”  )rL   r   Ú_fill_valuerÜ   r(   rž   r"  r  r~   r)   r   )r¢   rÝ   ÚseriesÚmtyper£   r}   r}   rƒ   Útest_fillvalueÙ  s$   z TestFillingValues.test_fillvaluec                 C   sˆ   t dgdtfddtfgd�}tƒ �)}| td¡ |ddg }tt|jƒdƒ |dd … |d d	… k W d   ƒ d S 1 s=w   Y  d S )
NrÔ  rÕ  rÖ  rØ  rÖ   zNumpy has detected)rŒ  r�   r•   rå   )	r(   rÆ   rÜ   r   r¼  r…  r   rà  r"  )r¢   r*  r¾  Ú	subfieldsr}   r}   rƒ   Útest_subarray_fillvalueñ  s   ÿ"ûz)TestFillingValues.test_subarray_fillvaluec                 C   s8  t jjj}dtfddtfg}t jtdƒtdƒtdƒf|d�}t|d |ƒ|ƒ dtd	fg}t jtdƒfdtfgd� 	|¡}t|d |ƒ|ƒ t jd
dtfgd� 	|¡}t|d|ƒ|ƒ t  
d¡}t jtdƒtdƒtdƒfdd� 	|¡}|d |ƒ}t||ƒ t jddd� 	|¡}t|d|ƒ|ƒ t|ƒ}t|d jjdƒ d S )NrÕ  rÖ  rØ  r   r¹   r‘   rÖ   r  rW  rK  rÿ  zint, float, floatr~  r  )r~   rõ   rY  r  rÆ   rÜ   r(   r0   r   rÅ   r   rL   r"  r³   )r¢   r  rá  rï  rÞ   ÚMr}   r}   rƒ   Útest_fillvalue_exotic_dtypeü  sB   

þýÿÿ

þýý

z-TestFillingValues.test_fillvalue_exotic_dtypec                 C   sn   dD ]2}t  d|¡}tt  d| d ¡ƒ}tj ||¡ t  d|¡}tt  d| d ¡ƒ}tj ||¡ qd S )N)ÚasÚfsÚpsÚnsÚusÚmsrÉ   r,  ÚhÚDÚWr9  ÚYr  z<M8[ú]z<m8[)rî  Ú
datetime64r0   r   r~   Útestingr   Útimedelta64)r¢   Útimecoderï  rÞ   r}   r}   rƒ   Ú!test_fillvalue_datetime_timedelta	  s   øz3TestFillingValues.test_fillvalue_datetime_timedeltac                 C   sŽ  t ddgdtfddtfdtfgfgd�}|j}t|j|jƒ t|d t|d ƒƒ t|d d t|d d ƒƒ t|d d t|d d ƒƒ t|ƒ}t|j|jƒ t|d t|d ƒƒ t|d	 d t|d d ƒƒ t|d	 d	 t|d d ƒƒ t|d	 t|d ƒƒ t|ƒ}t|j|jƒ t|d t|d ƒƒ t|d	 d t|d d ƒƒ t|d	 d	 t|d d ƒƒ t|d	 t|d ƒƒ d S )
N)r•   r3  )rÌ   ©r×   rÍ   r  rã  rä  rå  rÖ   r   r•   )r(   rÆ   r"  r   r   r0   r]   rZ   ©r¢   r¶   rÞ   r}   r}   rƒ   Útest_extremum_fill_value*	  s(   ÿz*TestFillingValues.test_extremum_fill_valuec                 C   sˆ   t g d¢fdtjdfgd�}t|ƒ}t|j|jƒ t|d t dt|d ƒ¡ƒ t|ƒ}t|j|jƒ t|d t dt|d ƒ¡ƒ d S )N©r°   r¯   rÌ   r_  r¯   rÖ   r   )r(   r~   r�  r]   r   r   ÚfullrZ   rL  r}   r}   rƒ   Ú!test_extremum_fill_value_subdtypeB	  s   "z3TestFillingValues.test_extremum_fill_value_subdtypec                 C   sÜ   dt fdt fg}tttg d¢g d¢ƒƒd|d�}|d }| d¡ t|jt d¡ƒ tt|j	ƒdƒ d	|j	d< tt|j	ƒd
ƒ tttg d¢g d¢ƒƒ|d�}|d }| d¡ t|jt d¡ƒ tt|j	ƒdt
dƒfƒ d S )Nr¶   r·   rà   ry  rÞ  ©r"  r   rÕ   )rÕ   rß  rt  )rÕ   rt  rÖ   r   )rÆ   r(   rØ   rÙ   rŸ   r   r3  r~   rà  r"  r0   )r¢   rá  r¶   Úaarü  Úttr}   r}   rƒ   Ú test_fillvalue_individual_fieldsM	  s   ÿ


z2TestFillingValues.test_fillvalue_individual_fieldsc                 C   s˜   dt f}dt f}tddgddgtjft |g¡d�}t|j||gd�}|d |d< |d  |d j¡ |j	d }t
t |d	 ¡ƒ t|d
 tdƒƒ d S )Nr·   r¶   ©rˆ   ©rŠ   )F)r˜   r"  r   rÖ   r}   r   rå   rˆ   )rÜ   r(   r~   r8  r   r4   rn   rŸ   r"  r3  r   r½  r   r0   )r¢   rá  Úadtyper¶   r·   rØ  r}   r}   rƒ   Ú(test_fillvalue_implicit_structured_array`	  s   ÿ
z:TestFillingValues.test_fillvalue_implicit_structured_arrayc                 C   sj   t ddd�}t|jdƒ tddtd�}t|jdƒ tddtd�}t|jdƒ tddtd�}t|jdƒ d S )Nr¯   r2  r0  rQ  r‘   )r4   r   r"  rc   rÜ   r{   ÚcomplexrA   r�  r}   r}   rƒ   Útest_fillvalue_as_argumentsm	  s   z-TestFillingValues.test_fillvalue_as_argumentsc                 C   sJ   t dd�}t|jdƒ tdtd�}t|jdƒ tdtd�}t|jdƒ d S )Nr²   ©rn   r  )r4   r   rn   rc   rÜ   r{   rY  r�  r}   r}   rƒ   Útest_shape_argument{	  s   
z%TestFillingValues.test_shape_argumentc                 C   sÎ   t g d¢dtjd�}| ¡ }t|jdkƒ | t¡}t|jdkƒ |jtd�}t|jdkƒ | tj¡}|jtjd�}|jtdd�}t|jdkƒ |jtdd�}t|jdkƒ |jtjd�}t|jd	kƒ d S )
Nrà   r•   rQ  )rM  r°   r0  )rM  r"  rÖ   rŒ  )	r(   r~   Úint64rª  r   r"  r   r
   Úint32rø  r}   r}   rƒ   Útest_fillvalue_in_view‡	  s   
z(TestFillingValues.test_fillvalue_in_viewc                 C   s8   t ddd�}t|d jtdƒƒ t|d jtdƒƒ d S )Nr²   z(2,)3S,(2,)3Ur  r  s   spamr  Úeggs)r4   r   r"  r0   r�  r}   r}   rƒ   Útest_fillvalue_bytes_or_str±	  s   z-TestFillingValues.test_fillvalue_bytes_or_strN)r  r  r  r  r   r&  r)  r,  r/  r6  r8  r:  rJ  rM  rP  rT  rX  rZ  r\  r_  ra  r}   r}   r}   rƒ   r  g  s&    /*r  c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )Ú
TestUfuncsc                 C   sr   t dddtd gd ddgdgd  d�t dddtd gd ddgdgd  d�f| _t ¡ | _tjddd	� d S )
Nrˆ   r   rå   r°   r•   rÍ   r—   r3  r&  )r(   rž   r    r~   r'  r(  r)  rù   r}   r}   rƒ   r­   ¼	  s
   ((ÿ
zTestUfuncs.setup_methodc                 C   r*  r+  r,  rù   r}   r}   rƒ   r-  Ã	  r.  zTestUfuncs.teardown_methodc              	   C   s’   dD ]D}zt t|ƒ}W n ty   t t|ƒ}Y nw t tjj|ƒ}| jd |j… }||Ž }||Ž }t	| 
d¡| 
d¡|ƒ t|j|j|d� qd S )N)*rs   rF   rG   r7   r,   ro   r-   rw   r%   r"   r&   rp   r.   rx   Úarcsinhr#   Úarctanhr   ÚfabsÚnegativeÚfloorÚceilÚlogical_notr   rt   r_   r2   r‘  Úfloor_divideÚ	remainderÚfmodÚhypotr$   r6   rb   rE   r@   rD   r?   Úlogical_andÚ
logical_orÚlogical_xorr   )Úerr_msg)rX  ÚumathÚAttributeErrorÚfromnumericrî  rõ   rY  r    Úninr   r9   r   r˜   )r¢   rØ  ÚufÚmfÚargsÚurÚmrr}   r}   rƒ   Útest_testUfuncRegressionÆ	  s   ÿæz#TestUfuncs.test_testUfuncRegressionc                 C   sl   | j d }tt|dd� ƒ tt|dd�ƒ tt|d d… dd�dƒ tt|dd�dƒ tt |¡t	ƒ d S )Nr   rc  r¯   )
r    r   r   rq   r   ru   rg   r   r   rž   r�  r}   r}   rƒ   Útest_reduceä	  s   
zTestUfuncs.test_reducec                 C   s–   t ddƒ dd¡}t|dk |ƒ}t| ¡ | ¡ ƒ t| ¡ dƒ t| d¡| d¡ƒ t| d¡g d¢ƒ t| d¡d jƒ t| d¡d jƒ d S )Nr•   é   r¯   rÌ   r×   r   )r×   rÍ   rV  r  )r!   rl   rW   r   rX   r[   r   r˜   )r¢   r¶   Úamaskr}   r}   rƒ   Útest_minmaxí	  s   zTestUfuncs.test_minmaxc                 C   sl   t g d¢g d¢d�}t |¡}t dddt d¡dgg d¢d�}t||ƒ t|j|jƒ tt|jtƒ ƒ d S )	NrÞ  rý   r—   rå   r   r•   r°   ©r•   r   r   r   r•   )rL   r~   rs   r   r˜   r   r¬  r   )r¢   r¶   rÞ   rï  r}   r}   rƒ   Útest_ndarray_maskø	  s   
ÿ
zTestUfuncs.test_ndarray_maskc                    sð   t ddgddgd�‰ tttjˆ dƒ tttjˆ dƒ G ‡ fdd„dƒ}|ƒ }t|ˆ  d	kƒ tˆ | d
kƒ G dd„ dƒ}|ƒ }tˆ  |¡tu ƒ tt	t
 ˆ |¡dkƒƒ tˆ  |¡tu ƒ t|ˆ  dkƒ tˆ | dkƒ tˆ | dkƒ d S )Nrˆ   rŠ   r•   r   r—   rš  c                       s&   e Zd Z” jd Zdd„ Zdd„ ZdS )z<TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClassr•   c                 S   ó   dS )NúMy mulr}   ©r¢   Úotherr}   r}   rƒ   Ú__mul__
  ó   zDTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__mul__c                 S   r‚  )NúMy rmulr}   r„  r}   r}   rƒ   Ú__rmul__
  r‡  zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass.__rmul__N)r  r  r  Ú__array_priority__r†  r‰  r}   rº  r}   rƒ   ÚMyClass	
  s    
r‹  rƒ  rˆ  c                   @   s,   e Zd ZdZdd„ Zdd„ Zdd„ ZeZdS )	z=TestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2éd   c                 S   r‚  )NÚMe2mulr}   r„  r}   r}   rƒ   r†  
  r‡  zETestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__mul__c                 S   r‚  )NÚMe2rmulr}   r„  r}   r}   rƒ   r‰  
  r‡  zFTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rmul__c                 S   r‚  )NÚMe2rdivr}   r„  r}   r}   rƒ   Ú__rdiv__ 
  r‡  zFTestUfuncs.test_treatment_of_NotImplemented.<locals>.MyClass2.__rdiv__N)r  r  r  rŠ  r†  r‰  r�  Ú__rtruediv__r}   r}   r}   rƒ   ÚMyClass2
  s    r’  rŽ  r�  r�  )rL   r   r  rå  ÚmulÚtruedivr   r†  ÚNotImplementedr   r_   re   Ú__truediv__)r¢   r‹  Úmer’  Úme_toor}   rº  rƒ   Ú test_treatment_of_NotImplemented
  s   	z+TestUfuncs.test_treatment_of_NotImplementedc                 C   s°   t jjdt jgddgd�}t ¡ �= t d¡ t|ƒ t|dƒ |dk t	|ƒ t
|ƒ t|ƒ t|ƒ t|ƒ t|ƒ t|dƒ t|dƒ W d   ƒ d S 1 sQw   Y  d S )Nr›   r   r•   r—   Úerrorr°   )r~   rõ   r(   r8  ÚwarningsÚcatch_warningsÚfilterwarningsr7   r   rs   rF   rw   r%   r"   r#   r2   r   r’  r}   r}   rƒ   Útest_no_masked_nan_warnings-
  s   



"ìz&TestUfuncs.test_no_masked_nan_warningsc                 C   sf   t  ddd¡}t j |¡}t jdd�� |d }t j ||d ¡ W d   ƒ d S 1 s,w   Y  d S )Nr   r¯   çš™™™™™¹?Úraise)ÚunderrŠ   r°   )r~   r!   rõ   r(   r7  rG  r   )r¢   r£   ÚXÚX2r}   r}   rƒ   Útest_masked_array_underflowI
  s   "þz&TestUfuncs.test_masked_array_underflowN)r  r  r  r­   r-  r{  r|  r  r�  r™  rž  r¤  r}   r}   r}   rƒ   rb  ¹	  s    	
+rb  c                   @   sü   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=S )>Ú TestMaskedArrayInPlaceArithmeticc                 C   sš   t dƒ}t dƒ}t dƒ}t|d< |||f| _| t¡| t¡| t¡f| _tjd tjd  | _dd„ | jD ƒ| _| tj	¡| tj	¡| tj	¡f| _
d S )NrÕ   r°   Ú
AllIntegerÚAllFloatc                 S   s   g | ]}t  |¡j‘qS r}   ©r~   r   rM  ©r�   rc  r}   r}   rƒ   r„   [
  ó    zATestMaskedArrayInPlaceArithmetic.setup_method.<locals>.<listcomp>)r!   rK   ÚintdatarÅ   rÜ   Ú	floatdatar~   Ú	typecodesÚ
othertypesÚuint8Ú	uint8data©r¢   r£   r¤   r¨   r}   r}   rƒ   r­   S
  s   



ýz-TestMaskedArrayInPlaceArithmetic.setup_methodc                 C   s‚   | j \}}}t|d< |d7 }t||d ƒ |d7 }t||d ƒ | j\}}}|jjj}|d7 }t||jjjkƒ t||d ƒ d S )Nr°   r•   rˆ   )r«  rK   r   r¬  rÝ   rf  r   )r¢   r£   r¤   r¨   rc  Úid1r}   r}   rƒ   Útest_inplace_addition_scalarb
  s   
z=TestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalarc                 C   sl   | j \}}}|j}tdtjd�}t|d< ||7 }||7 }t||| ƒ t||| ƒ t|jt||jƒƒ d S ©NrÕ   rÖ   rå   )r«  r˜   r!   r~   Úint16rK   r   rJ   ©r¢   r£   r¤   r¨   r,  r¶   r}   r}   rƒ   Útest_inplace_addition_arrayq
  s   z<TestMaskedArrayInPlaceArithmetic.test_inplace_addition_arrayc                 C   s<   | j \}}}|d8 }t||d ƒ |d8 }t||d ƒ d S r6  )r«  r   r±  r}   r}   rƒ   Útest_inplace_subtraction_scalar}
  ó
   z@TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalarc                 C   sj   | j \}}}|j}tdtd�}t|d< ||8 }||8 }t||| ƒ t||| ƒ t|jt||jƒƒ d S r´  ©r¬  r˜   r!   rÜ   rK   r   rJ   r¶  r}   r}   rƒ   Útest_inplace_subtraction_array…
  ó   z?TestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_arrayc                 C   s<   | j \}}}|d9 }t||d ƒ |d9 }t||d ƒ d S )NrŠ   r°   )r¬  r   r±  r}   r}   rƒ   Ú"test_inplace_multiplication_scalar‘
  r¹  zCTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalarc                 C   sj   | j \}}}|j}tdtd�}t|d< ||9 }||9 }t||| ƒ t||| ƒ t|jt||jƒƒ d S r´  rº  r¶  r}   r}   rƒ   Ú!test_inplace_multiplication_array™
  r¼  zBTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_arrayc                 C   sT   | j \}}}tdƒd }tdƒd }t|d< |d }t||ƒ |d }t||ƒ d S )NrÕ   r°   )r«  r!   rK   r   r±  r}   r}   rƒ   Ú test_inplace_division_scalar_int¥
  s   
zATestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_intc                 C   s@   | j \}}}|d }t||d ƒ |tdƒ }t|tdƒƒ d S )NrŠ   rÕ   )rÕ   )r¬  r   r!   rc   r±  r}   r}   rƒ   Ú"test_inplace_division_scalar_float°
  s
   zCTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_floatc                 C   st   | j \}}}|j}tdtd�}t|d< || }|| }t||| ƒ t||| ƒ t|jtt||jƒ|dkƒƒ d S )NrÕ   rÖ   rå   r   rº  r¶  r}   r}   rƒ   Ú!test_inplace_division_array_float¸
  s   "zBTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_floatc                 C   sà   ddddt d dddddddg}g d	¢}g d
¢}g d¢}t||d�}t||d�}|| }t|jg d¢ƒ t|jddddt  d dddddddgƒ | ¡ }|| }t|jg d¢ƒ t|jddddt  d dddddddgƒ d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r”   r–   r—   )r•   r•   r•   r   r   r•   r•   r   r   r   r•   r•   r’   )rž   rL   r   rÒ   r»   rï   )r¢   r£   r¤   r¦   r§   r¨   r©   rª   r}   r}   rƒ   Útest_inplace_division_miscÄ
  s"     ÿ ÿz;TestMaskedArrayInPlaceArithmetic.test_inplace_division_miscc                 C   s   t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ |d7 }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d� }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d�7 }t|jg d¢ƒ t|jg d¢ƒ d S )	Nrà   r6  r—   r•   )r°   r¯   r¯   rá   ©r•   rÌ   r¯   r±   r‡  ræ   r}   r}   rƒ   Útest_datafriendly_addØ
  s   z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_addc                 C   s  t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|d8 }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d� }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d�8 }t|jg d¢ƒ t|jg d¢ƒ d S )	Nrà   r6  r—   r•   )r   r•   r¯   rá   rJ  r±   r‡  ræ   r}   r}   rƒ   Útest_datafriendly_subî
  ó    z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_subc                 C   s  t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|d9 }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d� }t|jg d¢ƒ t|jg d	¢ƒ t g d¢g d¢d�}|t g d¢g d¢d�9 }t|jg d¢ƒ t|jg d	¢ƒ d S )
Nrà   r6  r—   r°   ©r°   rÌ   r¯   ró  rá   )r•   rò  r¯   r±   r‡  ræ   r}   r}   rƒ   Útest_datafriendly_mul  rÆ  z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_mulc                 C   s  t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢d�}|t g d¢g d¢d� }t|jg d	¢ƒ t|jg d
¢ƒ t g d¢g d¢d�}|t g d¢g d¢d� }t|jg d	¢ƒ t|jg d
¢ƒ d S )Nrà   r6  r—   rŠ   )r›   rˆ   r¯   rŒ  )rŽ   ra  g      >@rá   )rˆ   rŸ  r�   r±   r‡  ræ   r}   r}   rƒ   Útest_datafriendly_div  rÆ  z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_divc                 C   sh   t g d¢g d¢d�}|d }t|jg d¢ƒ t|jg d¢ƒ |dC }t|jg d¢ƒ t|jg d¢ƒ d S )NrŒ  r6  r—   r/  )rˆ   çÍ;fž @r�   )rˆ   rÊ  r¯   r‡  ræ   r}   r}   rƒ   Útest_datafriendly_pow3  s   z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_powc                 C   sÊ   t ddgddggƒ}t ddgddgd�}||7 }t|ddgddggƒ |jtur4t|jddgddggƒ t ddgddggƒ}t ddgddgd�}||7 }t|ddgddggƒ t|jddgddggƒ d S )Nr•   r¯   r   r—   r°   rÌ   ©r(   r   r˜   ra   rµ   r}   r}   rƒ   Útest_datafriendly_add_arrays?  ó   
z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_add_arraysc                 C   sÊ   t ddgddggƒ}t ddgddgd�}||8 }t|ddgddggƒ |jtur4t|jddgddggƒ t ddgddggƒ}t ddgddgd�}||8 }t|ddgddggƒ t|jddgddggƒ d S )Nr•   r¯   r   r—   r°   rÌ  rµ   r}   r}   rƒ   Útest_datafriendly_sub_arraysM  rÎ  z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub_arraysc                 C   sÊ   t ddgddggƒ}t ddgddgd�}||9 }t|ddgddggƒ |jtur4t|jddgddggƒ t ddgddggƒ}t ddgddgd�}||9 }t|ddgddggƒ t|jddgddggƒ d S )Nr•   r¯   r   r—   rÌ  rµ   r}   r}   rƒ   Útest_datafriendly_mul_arrays[  rÎ  z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul_arraysc              	      s    | j D ]J‰ t ¡ �< t d¡ ‡ fdd„| jD ƒ\}}}t|d< |ˆ dƒ7 }t||ˆ dƒ ƒ |ˆ dƒ7 }t||ˆ dƒ ƒ W d   ƒ n1 sHw   Y  qd S )Nrš  c                 3   ó   � | ]}|  ˆ ¡V  qd S r¿   ©rÅ   r©  ©rü  r}   rƒ   Ú	<genexpr>n  ó   € zUTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type.<locals>.<genexpr>r°   r•   )r®  r›  rœ  r�  r°  rK   r   r±  r}   rÓ  rƒ   Ú!test_inplace_addition_scalar_typei  s   


ù€ÿzBTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_typec              	      s¶   | j D ]U‰ t ¡ �G t d¡ ‡ fdd„| jD ƒ\}}}|j}tdˆ d�}t|d< ||7 }||7 }t||| ƒ t||| ƒ t|jt	||jƒƒ W d   ƒ n1 sSw   Y  qd S )Nrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  z  rÕ  zTTestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type.<locals>.<genexpr>rÕ   rÖ   rå   ©
r®  r›  rœ  r�  r°  r˜   r!   rK   r   rJ   r¶  r}   rÓ  rƒ   Ú test_inplace_addition_array_typeu  ó   


ö€ÿzATestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_typec              	      s˜   | j D ]F‰ t ¡ �8 t d¡ ‡ fdd„| jD ƒ\}}}|ˆ dƒ8 }t||ˆ dƒ ƒ |ˆ dƒ8 }t||ˆ dƒ ƒ W d   ƒ n1 sDw   Y  qd S )Nrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  ‰  rÕ  zXTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type.<locals>.<genexpr>r•   ©r®  r›  rœ  r�  r°  r   r±  r}   rÓ  rƒ   Ú$test_inplace_subtraction_scalar_type„  ó   


ú€ÿzETestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_typec              	      s¶   | j D ]U‰ t ¡ �G t d¡ ‡ fdd„| jD ƒ\}}}|j}tdˆ d�}t|d< ||8 }||8 }t||| ƒ t||| ƒ t|jt	||jƒƒ W d   ƒ n1 sSw   Y  qd S )Nrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  ”  rÕ  zWTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type.<locals>.<genexpr>rÕ   rÖ   rå   r×  r¶  r}   rÓ  rƒ   Ú#test_inplace_subtraction_array_type�  rÙ  zDTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_typec              	      s˜   | j D ]F‰ t ¡ �8 t d¡ ‡ fdd„| jD ƒ\}}}|ˆ dƒ9 }t||ˆ dƒ ƒ |ˆ dƒ9 }t||ˆ dƒ ƒ W d   ƒ n1 sDw   Y  qd S )Nrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  £  rÕ  z[TestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type.<locals>.<genexpr>r°   rÚ  r±  r}   rÓ  rƒ   Ú'test_inplace_multiplication_scalar_typež  rÜ  zHTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_typec              	      s¶   | j D ]U‰ t ¡ �G t d¡ ‡ fdd„| jD ƒ\}}}|j}tdˆ d�}t|d< ||9 }||9 }t||| ƒ t||| ƒ t|jt	||jƒƒ W d   ƒ n1 sSw   Y  qd S )Nrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  ®  rÕ  zZTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type.<locals>.<genexpr>rÕ   rÖ   rå   r×  r¶  r}   rÓ  rƒ   Ú&test_inplace_multiplication_array_type©  rÙ  zGTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_typec              
      s   dd„ t jd D ƒ}| jD ]p‰ t ¡ �b t d¡ ‡ fdd„| jD ƒ\}}}tdˆ d�ˆ d	ƒ }tdˆ d�ˆ d	ƒ }t|d	< z|ˆ d	ƒ }|ˆ d	ƒ }t	||ƒ t	||ƒ W n t
ym   d
ˆ › d�}ˆ |v skJ |ƒ‚Y nw W d   ƒ n1 sxw   Y  qd S )Nc                 S   ó   h | ]}t  |¡j’qS r}   r¨  ©r�   rü  r}   r}   rƒ   Ú	<setcomp>»  rª  z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<setcomp>ÚComplexrš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  ¿  rÕ  z[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type.<locals>.<genexpr>rÕ   rÖ   r°   úSupported type ú throwing TypeError)r~   r­  r®  r›  rœ  r�  r°  r!   rK   r   r  )r¢   Úunsupportedr£   r¤   r¨   Úmsgr}   rÓ  rƒ   Ú'test_inplace_floor_division_scalar_type¸  s*   



þ€õ€ÿzHTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_typec              
      s  dd„ t jd D ƒ}| jD ]v‰ t ¡ �h t d¡ ‡ fdd„| jD ƒ\}}}|j}tdˆ d�}t	|d	< z)|| }|| }t
||| ƒ t
||| ƒ t
|jtt||jƒ|ˆ d
ƒkƒƒ W n tys   dˆ › d�}ˆ |v sqJ |ƒ‚Y nw W d   ƒ n1 s~w   Y  qd S )Nc                 S   rà  r}   r¨  rá  r}   r}   rƒ   râ  Ï  rª  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<setcomp>rã  rš  c                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  Ó  rÕ  zZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type.<locals>.<genexpr>rÕ   rÖ   rå   r   rä  rå  )r~   r­  r®  r›  rœ  r�  r°  r˜   r!   rK   r   rJ   r  )r¢   ræ  r£   r¤   r¨   r,  r¶   rç  r}   rÓ  rƒ   Ú&test_inplace_floor_division_array_typeÌ  s2   


þþ€ñ€ÿzGTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_typec                    sx  | j D ]¶‰ tƒ �©}| t¡ ‡ fdd„| jD ƒ\}}}tdˆ d�ˆ dƒ }tdˆ d�ˆ dƒ }t|d< z|ˆ dƒ }t||ƒ W n tt	fy] } zt
jt|ƒdd� W Y d }~nd }~ww z|ˆ dƒ }t||ƒ W n tt	fyˆ } zt
jt|ƒdd� W Y d }~nd }~ww tˆ tjƒr�tt|jƒddˆ › d	�ƒ ntt|jƒd
dˆ › d	�ƒ W d   ƒ n1 s´w   Y  qd S )Nc                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ  ê  rÕ  zUTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type.<locals>.<genexpr>rÕ   rÖ   r°   r•   ©Ú
stacklevelúFailed on type=Ú.r   )r®  r   Úrecordrø   r°  r!   rK   r   ÚDeprecationWarningr  r›  Úwarnrº   Ú
issubclassr~   ÚintegerrÇ   rF   )r¢   r¾  r£   r¤   r¨   Úer}   rÓ  rƒ   Ú!test_inplace_division_scalar_typeä  s8   

€ÿ€ÿ€á€ÿzBTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_typec                    s„  | j D ]¼‰ tƒ �¯}| t¡ ‡ fdd„| jD ƒ\}}}|j}tdˆ d�}t|d< z|| }t||| ƒ W n t	t
fyR } ztjt|ƒdd� W Y d }~nd }~ww z|| }t||| ƒ t|jtt||jƒ|ˆ dƒkƒƒ W n t	t
fyŽ } ztjt|ƒdd� W Y d }~nd }~ww tˆ tjƒr£tt|jƒd	d
ˆ › d�ƒ ntt|jƒdd
ˆ › d�ƒ W d   ƒ n1 sºw   Y  qd S )Nc                 3   rÑ  r¿   rÒ  r©  rÓ  r}   rƒ   rÔ    rÕ  zTTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type.<locals>.<genexpr>rÕ   rÖ   rå   r•   rê  r   r°   rì  rí  )r®  r   rî  rø   r°  r˜   r!   rK   r   rï  r  r›  rð  rº   rJ   rñ  r~   rò  rÇ   rF   )r¢   r¾  r£   r¤   r¨   r,  r¶   ró  r}   rÓ  rƒ   Ú test_inplace_division_array_type  s@   

€ÿþ€ÿ€Þ€ÿzATestMaskedArrayInPlaceArithmetic.test_inplace_division_array_typec              	   C   s¾   | j D ]Y}t ¡ �K t d¡ tg d¢g d¢|d�}||dƒ }tg d¢g d¢|d�}t|j|jƒ t|j|jƒ ||dƒC }t|j|jƒ t|j|jƒ W d   ƒ n1 sWw   Y  qd S )Nrš  rà   r6  r¶  r°   rÃ  )r®  r›  rœ  r�  r(   r   rÝ   r˜   )r¢   rü  r£   rç   Úxx_rr}   r}   rƒ   Útest_inplace_pow_type/  s   


õ€ÿz6TestMaskedArrayInPlaceArithmetic.test_inplace_pow_typeN)!r  r  r  r­   r³  r·  r¸  r»  r½  r¾  r¿  rÀ  rÁ  rÂ  rÄ  rÅ  rÈ  rÉ  rË  rÍ  rÏ  rÐ  rÖ  rØ  rÛ  rÝ  rÞ  rß  rè  ré  rô  rõ  r÷  r}   r}   r}   rƒ   r¥  P
  s>    $'r¥  c                   @   sd  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zej d'd(¡ej d)d*¡d+d,„ ƒƒZd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Z d9d:„ Z!d;d<„ Z"d=d>„ Z#d?d@„ Z$dAdB„ Z%dCdD„ Z&dEdF„ Z'dGdH„ Z(dIdJ„ Z)dKdL„ Z*dMdN„ Z+dOdP„ Z,dQdR„ Z-dSS )TÚTestMaskedArrayMethodsc              
   C   óÌ   t  g d¢¡}| dd¡}| dddd¡}t  g d¢¡}t||d�}t|| |j¡d�}t|| |j¡d�}t  g d¢¡}t||d�}	t|| |j¡d�}
t|| |j¡d�}||||||||	|
|f
| _d S ©N©$g     À @g®Gáz.@g-²�ï§!@g      !@gé&1¬ü?çƒÀÊ¡E¶@ç\�Âõ(Ü @ç…ëQ¸@ç{®Gáº#@çP�—nƒ@çh‘í|?õ!@ç!°rh‘í@çj¼t“@çJ+‡@çáz®Ga@ç!°rh‘í@çÁÊ¡E¶ó@ç-²�ï§@ç)\�Âõ(@çÃõ(\�B#@ç+‡Ù@çu“V@çÛù~j¼ô@gÑ"Ûù~ê@g¨ÆK7‰Á@ç
×£p=J#@ç®Gáz”@çòÒMbØ@ç}?5^ºÉ#@ç¾Ÿ/Ý$@ç!°rh‘m@ç-²�ï§#@çJ+‡@çªñÒMb@çƒÀÊ¡Å@g-²�ï§Æï?rÍ   r¯   r°   ©$r   r•   r   r•   r   r   r•   r   r•   r•   r   r•   r   r   r   r•   r   r•   r   r   r   r•   r•   r•   r•   r   r   r•   r   r   r   r   r•   r   r•   r   ©rÝ   r˜   ©$r•   r•   r   r•   r   r   r•   r•   r•   r•   r   r•   r   r   r•   r•   r   r•   r   r   r   r•   r•   r•   r•   r   r   r•   r•   r   r   r   r•   r   r•   r•   ©r~   r(   rl   rn   r    ©r¢   r£   r¢  ÚXXr,  r  ÚmXÚmXXr§   Úm2xÚm2XÚm2XXr}   r}   rƒ   r­   B  ó   z#TestMaskedArrayMethods.setup_methodc              	   C   s@  t g d¢ƒ}t| ¡ |j ¡ ƒ t| ¡ |j ¡ ƒ t| ¡ |j ¡ ƒ t| ¡ |j ¡ ƒ t| ddddd¡|j ddddd¡ƒ t| g d¢¡|j g d¢¡ƒ t| 	¡ |j 	¡ ƒ t| 
¡ |j 
¡ ƒ t ddgddggƒ}t| ¡ |j ¡ ƒ t| ¡ |j ¡ ƒ t| ddg¡|j ddg¡ƒ t| ¡ |j ¡ ƒ d S )Nr®   r   r•   r°   r¯   rÌ   r±   )r(   r   rÄ   r»   r   ÚargmaxÚargminr*   ÚcompressÚconjr,   Údiagonalru   rv   ry   ©r¢   r¶   r,  r}   r}   rƒ   Útest_generic_methodsb  s   (  z+TestMaskedArrayMethods.test_generic_methodsc                 C   sä   t j d¡}|t j d¡d  }tt||ƒƒ t j|d< tt||ƒ ƒ t j|d< tt||ƒƒ t|ƒ}t|d< tt||dd�ƒ tt||dd� ƒ |d9 }d|d< tt|ddd�ƒ tt  t j	¡j
gt j	d�}tt||ƒƒ d S )	NrÕ   g:Œ0âŽyE>r   rå   T)rM   FrÖ   )r~   rÚ   rÛ   r   r   r\  rL   rK   ru  Úint_r[   rµ   r}   r}   rƒ   Útest_allcloset  s    

z$TestMaskedArrayMethods.test_allclosec                 C   sD   t jg d¢gdd�}t||dd�sJ ‚t||t  dd¡d�s J ‚d S )NrH  zm8[ns]rÖ   r   )Úatolr•   r>  )r~   r(   r   rH  r�  r}   r}   rƒ   Útest_allclose_timedeltaŒ  s   z.TestMaskedArrayMethods.test_allclose_timedeltac                 C   s2  t  g d¢g d¢g d¢g¡}t jg d¢g d¢g d¢gt jd�}t||d�}|d	k}|d	k }t| ¡  ƒ t| ¡ ƒ t| d
¡g d¢ƒ t| d¡g d¢ƒ t| d
¡g d¢ƒ t| d¡g d¢ƒ t| ¡  ƒ t| ¡ ƒ t| d
¡g d¢ƒ t| d¡g d¢ƒ t| d
¡g d¢ƒ t| d¡g d¢ƒ d S )N)g¤p=
×£À?g¤p=
×£Ð?gÍÌÌÌÌÌì?)gìQ¸…ëÑ?g…ëQ¸Õ?g)\�Âõ(ä?)g×£p=
×Ó?g×£p=
×ë?gffffffæ?rX  rí   r°  rÖ   r—   r›   r   rþ  r•   rì   )r~   r(   r  rL   r   r   rÄ   r   )r¢   r£   r,  r  ÚmxbigÚmxsmallr}   r}   rƒ   Útest_allany“  s2   
þ
þþz"TestMaskedArrayMethods.test_allanyc                 C   s¦   t dtd�}tg d¢dd�}t| ¡ tu ƒ |j|d� t|ƒ t|jdƒ t|tuƒ t dtd�}t| ¡ tu ƒ |j|d� t| ƒ t|jdƒ t|tuƒ d S )Nr}   rÖ   rà   Tr—   ©rU  )r4   r  r(   r   r   rK   rÒ   rÄ   )r¢   ÚstorerO  r}   r}   rƒ   Útest_allany_oddities­  s   
z+TestMaskedArrayMethods.test_allany_odditiesc              
   C   s.  | j \
}}}}}}}}}	}
t| ¡ dƒ t| ¡ dƒ t| ¡ dƒ t|	 ¡ dƒ t| ¡ dƒ t| ¡ dƒ t| ¡ dƒ t|	 ¡ dƒ t| d¡g d¢ƒ t|	 d¡g d¢ƒ t| d¡g d¢ƒ t|	 d¡g d	¢ƒ t| d
¡g d¢ƒ t|	 d
¡g d¢ƒ t| d
¡g d¢ƒ t|	 d
¡g d¢ƒ d S )Né#   rÌ   é   é   r   )r°   r°   r°   r×   r   r×   )r°   r°   rÌ   r×   r   rÌ   )r   r×   r   r×   rÌ   r   )r×   r×   r   r×   r•   r   r•   )rÌ   r•   r   r   r×   r×   )rÌ   rÌ   r   r   r×   r¯   )r°   rÌ   r•   r•   rÌ   r•   )r°   rÌ   r•   r•   r•   r•   )r    r   r%  r$  )r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  r}   r}   rƒ   Útest_argmax_argmin¿  s"   z)TestMaskedArrayMethods.test_argmax_argminc                 C   sp   t  g d¢¡}t  g d¢¡}t||d�}| dd¡}t|j|jƒ t|j| dd¡ƒ t|j|j dd¡ƒ d S )Nrû  r  r—   r°   r  )r~   r(   Úclipr   r˜   r»   )r¢   r£   r,  r  Úclippedr}   r}   rƒ   Ú	test_clipÖ  s   z TestMaskedArrayMethods.test_clipc                 C   sJ   t  d¡}t jj|ddgd d�}|jdd|d� t|jddgd ƒ d S )NrÕ   r   r•   r×   r—   r2  )r~   r!   rõ   r   r9  r   r˜   r)  r}   r}   rƒ   Útest_clip_outç  s   
z$TestMaskedArrayMethods.test_clip_outc                 C   sz  t g d¢dd�}|dk|dk @ }t| |¡ddgƒ t|dd	g< | |¡}t|jddgƒ t|jd
dgƒ t|jdƒ t||| ƒ |dk }| |¡}t|jg d¢ƒ t|jg d¢ƒ t|jdƒ t||| ƒ t g d¢g d¢gg d¢g d¢gd�}| | ¡ dk¡}t|jg d¢ƒ t|jg d¢ƒ t 	g d¢¡}|j|dkdd�}t|jddgddggƒ t|jd
dgdd
ggƒ d S )NrÈ  i'  r0  r•  ç      @rŠ   r�   r°   r¯   r   r•   r‹   rŒ  r6  ró  ©rò  r‰  rU  rá   r—   é   )rô  rò  r‰  rU  rÑ   )r¯   r•   r°   rc  rÕ   rô  rò  rU  )
rL   r   r&  rK   r»   rÒ   r"  rj   r~   r(   )r¢   r¶   Ú	conditionr·   r£   r}   r}   rƒ   Útest_compressî  s2   

ÿz$TestMaskedArrayMethods.test_compressc                 C   sH   t g d¢g d¢d�}| ¡ }t||ƒ t|d< | ¡ }t|g d¢ƒ d S )NrH  ©r   r   r   r   r—   r   rN  )r(   Ú
compressedr   rK   rµ   r}   r}   rƒ   Útest_compressed  s   
z&TestMaskedArrayMethods.test_compressedc                 C   sÞ   dt fdtfdg}tg d¢|d�}tt|j ¡ ƒt|ƒƒ t|ƒ}t|j|jƒ t|j|jƒ t	t|ƒ|d�}t|j|jƒ t|j|jƒ tg d¢g d¢d�}t|ƒ}t
t |j|j¡ ƒ | t¡}t
t |j|j¡ƒ d S ©	Nr¶   r·   r  ))r•   r  z1.1)r°   r  z2.2)r¯   r  z3.3rÖ   rà   r}  r—   )rÆ   rÜ   rL   r   rÇ   r"  r  r5   rn   r4   r   r~   rð   r˜   rª  ©r¢   Údatatyper¶   r·   r}   r}   rƒ   Ú
test_empty  s    ÿ
z!TestMaskedArrayMethods.test_emptyc                 C   óÜ   dt fdtfdg}tg d¢|d�}tt|j ¡ ƒt|ƒƒ tt|ƒ|d�}t|j|jƒ t|j|jƒ t	|ƒ}t|j|jƒ t|j|jƒ tg d¢g d¢d�}t	|ƒ}t
t |j|j¡ ƒ | ¡ }t
t |j|j¡ƒ d S rE  )rÆ   rÜ   rL   r   rÇ   r"  r  r{   rn   r|   r   r~   rð   r˜   rª  rF  r}   r}   rƒ   Ú
test_zeros,  ó    ÿz!TestMaskedArrayMethods.test_zerosc                 C   rI  rE  )rÆ   rÜ   rL   r   rÇ   r"  r  rc   rn   rd   r   r~   rð   r˜   rª  rF  r}   r}   rƒ   Ú	test_onesB  rK  z TestMaskedArrayMethods.test_onesc                 C   s’  t dƒ}g d¢}t|ƒ}t||d�}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 d�}g d¢}| |g d¢¡ t|tg d¢ƒƒ t|j	g d¢ƒ | |tg d¢g d¢ƒ¡ t
|g d¢ƒ t|j	g d¢ƒ tt dƒg d
¢d d�}t||g d¢ƒ t|tg d¢ƒƒ t|j	g d¢ƒ t||tg d¢g d¢ƒƒ t
|g d¢ƒ t|j	g d¢ƒ d S )Nr×   rî  r—   r¯   rÌ   rÕ   rò  r•   )r   rÕ   r°   rå   rò  rû   r°   )r   r°   rÌ   rÍ   )rÍ   rÌ   r°   r   )
rÍ   r•   rÌ   r¯   r°   r×   r   rV  r  rF  )
r   r   r   r   r   r•   r   r   r   r   )r•   r   r•   r   )
r   r•   r°   r¯   rÌ   r×   rÍ   rV  r  rF  )
r•   r   r   r   r•   r•   r   r   r   r   )r!   rH   r(   r   rK   r   rL   rh   r)   r˜   r   )r¢   r    rg  r,  r£   rÕ  r}   r}   rƒ   Útest_putX  s2   zTestMaskedArrayMethods.test_putc                 C   sš   t dƒ}tddgddgd�}| ddg|¡ t|d	 tuƒ t|d	 d	ƒ t|d tuƒ t|d d
ƒ t|d tu ƒ t|d
 tuƒ t|d
 d	ƒ d S )NrÕ   r�   r’   FTr—   r•   r°   r   r¯   )r{   r(   rh   r   rK   r   )r¢   r£   rª   r}   r}   rƒ   Útest_put_nomaskw  s   z&TestMaskedArrayMethods.test_put_nomaskc                 C   sT   t dƒ}g d¢}t|ƒ}t|d |ddd�}| g d¢g d¢¡ t|jg d¢ƒ d S )	Nr×   rî  r•   Trñ  )rÌ   r°   r   r•   r¯   r=  )r¯   rÌ   r°   rÌ   r×   )r!   rH   r(   rh   r   r»   rú  r}   r}   rƒ   Útest_put_hardmask…  s   z(TestMaskedArrayMethods.test_put_hardmaskc                 C   s$  t dƒd }t|g d¢d�}g d¢}| ¡ }t||dƒ t|g d¢ƒ | ¡ }t||dƒ t|jg d¢ƒ t|jg d¢ƒ tg d	¢g d
¢d�}| ¡ }t|||ƒ t|jg d¢ƒ t|jg d¢ƒ | ¡ }t|||ƒ t|jg d¢ƒ t|jg d¢ƒ | ¡ }| ¡  t|||ƒ t|g d¢ƒ d S )NrÍ   r•   )r   r   r   r•   r•   r•   r—   )r   r   r•   r   r   r•   rG  )r•   r°   rG  rÌ   r×   rG  )r   r   r   r•   r•   r   )rÕ   rŠ  rô  rò  r‰  rU  )r•   r•   r•   r   r   r   )r•   r°   rô  rÌ   r×   rU  )r   r   r•   r   r   r   )r   r   r•   r•   r•   r   )r!   r(   rï   ri   r   r»   rÒ   rö  )r¢   r£   r  r˜   rç   ÚmxxÚvaluesr}   r}   rƒ   Útest_putmaskŽ  s.   z#TestMaskedArrayMethods.test_putmaskc                 C   sö   t g d¢gg d¢gd�}| ¡ }t|jj|jƒ t ddgddgd�}| ¡ }t|jj|jƒ t g d¢g d¢dd	�}t| ¡ jg d¢ƒ d
|_d|_| ¡ }t|jg d¢ƒ t|jg d¢ƒ t|jd
ƒ t|jdd�g d¢ƒ t|jdd�g d¢ƒ d S )Nr=  ©r   r•   r   r   r   r—   r   r•   rH  rB  Fr�  é�ÿÿÿrW  r/  r0  rò  )r•   r¯   r°   rÌ   )r(   rj   r   rÒ   rn   r"  r»   )r¢   r¶   ÚaravelÚarr}   r}   rƒ   Ú
test_ravel¬  s    z!TestMaskedArrayMethods.test_ravelr1  ÚAKCFÚ
data_orderÚCFc                 C   s¶   t jd|d�}d|dd d …f< t jdt|d�j}d|dd d …f< t||d�}|jjj|jjjks2J ‚| 	d¡dk 
¡ s=J ‚| |¡}| 	d¡dk 
¡ sMJ ‚t| |¡| |¡jƒ d S )N)r×   rÕ   r0  r   )rÕ   r×   )r   r1  Fr—   )r~   rc   r  r(  r(   r»   r)  ÚfncrÒ   r9   r   rj   r   )r¢   r1  rY  ry  r˜   r£   Úraveledr}   r}   rƒ   Útest_ravel_orderÂ  s   
z'TestMaskedArrayMethods.test_ravel_orderc                 C   sT   t dƒ}t|d< | dd¡}t|jdƒ t|jjdƒ t|jdƒ t|jjdƒ d S )NrÌ   r   r°   rW  rS  )r!   rK   rl   r   rn   rÒ   rø  r}   r}   rƒ   Útest_reshapeÔ  s   z#TestMaskedArrayMethods.test_reshapec                 C   s¦  t g d¢g d¢tjd�}t|ƒ}t|jg d¢ƒ t|jg d¢ƒ t|dd�}t|jg d¢ƒ t|jg d	¢ƒ | ¡  t|jg d¢ƒ t|jg d¢ƒ t g d¢g d¢tjd�}|jdd� t|jg d¢ƒ t|jg d	¢ƒ g d¢}t|ƒ}ttt	t
ƒ ƒ t g d
¢ttjd�}t|dd�}t|jg d¢ƒ t g d
¢g d¢tjd�}t|dd�}t|jg d¢ƒ t|jg d¢ƒ t ddgtjd�}t|dd�}t|t ddgtjd�ƒ d S )N©r•   rÌ   r°   r¯   rœ   r¶  rH  ©r   r   r   r•   FrD  )rÌ   r•   r°   r¯   rë   )r   r•   rå   r~  r°   )r~  rå   r   r•   r°   ©r   r•   r   r   r•   )r•   r°   r~  rå   r   ©r•   r•   r   r   r   r   rå   rÖ   Ústable©Úkind)r(   r~   r¯  rr   r   r»   rÒ   r   r¬  Úsortedr   ra   r�  )r¢   r£   Úsortedxr}   r}   rƒ   Ú	test_sortÞ  s6   z TestMaskedArrayMethods.test_sortc                 C   s8   t g d¢tjd�}t g d¢ƒ}t|dd�}t||ƒ d S )N)r•   r°   r¯   r•   r°   r¯   rÖ   )r   r¯   r•   rÌ   r°   r×   rc  rd  )r(   r~   r¯  r'   r   )r¢   r£   r+  Úcomputedr}   r}   rƒ   Útest_stable_sort  s   z'TestMaskedArrayMethods.test_stable_sortc              	   C   s–   t g d¢g d¢tjd�}tƒ tdd�tdd�tdd�tddd	�tddd	�fD ]"}t|fi |¤Ž}|t|fi |¤Ž }t|j|jƒ t|j|jƒ q&d S )
Nr_  rœ   r¶  TrD  Fr°   r0  )r"  rE  )	r(   r~   r¯  Údictrr   r'   r   r»   rÒ   )r¢   r£   Úkwargsrg  Ú
argsortedxr}   r}   rƒ   Útest_argsort_matches_sort	  s   

û÷z0TestMaskedArrayMethods.test_argsort_matches_sortc                 C   s  t g d¢g d¢gƒ}| d¡ t|g d¢g d¢gƒ t g d¢g d¢gƒ}| d¡ t|g d¢g d¢gƒ t g d¢g d¢gg d	¢g d
¢gd�}| d¡ t|g d¢g d¢gƒ t|jg d¢g d¢gƒ t g d¢g d¢gg d	¢g d
¢gd�}| 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 dk< | ¡ }| d¡}| d¡ | d¡ t||ƒ | ¡ }| d¡}| d¡ | d¡ t||ƒ | ¡ }| d¡}| d¡ | d¡ t||ƒ d S )N)r  rÌ   r•   )r°   r   rF  r   r™  )r  rÌ   rF  r•   )r•   rÌ   r  )r   r°   rF  rá   r6  r—   r~  r±   rÔ  ry  rà   rÌ   rG  r°   )rL   rr   r   rÒ   rK   rï   r9   )r¢   r¶   ÚamÚanr}   r}   rƒ   Útest_sort_2d  sF   

$
$
ý










z#TestMaskedArrayMethods.test_sort_2dc                 C   sÞ   t g d¢g d¢dtfdtfgd�}t g d¢g d¢dtfdtfgd�}t g d¢g d	¢dtfdtfgd�}t|ƒ}t||ƒ t|j|jƒ t|d
d�}t||ƒ t|j|jƒ t dtdfg¡}| |¡}t|ƒ}t|d
d�}d S )N)r§  r¶  rW  ©r°   r•   rÁ  r‹  r	  )r´  rµ  r´  r´  rÁ  r´  r´  r  rã  r   )r‹  r	  rr  rW  r§  r¶  rÁ  )r´  r´  r´  r´  r´  rµ  rÁ  )rÁ  r‹  r	  rr  rW  r¶  r§  )rÁ  r´  r´  r´  r´  rµ  r´  FrD  r-  r°   )r(   rÆ   rr   r   r˜   r~   r   rª  )r¢   r¶   Ú	mask_lastÚ
mask_firstrÞ   rA  r}   r}   rƒ   Útest_sort_flexible?  s2   ýýý


z)TestMaskedArrayMethods.test_sort_flexiblec                 C   s,   t g d¢g d¢d�}tt |¡t|ƒƒ d S )N)r•   r×   r°   rÌ   r¯   )r•   r   r   r•   r   r—   )r(   r   r~   r'   r�  r}   r}   rƒ   Útest_argsort_  s   z#TestMaskedArrayMethods.test_argsortc                 C   sâ   t g d¢gƒ}t| ¡ g d¢ƒ t g d¢gg d¢gd�}t| ¡ g d¢ƒ t| ¡ jg d¢ƒ t dgg¡}| ¡ }t|dƒ d|d< t|d dƒ t dggdd�}| ¡ }t|tjjuƒ t|j	dƒ d|d< t|d dƒ d S )	Nrà   rÔ  r—   r•   r°   .r´  T)
rL   r   ÚsqueezerÒ   r~   r(   r   rõ   rK   r˜   )r¢   rÝ   ry  Úarr_sqÚm_arrÚm_arr_sqr}   r}   rƒ   Útest_squeezed  s    
z#TestMaskedArrayMethods.test_squeezec                 C   s‚   t  g d¢¡}t  g d¢¡}t||d� dd¡}| dddd¡}| dd¡}t|d	 |d d …d	f ƒ | dd¡}t|jd
ƒ d S )Nrû  r  r—   rÍ   r¯   r°   r   r•   rå   )r°   r°   r¯   r¯   )r~   r(   rl   Úswapaxesr   rn   )r¢   r£   r,  r  r  Ú	mXswappedÚ
mXXswappedr}   r}   rƒ   Útest_swapaxes{  s   z$TestMaskedArrayMethods.test_swapaxesc                 C   sL  t g d¢g d¢ƒ}t| g d¢¡t g d¢g d¢ƒƒ t| g d¢¡|g d¢ ƒ t| ddgddgg¡t dd	gdd	ggddgddggƒƒ t|d tjju ƒ t| d¡tjju ƒ tg d
¢g d¢gg d¢g d¢gd�}t|jddgdd�tddgddggddgddggd�ƒ tt|ddgdd�tddgddggddgddggd�ƒ d S )N)rÕ   rŠ  rô  rò  rC  )r   r   r¯   )rÕ   rÕ   rò  r6  r   r•   rÕ   rŠ  ró  r>  rá   r—   r°   rc  rô  rò  rU  )rL   r   rv   r   r~   rõ   rK   r(   r¼   r}   r}   rƒ   Ú	test_take’  s   " ÿ$"ÿ"ÿz TestMaskedArrayMethods.test_takec                 C   s*  t  d¡}t  d¡d d d …f t  d¡d d …d f  }t||t|ƒkd�}t||d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 |d<  |d< |d< t||ƒ t|j|jƒ tddd�}t||ƒ}t |d< |d< t||ƒ t|j|jƒ d S )N)rò  r†  é%   rF  r?  r¯   r×   r—   r9  ©Úmode)rò  r†  r�  )r†  r�  rF  )r�  rF  r?  )rF  r?  r?  )r?  r?  r?  )rF  r?  rò  )r?  rò  rò  r¶  )rÌ   r•   ©rÌ   r°   rS  rµ  rÁ  )r~   r(   r!   rÇ   rv   r   rK   r˜   )r¢   r¶   ÚindicesÚmindicesrÞ   Úctrlr}   r}   rƒ   Útest_take_masked_indices¤  s4   
,ü

ü


z/TestMaskedArrayMethods.test_take_masked_indicesc                 C   sT  t t d¡ƒ}t|ddg< | ¡ }t|d d u ƒ t|d d u ƒ d|_| ¡ }g d¢g d¢g d¢g}t|d g d¢ƒ t|d g d¢ƒ t|d	 g d¢ƒ t||ƒ t tt	g d
¢g d¢g d¢ƒƒdt
fdtfdgd�}t|d< t| ¡ g d¢ƒ t ddgddgdt
fdt
fgd�}| ¡ }t|dd gddggƒ |d }| ¡ }t|dd gƒ d S )NrÀ  r•   r~  rÐ   )r   Nr°   r¯   )rÌ   r×   rÍ   rV  )r  rF  Né   r   r°   rà   )r  r  r  )r  r  r  r¶   r·   r  rÖ   rå   ))r•   r  s   one)r°   r  ó   two)NNNr	  rµ  r´  r¶  r¯   rÌ   )r(   r~   r!   rK   Útolistr   rn   r   rØ   rÙ   rÆ   rÜ   )r¢   r£   Úxlistr‡  r¶   rÞ   r}   r}   rƒ   Útest_tolistÂ  s<   
þýÿÿz"TestMaskedArrayMethods.test_tolistc                 C   s~   t ddgdtfdtfgd�}|D ]}| ¡ D ]}tt|tjƒ ƒ qqd|jd< |D ]}| ¡ D ]}tt|tjƒ ƒ q0q*d S )Nrµ  r3  r¶   r·   rÖ   r   )r(   rÆ   r‹  r   r¬  r~   Úgenericr˜   )r¢   r¶   Úentryr  r}   r}   rƒ   Útest_tolist_specialcaseæ  s   ÿ
ÿÿz.TestMaskedArrayMethods.test_tolist_specialcasec                 C   s@  t dƒ}| ¡ }t|d |jƒ t|d |jƒ t|g d¢< | ¡ }t|d |jƒ t|d |jƒ dtfddtfg}tt	t
t  d¡dtj d¡ƒƒ|d	�}t|g d¢< | ¡ }t|d |jƒ t|d |jƒ t d
¡}tt	t
t  d¡tj d¡tj d¡ƒƒ|d	�}t|g d¢< | ¡ }t|d |jƒ t|d |jƒ d S )NrÕ   r»   rÒ   )r   r•   r°   rå   rÕ  r1  rØ  ÚABCDEFGHIJKLMrÖ   rÿ  )r!   Útoflexr   r»   rÒ   rK   rÆ   rÜ   r(   rØ   rÙ   r~   rÚ   rÛ   r   r   )r¢   rÝ   rî  rá  r}   r}   rƒ   Útest_toflexô  s<   
þý


þýz"TestMaskedArrayMethods.test_toflexc                 C   s²   t g d¢ƒ}t| ¡ ƒ}t||ƒ t|j|jƒ t g d¢g d¢d�}t| ¡ ƒ}t||ƒ t|j|jƒ t g d¢g d¢dtfdtfgd�}t| ¡ ƒ}t||ƒ t|j|jƒ d S )	Nrà   r6  r—   )r²  r³  )r¯   r�   )rÁ  r´  rµ  r  rã  r¶  )r(   r<   r’  r   r˜   rÆ   rÜ   rÝ   rL  r}   r}   rƒ   Útest_fromflex  s   

ÿ
z$TestMaskedArrayMethods.test_fromflexc                 C   sr   t g d¢gg d¢d�}t dgdgdgdgdggg d¢d�}t|j|ƒ t| ¡ |ƒ tt |jd	¡| d	¡ƒ d S )
Nr=  ra  r—   r•   r°   r¯   rÌ   r×   r   )rL   r   r(  ry   r   Úcumsum)r¢   Úmarrayrï  r}   r}   rƒ   Útest_arraymethod&  s   ÿz'TestMaskedArrayMethods.test_arraymethodc                 C   s4   t jjddd�}t|jj|jƒ t|jj|jƒ d S )Né*   Tr—   )r~   rõ   r(   r   r(  r˜   rÝ   r¼   r}   r}   rƒ   Útest_arraymethod_0d0  s   z*TestMaskedArrayMethods.test_arraymethod_0dc                 C   sb   t j g d¢g d¢g¡}t jj|d< |j}d|d< t jj|d< t|j|jjƒ t|j|jjƒ d S )Nrà   ry  rµ  rÕ   rÁ  )r~   rõ   r(   rK   r(  r   rÝ   r˜   )r¢   r£   Úxtr}   r}   rƒ   Útest_transpose_view6  s   z*TestMaskedArrayMethods.test_transpose_viewc                 C   s`   t j d¡}d|d< t jj|d< d|d< | ¡ }d|d< t|j| ¡ jƒ t|j| ¡ jƒ d S )Nr§  rÕ   r´  r‹  rŠ  rW  rê   )r~   rõ   r{   rK   r(  r   r˜   rÝ   )r¢   r£   Úxdr}   r}   rƒ   Útest_diagonal_viewA  s   z)TestMaskedArrayMethods.test_diagonal_viewN).r  r  r  r­   r*  r,  r.  r1  r4  r8  r;  r<  rA  rD  rH  rJ  rL  r$  rM  rN  rO  rR  rW  rö   rá  râ  r]  r^  rh  rj  rn  rq  ru  rv  r{  r  r€  rˆ  r�  r�  r“  r”  r—  r™  r›  r�  r}   r}   r}   rƒ   rø  @  sV     	
	
%( $ 
rø  c                   @   sÚ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd „ ƒZd!d"„ Zd#d$„ Zd%d&„ Zed'd(�d)d*„ ƒZd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3S )4ÚTestMaskedArrayMathMethodsc              
   C   rù  rú  r  r  r}   r}   rƒ   r­   N  r#  z'TestMaskedArrayMathMethods.setup_methodc              
   C   s¦   | j \
}}}}}}}}}	}
| d¡}t|j| d¡ d¡ƒ | d¡}t|j| d¡ d¡ƒ | d¡}t|j| d¡ d¡ƒ | d¡}t|j| d¡ d¡ƒ d S ©Nr   r•   )r    r•  r   r»   r9   Úcumprod)r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  ÚmXcpr}   r}   rƒ   Útest_cumsumprodn  s   



z*TestMaskedArrayMathMethods.test_cumsumprodc                 C   sÆ   t tj ddd¡ƒ dd¡}t |d d …df<  |d< |d< dD ]@}tt|ƒ}t||ƒ}tjdtd	�}| 	d
¡ ||d|d�}t
||u ƒ t||d|d�ƒ tdtd	�}|d|d�}t
||u ƒ q d S )Nr   rÕ   rÀ  r¯   rÌ   rÝ  )r•  r   rÐ   rÖ   r!  rT  r¡  )r¢   r¨   r[  r\  r£  r¤  r_  r}   r}   rƒ   Útest_cumsumprod_with_output{  s    


òz6TestMaskedArrayMathMethods.test_cumsumprod_with_outputc              
   C   sÈ   | j \
}}}}}}}}}	}
|j\}}t| ¡ t | ¡ ¡ƒ t |t¡}t |t¡}t|ƒD ]}t |d d …|f  ¡ ¡||< q.t|ƒD ]}t ||  ¡ ¡||< qDt| d¡|ƒ t| d¡|ƒ d S rŸ  )	r    rn   r   rb  r~   rC  r{   rÜ   rŸ  )r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  rg  ÚrowsÚcolsÚkr}   r}   rƒ   Útest_ptp�  s   
 z#TestMaskedArrayMathMethods.test_ptpc                 C   s>   t ddgddgtd�}|d }t|d dƒ t|jd ƒ d S )Nr¶   r·   r•   r   r¶  r£   Úbx)rL   r>  r   r   r˜   rø  r}   r}   rƒ   Útest_add_objectž  s   z*TestMaskedArrayMathMethods.test_add_objectc                 C   óV   t g d¢g d¢td�}t| ¡ dƒ t g d¢g d¢gtd�}t|jdd�g d	¢ƒ d S )
Nrà   rá   r¶  r×   ry  rÖ   r   rc  ©r×   rV  rF  )rL   r>  r   ru   r�  r}   r}   rƒ   Útest_sum_object¤  ó   z*TestMaskedArrayMathMethods.test_sum_objectc                 C   rª  )
Nrà   rá   r¶  rÍ   ry  rÖ   r   rc  ©rÌ   rÕ   r†  )rL   r>  r   rƒ  r�  r}   r}   rƒ   Útest_prod_object«  r­  z+TestMaskedArrayMathMethods.test_prod_objectc                 C   s4   t g d¢td�}t| ¡ dƒ t| ¡ g d¢ƒ d S )Nrà   rÖ   r°   )rå   r   r•   )rL   r>  r   r   r    r�  r}   r}   rƒ   Útest_meananom_object²  s   z/TestMaskedArrayMathMethods.test_meananom_objectc                 C   sN   t g d¢ƒ}t| ¡ j|jƒ d|_t| ¡ j|jƒ ttj | ¡ ¡ƒ d S )Nrà   T)	rL   r   r    rn   r˜   r   r~   rõ   Ú	is_maskedr�  r}   r}   rƒ   Útest_anom_shape¸  s
   z*TestMaskedArrayMathMethods.test_anom_shapec                 C   sü   t t dd¡ dd¡ƒ}t| ¡ g d¢g d¢gƒ t|jdd�g d	¢g d
¢gƒ t|jdd�g d¢g d¢gƒ g d¢g d¢g|_d}t| ¡  |¡dd|gd|dggƒ t|jdd� |¡dd|gd|dggƒ t|jdd� |¡dd|gd|dggƒ d S )Nr•   rV  r°   r¯   )g      Àç      ø¿rš   )r›   r•  r/  r   rc  )r³  r³  r³  )r•  r•  r•  )r’   r‘   rˆ   r6  r  rT  g      Àg      ô¿g      è?g      @r³  r‘   r•  rš   r›   r’   rˆ   )rL   r~   r!   rl   r   r    r˜   r9   )r¢   r¶   Úmvalr}   r}   rƒ   Ú	test_anom¿  s*   ÿÿÿÿÿÿz$TestMaskedArrayMathMethods.test_anomc              
   C   s¼   | j \
}}}}}}}}}	}
| ¡ }t| ¡ | ¡  ¡  ¡ ƒ t| ¡ | ¡ t|j| ¡  dd� ƒ tt |¡| ¡ ƒ t 	d¡ 
ddd¡}tj |d¡}t|jddd�|jddd�ƒ d S )	Nr   rc  é    r°   rÌ   Fr•   )Úaxis1Úaxis2)r    r(  r   ÚtracerC  ru   r   r˜   r~   r!   rl   rõ   rL   )r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  ÚmXdiagry  ry  r}   r}   rƒ   Ú
test_traceÐ  s   ÿÿ"z%TestMaskedArrayMathMethods.test_tracec              
   C   s  | j \
}}}}}}}}}	}
| d¡}| |¡}t| d¡| |¡ƒ t|jtu ƒ | d¡}| |¡}t| d¡| |¡ƒ t|jd ƒ t|ƒ}|j||d� t||ƒ | dd¡}| d¡| d¡}}| |¡}t| d¡| |¡ƒ t|ƒ}|j||d� t||ƒ d S )Nr   rã   r2  rå   r~  )	r    r9   Údotr   r   r˜   ra   r5   r|  )r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  ÚfxÚrÚfXr¼  ÚmYYÚfXXÚfYYr}   r}   rƒ   Útest_dotß  s&   





z#TestMaskedArrayMathMethods.test_dotc                 C   s¢   t ddgddggddgddggd�}t ddgddggddgddggd�}t ddgddggƒ}|j||d� t| d¡ddgdd	ggƒ t|jddgddggƒ d S )
Nr•   r°   r¯   rÌ   r   r—   r2  rê   é   )rL   r¼  r   r9   r˜   r4  r}   r}   rƒ   Útest_dot_shape_mismatch÷  s   $$z2TestMaskedArrayMathMethods.test_dot_shape_mismatchc                 C   sæ   t g d¢dd�}t g d¢dd�}tt| ¡ ƒtjƒ tt| ¡ ƒtjƒ | ¡ | ¡ kt d¡u s3J ‚t t d¡ 	d¡dd�}t
ddd�}tt|jd	d
�ƒtƒ tt|jd	d
�ƒtƒ t|jd	|d�|u ƒ t|jd	|d�|u ƒ d S )NrH  r  rÖ   TrÄ  r©  rÌ   r  r•   rc  rT  )r(   r   rM  r   r~   ri  rž  r  r!   rl   r4   r   r   )r¢   ÚfooÚbarr}   r}   rƒ   Útest_varmean_nomask   s   z.TestMaskedArrayMathMethods.test_varmean_nomaskc              
   C   s’  | j \
}}}}}}}}}	}
t|jd d�| ¡  ¡ ƒ t|jd d�| ¡  ¡ ƒ t|jd dd�| ¡ jdd�ƒ t|jd dd�| ¡ jdd�ƒ t|jdd�j|jdd�jƒ t| ¡ j| ¡ jƒ |jdd�|jdd�}}t|jd dd�| ¡ jdd�ƒ t|jd dd�| ¡ jdd�ƒ tdƒD ]4}t|| ||  ¡  ¡ ƒ t|| |d d …|f  ¡  ¡ ƒ tt 	|| ¡|d d …|f  ¡  ¡ ƒ q’d S )	Nrc  r•   ©rd  Úddof©rÊ  r¯   r   r°   rÍ   ©
r    r   rž  rC  rŸ  r   rn   rŸ  r~   rs   ©r¢   r£   r¢  r  r,  r  r  r  r   r!  r"  ÚmXvar0ÚmXvar1r¦  r}   r}   rƒ   Útest_varstd  s2   ÿÿÿÿ"ÿýz&TestMaskedArrayMathMethods.test_varstdc                 C   sN  t jdtd�}tdtd�}ttdƒdd�}dD ];}t||ƒ}t|ƒ tu ƒ t|dƒtu ƒ t|dƒtu ƒ ||d� t|tuƒ t|jdƒ ||d� tt  	|¡ƒ qttdƒdd�}d	|d< dD ]C}t||ƒ}t|d
d�tu ƒ t|dd
d�tu ƒ t|dd
d�tu ƒ ||d
d� t|tuƒ t|jdƒ ||d
d� tt  	|¡ƒ qad S )Nrå   rÖ   rÕ   Tr—   )rž  rŸ  r   r2  rF  r•   rË  )rU  rÊ  )
r~   r(   rÜ   r!   rX  r   rK   r   r˜   r½  )r¢   r^  Úmoutr£   Ú
methodnameÚmethodr}   r}   rƒ   Útest_varstd_specialcases&  s4   



õz3TestMaskedArrayMathMethods.test_varstd_specialcasesc                 C   s¾   t g d¢g d¢gg d¢g d¢gd�}|jddd�}t| d¡g d¢ƒ t|jg d¢ƒ |jddd�}t| d¡g d¢ƒ t|jg d¢ƒ |jddd�}t| d¡g d¢ƒ t|jg d	¢ƒ d S )
Nr=  r6  r—   r   rÉ  r~  r•   r°   rÔ  )r(   rŸ  r   r9   r˜   rL  r}   r}   rƒ   Útest_varstd_ddofI  s   $z+TestMaskedArrayMathMethods.test_varstd_ddofc                 C   sš   t dƒ d¡}t|d< t |¡}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d	�}t||ƒ d S )
NrF  r§  r‹  )r   rÌ   r  r  r~  )r   rÌ   r   )r   r   r  r—   )r!   rl   rK   r~   r1   r   r˜   r(   )r¢   r£   rU  rï  r}   r}   rƒ   Ú	test_diagU  s   
ÿz$TestMaskedArrayMathMethods.test_diagc                 C   s  t g d¢g d¢gƒ}t| d¡g d¢ƒ t| d¡ddgƒ t| d¡ddgƒ t| d¡g d	¢ƒ t| d¡dd
gƒ t| d¡dd
gƒ t| d¡g d¢ƒ t| d¡ddgƒ t| d¡ddgƒ t| d¡g d¢ƒ t| d¡ddgƒ t| d¡ddgƒ d S )Nrà   ry  r   r«  rå   rÍ   rê   r•   r®  éx   rÌ   r¯   )r(   r   ru   rƒ  r[   rX   r�  r}   r}   rƒ   Útest_axis_methods_nomaskc  s   z3TestMaskedArrayMathMethods.test_axis_methods_nomaski Zb)Ú
free_bytesc                 C   s2   t tjddtjd�t d¡d�}t| ¡ dƒ d S )N)é'  rÚ  iÿÿ  rÖ   r—   g    àÿï@)rL   r~   rO  Úuint16r{   r   r   r�  r}   r}   rƒ   Útest_mean_overfloww  s   ÿz-TestMaskedArrayMathMethods.test_mean_overflowc                 C   s†   t  g d¢¡}t jj|dd … dd�}t jj|d d… dd�}t jj||dd�}t jj|dd�}t jj|dd�}tt j ||¡ƒ d S )N©r•   r°   r°   r¯   rÌ   r°   r•   r•   r¯   r°   ©r_  r   )Úprependrd  rc  ©r~   r(   rõ   rM   Údiffr   r   )r¢   r£   r¶   Úa_prepÚdiff1r·   Údiff2r}   r}   rƒ   Útest_diff_with_prepend  ó   z1TestMaskedArrayMathMethods.test_diff_with_prependc                 C   s†   t  g d¢¡}t jj|d d… dd�}t jj|dd … dd�}t jj||dd�}t jj|dd�}t jj|dd�}tt j ||¡ƒ d S )NrÝ  r¯   r°   rÞ  r   )Úappendrd  rc  rà  )r¢   r£   r¶   Úa_apprã  r·   rä  r}   r}   rƒ   Útest_diff_with_appendŒ  ræ  z0TestMaskedArrayMathMethods.test_diff_with_appendc                 C   sF   t jtdd�� tj t d¡¡ W d   ƒ d S 1 sw   Y  d S )Nz4diff requires input that is at least one dimensionalr	  r•   )rö   r  r  r~   rõ   rá  r(   rù   r}   r}   rƒ   Útest_diff_with_dim_0™  s   þ"üz/TestMaskedArrayMathMethods.test_diff_with_dim_0c                 C   s<   t jjg d¢dd�}t jj|ddd�}tt j ||¡ƒ d S )NrÝ  r°   rÞ  r   )rg  rd  )r~   rõ   rM   rá  r   r   )r¢   r¶   rá  r}   r}   rƒ   Útest_diff_with_n_0   s   z-TestMaskedArrayMathMethods.test_diff_with_n_0N)r  r  r  r­   r¢  r£  r§  r©  r¬  r¯  r°  r²  rµ  r»  rÃ  rÅ  rÈ  rÐ  r$  rÔ  rÕ  rÖ  rØ  r	   rÜ  rå  ré  rê  rë  r}   r}   r}   rƒ   rž  L  s6     	
"
rž  c                   @   ó   e Zd Zdd„ Zdd„ ZdS )Ú!TestMaskedArrayMathMethodsComplexc              
   C   rù  )N)$y             À @y        ®Gáz.@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  r}   r}   rƒ   r­   ©  r#  z.TestMaskedArrayMathMethodsComplex.setup_methodc              
   C   sR  | j \
}}}}}}}}}	}
t|jd d�| ¡  ¡ ƒ t|jd d�| ¡  ¡ ƒ t|jdd�j|jdd�jƒ t| ¡ j| ¡ jƒ |jdd�|jdd�}}t|jd dd�| ¡ jdd�ƒ t|jd dd�| ¡ jdd�ƒ tdƒD ]4}t|| ||  ¡  ¡ ƒ t|| |d d …|f  ¡  ¡ ƒ tt 	|| ¡|d d …|f  ¡  ¡ ƒ qrd S )	Nrc  r¯   r   r•   r°   rÉ  rË  rÍ   rÌ  rÍ  r}   r}   rƒ   rÐ  É  s&   ÿÿ"ÿýz-TestMaskedArrayMathMethodsComplex.test_varstdN)r  r  r  r­   rÐ  r}   r}   r}   rƒ   rí  §  s     rí  c                   @   sf  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zejjed!d"�d#d$„ ƒZd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Z ej !d7d8d9g¡d:d;„ ƒZ"d<d=„ Z#d>d?„ Z$d@dA„ Z%dBdC„ Z&dDdE„ Z'dFdG„ Z(dHdI„ Z)dJdK„ Z*dLdM„ Z+dNdO„ Z,dPdQ„ Z-dRdS„ Z.dTS )UÚTestMaskedArrayFunctionsc                 C   st   t  ddddtd dddddddg¡}t  g d	¢¡}g d
¢}g d¢}t||d�}t||d�}| d¡ ||f| _d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r”   r–   r—   r�   )r~   r(   rž   rL   rŸ   rö  )r¢   r£   r¤   r¦   r§   r¨   r©   r}   r}   rƒ   r­   ß  s   &
z%TestMaskedArrayFunctions.setup_methodc                 C   s2   ddg}t d|ƒ}t|ddgƒ t|d dƒ d S )Nr•   r°   F)rW   r   rø  r}   r}   rƒ   Útest_masked_where_boolé  s   
z/TestMaskedArrayFunctions.test_masked_where_boolc                 C   sT   g d¢}t |dƒ}t||ƒ t|jg d¢ƒ t|dƒ}t||ƒ t|jg d¢ƒ d S )Nrà   r¯   r6  r=  )rM   r   rÒ   rS   rì  r}   r}   rƒ   Útest_masked_equal_wlistï  s   



z0TestMaskedArrayFunctions.test_masked_equal_wlistc                 C   s2   g d¢}t |dƒ}t|jg d¢ƒ t|jdƒ d S )Nrà   r¯   r6  )rM   r   rÒ   r"  rì  r}   r}   rƒ   Útest_masked_equal_fill_valueø  s   
z5TestMaskedArrayFunctions.test_masked_equal_fill_valuec                 C   sø   t g d¢ƒ}t|d< ttt|dƒ|ƒt|dƒƒ ttt|dƒ|ƒt|dƒƒ ttt|dƒ|ƒt	|dƒƒ ttt
|dƒ|ƒt|dƒƒ ttt|dƒ|ƒt|dƒƒ ttt|dƒ|ƒt|dƒƒ ttt|dƒ|ƒt|dƒƒ ttg d¢g d¢ƒg d¢ƒ d S )NrÈ  r°   rb  r=  )rG  rG  r¯   rÌ   r×   )r(   rK   r   rW   r?   rN   r@   rO   rD   rQ   rE   rR   rb   rS   r6   rM   r¼   r}   r}   rƒ   Útest_masked_where_conditionþ  s    ÿÿÿz4TestMaskedArrayFunctions.test_masked_where_conditionc                 C   s0   t dtd�}t|jtƒ}t||ƒ}t||ƒ d S )N)rÕ   rÕ   rÕ   rÖ   )rc   rÜ   r{   rn   r   rW   r   )r¢   rÎ  rÏ  Úctestr}   r}   rƒ   Útest_masked_where_oddities  s   
z3TestMaskedArrayFunctions.test_masked_where_odditiesc                 C   sX   t dƒ}ttƒ� td|ƒ W d   ƒ n1 sw   Y  t|dƒ}t|jg d¢ƒ d S )NrÕ   r•   )
r   r•   r   r   r   r   r   r   r   r   )r!   r   Ú
IndexErrorrM   r   r˜   rL  r}   r}   rƒ   Ú"test_masked_where_shape_constraint  s   
ÿ
z;TestMaskedArrayFunctions.test_masked_where_shape_constraintc                 C   s�   t jdddgd�}t jdd�� t j |d dk |¡}W d   ƒ n1 s%w   Y  t|jjj|jjƒ t|d t j 	t  d¡t  
d¡¡ƒ d S )	NrÕ   )r  z<f2)rã  z<f4rÖ   r3  )Úoverr  r×   )r~   r{   r7  rõ   rW   r   r˜   r   r  rL   rc   )r¢   r¶   ro  r}   r}   rƒ   Útest_masked_where_structured  s   üÿz5TestMaskedArrayFunctions.test_masked_where_structuredc                 C   s.   t  d¡}t  d¡}ttt jj|dk|ƒ d S )NrÕ   r×   rÍ   )r~   r!   r   rõ  rõ   rW   rø  r}   r}   rƒ   Útest_masked_where_mismatch)  s   

z3TestMaskedArrayFunctions.test_masked_where_mismatchc                 C   sè   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dƒjg d¢ƒ t ttttdƒƒg d	¢d�ddƒjg d
¢ƒ t ttttdƒƒg d¢d�dƒjg d¢ƒ t ttg d¢g d¢d�dƒjg d¢ƒ d S )Nr×   r•   r¯   )r   éÇ   rú  rú  rÌ   )rú  r•   r°   r¯   rú  rû   r—   )r•   r•   r•   r•   r   rS  rß  r°   )r•   r   r•   r   r   )r°   r°   r•   r°   r•   )r•   r   r•   r   r•   )	r   rP   rØ   rŸ  rT   r(   r˜   rM   rS   rù   r}   r}   rƒ   Útest_masked_otherfunctions/  sH   ÿÿÿþÿÿþÿÿþÿÿþz3TestMaskedArrayFunctions.test_masked_otherfunctionsc                 C   s  t g d¢g d¢d�}t| ¡ g d¢ƒ t| d¡g d¢ƒ t| d¡g d¢ƒ t|ƒ}|j|d	� t|g d¢ƒ t g d
¢ƒ}t g d¢ƒ}t|d< t||| ƒ}t|g d¢ƒ t|d< t||| ƒ}t|g d¢ƒ t|d tu ƒ t|d tuƒ t|d tu ƒ d S )N)g82�üÁÀó?g¤ª	¢îÃ@g,¼ËE|§@gÚæÆô„E@g�Å�1·@rS  r—   )rˆ   rŠ   r�   rŒ   rý  r•   )g333333ó?gffffff@r=  gffffff@gÍÌÌÌÌÌ@r¯   )gÃõ(\�Âó?gøSã¥›Ä@g-²�ï§@gƒÀÊ¡E@gžï§ÆK·@r2  rÈ  rÉ  r°   rÊ  r   )r(   r   rV  r5   rK   rz   r   )r¢   r¶   r·   r£   rÆ  rª   r}   r}   rƒ   Ú
test_round@  s(   ÿz#TestMaskedArrayFunctions.test_roundc                 C   s®   t tj ddd¡ƒ dd¡}t |d d …df<  |d< |d< tjdtd�}| d	¡ tj	|d
|d�}t
||u ƒ t||j	d
|d�ƒ tdtd�}|j	d
|d�}t
||u ƒ d S )Nr   rÕ   rÀ  r¯   rÌ   rÝ  rÐ   rÖ   r!  r°   )ÚdecimalsrU  )r(   r~   rÚ   rW  rl   rK   r4   rÜ   rZ  rV  r   r   )r¢   r¨   r¤  r_  r}   r}   rƒ   Útest_round_with_outputV  s    
z/TestMaskedArrayFunctions.test_round_with_outputc                 C   sè   t ddgd�}t| ¡ dƒ t ddgd�}t| ¡ tu ƒ t ddgd�}tjdtd�}| d¡ |j|d� t|dƒ t ddgd�}t d	dgd�}|j|d� t|d
 dƒ t ddgd�}t d	dgd�}|j|d� t|d
 tu ƒ d S )Nr  Fr—   r•   TrÖ   r!  r2  g    €‡ÃÀr}   )	r(   r   rV  r   rK   r~   r4   rÜ   rZ  )r¢   r¶   r¤  r}   r}   rƒ   Útest_round_with_scalarh  s"   

z/TestMaskedArrayFunctions.test_round_with_scalarc                 C   s*   t dƒ}tt|tƒƒ t|t  d¡ƒ d S ©Nr×   )rA   r   r¬  r   r   r~   r�  r}   r}   rƒ   Útest_identity�  s   z&TestMaskedArrayFunctions.test_identityc                 C   sî   d}t t|dƒdƒ tt|tƒtu ƒ tg d¢ƒ}tg d¢g d¢d�}t||ƒ}t |g d¢ƒ t|jg d	¢ƒ t|_t||ƒ}t|jg d	¢ƒ || }t|j|jƒ t ||ƒ t |j	|j	ƒ ||C }t|j|jƒ t ||ƒ t |j	|j	ƒ d S )
Nçš™™™™™ñ¿rŠ   ç\�Âõ(\ó?)r  r  r  r  r‘   )r›   rŠ   r›   rŠ   r’   rý   r—   )r   r  gKTjÉëÇð?r  r‘   r€  )
r   rf   r   rK   r(   r   rÒ   ra   r˜   r»   )r¢   r£   r·   r¤   rª   r}   r}   rƒ   Ú
test_power†  s&   



z#TestMaskedArrayFunctions.test_powerc                 C   sN  t  g d¢g d¢g¡}t|g d¢g d¢gd�}t  g d¢¡}t  ||g¡}t|g d¢g d¢gd�}tg d¢g d	¢gg d
¢g d¢gd�}|| }t||ƒ t|j|jƒ || }t||ƒ t|j|jƒ || }t||ƒ t|j|jƒ tg d¢g d¢gg d¢g d¢gd�}|| }t||ƒ t|j|jƒ || }t||ƒ t|j|jƒ d S )NrŒ  )r‹   rŒ   rý  rá   r6  r—   rÇ  r  )r•   rÄ  é   )rÄ  iq  éØ   r=  ©r   r•   r•   )rÌ   é   r  )r~   r(   r   r˜   )r¢   Úa2Úa2mÚb1Úb2Úb2mr‡  rÞ   r}   r}   rƒ   Útest_power_with_broadcasting›  s4   ÿ


ÿ

z5TestMaskedArrayFunctions.test_power_with_broadcastingzfp errors don't work in wasm©Úreasonc           
      C   sš  t  ddddtd dddddddg¡}t  g d	¢¡}g d
¢}g d¢}t||d�}t||d�}| d¡ t|dk|dƒ}t|g d¢ƒ t|j|jƒ t|dkd|ƒ}t|g d¢ƒ t|jg d¢ƒ t|dk|tƒ}t|g d¢ƒ |j 	¡ }d||dk 
d¡< t|j|ƒ t jdd��$ tjtdd�� | t¡}	W d   ƒ n1 s¡w   Y  W d   ƒ n1 s°w   Y  t|	dk|	tƒ}t|g d¢ƒ t|j|	jƒ d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r”   r–   r—   r�   r°   é÷ÿÿÿ)ç      "Àr  r  r  r  r‹   r  r  rŽ   r  r  r�   )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ð  r4  zinvalid valuer	  )r  r  r  r  r  rÌ   r  r  rÕ   r  r  r¯   )r~   r(   rž   rL   rŸ   rz   r   rÒ   rK   rï   r9   r7  rö   r÷   ÚRuntimeWarningrÅ   rÆ   r   )
r¢   r£   r¤   r¦   r§   r¨   r©   r    ÚtmpÚixmr}   r}   rƒ   Ú
test_where»  s6   &

ÿ€þz#TestMaskedArrayFunctions.test_wherec                 C   sJ   t  d ¡}td ƒ}| ¡ }tt j d||¡|ƒ tt j d||¡|ƒ d S )NT)r~   r(   rL   rï   r   rõ   rz   )r¢   r¶   r·   r¾  r}   r}   rƒ   Útest_where_objectÝ  s
   
z*TestMaskedArrayFunctions.test_where_objectc                 C   sþ   t dƒ}t|d< |dk}t||tƒ}t|j|ju ƒ t|d tu ƒ t|d tu ƒ t|d tu ƒ t|d tuƒ t|d tuƒ t||ƒ t|t|ƒ}t|j|ju ƒ t|d tu ƒ t|d tuƒ t|d tuƒ t|d tu ƒ t|d tu ƒ d S )NrÕ   r¯   r  rÌ   rV  rF  )r!   rK   rz   r   r   r   rÌ  r}   r}   rƒ   Útest_where_with_masked_choiceä  s$   
z6TestMaskedArrayFunctions.test_where_with_masked_choicec                 C   sN  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	 }t|d< t g d¢g d
¢d�}| d¡}t|||ƒ}t|||ƒ}t||ƒ tt|ƒtu ƒ t|g d¢ƒ t|tdƒ}t|g d¢ƒ t|dtƒ}t|g d¢ƒ d S )NrÈ  rÉ  r°   rÊ  r   r•   rÍ   rå   rÕ   rû   r—   )r•   r°   r¯   rò  r‰  )rG  rG  rG  r•   r•   )rG  r•   r•   rG  rG  )	r(   rK   rz   r   r   r!   r9   r=   ra   )r¢   r£   rÆ  rª   r¤   Úcmr«   r}   r}   rƒ   Ú test_where_with_masked_conditionú  s4   


z9TestMaskedArrayFunctions.test_where_with_masked_conditionc                 C   sT   t jdt jd�}t jdt jd�d }t|dk||ƒj}t  t jt j¡}t||ƒ d S )NrÌ   rÖ   r  r•  )r~   r!   r^  r]  rz   r   Úresult_typer   )r¢   r£   r¤   rÞ   rï  r}   r}   rƒ   Útest_where_type  s
   z(TestMaskedArrayFunctions.test_where_typec                 C   sZ   t  d¡ dd¡}t  d¡}t  g d¢||¡}tg d¢||ƒ}t||ƒ t|j|jƒ d S )NrF  r¯   r±   )r~   r!   rl   r{   rz   r   r   )r¢   r£   r¤   rY  rõ   r}   r}   rƒ   Útest_where_broadcast  s   

z-TestMaskedArrayFunctions.test_where_broadcastc                 C   sv   t  dtfdtfg¡}t jg d¢|d�}t jd|d�}t  g d¢||¡}t  g d¢||¡}t||ƒ t|j|jƒ d S )Nr¶   r·   ©r	  rÐ   rK  rÖ   )rÕ   rŠ  r  )r~   r   rÆ   r(   rz   r   )r¢   rA  r£   r¤   rY  rõ   r}   r}   rƒ   Útest_where_structured)  s   
z.TestMaskedArrayFunctions.test_where_structuredc                 C   sp   t  dtfdtfg¡}t jg d¢|d�}tg d¢|tƒ}tg d¢|ƒ}t|j|jƒ t||ƒ t|j|jƒ d S )Nr¶   r·   r  rÖ   r  rá   )	r~   r   rÆ   r(   rz   rK   rW   r   r˜   )r¢   rA  r£   rõ   r+  r}   r}   rƒ   Útest_where_structured_masked4  s   
z5TestMaskedArrayFunctions.test_where_structured_maskedc                 C   sb   t jdtd�}t j|d< t j|d< tjtdd�� t j 	|¡ W d   ƒ d S 1 s*w   Y  d S )Nr×   rÖ   r¯   r°   z!not supported for the input typesr	  )
r~   r!   r>  r\  r8  rö   r  r  rõ   Úmasked_invalidr�  r}   r}   rƒ   Útest_masked_invalid_error?  s   

ÿ"þz2TestMaskedArrayFunctions.test_masked_invalid_errorc                 C   sD   G dd„ dƒ}t j |ƒ ¡}t|jt  |ƒ ¡ƒ t|jg d¢ƒ d S )Nc                   @   s   e Zd ZdZddd„ZdS )zCTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.SeriesÚnonsenseNc                 S   s   t  dt jt jg¡S r   )r~   r(   r8  r\  )r¢   r   rï   r}   r}   rƒ   Ú	__array__N  s   zMTestMaskedArrayFunctions.test_masked_invalid_pandas.<locals>.Series.__array__)NN)r  r  r  r»   r$  r}   r}   r}   rƒ   ÚSeriesK  s    r%  )FTT)r~   rõ   r!  r   r»   r(   rÒ   )r¢   r%  ry  r}   r}   rƒ   Útest_masked_invalid_pandasG  s   z3TestMaskedArrayFunctions.test_masked_invalid_pandasrï   TFc                 C   sf   t j g d¢¡}|jtu sJ ‚t jj||d�}|jtusJ ‚|jtu s%J ‚t  |j|j¡|ks1J ‚d S )NrH  rb  )	r~   rõ   r(   rÒ   ra   r!  r˜   rð   r»   )r¢   rï   r¶   r  r}   r}   rƒ   Útest_masked_invalid_full_maskU  s   z6TestMaskedArrayFunctions.test_masked_invalid_full_maskc                 C   s(  g d¢g d¢g d¢g d¢g}t g d¢|ƒ}t|tg d¢ƒƒ t g d¢|dd	�}t|tg d¢ƒƒ t g d¢|d
d	�}t|tg d¢ƒƒ tg d¢g d¢d�}t ||d
d	�}t|tg d¢ƒƒ t|jg d¢ƒ t|g d¢g d¢g d¢g d¢gd�}g d¢}t ||d
d	�}t|tg d¢ƒƒ t|jg d¢ƒ d S )N©r   r•   r°   r¯   ©rÕ   r‰  rÀ  r}  ©rŠ  é   r?  é   ©rô  r7  r¶  é!   ©r°   r¯   r•   r   ©rŠ  r7  rÀ  r¯   )r°   rÌ   r•   r   r9  r‚  Úwrap)rŠ  r•   rÀ  r¯   ©r•   r   r   r•   r—   )rG  r•   rÀ  rG  r`  ©r•   r•   r   r•   rë   rB  )r*   r   r(   r˜   )r¢   ÚchoicesÚchosenÚindices_r}   r}   rƒ   Útest_choosea  s(   ÿÿz$TestMaskedArrayFunctions.test_choosec                 C   s  g d¢g d¢g d¢g d¢g}t dtd�}tg d¢||d�}t|tg d	¢ƒƒ t||u ƒ t dtd�}tg d¢g d
¢d�}t||d|d�}t|tg d¢ƒƒ t|jg d
¢ƒ t|g d¢g d¢g d¢g d¢gd�}g d¢}t dtd� t¡}t||d|d�}t|tg d¢ƒƒ d S )Nr(  r)  r*  r-  rÌ   rÖ   r/  r2  r0  r2  r—   r1  )rƒ  rU  )rG  r7  rÀ  rG  r`  r3  rë   rB  )rŒ  r7  rÀ  rŒ  )	r4   rÆ   r*   r   r(   r   r˜   rª  r
   )r¢   r4  r3  r5  r6  r}   r}   rƒ   Útest_choose_with_outx  s&   ÿÿz-TestMaskedArrayFunctions.test_choose_with_outc                 C   sô   t dƒ}t|d< | d¡}t|jdƒ t|jd ƒ | dd¡}t|jdƒ t|jd ƒ |jddd�}t|jdƒ t|jd ƒ |jdddd�}t|jdƒ t|jd ƒ t |d	¡}tt|t	ƒƒ t|jd	ƒ t|d
 tu ƒ t|jd ƒ d S )NrÕ   r   )r×   r°   r/  r×   r°   rò  r0  )r°   r×   r´  )
r!   rK   rl   r   rn   r   r)  r~   r¬  r   )r¢   r¶   r·   rÆ  r}   r}   rƒ   r^  Ž  s&   
z%TestMaskedArrayFunctions.test_reshapec              	   C   sÚ  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 t¡ƒ t|t|ƒu ƒ dt fddt fdt fgfg}t|ƒ}t ddddgfg¡}t||ƒ t|t|ƒu ƒ dt dffg}t|ƒ}t|t dtdffg¡ƒ t|t|ƒu ƒ d	t fg}t|ƒ}t|t d	tfg¡ƒ t|t|ƒu ƒ t dtd
fg¡}t|ƒ}t dtfd|fg¡}t|ƒ}t|t dtfddtd
fgfg¡ƒ t|jd d |u ƒ d S )Nr¶   r·   r°   r  r  )r¶   r  )r  r  )r  r  )r  r¶   r¯   r   )	rÜ   rI   r   r  r   r~   r   rÆ   r*  )r¢   ÚntyperÞ   rï  Ú	base_typeÚ
base_mtypeÚsub_typer}   r}   rƒ   Útest_make_mask_descr¨  s>   

$z-TestMaskedArrayFunctions.test_make_mask_descrc                 C   s  ddg}t |ƒ}t|jtƒ t|ddgƒ tjddgtd�}t |ƒ}t|jtƒ t|ddgƒ dtfdtfg}tjddg|d�}t |ƒ}t|jtƒ t|ddgƒ dtfdtfg}tjddg|d�}t ||jd�}t|j|ƒ t||ƒ dtfdtfg}dtfdtfg}tjddg|d�}t ||jd�}t|j|ƒ t|tjddg|d�ƒ tjdd	d�d
 }tt	|tj
ƒƒ t ||jd�}t||ƒ t||uƒ tjddd�d
 }t ||jd�}t||ƒ ddg}ttg}d}t |||¡D ]\}	}
}t t|	|
|d�}t|tu ||	|
|f ƒ qïd S )Nr   r•   rÖ   r¶   r·   r´  rµ  r©  z?,?r}   r  TFzcopy=%s, shrink=%s, dtype=%s)rï   rŽ  r   )rH   r   r   r   r~   r(   r  rÜ   r   r¬  ÚvoidÚ	itertoolsrg   ra   )r¢   r˜   rÞ   ÚmdtypeÚbdtypeÚtest2ÚboolsÚdtypesÚ	msgformatÚcpyÚshrrA  r  r}   r}   rƒ   Útest_make_maskÖ  sN   


þz'TestMaskedArrayFunctions.test_make_maskc                 C   s`  dt fdt fg}tjg d¢|d�}t|tƒ}t||ƒ tt|ƒ}t||ƒ t|dƒ}t||ƒ tjg d¢|d�}t||ƒ}tjg d¢|d�}t||ƒ dt fd	t fg}tjg d¢|d�}zt||ƒ}W n	 tyl   Y nw dt fdd
t fdt fgfg}tjddg|d�}tjddg|d�}	tjddg|d�}
tt||	ƒ|
ƒ t ddg¡}t||ƒtu s®J ‚d S )Nr¶   r·   )r´  rµ  rÁ  r´  rÖ   F)rµ  rµ  rµ  rµ  )rµ  rµ  r‹  rµ  r  rã  r  r  rè  rê  ©r   r´  ræ  )r  r~   r(   rJ   ra   r   r  )r¢   r5  r˜   rÞ   r…  rï  Ú	othertyper   r~  ÚbmaskÚcntrlr¶   r}   r}   rƒ   Útest_mask_or  s4   







ÿz%TestMaskedArrayFunctions.test_mask_orc                 C   s¾   t g d¢g d¢d�}t g d¢g d¢d�}t g d¢g d¢gg d¢g d¢gd�}t||ƒs-J ‚t||dd�r6J ‚t||ƒs=J ‚t||ƒsDJ ‚t||dd�sMJ ‚t||ƒsTJ ‚t||dd�r]J ‚d S )	Nrà   r~  r—   rá   ry  rÔ  Fr0  )r(   r   r4  r}   r}   rƒ   Útest_allequal(  s   $z&TestMaskedArrayFunctions.test_allequalc                 C   s¼   t jg d¢td�}tt|ƒ|ƒ t jddgdtfdtfgd�}t|ƒ}t jg d¢td�}t||ƒ dtfddtfd	tfgfg}d
dg}t j||d�}t|ƒ}t jg d¢td�}t||ƒ d S )Nr6  rÖ   r´  rµ  r¶   r·   r`  r  r  rI  ré  )r   r   r   r   r   r•   )r~   r(   r  r   r8   )r¢   r˜   rÞ   rï  r@  rÝ   r}   r}   rƒ   Útest_flatten_mask9  s   
z*TestMaskedArrayFunctions.test_flatten_maskc                 C   sP   t  g d¢¡}t|dd�}t|ƒ}t|| ¡ ƒ t|dƒ}t|| dd¡ƒ d S )NrH  Fr—   rW  r°   )r~   r(   r    r   rl   )r¢   r¶   r,  rÞ   r}   r}   rƒ   Útest_on_ndarrayK  s   
z(TestMaskedArrayFunctions.test_on_ndarrayc                 C   sr   t  d¡}d|_t  g d¢¡}|g d¢ }t jj||dd�}t||ƒ t j |¡}t jj||dd�}t||ƒ d S )Nr  r„  )TFTTrü  r   rc  )r~   r!   rn   r(   rõ   r&  r   )r¢   ry  Úcondrï  rÞ   Úmarrr}   r}   rƒ   rA  T  s   

z&TestMaskedArrayFunctions.test_compressc                 C   s  t j ddg¡}t j |¡}tt|ƒt ju ƒ G dd„ dt jƒ}t j |dd�¡}t j |¡}tt|ƒ|u ƒ t j dgdgg¡}t|jdƒ t j dggggg¡}t|jdƒ G dd„ dt	ƒ}t j |g gg ggƒ¡}t|jdƒ G d	d„ dt	ƒ}t j |g gg ggƒ¡}t|d
ƒ d S )Nr•   r°   c                   @   ó   e Zd ZdS )z3TestMaskedArrayFunctions.test_compressed.<locals>.AN©r  r  r  r}   r}   r}   rƒ   r  i  ó    r  r   r[  c                   @   rS  )ú3TestMaskedArrayFunctions.test_compressed.<locals>.MNrT  r}   r}   r}   rƒ   r9  w  rU  r9  c                   @   r   )rV  c                 S   r‚  )Nr˜  r}   rù   r}   r}   rƒ   rC    r‡  z>TestMaskedArrayFunctions.test_compressed.<locals>.M.compressedN)r  r  r  rC  r}   r}   r}   rƒ   r9  ~  r  r˜  )
r~   rõ   r(   rC  r   rM  r
   r   r³   r   )r¢   r¶   rÞ   r  r9  r}   r}   rƒ   rD  a  s"   z(TestMaskedArrayFunctions.test_compressedc                 C   s˜  t t d¡dƒ}t ddg¡}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 g d
¢dƒ}tjj||ddd�}t||ƒ tjj||ddd�}t||d d… ƒ tjj||d	dd�}t||dd… ƒ tj ddgg d¢¡}t|t g d¢dƒƒ ddg}t g d¢dƒ}tjj||dd�}t|t g d¢dƒƒ tjj||dd�}t|t g d¢dƒƒ d S )Nr×   r°   r•   )r   r•   rå   rå   rV  rÌ   rå   rO  r‚  ÚsameÚvalid)r   r•   r•   r¯   rV  rÌ   F)rƒ  Úpropagate_maskrÔ  )r•   r°   r°   r•   )r•   rå   rå   r•   )rY  )r•   r•   rå   r•   r•   T)rå   rå   rå   rå   rå   )rM   r~   r!   r(   rõ   Úconvolver   )r¢   r¶   r·   r_  rÞ   r}   r}   rƒ   Útest_convolve…  s0   

z&TestMaskedArrayFunctions.test_convolveN)/r  r  r  r­   rï  rð  rñ  rò  rô  rö  rø  rù  rû  rü  rþ  rÿ  r  r  r  rö   rá  Úskipifr   r  r  r  r  r  r  r  r   r"  r&  râ  r'  r7  r8  r^  r=  rH  rM  rN  rO  rP  rA  rD  r[  r}   r}   r}   rƒ   rî  Ü  sT    
	 
!

.0"	$rî  c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestMaskedFieldsc                 C   sx   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	�}t||||d
�| _d S )Nr=  )r  r  r  r  r  )r  r  ÚthreeÚfourÚfiver¶   r·   r  rÆ  ra  r¶  )Úbaser˜   Úddtyper@  )rÆ   rÜ   r  r(   rØ   rÙ   rk  rÝ   )r¢   ÚilistÚflistÚslistrb  r@  r˜   ra  r}   r}   rƒ   r­   ª  s   zTestMaskedFields.setup_methodc                 C   sº   | j d }| j d }t|_t|jtj|j|d�ƒ t|_t|jtj	|j|d�ƒ d|_t|jtj|j|d�ƒ d|_t|jtj	|j|d�ƒ g d¢|_t|jtj
dd„ dD ƒ|d�ƒ d S )	Nra  r@  rÖ   FTrî  c                 S   s   g | ]}|||f‘qS r}   r}   )r�   r£   r}   r}   rƒ   r„   Ä  r…   z;TestMaskedFields.test_set_records_masks.<locals>.<listcomp>)rÝ   ra   r˜   r   rÒ   r~   r{   rn   rK   rc   r(   )r¢   ra  r@  r}   r}   rƒ   Útest_set_records_masks´  s    


ÿÿz'TestMaskedFields.test_set_records_masksc                 C   s’   | 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¢ƒ d S )Nra  r¶   r·   rÆ  rž   r   )r¯   r°   r¯   rÌ   r×   r  r  r  r  r×  )ó   pirŠ  s   threeó   fouró   five©rÝ   rž   r   r   rÆ   r»   rÜ   ©r¢   ra  Úbase_aÚbase_bÚbase_cr}   r}   rƒ   Útest_set_record_elementÇ  s   
ÿz(TestMaskedFields.test_set_record_elementc                 C   s–   | 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¢ƒ d S )Nra  r¶   r·   rÆ  rž   r¯   )r¯   r¯   r¯   rÌ   r×   r  r  r×  )rg  rg  rg  rh  ri  rj  rk  r}   r}   rƒ   Útest_set_record_slice×  s   
ÿz&TestMaskedFields.test_set_record_slicec                 C   sJ   | j d }t|d< dD ]}t|| jg d¢ƒ t|| j|j| ƒ qdS )zCheck record accessra  r   )r¶   r·   rÆ  rß  N)rÝ   rK   r   r˜   r»   )r¢   ra  rg  r}   r}   rƒ   Útest_mask_elementæ  s   
þz"TestMaskedFields.test_mask_elementc                 C   sl   dt fdtfg}td|d�}tt|ƒtjg d¢ddgd�ƒ t|d d …< tt|ƒtjg d¢ddgd�ƒ d S )	Nr¶   r·   r¯   rÖ   )r´  r´  r´  )r¶   ú|b1)r·   rr  )r‹  r‹  r‹  )rÆ   rÜ   r4   r   r>   r~   r(   rK   )r¢   rá  rÞ   r}   r}   rƒ   Útest_getmaskarrayï  s   
ÿÿ
ÿÿz"TestMaskedFields.test_getmaskarrayc                 C   s¶   t tt d¡tj d¡ƒƒ}t |¡}t|dtfdtfgd�}d|jd< tjdgddg  t	d�}| 
t¡}t|| ¡ ƒ t|j|ƒ | 
td	f¡}t||ƒ t|j| d
d	¡ƒ d S )NrÕ   r¶   r·   rÖ   rÁ  r   r•   é   r°   rå   )rØ   rÙ   r~   r!   rÚ   rÛ   r(   rÜ   r˜   r  rª  r   rj   rl   )r¢   ÚiteratorrÝ   r¶   ÚcontrolmaskrÞ   r}   r}   rƒ   Ú	test_viewû  s   



zTestMaskedFields.test_viewc                    sŠ   dt fdt fg}ttttj d¡t d¡ƒƒ|d�‰ tjttg d¢g d¢ƒƒdtfdtfgd�ˆ _	‡ fdd„}|d	ƒ |d
ƒ |dƒ d S )Nr¶   r·   rÕ   rÖ   )
r   r   r   r   r   r   r   r   r•   r•   )
r•   r   r   r   r   r   r   r   r•   r   c                    s”   t tˆ |  ƒtƒ tˆ |  jˆ j|  ƒ tˆ |  jˆ j|  ƒ t tˆ | df ƒtƒ tˆ | df jˆ j| df ƒ tˆ | df jˆ j| df ƒ d S )N.)r   rM  r`   r   r»   rÒ   r   )rÕ  rº  r}   rƒ   Ú_test_index  s   "z2TestMaskedFields.test_getitem.<locals>._test_indexr•   r   r~  )
rÜ   r(   rØ   rÙ   r~   rÚ   rÛ   r!   r  r˜   )r¢   rá  rx  r}   rº  rƒ   Útest_getitem  s   $ÿþ	zTestMaskedFields.test_getitemc                 C   s`  t  dtfdtfg¡}t jjddg|d�}d|d d< t|d t  ddg¡ƒ d	|d d< t|d t  dd	g¡ƒ t  dtfdtfg¡}t jd
dg|d�}t jj	d|d�}d|d d< t|j
|ƒ t jj	d|d�}d|d d< t|j
|ƒ t jddg|d�}t jj	d|d�}| ¡  d|d d< t|j
|ƒ t jj	d|d�}| ¡  d|d d< t|j
|ƒ d S )Nr¶   r·   )rˆ   r•   )rŠ   r°   rÖ   r�   r•   rˆ   r‹   r©  )TTr  r°   r   )r~   r   rÜ   rÆ   rõ   r   r   r(   r  r[  r˜   rö  )r¢   rá  rõ   r@  rï  r¶   r}   r}   rƒ   Útest_setitem  s.   zTestMaskedFields.test_setitemc                 C   s8   t jjddd�}t j d¡}||d< t|jg d¢ƒ d S )Nr•   Tr—   r¯   r   rX  )r~   rõ   rL   r!   r   r˜   )r¢   Úmask_0dry  r}   r}   rƒ   Útest_setitem_scalar=  s   z$TestMaskedFields.test_setitem_scalarc                 C   s,   | j d D ]}tt|ƒt| j d ƒƒ qd S )Nra  rb  )rÝ   r   rÇ   )r¢   Úrecr}   r}   rƒ   Útest_element_lenD  s   ÿz!TestMaskedFields.test_element_lenN)r  r  r  r­   rf  ro  rp  rq  rs  rw  ry  rz  r|  r~  r}   r}   r}   rƒ   r]  ¨  s    
	r]  c                   @   rì  )ÚTestMaskedObjectArrayc                 C   sj  t j d d g¡}ttfD ]¦}t  d¡ |¡}t  d¡ |¡}||d< ||d< t|d |u ƒ t|d |u ƒ tt|d t	ƒƒ tt|d t	ƒƒ t|d d |u ƒ t|d d |u ƒ t jj
|d< t|d |u ƒ tt|d t	ƒƒ tt|d t	ƒƒ t|d jdƒ t|d d |u ƒ t|d j|ƒ t|d jdƒ t|d d j|ƒ t|d d jdƒ qd S )	Nr°   r¯   r   r•   ©r   .)r•   .r}   T)r~   rõ   r(   rÜ   r>  r'  rÅ   r   r¬  r   rK   r   r˜   rÝ   )r¢   ry  rA  Úa0Úa1r}   r}   rƒ   ry  L  s.   çz"TestMaskedObjectArray.test_getitemc                 C   sx   t j d d g¡}t  t jjgt¡d |d< t|jd t jju ƒ t|d t jju ƒ t jj|d< t|d t jju ƒ d S )Nr€  r   )r~   rõ   r(   rK   r>  r   rÝ   )r¢   ry  r}   r}   rƒ   Útest_nested_mai  s   z$TestMaskedObjectArray.test_nested_maN)r  r  r  ry  rƒ  r}   r}   r}   rƒ   r  J  s    r  c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestMaskedViewc                 C   sr   t tt d¡tj d¡ƒƒ}t |¡}t|dtfdtfgd�}d|jd< tjdgddg  t	d�}|||f| _
d S )	NrÕ   r¶   r·   rÖ   rÁ  r   r•   rt  )rØ   rÙ   r~   r!   rÚ   rÛ   r(   rÜ   r˜   r  rÝ   )r¢   ru  rÝ   r¶   rv  r}   r}   rƒ   r­   |  s   

zTestMaskedView.setup_methodc                 C   sB   | j \}}}| ¡ }tt|tƒƒ t|j|jƒ t|j|jƒ d S r¿   )rÝ   rª  r   r¬  r   r   r»   rÒ   ©r¢   rÝ   r¶   rv  rÞ   r}   r}   rƒ   Útest_view_to_nothing„  s
   z#TestMaskedView.test_view_to_nothingc                 C   sN   | j \}}}| tj¡}tt|tƒ ƒ t||jƒ t	|| |j
¡ ¡ ƒ d S r¿   )rÝ   rª  r~   r
   r   r¬  r   r   r»   r   r   rw  r…  r}   r}   rƒ   Útest_view_to_type‹  s
   z TestMaskedView.test_view_to_typec                 C   sB   | j \}}}| t¡}tt|tƒƒ t|| ¡ ƒ t|j|ƒ d S r¿   )	rÝ   rª  rÜ   r   r¬  r   r   rj   r˜   r…  r}   r}   rƒ   Útest_view_to_simple_dtype’  s
   
z(TestMaskedView.test_view_to_simple_dtypec                 C   s   | j \}}}| dtfdtfg¡}t|jjjdƒ t|d |d ƒ t|d |d ƒ |d  dtfdtfg¡}tt|t	ƒƒ t|jjjdƒ t|d |d d ƒ t|d |d d ƒ |d  dtfdtfg¡}tt|t	ƒƒ t|jjdƒ t|d |d d ƒ t|d |d d ƒ d S )Nr  rã  )r  rã  r¶   r·   r   rå   )
rÝ   rª  rÜ   r   r˜   r   r  r   r¬  r   r…  r}   r}   rƒ   Útest_view_to_flexible_dtypeš  s   z*TestMaskedView.test_view_to_flexible_dtypec                 C   s²   | j \}}}| tdf¡}tt|tƒƒ t||ƒ t|j| dd¡ƒ |d  tdf¡}tt|tƒƒ t||d ƒ t|jdƒ |d  tdf¡}tt|tƒƒ t||d ƒ d S )Nr°   rå   r   rÁ  )	rÝ   rª  rÜ   r   r¬  r   r   r˜   rl   r…  r}   r}   rƒ   Útest_view_to_subdtype®  s   
z$TestMaskedView.test_view_to_subdtypec                 C   sL   | j \}}}| tdftj¡}t||ƒ tt|tjƒƒ tt|tƒ ƒ d S )Nr°   )	rÝ   rª  rÜ   r~   r«  r   r   r¬  r   r…  r}   r}   rƒ   Útest_view_to_dtype_and_type¿  s
   
z*TestMaskedView.test_view_to_dtype_and_typeN)
r  r  r  r­   r†  r‡  rˆ  r‰  rŠ  r‹  r}   r}   r}   rƒ   r„  z  s    r„  c                   @   rì  )ÚTestOptionalArgsc                 C   sà   t  d¡ d¡}t jdtd� d¡}d|d d …d d …df< t jj||d�}dd	„ }d
d„ }dD ]}||||ƒ ||||ƒ q/dD ]}||||ƒ q@t  d¡ d¡d dk}t jj||d�}dD ]}||||ƒ ||||ƒ q_d S )Nç      8@rN  ré   rÖ   Trå   r—   c                 S   s~   t  | ¡}tj | ¡}t||dd�dd d…f ||dd d…f dd�ƒ t||dd�dd d…f ||dd d…f dd�ƒ d S )Nr•   rc  .rå   rµ  )rî  Ú__getattribute__r~   rõ   r   ©rØ  r¶   r    Únumpy_fÚma_fr}   r}   rƒ   ÚtestaxisÒ  s   
2ÿz4TestOptionalArgs.test_ndarrayfuncs.<locals>.testaxisc                 S   sÂ   t  | ¡}tj | ¡}t||dd�j||dd�jƒ t||dd�j||dd�jƒ t||ddd�dd d…f ||dd d…f ddd�ƒ t||ddd�dd d…f ||dd d…f ddd�ƒ d S )	NT©ÚkeepdimsFr•   ©rd  r”  .rå   rµ  )rî  rŽ  r~   rõ   r   rn   r�  r}   r}   rƒ   ÚtestkeepdimsÛ  s   
ÿÿÿÿz8TestOptionalArgs.test_ndarrayfuncs.<locals>.testkeepdims)ru   rƒ  r   rž  rŸ  rR  r°   r   )r   rÄ   )r~   r!   rl   r{   r  rõ   r(   )r¢   r    r,  r¶   r’  r–  rØ  r}   r}   rƒ   Útest_ndarrayfuncsÉ  s"   	þz"TestOptionalArgs.test_ndarrayfuncsc                 C   s<  t  d¡ d¡}t jdtd� d¡}d|d d …dd d …f< t jj||d�}tt|ƒdƒ tt|d	d
�dt	dƒ ƒ tt|dd
�dt	dƒ ƒ tt|dd�dt	dƒ ƒ tt|d	dd�dt	dƒ ƒ tt|ddd�dt	dƒ ƒ tt|dd
�dt	dƒ ƒ t
tt|dd
� t
tt|dd
� t jj|td�}tt|ƒdƒ tt|d	d
�dt	dƒ ƒ tt|dd
�dt	dƒ ƒ tt|dd�dt	dƒ ƒ tt  t|dd�¡dƒ tt|d	dd�dt	dƒ ƒ tt|ddd�dt	dƒ ƒ tt|dd
�dt	dƒ ƒ t
tt|dd
� t
tt|dd
� ttt jjƒdƒ t
ttt j d	¡d	d
� d S )Nr�  rN  ré   rÖ   Tr   r—   rÄ  r•   rc  r°   )r°   rÌ   rµ  rÌ   rS  r“  rÔ  r•  )r°   r•   rÌ   )r•   r•   rÌ   r~  r‹  r¯   rÍ   )r~   r!   rl   r{   r  rõ   r(   r   r/   rc   r   r  r   ra   r³   rK   )r¢   r    r,  r¶   r}   r}   rƒ   Ú
test_countø  s4   zTestOptionalArgs.test_countN)r  r  r  r—  r˜  r}   r}   r}   rƒ   rŒ  È  s    /rŒ  c                   @   s¨   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zejjdd�dd„ ƒZejjdd�dd„ ƒZdd „ Zd!d"„ Zd#S )$ÚTestMaskedConstantc                 C   sŒ   t |tjjdƒtjju ƒ t g d¢¡}|tjj|ƒ}t |tjjuƒ t t|tjjjƒ ƒ t|j	|j	ƒ ttj 
|¡tj|j	td�ƒ d S )Nr•   rà   rÖ   )r   r~   rõ   rK   r(   r¬  rY  ÚMaskedConstantr   rn   r=   rc   r  )r¢   r   Úvectorr_  r}   r}   rƒ   Ú_do_add_test   s   "zTestMaskedConstant._do_add_testc                 C   s   |   tj¡ d S r¿   )rœ  r~   r   rù   r}   r}   rƒ   Ú
test_ufunc.  s   zTestMaskedConstant.test_ufuncc                 C   s   |   dd„ ¡ d S )Nc                 S   rÃ   r¿   r}   ©r¶   r·   r}   r}   rƒ   rÁ   2  rÂ   z2TestMaskedConstant.test_operator.<locals>.<lambda>)rœ  rù   r}   r}   rƒ   Útest_operator1  s   z TestMaskedConstant.test_operatorc                 C   s:   t j t jj¡}tt|t jjjƒ ƒ t|t jjuƒ d S r¿   )r~   rõ   r(   rK   r   r¬  rY  rš  r’  r}   r}   rƒ   Ú	test_ctor4  s   zTestMaskedConstant.test_ctorc                 C   s8   t ttjjƒdƒ tjj tjjj¡}t	t|ƒdƒ d S )NrK   )
r   rL  r~   rõ   rK   r   Ú__new__rY  rš  r   )r¢   Úmasked2r}   r}   rƒ   Ú	test_repr<  s   zTestMaskedConstant.test_reprc              	   C   s„   ddl m} tdtjd ƒD ]1}|ƒ �}tjtjj||d� | 	d¡ t 
|¡}W d   ƒ n1 s2w   Y  t|tjju ƒ qd S )Nr   )ÚBytesIOr°   r•   r�  )Úior¤  rŸ  r   r¡  Údumpr~   rõ   rK   ÚseekÚloadr   )r¢   r¤  r¥  rØ  r  r}   r}   rƒ   Útest_pickleE  s   
ýûzTestMaskedConstant.test_picklec                 C   s*   t tjj ¡ tjju tj ¡ tju ƒ d S r¿   )r   r~   rõ   rK   rï   ÚTrue_rù   r}   r}   rƒ   rt  O  s   þzTestMaskedConstant.test_copyc                 C   s&   dd l }t|  tjj¡tjju ƒ d S r»  )rï   r   r~   rõ   rK   ©r¢   rï   r}   r}   rƒ   Ú
test__copyV  ó   ÿzTestMaskedConstant.test__copyc                 C   s&   dd l }t| tjj¡tjju ƒ d S r»  )rï   r   r|  r~   rõ   rK   r«  r}   r}   rƒ   r�  [  r­  z TestMaskedConstant.test_deepcopyc                 C   s˜   t jj}tt jjjtj|ddƒ tttj|j	ddƒ tttj|j
ddƒ t jj t jj¡}tttj|ddƒ tttj|j	ddƒ tttj|j
ddƒ d S )Nr}   r•   F)r~   rõ   rK   r   rY  r   rå  Úsetitemr  rÝ   r˜   rª  r   )r¢   Úorigrª  r}   r}   rƒ   Útest_immutable`  s   z!TestMaskedConstant.test_immutablec                 C   s6   t  dt¡}tttj|dt jjƒ tttt jjƒ d S r+  )	r~   r{   rÆ   r   r   rå  r®  rõ   rK   )r¢   Úa_ir}   r}   rƒ   Útest_coercion_intk  s   z$TestMaskedConstant.test_coercion_intc                 C   s8   t  dt¡}tttj|dt jjƒ t	t  
|d ¡ƒ d S r+  )r~   r{   rÜ   r   rø   rå  r®  rõ   rK   r   r½  )r¢   Úa_fr}   r}   rƒ   Útest_coercion_floatp  s   z&TestMaskedConstant.test_coercion_floatzSee gh-9750r  c                 C   ó*   t  dd¡}t jj|d< t|d dƒ d S )Nr}   ÚU10r;  ©r~   r{   rõ   rK   r   )r¢   Úa_ur}   r}   rƒ   Útest_coercion_unicodeu  ó   z(TestMaskedConstant.test_coercion_unicodec                 C   rµ  )Nr}   ÚS10s   --r·  )r¢   Úa_br}   r}   rƒ   Útest_coercion_bytes{  rº  z&TestMaskedConstant.test_coercion_bytesc                 C   sN   G dd„ dt tjjƒƒ}|ƒ }t||ƒ u ƒ t|tjjuƒ tt|ƒdƒ d S )Nc                   @   rS  )z-TestMaskedConstant.test_subclass.<locals>.SubNrT  r}   r}   r}   rƒ   ÚSubƒ  rU  r¾  rK   )rM  r~   rõ   rK   r   r   rL  )r¢   r¾  r¶   r}   r}   rƒ   Útest_subclass�  s
   z TestMaskedConstant.test_subclassc                 C   s.   t tttjjddƒ t tttjjdtjƒ d S )Nrn   r  r   )r   rs  Úsetattrr~   rõ   rK   r]  rù   r}   r}   rƒ   Útest_attributes_readonly‹  s   z+TestMaskedConstant.test_attributes_readonlyN)r  r  r  rœ  r�  rŸ  r   r£  r©  rt  r¬  r�  r°  r²  r´  rö   rá  Úxfailr¹  r½  r¿  rÁ  r}   r}   r}   rƒ   r™    s&    	



r™  c                   @   r   )ÚTestMaskedWhereAliasesc                 C   s´   t t dg¡t d¡ƒ}t|jdgƒ t tjtjƒ}t|jdƒ tj  tjtj ¡}t|jdƒ tjj g d¢ddd�}t|jtjj	u ƒ tjj g d¢ddd�}t|jdgd ƒ d S )	Ng      àÀi €ÿÿTFrH  r×   r–  rÌ   )
rV   r~   r(   rµ  r   r˜   r\  rõ   r   ra   )r¢   r  r}   r}   rƒ   Útest_masked_values”  s   z)TestMaskedWhereAliases.test_masked_valuesN)r  r  r  rÄ  r}   r}   r}   rƒ   rÃ  �  s    rÃ  c                  C   s4   t jjg d¢g d¢d�} tt  | ¡dgdggƒ d S )Nr(  )r   r   r•   r   r—   r•   r¯   )r~   rõ   r(   r   Úargwhererº  r}   r}   rƒ   Útest_masked_array¥  s   rÆ  c                  C   s°   t j g d¢¡} t jj| dk| dd�}t| jg d¢ƒ t jjg d¢g d¢d�} t jj| dk| dd�}t| jg d¢ƒ t j t jd	d
ddg¡} t jj| dd�}t| jg d¢ƒ d S )NrH  r¯   Frb  )FFTFrë   r—   )TFTFr•   r°   rÌ   )TFFFF)r~   rõ   r(   rW   r   r˜   r\  r!  )r¶   rc  r}   r}   rƒ   Útest_masked_array_no_copy©  s   rÇ  c                  C   sð   t jjg d¢dd�} t jjg d¢dd�}t j | |¡}g d¢}g d¢}t|j|ƒ t|j|ƒ t j d¡} t j d¡}t j | |¡}d	gd
 }dgd dgd
  }t|jd |ƒ t|j|ƒ t jj| |d d�}t|jd |ƒ t|j|ƒ d S )Nrà   r°   rÞ  )rÌ   r¯   r°   )r•   r°   r¯   rÌ   r¯   r°   )FTFFFTrW  )r¯   r•   r•   r¯   TrÌ   Fre  rc  )	r~   rõ   rM   rç  r   rÝ   r˜   r[  rc   )r¶   r·   r_  Úexpected_datar³  r}   r}   rƒ   Útest_append_masked_array·  s"   
rÉ  c                  C   s¬   t jjg d¢dd�} t j g d¢g d¢gd¡}ttt jj| |dd� t jj| t jd d …f |dd�}t j d	d
¡}t jj	|d	dg< | 
d¡}t|j|jƒ t|j|jƒ d S )Nrà   r°   rÞ  ry  rÔ  rV  r   rc  r•   rÕ   rÍ   r§  )r~   rõ   rM   rV   r   r  rç  Únewaxisr!   rK   rl   r   rÝ   r˜   )r¶   r·   r_  r+  r}   r}   rƒ   Ú#test_append_masked_array_along_axisÏ  s    
rË  c                   C   s   t tdƒdkƒ d S )Ny      ð?      ð?y@Œµx¯D        )r   r0   r}   r}   r}   rƒ   Útest_default_fill_value_complexÝ  s   rÌ  c                  C   s4   t g d¢g d¢d�} tj| d| d�}t|| u ƒ d S )NrŒ  r6  r—   rˆ   r2  )r(   r~   r   r   rÀ   r}   r}   rƒ   Útest_ufunc_with_outputâ  s   rÍ  c            
      C   sð   t g d¢g d¢d�} t g d¢g d¢d�}t g d¢g d¢d�}t g d¢g d¢d�}| ¡ }t | ||¡}| ¡ }tj| ||d�}| ¡ }tj| ||fd�}	t|j|jƒ t|j|jƒ t|	j|jƒ t|	j|jƒ t|j|jƒ t|j|jƒ d	S )
z0 Test that masked arrays are immune to gh-10459 rà   rá   r—   ró  r~  r6  )r‰  r?  r.  r2  N)r(   rï   r~   r   r   r˜   rÝ   )
r¶   r·   rU  r+  Úout_posÚres_posÚout_kwÚres_kwÚout_tupÚres_tupr}   r}   rƒ   Útest_ufunc_with_out_variedê  s    rÔ  c                  C   s¦  t  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| d
�}t jj|d d d< | | ¡}|jjt  | ¡jksFJ ‚|j	jjt  | ¡jksSJ ‚t
||ƒ t||j|jdd�u ƒ t
t|j|jdd�ƒt jƒ |j|jdd�}t|jjƒ t|j	jjƒ t j|| dd�}|jjt  | ¡jks›J ‚|j	jjt  | ¡jks¨J ‚t
||ƒ t|t j|| d dd�u ƒ t j||jddd�}t|jjƒ t|j	jjƒ d S )Nr-  r¯   r£   r¤   rà   rU  rV  )r�   )r‹   rÖ   r   Frb  )Úsubokrò  r0  T)r   rÕ  )r   rï   rÕ  )r   r1  rÕ  )r~   r   rÆ   rÜ   r(   rõ   rK   rÅ   r  r˜   r   r   rM  r
   r)  Úf_contiguous)Údescrr£   Úx_aÚx_fÚx_a2Úx_f2r}   r}   rƒ   Útest_astype_mask_ordering  s2   þþ


rÜ  rË  rÌ  rÎ  z'ignore::numpy.exceptions.ComplexWarningc                 C   s†   t jjtd| ƒdd�}| |¡}t|jdkƒ t|j| kƒ t|jj| kƒ t|jdkƒ t|j|kƒ t|jj|kƒ t||ƒ d S )Nr¯   r•   r0  )	r~   rõ   r(   rc   rÅ   r   r"  r   r   )rË  rÎ  ÚsrcÚdstr}   r}   rƒ   Útest_astype_basic#  s   
rß  c                  C   sn   t  g ¡} t  d| ¡}t j |¡}t|j|jƒ t|j|jƒ t jj||d�}t|j|jƒ t|j|jƒ d S )NrÌ   r—   )r~   r   r4   rõ   r(   r   rn   )rA  r£   r  r}   r}   rƒ   Útest_fieldless_void6  s   
rà  c                  C   s2   t jj} t jjd| jd�}d|_t| jjdƒ d S )Nr•   r—   r  r}   )r~   rõ   rK   r(   r˜   rn   r   rž  r}   r}   rƒ   Ú0test_mask_shape_assignment_does_not_break_maskedE  s   rá  r•   zHno docstrings present to inspect when PYTHONOPTIMIZE/Py_OptimizeFlag > 1r  c                  C   s(   dd„ } d}t tjj | jd¡|ƒ d S )Nc                 S   r‚  )zyThis docstring

        Has multiple lines

        And notes

        Notes
        -----
        original note
        Nr}   rù   r}   r}   rƒ   rÓ  N  s   ztest_doc_note.<locals>.methodzNThis docstring

Has multiple lines

And notes

Notes
-----
note

original noteÚnote)r   r~   rõ   rY  r3   Ú__doc__)rÓ  Úexpected_docr}   r}   rƒ   Útest_doc_noteK  s   rå  c                  C   sH   t jjdg d¢gtd�} t | ¡}|d  d¡ t| d ƒdks"J ‚d S )Nr   rY  rÖ   r•   ú this should not appear in sourcer¯   )r~   rõ   r(   r>  rï   r|  rç  rÇ   ©Úsourcer|  r}   r}   rƒ   Útest_gh_22556j  s   
ré  c                  C   s|   t jjddgdt jd�} t  d¡}t j| |dd�}t jj|t j|jt jd�d�}t jjddt jd�}t	 
|¡ t	 
|¡ d S )	Nrå   Tr   r   Fr•  rÖ   r—   )r~   rõ   rL   ri  r(   rƒ  rc   rn   r  rï   r|  )rè  rd  r_  r(   r}   r}   rƒ   Útest_gh_21022q  s   
ÿ
rê  c                  C   s¬   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d�} t | ¡}|d  dd	g¡ t| d ƒdks5J ‚t|d ƒd
ks?J ‚t|j	| j	ƒ d|j	d< | j	d dksTJ ‚d S )Nr   Údogr•   r°   Úcatr¶  rë  ræ  r¯   rÌ   r´  )
r~   rõ   r(   r>  rï   r|  ÚextendrÇ   r   rÒ   rç  r}   r}   rƒ   Útest_deepcopy_2d_obj}  s"   
þþú

rî  c                  C   s>   t jjddgtd�} t | ¡}d|d< t| dƒ t|dƒ d S )Nr   r¶  é   .)r~   rõ   r(   r>  rï   r|  r   rç  r}   r}   rƒ   Útest_deepcopy_0d_objŽ  s
   

rð  c                  C   sd   t jjddgddgdd�} | jdksJ ‚| jjjdksJ ‚t jj|  ¡ t  	ddg¡ 
d¡dd� d S )	Nr•   TFrÛ  rÖ   rŒ  r—  )Ústrict)r~   rõ   r   r"  r   re  rG  r   r9   r(   rÅ   rº  r}   r}   rƒ   Útest_uint_fill_value_and_filled–  s   
ÿrò  )Ârã  Ú
__author__Úsysr›  rï   rå  r?  r�  r   Ú	functoolsr   rö   rî  r~   Únumpy.ma.coreÚnumpy._core.fromnumericÚ_corert  Únumpy._core.umathrr  Únumpy.exceptionsr   Únumpy.testingr   r   r   r   r   Únumpy.testing._private.utilsr	   r
   Únumpy._utilsr   Únumpy.ma.testutilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   rž   r$  r¼  rõ   rY  ÚMaskedArrayFutureWarningrã  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á  râ  r�  rß  rà  rá  r\  r)  Úoptimizerå  ré  rê  rî  rð  rò  r}   r}   r}   rƒ   Ú<module>   sÒ   (þ® þ       F       ; 1  T    s        ]5     Q #0NWq 
ÿ
