o
    z¨Êhê1 ã                   @   sö  d Z ddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? G dd	„ d	ƒZ@G d
d„ dƒZAG dd„ dƒZBG dd„ dƒZCG dd„ dƒZDG dd„ dƒZEG dd„ dƒZFG dd„ dƒZGG dd„ dƒZHG dd„ dƒZIG dd„ dƒZJG dd„ dƒZKG d d!„ d!ƒZLG d"d#„ d#ƒZMG d$d%„ d%ƒZNdS )&zæTests suite for MaskedArray.
Adapted from the original test_ma by Pierre Gerard-Marchant

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: test_extras.py 3473 2007-10-29 15:18:13Z jarrod.millman $

é    N)Únormalize_axis_tuple)Úassert_warnsÚsuppress_warnings)Úassert_Úassert_array_equalÚassert_equalÚassert_almost_equal)ÚarrayÚarangeÚmaskedÚMaskedArrayÚmasked_arrayÚgetmaskarrayÚshapeÚnomaskÚonesÚzerosÚcount)#Ú
atleast_1dÚ
atleast_2dÚ
atleast_3dÚmr_ÚdotÚpolyfitÚcovÚcorrcoefÚmedianÚaverageÚuniqueÚsetxor1dÚ	setdiff1dÚunion1dÚintersect1dÚin1dÚediff1dÚapply_over_axesÚapply_along_axisÚcompress_ndÚcompress_rowcolsÚmask_rowcolsÚclump_maskedÚclump_unmaskedÚflatnotmasked_contiguousÚnotmasked_contiguousÚnotmasked_edgesÚ
masked_allÚmasked_all_likeÚisinÚdiagflatÚndenumerateÚstackÚvstackÚ
_covhelperc                   @   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 )ÚTestGenericc                 C   sJ  t dtd�}tddgddgtd�}t||ƒ t ddgddgdœ¡}t d|d�}td	d	gd
d
g|d�}t||ƒ t d|d�}td	d	gd	d	ggd
d
gd
d
gg|d�}t||ƒ t ddddgfg¡}t d|d�}tddgddg|d�}t||ƒ t d|d�}tddgddg|d�}t||ƒ t d
|d�}tdggdgg|d�}t||ƒ d S )N©é   ©Údtypeé   ©Úmaskr;   ÚaÚbÚf©ÚnamesÚformats©r   r   ©r<   r<   ©r9   r9   ©r?   rA   ©ÚbarA   ©ÚbbrA   ©r<   rF   )r/   Úfloatr	   r   Únpr;   )ÚselfÚtestÚcontrolÚdt© rT   úL/var/www/html/env/lib/python3.10/site-packages/numpy/ma/tests/test_extras.pyÚtest_masked_all&   s6   

þ
ÿ
ÿ
zTestGeneric.test_masked_allc                 C   s    t  ddtfgdffg¡}t j d|¡}tt|d ƒt jjjƒ tt|d d ƒt jjjƒ tt	|d d ƒdƒ t|d d j
dƒ t|d d jj
dƒ d S )Nr@   Úc©r<   r<   rF   rT   ©rO   r;   ÚobjectÚmar/   r   ÚtypeÚcorer   Úlenr   Ú_fill_value©rP   Úmy_dtypeÚ
masked_arrrT   rT   rU   Ú"test_masked_all_with_object_nestedD   s   z.TestGeneric.test_masked_all_with_object_nestedc                 C   sr   t  dtdffg¡}t j d|¡}tt|d ƒt jjjƒ tt	|d ƒdƒ t|d j
dƒ t|d jj
dƒ d S )Nr@   rX   r<   rF   rT   rY   r`   rT   rT   rU   Útest_masked_all_with_objectP   s   z'TestGeneric.test_masked_all_with_objectc                 C   sÐ   t ddgtd�}t|ƒ}t ddgddgtd�}t||ƒ t ddgddgdœ¡}t d	d	gd
d
g|d�}t|ƒ}t ddgd
d
g|d�}t||ƒ t ddddgfg¡}t ddgddg|d�}t|ƒ}t||ƒ d S )Nr<   r9   r:   r=   r?   r@   rA   rB   rE   rF   )é
   re   rH   rI   rK   rM   )r	   rN   r0   r   rO   r;   )rP   ÚbaserQ   rR   rS   rT   rT   rU   Útest_masked_all_likeZ   s   

ÿz TestGeneric.test_masked_all_likec           	      C   s¾   t ddƒD ]W}t d| ƒD ]N}tj|td�}tj||td�}td| ƒ}|d| @ dk|_d}||ƒD ]}||j|  ¡ 7 }q3|t	krMt
| ¡  ¡ |ƒ q|j |_t
| ¡  ¡ |ƒ qqd S )Nr<   é   r9   r:   r   )ÚrangerO   r
   ÚintÚfullr   r>   ÚdataÚsumr+   r   Ú
compressed)	rP   rA   ÚiÚjÚkÚjar?   ÚsÚslrT   rT   rU   Úcheck_clumpn   s   
ôÿzTestGeneric.check_clumpc                 C   sV   t t d¡ƒ}t|g d¢< t|ƒ}tddƒtddƒtddƒg}t||ƒ |  t¡ d S )Nre   ©r   r<   r9   é   é   é	   r   é   rw   rh   rx   )r   rO   r
   r   r*   Úslicer   ru   ©rP   r?   rQ   rR   rT   rT   rU   Útest_clump_masked~   s   
zTestGeneric.test_clump_maskedc                 C   sN   t t d¡ƒ}t|g d¢< t|ƒ}tddƒtddƒg}t||ƒ |  t¡ d S )Nre   rv   rz   rw   rh   rx   )r   rO   r
   r   r+   r{   r   ru   r|   rT   rT   rU   Útest_clump_unmasked‰   s   
zTestGeneric.test_clump_unmaskedc                 C   s¨   t dƒ}t|ƒ}t|td|jƒgƒ tjdtd�|_t|td|jƒgƒ t	||dk |dkB |dkB < t|ƒ}t|tddƒtddƒgƒ t	|d d …< t|ƒ}t|g ƒ d S )	Nre   r   r:   rz   rx   é   rw   ry   )
r
   r,   r   r{   ÚsizerO   r   Úboolr>   r   )rP   r?   rQ   rT   rT   rU   Útest_flatnotmasked_contiguous“   s   z)TestGeneric.test_flatnotmasked_contiguousN)Ú__name__Ú
__module__Ú__qualname__rV   rc   rd   rg   ru   r}   r~   r‚   rT   rT   rT   rU   r7   $   s    

r7   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	e
j dg d¢ddgg d¢dgdgfg d¢g d¢gdg d¢gddgg d¢gg d¢gfg¡dd„ ƒZd d!„ ZdS )"ÚTestAveragec                 C   s$  t g d¢g d¢d�}tdt|dd�ƒ tdt|g d¢d�ƒ t|g d¢d	d
�\}}td|ƒ t|dkƒ t|d d …< tt|dd�jd	gƒ t g d¢g d¢d�}| dd¡}t|d d …df< tt|dd�ddgƒ tt|dd�jd d	gƒ tddgt|dd�ƒ t|dd	d�\}}t|ddgƒ d S )N)ç        ç      ð?ç       @ç      @)TFFF©r>   r‰   r   ©Úaxis)rˆ   rˆ   r‰   rˆ   ©ÚweightsT©r�   Úreturnedç      @r9   r<   r‡   ©r�   r‘   rˆ   )r	   r   r   r   r   r>   Úreshape)rP   ÚottÚresultÚwtsrT   rT   rU   Útest_testAverage1¨   s    
zTestAverage.test_testAverage1c                 C   sB  g d¢}g d¢g d¢g}t dtjd�}tt|dd�dƒ tt|d|d�dƒ tt dtjd�d	t dƒ gƒ}tt|d ƒtj t  d¡¡d
 d ƒ tt|dd�t  d¡d
 d	 ƒ tt|dd�t|dd�t|dd�d	 gƒ tt|d |d�dƒ tt|d|d�g d¢ƒ tt|dd�t|dd�t|dd�d	 gƒ tdƒ}g d¢}g d¢g d¢g}t	dƒ}g d¢}	ttt
||ƒdd�dƒ ttt
||ƒdd�dƒ ttt
||ƒdd�jdgƒ ttt
||	ƒdd�dƒ tttt
||ƒdd�ƒdƒ t
||ƒ}
tt|
d ƒdƒ tt|
dd�g d¢ƒ tt|
dd�ddgƒ tt|
d|d�g d¢ƒ d S )N©r   r<   r<   r<   r<   r   ©r<   r   r   r   r   r<   rw   r:   r   rŒ   ç      @©r�   r�   r‰   rŠ   ç      (@r<   rŽ   g«ªªªªª
@)r‡   rˆ   r‰   rŠ   r’   ç      $@)r   r   r<   r<   r   r   )r   r<   r<   r<   r<   r<   Tr‡   )r‡   rˆ   ç     ÀX@rŸ   r’   g      @ç      @)r‡   rˆ   rŸ   rŸ   r’   rž   )r
   rO   Úfloat64r   r   r	   ÚaddÚreducer   r   r   r>   r   )rP   Úw1Úw2ÚxÚyÚm1Úm2Úm3Úm4Úm5ÚzrT   rT   rU   Útest_testAverage2»   sF   & ÿÿÿ
ÿzTestAverage.test_testAverage2c                 C   sf  t dƒ}t dƒd }t||g||ggddd�\}}tt|ƒt|ƒƒ t|j|jƒ ttdƒdddgdd�\}}tt|ƒt|ƒƒ ttdƒdd	�\}}tt|ƒt|ƒƒ ttdƒtdƒdd
�\}}tt|ƒt|ƒƒ tddgddggtƒ}t|ddgddggƒ}t|dd�}	t|	ddgƒ t|dd�}
t|
ddgƒ t|d d�}
t|
dƒ t|dd�}
t|
ddgƒ d S )Nrw   rz   r<   Tr“   ©r9   r9   rz   r   ©r�   r�   r‘   )r‘   r�   r9   é   FrŒ   ç      à?rŠ   rˆ   g«ªªªªª@ç      ø?r’   )r
   r   r   r   r   r	   rN   r   )rP   r?   r@   Úr1r¤   Úr2r¥   Úa2dÚa2dmÚa2daÚa2dmarT   rT   rU   Útest_testAverage3Ý   s*   
zTestAverage.test_testAverage3c                 C   sˆ   t  g d¢¡ dd¡}t jj|dgdgdggd�}t  g d¢¡ dd¡}t||ddd�}td	gd
gdggdgdgdggƒ}t||ƒ d S )N©r9   rz   r±   rz   r<   FTr‹   )r±   r   rw   )r�   r�   Úkeepdimsr‰   rŠ   r’   )rO   r	   r”   r[   r   r   r   )rP   r¦   r@   ÚwÚactualÚdesiredrT   rT   rU   Útest_testAverage4õ   s   "zTestAverage.test_testAverage4c           	      C   sö  t  d¡ ddd¡}t  g d¢¡ ddd¡}t  dd¡}t jj||d�}|d d …d d …df }t|d	|d
�}tg d¢g d¢d�}t||ƒ t  dd¡}d|d d …d d …df< d|d< t jj||d�}t|d	|d
�}tt j	ddgg d¢d�}t||ƒ t  dd¡}t jj||d�}|dd d …d d …f }t|d|d
�}tddgddgd�}t||ƒ t
jtdd�� t|d|d
� W d   ƒ n1 sÂw   Y  t
jtdd�� t|d	|d
� W d   ƒ n1 sàw   Y  t|d|d
�}t|d	|jd
�}t||ƒ d S )Né   r9   rz   )r‡   r‡   rˆ   r²   r²   r‡   r‡   r²   r²   rˆ   r‡   r‡   r¯   Fr‹   r   ©r   r<   rœ   )ç      @ç       @ç      "@)FFFT©r   r   r<   rÄ   rÅ   )TFFr<   ©r<   r9   g      @g     € @zHShape of weights must be consistent with shape of a along specified axis)Úmatch©r   r<   r9   )r<   r   )rO   r
   r”   r	   rk   r[   r   r   r   ÚnanÚpytestÚraisesÚ
ValueErrorÚT)	rP   r§   r½   ÚmÚymaÚsubw0r¾   r¿   Úsubw1rT   rT   rU   Ú$test_weight_and_input_dims_differentþ   sR   
ÿ

þ

þüþüz0TestAverage.test_weight_and_input_dims_differentc                 C   s@   t tddgƒƒ}t|dƒ t tg d¢g d¢d�ƒ}t|dƒ d S )Nr<   r9   r³   )r<   r9   rz   r±   ©FFTTr‹   )r   r	   r   ©rP   r?   rT   rT   rU   Útest_onintegers_with_mask1  s   
z%TestAverage.test_onintegers_with_maskc                 C   sê  t jg d¢g d¢gtd�}tg d¢g d¢g|d�}t|ƒ}t  | ¡ ¡}t|j|jƒ t|j|jƒ t|dd�}t|jdd�t|jdd�d	  }t|j|jƒ t|j|jƒ t|d
d�}t|jd
d�t|jd
d�d	  }t|j|jƒ t|j|jƒ t  g d¢g d¢g¡}	t||	d�}
t j| ¡ |	|  d�}t|
j|jƒ t|
j|jƒ t||	dd�}t|j|	dd�t|j|	dd�d	  }t|j|jƒ t|j|jƒ t||	d
d�}t|j|	d
d�t|j|	d
d�d	  }t|j|jƒ t|j|jƒ d S )N)r   r   r   r<   r   ©r   r<   r   r   r   r:   )r   y      ð?       @y      @      @y      @      @y      @       @)y              "@ù              ð?y       @      @y      @      @y      @      @r‹   r   rŒ   rØ   r<   )r²   rˆ   r‰   rˆ   r²   )rˆ   rˆ   rˆ   rˆ   rˆ   rŽ   ©r�   r�   )	rO   r	   r�   r   r   rn   r   ÚrealÚimag)rP   r>   r?   ÚavÚexpectedÚav0Ú	expected0Úav1Ú	expected1r—   ÚwavÚwav0Úwav1rT   rT   rU   Útest_complex8  sR   
ÿÿÿþ  
ÿÿÿzTestAverage.test_complexz<x, axis, expected_avg, weights, expected_wavg, expected_wsum©r<   r9   rz   Nr‰   )rz   r±   r<   g      ü?rÄ   )r<   r9   r   )r<   rw   é   r   )rˆ   r’   rÄ   r<   rz   )rˆ   r    g      #@)r±   r±   r±   c           
      C   s¼   t jj||dd�}|jt  |¡ksJ ‚t||ƒ t jj|||dd�}|jt  |¡ks,J ‚t||ƒ t jj|||ddd�\}}	|jt  |¡ksHJ ‚t||ƒ |	jt  |¡ksWJ ‚t|	|ƒ d S )NT)r�   r¼   )r�   r�   r¼   )r�   r�   r‘   r¼   )rO   r[   r   r   r   )
rP   r¦   r�   Úexpected_avgr�   Úexpected_wavgÚexpected_wsumÚavgÚwavgÚwsumrT   rT   rU   Útest_basic_keepdimsd  s   


ÿ
zTestAverage.test_basic_keepdimsc           	      C   sf  t jjt  d¡ dd¡g d¢g d¢g d¢gd�}tg d¢dd�}tg d¢g d¢d�}t|d|dd	�}t  g d
¢¡}t||ƒ t|d|dd	�}t  g d¢¡}t||ƒ t jjg d¢g d¢d�}t|dddt jgd�}t|dƒ t jjg d¢g d¢g d¢gg d¢g d¢g d¢gd�}t jj|dt jdgdd�}t jjdt jt jdgg d¢d�}t||ƒ t	|j
|j
ƒ d S )Nry   rz   ©r<   r   r   ©r   r   r   r‹   )r   é   é   Fr   r°   )ç      @g     à@g     à@)ró   g0�­N@g0�­N@)rˆ   r‰   rŠ   r’   rÔ   r<   rŽ   r³   )r    ró   rÃ   rÄ   )rÅ   rˆ   r‰   rŠ   )FTTF)TFTT)TFTFrÙ   rˆ   ç      @)rO   r[   r	   r
   r”   r   r   r   rÊ   r   r>   )	rP   r?   Úweights_unmaskedÚweights_maskedÚavg_unmaskedÚexpected_unmaskedÚ
avg_maskedÚexpected_maskedÚavg_expectedrT   rT   rU   Útest_masked_weights{  sD   ÿÿ

ÿ
ýýü
ÿ
zTestAverage.test_masked_weights)rƒ   r„   r…   r˜   r®   rº   rÀ   rÓ   rÖ   rå   rË   ÚmarkÚparametrizerî   rü   rT   rT   rT   rU   r†   ¦   s$    "	3,ÿÿþ
r†   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestConcatenatorc                 C   sz   t td tg d¢ƒƒ tdƒ}g d¢}t||d�}t|dd|f }tt|tƒƒ t |g d¢ƒ t |jt|dd|f ƒ d S )N©r<   r9   rz   r±   r   rw   r   )r<   r   r   r   r   r‹   r   )r<   r<   r<   r<   r<   r   r   r<   r<   r<   r<   r<   )	r   r   r	   r   r   r   Ú
isinstancer   r>   )rP   r@   rÏ   ÚdrW   rT   rT   rU   Útest_1dª  s   zTestConcatenator.test_1dc                 C   s0  t j dd¡}t j dd¡}t  t j dd¡d¡}t  t j dd¡d¡}t||d�}t||d�}td||f }t|jdkƒ t|d d …d d…f |ƒ t|d d …dd …f |ƒ t|j	t j
d||f ƒ t||f }t|jdkƒ t|d d…d d …f |ƒ t|dd …d d …f |ƒ t|j	t j
||f ƒ d S )Nr   r   r‹   Ú1)r   re   )re   r   )rO   ÚrandomÚrandÚroundr   r   r   r   r   r>   Úr_)rP   Úa_1Úa_2Úm_1Úm_2Úb_1Úb_2r  rT   rT   rU   Útest_2dµ  s    zTestConcatenator.test_2dc                 C   sp   t tjjdf }t|jddgƒ t|jd dƒ t ddgtjjf }t|jg d¢ƒ t|jd d… ddgƒ d S )Nr<   TFr9   )FFT)r   rO   r[   r   r   r>   rl   )rP   r¾   rT   rT   rU   Útest_masked_constantÉ  s   z%TestConcatenator.test_masked_constantN)rƒ   r„   r…   r  r  r  rT   rT   rT   rU   r   §  s    r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚTestNotMaskedc                 C   sŽ  t t d¡ dd¡g d¢g d¢g d¢g d¢g d¢gd�}t|d ƒ}t|d	d
gƒ t|d	ƒ}t|d	 ddgƒ t|d ddgƒ t|dƒ}t|d	 ddgƒ t|d ddgƒ t|jd ƒ}t|d	d
gƒ t|jd	ƒ}t|d	 ddgƒ t|d ddgƒ t|jdƒ}t|d	 ddgƒ t|d ddgƒ t|d< t|d	ƒ}t|d	 ddgƒ t|d ddgƒ t|dƒ}t|d	 ddgƒ t|d ddgƒ d S )Né   r   )r   r   r<   r   r   )r   r   r   r<   r<   )r<   r<   r   r   r   )r   r   r   r   r   )r<   r<   r<   r   r   r‹   r   é   ©r   r<   r9   rz   r±   r<   )rz   rz   rz   r±   r±   )r   r   r9   r   rz   )r±   r9   r±   r±   r±   )r±   r±   r±   r±   r±   éÿÿÿÿéþÿÿÿ)r<   r<   r9   r±   r±   )r   r<   r9   r±   )r   r   r9   rz   )r±   r9   r±   r±   )r   rO   r
   r”   r.   r   rl   r   ©rP   rl   rQ   rT   rT   rU   Ú
test_edgesÖ  s>   üÿ




zTestNotMasked.test_edgesc                 C   s,  t t d¡ dd¡g d¢g d¢g d¢gd�}t|d ƒ}t|tdd	d ƒtd
dd ƒtddd ƒgƒ t|dƒ}t|tddd ƒtddd ƒgtddd ƒtddd ƒgtddd ƒtddd ƒgtddd ƒtddd ƒgtddd ƒgtddd ƒgg tddd ƒggƒ t|dƒ}t|tdd	d ƒgg tddd ƒtddd ƒggƒ d S )Nr  rz   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<   r9   rw   rh   )r   rO   r
   r”   r-   r   r{   )rP   r?   ÚtmprT   rT   rU   Útest_contiguousø  s:   þÿ



ý
ø

ýzTestNotMasked.test_contiguousN)rƒ   r„   r…   r  r  rT   rT   rT   rU   r  Ó  s    "r  c                   @   s|   e Zd Zdd„ Zdd„ Zdd„ Zej dg d¢¡ej d	d
ge	j
jdfe	j
jdfg¡dd„ ƒƒZdd„ Zdd„ Zdd„ ZdS )ÚTestCompressFunctionsc              	   C   s(  t  ttdƒƒ¡ ddd¡}t  d¡ t¡}d|d< t||d�}t|ƒ}t	|g d	¢g d
¢g d¢gg d¢g d¢g d¢ggƒ t|dƒ}t	|g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢ggƒ t|dƒ}t	|g d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d¢ggƒ t|dƒ}t|dƒ}t|dƒ}t	||ƒ t	||ƒ t	||ƒ t|dƒ}t	|g d	¢g d ¢g d
¢g d¢gg d!¢g d"¢g d#¢g d$¢gg d¢g d%¢g d¢g d¢ggƒ t|d&ƒ}t|d'ƒ}t|d(ƒ}t	||ƒ t	||ƒ t	||ƒ t|d)ƒ}t	|g d¢g d¢g d¢gg d¢g d¢g d¢ggƒ t|d*ƒ}t	||ƒ t|d+ƒ}t	|g d	¢g d
¢g d¢gg d!¢g d#¢g d$¢gg d¢g d¢g d¢ggƒ t|d,ƒ}t|d-ƒ}t|d.ƒ}t	||ƒ t	||ƒ t	||ƒ t|d/ƒ}t	|g d	¢g d ¢g d
¢g d¢gg d¢g d%¢g d¢g d¢ggƒ t|d0ƒ}t	||ƒ d S )1Né<   rz   r±   r   ©rz   r±   r   T©r<   r<   r<   r‹   )r   r9   rz   r±   )re   rÁ   é   é   )é   é   é   é   )é(   é*   é+   é,   )é2   é4   é5   é6   )é7   é9   é:   é;   r   r  )r   rw   rh   rx   ry   )re   rç   rÁ   r$  r%  )r&  r  r'  r(  r)  )r*  é)   r+  r,  r-  )é-   é.   é/   é0   é1   )r.  é3   r/  r0  r1  )r2  é8   r3  r4  r5  r<   )é   é   r  r  r  )é   rò   é    é!   é"   )é#   é$   é%   é&   é'   rX   r  )r  r9   )r   rh   rx   ry   )r>  r  r  r  )r  é   rñ   é   )r@  rA  rB  rC  )rD  rF  rG  rH  )r7  r9  r:  r;  r8   r  )r  rÂ   )r   r  rÇ   )r  r9   )r<   r  )r  r  ©r   r9   )r   r  )
rO   r	   Úlistri   r”   r   Úastyper�   r'   r   )rP   r¦   rÏ   r?   Úa2Úa3Úa4rT   rT   rU   Útest_compress_nd  sæ   
þþý

ýýü


þþþú








ýýýø







þþý



þþþú








ýýü
	z&TestCompressFunctions.test_compress_ndc                 C   s¸  t t d¡ dd¡g d¢g d¢g d¢gd�}tt|ƒddgdd	ggƒ tt|d
ƒg d¢g d¢gƒ tt|dƒddgddgdd	ggƒ t |jg d¢g d¢g d¢gd�}tt|ƒd
dgdd	ggƒ tt|d
ƒg d¢g d¢gƒ tt|dƒd
dgddgdd	ggƒ t |jg d¢g d¢g d¢gd�}tt|ƒd	ggƒ tt|d
ƒg d¢gƒ tt|dƒdgdgd	ggƒ t |jg d¢g d¢g d¢gd�}tt|ƒjd
ƒ tt|d
ƒjd
ƒ tt|dƒjd
ƒ d S )Nry   rz   rï   rð   r‹   r±   r   rh   rx   r   r"  )rw   rh   rx   r<   r9   ©r   r<   r   rw   rÉ   rÆ   )r	   rO   r
   r”   r   r(   Ú_datar€   ©rP   r¦   rT   rT   rU   Útest_compress_rowcols‹  s$   ÿ" "  z+TestCompressFunctions.test_compress_rowcolsc                 C   sH  t t d¡ dd¡g d¢g d¢g d¢gd�}tt|ƒjg d¢g d¢g d¢gƒ tt|dƒjg d¢g d¢g d¢gƒ tt|dƒjg d¢g d¢g d¢gƒ t |jg d¢g d	¢g d¢gd�}tt|ƒjg d	¢g d¢g d	¢gƒ tt|dƒjg d¢g d¢g d¢gƒ tt|dƒjg d	¢g d	¢g d	¢gƒ t |jg d¢g d	¢g d¢gd�}tt|ƒjg d¢g d¢g d
¢gƒ tt|dƒjg d¢g d¢g d¢gƒ tt|dƒjg d
¢g d
¢g d
¢gƒ t |jg d¢g d	¢g d¢gd�}tt|ƒ 	¡ t
u ƒ tt|dƒ 	¡ t
u ƒ tt|dƒ 	¡ t
u ƒ tt|ƒj 	¡ ƒ tt|dƒj 	¡ ƒ tt|dƒj 	¡ ƒ d S )Nry   rz   rï   rð   r‹   r#  r   r<   rR  )r<   r<   r   rÆ   )r	   rO   r
   r”   r   r)   r>   rS  r   Úallr   rT  rT   rT   rU   Útest_mask_rowcolsŸ  sN   ÿ
ÿÿÿ 
ÿÿÿ 
ÿÿÿ z'TestCompressFunctions.test_mask_rowcolsr�   )Nr   r<   ÚfuncÚrowcols_axisr   r<   c                 C   sv   t t d¡ dd¡g d¢g d¢g d¢gd�}ttƒ� |||d�}t|t||ƒƒ W d   ƒ d S 1 s4w   Y  d S )Nry   rz   rï   rð   r‹   rŒ   )r	   rO   r
   r”   r   ÚDeprecationWarningr   r)   )rP   r�   rX  rY  r¦   ÚresrT   rT   rU   Ú#test_mask_row_cols_axis_deprecation¿  s   ÿ
"þz9TestCompressFunctions.test_mask_row_cols_axis_deprecationc                 C   s0  t  dd¡}g d¢}t||d� dd¡}t||d� dd¡}t||dd�}t|jddgdd	ggƒ t||dd�}t|jg d
¢g d¢g d¢gƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t||dd�}t|t  | d	¡| d	¡¡ƒ g d¢}t||d� dd¡}t||d� dd¡}t||dd�}t|jd	dgddggƒ t||dd�}t|jg d¢g d¢g d
¢gƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t|t||ƒƒ t||dd�}t|t  | d	¡| d	¡¡ƒ g d¢}t||d� dd¡}t||d� dd¡}t||ƒ}t|jtƒ t||ƒ}t|jtƒ t|g d¢d� dd¡}t|g d¢d� dd¡}t||dd�}t|jddgd	d	ggƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t||dd�}t|jg d¢g d¢g d¢gƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t|g d¢d� dd¡}t|g d¢d� dd¡}t||dd�}t|jd	d	gddggƒ t||ƒ}t|t  | d	¡| d	¡¡ƒ t||dd�}t|jg d¢g d¢g d¢gƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t|g d¢d� dd¡}t|g d¢d� dd¡}t||dd�}t|jdd	gddggƒ t||dd�}t|t  | d	¡| d	¡¡ƒ t||dd�}t|jg d¢g d
¢g d¢gƒ t||dd�}t|t  | d	¡| d	¡¡ƒ tt  d¡ ddd¡dd	gd	d	ggd	d	gd	d	gggd�}tt  d¡ ddd¡d	d	gd	d	ggd	d	gd	dgggd�}t||dd�}t|jddgddggd	d	gd	dgggd	d	gd	dggd	d	gd	dggggƒ t||dd�}t|jd	d	gd	dggd	d	gd	d	gggd	d	gd	d	ggd	d	gd	d	ggggƒ t||dd�}t|jdd	gd	d	ggdd	gd	d	gggdd	gd	d	ggddgddggggƒ t||dd�}t|jd	d	gd	d	ggd	d	gd	d	gggd	d	gd	d	ggdd	gd	d	ggggƒ tt  d¡ ddd¡dd	gd	d	ggd	d	gd	d	gggd�}d}t||dd�}t|jdd	gd	d	ggd	d	gd	d	gggƒ t||dd�}t|jdd	gd	d	ggd	d	gd	d	gggƒ t||dd�}t|jdd	gd	d	ggd	d	gd	d	gggƒ t||dd�}t|jdd	gd	d	ggd	d	gd	d	gggƒ tt  d¡ ddd¡dd	gd	d	ggd	d	gd	d	gggd�}tt  d¡d	dgd�}t||dd�}t|jddgddggƒ t||dd�}t|jdd	gd	d	ggƒ d S )Nr<   rh   )r<   r   r   r   r   r   r‹   r9   rz   T)Ústrictr   r#  rï   F©r   r   r   r   r   r<   rÆ   )r   r   r   r   r   r   )r   r   r<   r   r   r   rx   r    )	rO   r
   r   r”   r   r   r>   Úfilledr   )rP   ÚnrÏ   r?   r@   rW   rT   rT   rU   Útest_dotË  sÞ   


ÿÿÿÿÿÿÿÿÿÿÿ((((ÿzTestCompressFunctions.test_dotc                 C   sn   t  d¡}t|ƒ}ttt||ƒƒtu ƒ ttt||ƒƒtu ƒ ttt||ƒƒtu ƒ ttt||ƒƒtu ƒ d S )Nrz   )rO   Úeyer	   r   r\   r   r   ©rP   r?   r@   rT   rT   rU   Útest_dot_returns_maskedarray:  s   
z2TestCompressFunctions.test_dot_returns_maskedarrayc                 C   sD   t t d¡ƒ}t t d¡ƒ}t|||d�}t||u ƒ t||ƒ d S )Nrz   )rz   rz   ©Úout)r	   rO   rb  r   r   r   r   )rP   r?   rf  r[  rT   rT   rU   Útest_dot_outC  s
   z"TestCompressFunctions.test_dot_outN)rƒ   r„   r…   rQ  rU  rW  rË   rý   rþ   rO   r[   Ú	mask_rowsÚ	mask_colsr\  ra  rd  rg  rT   rT   rT   rU   r     s    p ÿ	o	r   c                   @   r  )ÚTestApplyAlongAxisc                 C   s@   t dƒ ddd¡}dd„ }t|d|ƒ}t|ddgdd	ggƒ d S )
Nr�   r9   rz   c                 S   s   | d S ©Nr<   rT   )r@   rT   rT   rU   ÚmyfuncP  s   z*TestApplyAlongAxis.test_3d.<locals>.myfuncr<   r±   rh   re   ©r
   r”   r&   r   ©rP   r?   rl  ÚxarT   rT   rU   Útest_3dM  s   zTestApplyAlongAxis.test_3dc                 C   sF   t dƒ ddd¡}ddd„}t|d|dd�}t|dd	gd
dggƒ d S )NrÁ   r9   rz   r   c                 S   s   | d|  S rk  rT   )r@   ÚoffsetrT   rT   rU   rl  Z  s   z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr<   )rq  r   rx   rç   )r   rm  rn  rT   rT   rU   Útest_3d_kwargsW  s   
z!TestApplyAlongAxis.test_3d_kwargsN)rƒ   r„   r…   rp  rr  rT   rT   rT   rU   rj  K  ó    
rj  c                   @   s   e Zd Zdd„ ZdS )ÚTestApplyOverAxesc                 C   s�   t dƒ ddd¡}ttj|ddgƒ}t dgdgdggg¡}t||ƒ t||d  t	¡< ttj|ddgƒ}t d	gd
gdggg¡}t||ƒ d S )Nr  r9   rz   r±   r   r!  é\   é|   rñ   r-  )
r
   r”   r%   rO   rm   r	   r   r   rM  r�   )rP   r?   rQ   ÚctrlrT   rT   rU   Ú
test_basicc  s   
zTestApplyOverAxes.test_basicN)rƒ   r„   r…   rx  rT   rT   rT   rU   rt  a  s    rt  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ejjdg d¢d�d d!„ ƒZd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2S )3Ú
TestMedianc                 C   s4   t jjt jt jgt jt jggdd�}t|t jƒ d S )Nr  rŒ   )rO   r[   r   Úinfr   ©rP   ÚrrT   rT   rU   Útest_pytypeo  s   $zTestMedian.test_pytypec                 C   sì   t jjt j t jt jgt jt jgg¡dd�}t|t jƒ t jjt j t jt jgt jt jgg¡d d�}t|t jƒ t jjt jjt jt jgt jt jggdd�dd�}t|jdƒ t jjt jjt jt jgt jt jggdd�d d�}t|jdƒ d S )Nr  rŒ   Tr‹   )rO   r[   r   r   rz  r   r>   r{  rT   rT   rU   Útest_infs  s8   
ÿÿ
ÿÿ
ÿÿþ
ÿÿþzTestMedian.test_infc                 C   sl  t  d¡}tt j |¡dƒ ttt j |¡ƒtuƒ tdƒ}tt j |¡dƒ ttt j |¡ƒtuƒ d}tt j |¡dƒ ttt j |¡ƒtuƒ t  d¡ 	dd¡}tt jj|dd	�t j|dd	�ƒ tt jj|d
d	�t j|d
d	�ƒ tt jj|d
d	�tuƒ t  d¡ 	dd¡}tt jj|dd	�t j|dd	�ƒ tt jj|d
d	�t j|d
d	�ƒ tt jj|d
d	�tuƒ d S )Nry   r’   rx   rô   r   r    éH   r   rŒ   r<   g      R@)
rO   r
   r   r[   r   r   r\   r   ri   r”   rT  rT   rT   rU   Útest_non_masked…  s"   
    zTestMedian.test_non_maskedc                 C   s  t t d¡dgd dgd  d�}ttj |¡dƒ ttj |¡jddƒ tttj |¡ƒt	uƒ t t d	¡ 
d
d¡dgd dgd  d�}ttj |¡dƒ ttj |¡jddƒ tttj |¡ƒt	uƒ tjj|ddd�}t|ddgƒ t|jddƒ tt|ƒt	u ƒ dS )z5test the examples given in the docstring of ma.medianrx   r   r±   r<   r‹   r³   rT   úshape mismatchre   r9   r   rw   r›   r  T©r�   Úoverwrite_inputr‰   r    r8   N)r	   rO   r
   r   r[   r   r   r   r\   r   r”   )rP   r¦   Úma_xrT   rT   rU   Útest_docstring_examplesš  s   "*z"TestMedian.test_docstring_examplesc                 C   sô   d}t dƒD ]q}dD ]l}td||d�}t t | |ƒddg¡}|D ] \}}ztjj|||d� W q! tyA   t|||||f ƒ‚w t |d  |gddg¡}|D ]$\}}ztjj|||d� W n tj	j
yk   Y qQw t|||||f ƒ‚q
qd S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr   )FTr<   )Úndminr>   FTr‚  )ri   r	   Ú	itertoolsÚproductrO   r[   r   Ú	ExceptionÚAssertionErrorÚ
exceptionsÚ	AxisError)rP   Úmsgr†  r>   r¦   Úargsr�   ÚoverrT   rT   rU   Útest_axis_argument_errors©  s,   ÿÿúóÿz$TestMedian.test_axis_argument_errorsc                 C   sD   t ddd�}ttj |¡dƒ t ddd�}ttj |¡tjjƒ d S )Nr<   Fr‹   T)r	   r   rO   r[   r   r   rT  rT   rT   rU   Útest_masked_0dÁ  s   zTestMedian.test_masked_0dc                 C   s¶  t t d¡dd�}ttj |¡tjjƒ ttj |¡jddƒ tt	tj |¡ƒtjj
ju ƒ t t d¡dd�}ttj |¡dƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d¢d�}ttj |¡d	ƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d
¢d�}ttj |¡dƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d¢d�}ttj |¡dƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d¢d�}ttj |¡dƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d¢d�}ttj |¡d	ƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ t t d¡g d¢d�}ttj |¡d	ƒ ttj |¡jddƒ tt	tj |¡ƒtuƒ d S )Nr   Tr‹   rT   r�  Fr‰   r×   r›   )r   r<   r<   r<   r<   r‡   )r   r<   r<   r   r   rŠ   r    rw   r™   ró   )r	   rO   r
   r   r[   r   r   r   r   r\   r]   ÚMaskedConstantr   rT  rT   rT   rU   Útest_masked_1dÈ  s@   zTestMedian.test_masked_1dc                 C   sB   t tj tg d¢g d¢d�¡jtj tg d¢g d¢d�¡jƒ d S )Nræ   rð   r‹   rR  )r   rO   r[   r   r	   r   ©rP   rT   rT   rU   Útest_1d_shape_consistencyî  s   ÿz$TestMedian.test_1d_shape_consistencyc                 C   sü   d\}}t t dd|¡ƒ}t |d d…< |dd …< t tj||ftd�ƒ}|d d … |d d …df< t t|ƒ¡}td|ƒD ]}tj	 
|¡ || |d d …|f< q<tt|d d …df ƒdƒ tt|ƒdƒ tt|dd	�t |¡ƒ tt|jdd	�t |¡ƒ d S )
N)ée   r@  ç      ð¿rˆ   re   éöÿÿÿr:   r   r<   rŒ   )r   rO   Úlinspacer   ÚemptyrN   r
   r^   ri   r  Úshuffler   r   r   rÎ   )rP   r`  Úpr¦   r­   Úidxro   rT   rT   rU   r  ò  s   zTestMedian.test_2dc                 C   sÔ   t t d¡ dd¡ƒ}t |d d…< |dd …< tt|ƒdƒ tttj	 |¡ƒt
uƒ tt|dd�g d¢ƒ tttj	j|dd�ƒt
u ƒ tt|d	d�g d
¢ƒ tttj	j|d	d�ƒt
u ƒ tt|d	d�jg d¢ƒ d S )Nr@  re   rz   éýÿÿÿç      -@r   rŒ   )ç      +@rŸ  g      /@r<   )
r   r   r   re   r$  r  r)  r   r   r   )
r<   r<   r<   r   r   r   r   r<   r<   r<   )r   rO   r
   r”   r   r   r   r   r\   r[   r   r>   rT  rT   rT   rU   Útest_2d_waxis  s   zTestMedian.test_2d_waxisc                 C   sÂ   t j d¡ ddd¡}t||d dk< tt|dƒddgdd	gddgd
d	ggƒ d|_tt|dƒddgddgddggƒ t j d¡ ddd¡}t||d dk< tt|dƒddgddgddggƒ d S )Nr  rz   r±   r9   r   rÁ   ry   rw   r&  r(  )r±   rz   r9   éc   re   rç   r$  r%  r   rx   r  r'  )rO   r[   r
   r”   r   r   r   r   rT  rT   rT   rU   rp    s   ("&zTestMedian.test_3dc                 C   sL   t t d¡ dd¡ƒ}t |d d…< |dd …< tt|dd�t|dd�ƒ d S )Nr@  re   rz   rž  r  rŒ   r<   )r   rO   r
   r”   r   r   r   rT  rT   rT   rU   Útest_neg_axis  s   zTestMedian.test_neg_axisc                 C   sˆ   dD ]?}t t |¡ƒ}t |d d…< |dd …< t t d¡ƒ}t||d�}|dkr.t|dƒ nt|dƒ t||u ƒ tt|ƒt	u ƒ qd S )	N)r@  ç      >@rò   g      ?@rz   rž  rT   re  r@  rŸ  g      .@)
r   rO   r
   r   r   r   r   r   r\   r   )rP   Úvr¦   rf  r|  rT   rT   rU   Útest_out_1d  s   
özTestMedian.test_out_1dc                 C   s  dD ]}}t t |¡ dd¡ƒ}t |d d…< |dd …< t t d¡ƒ}t|d|d�}|dkrMt d	gd g d
¢ d	gd  dgd dgd  dgd  d�}nt d	gd g d¢ d	gd  dgd dgd  dgd  d�}t||ƒ t||u ƒ tt	|ƒt
u ƒ qd S )N)r*  g      D@r@  r¤  re   r  rz   rž  r<   )r�   rf  r@  r‡   )re   r$  r  r)  TFr±   r‹   )r   g     €1@g     €5@g     €9@)r   rO   r
   r”   r   r   r   r   r   r\   r   )rP   r¥  r¦   rf  r|  ÚerT   rT   rU   Útest_out,  s    ÿÿ
ózTestMedian.test_outr�   )Nr<   rX   rÂ   )rž  r  )ÚargnamesÚ	argvaluesc                    sØ   t jdtd�}t j d¡t  |j¡d d …d f  }| t j¡}t j|t	|ƒ< t
t  |j¡|d�‰|d u r:dˆj }nt|ˆjƒ‰ t	‡ ‡fdd„tˆjƒD ƒƒ}t
t  |¡ƒ}tˆ|d|d	�}||u sdJ ‚t|j|ƒ d S )
N)rz   r   rh   rç   r:   )r±   éÈ   r‹   rX   c                 3   s&   � | ]}|ˆ v r
d nˆj | V  qdS )r<   N)r   )Ú.0ro   ©Ú	axis_normr  rT   rU   Ú	<genexpr>R  s   € 
ÿz/TestMedian.test_keepdims_out.<locals>.<genexpr>T)r�   r¼   rf  )rO   r   r�   r  r	   r   rM  ÚintprÊ   Útupler   r   Úndimr   ri   rš  r   r   )rP   r�   r>   r½   Ú	shape_outrf  r–   rT   r­  rU   Útest_keepdims_out=  s   $ÿzTestMedian.test_keepdims_outc                 C   sF   ddgddgddgg}t j |d¡}ddg}tt jj|dd�|ƒ d S )Nrˆ   r‡   rŠ   r   rŒ   )rO   r[   Úmasked_equalr   r   )rP   rl   rb   rÝ   rT   rT   rU   Ú$test_single_non_masked_value_on_axisY  s   þÿz/TestMedian.test_single_non_masked_value_on_axisc                 C   s¤  dt jdtd�fD ]…}t j dt jdgg d¢g¡}||_t jj|d d�}tt  	|¡ƒ t
|t jƒ t jj| ¡ dd�}tt  	|¡ƒ t
|t jƒ t jj|dd�}tt|ƒtƒ t
|dt jdgƒ t jj|dd�}tt|ƒtƒ t
|t jd	gƒ t jj|d
d�}tt|ƒtƒ t
|t jd	gƒ q	t j dt jdgg d¢g¡}t jj|d d …d	f< t
t jj|d d�t jƒ t
t jj|dd�dt jdgƒ t
t jj|dd�t jdgƒ d S )NFrw   r:   r<   rz   ræ   rŒ   r   r9   r  r³   )rO   r   r�   r[   r	   rÊ   r>   r   r   Úisscalarr   Úravelr   r\   r   r   )rP   r>   Údmr|  rT   rT   rU   Útest_nanb  s.    zTestMedian.test_nanc                 C   s¨   t j t  d¡¡}t j t  d¡¡}t j|d< t jj|d< tt jj|d|d�|ƒ t j t  d¡¡}tt jj|d|d�|ƒ t j t  d	¡¡}tt jj||d�|ƒ d S )
N)r±   ©rz   r±   ©r9   r<   rG   r   re  ©rz   r<   rT   )	rO   r[   r   r   r   rÊ   r   r   r   )rP   Úor  rT   rT   rU   Útest_out_nan  s   
zTestMedian.test_out_nanc                 C   s†  t j t jdtd�¡}t jj|d d d…< t j|d< tt j |¡t jƒ tt jj|dd�t jƒ t j t jdtd� 	ddd¡¡}t  |j
¡d dk|_| ¡ }t j|d	< t j|d
< tt j |¡t jƒ tt  t j |¡¡ƒ t jj|dd�}t j|d< t j|d< tt j |d¡|ƒ t jj|dd�}t j|d< t j|d< tt j |d¡|ƒ t jj|dd�}t j|d< t j|d< tt j |d¡|ƒ d S )Nr  r:   rz   r9   r   rŒ   r±   r<   ræ   )r<   r<   r9   ©r9   rz   rÇ   ©r<   rz   rK  )rO   r[   r   r
   rN   r   rÊ   r   r   r”   r€   r>   Úcopyr   r·  r   )rP   r?   Úaorigr@   rT   rT   rU   Útest_nan_behaviorŠ  s0   
 







zTestMedian.test_nan_behaviorc                 C   sŽ   t jg d¢g d¢gt jd�}t jj||dkd�}tt jj|dd�dƒ tt jj|dd�jdƒ tt jj|d	d�|d	 ƒ tt j |¡dƒ d S )
N)rz   rz   éÿ   r:   rz   r‹   r<   rŒ   rÅ  Fr   )rO   r	   Úuint8r[   r   r   r   r>   rÕ   rT   rT   rU   Útest_ambigous_fill­  s   zTestMedian.test_ambigous_fillc                 C   s  t jt j fD �]v}t  |t jgt jt jgg¡}t jj|t  |¡d�}tt jj|dd�|t jgƒ tt jj|dd�|t jgƒ tt j |¡|ƒ t  t jt j|gt jt j|gg¡}t jj|t  |¡d�}t	t jj|dd�|ƒ t	t jj|dd�j
dƒ t	t jj|dd�|d ƒ t	t j |¡|ƒ t  ||g||gg¡}tt j |¡|ƒ tt jj|dd�|ƒ tt jj|dd�|ƒ t j|d| dgdt jt jd	gd
t jt j|ggt jd�}t jj|t  |¡d�}|dk�rtt jj|dd�dd| dgƒ tt j |¡dƒ ntt jj|dd�dd| dgƒ tt j |¡dƒ tt jj|dd�dd|gƒ tddƒD ]P}tddƒD ]G}t  t jg| |g|  gd ¡}t jj|t  |¡d�}tt j |¡|ƒ tt jj|dd�|ƒ tt jj|dd�t jg| |g|  ƒ �q4�q-qd S )Nr‹   r   rŒ   r<   Frh   i÷ÿÿÿr˜  r   r±   r:   r’   rÃ   r    g      @g      $Àg      "Àg      Àr—  re   r9   )rO   rz  r	   rÊ   r[   r   Úisnanr   r   r   r>   Úfloat32ri   )rP   rz  r?   ro   rp   rT   rT   rU   Útest_special¶  sR   "þý
  "ÿûÿßzTestMedian.test_specialc                 C   s²  t j t jg td�¡}tƒ �!}| t¡ tt j 	|¡t j
ƒ t|jd jtu ƒ W d   ƒ n1 s2w   Y  t j t jg tdd�¡}tƒ �(}| t¡ t ddt¡ tt j 	|¡t j
ƒ t|jd jtu ƒ W d   ƒ n1 sqw   Y  t j t jg tdd�¡}tt jj	|dd�|ƒ tt jj	|d	d�|ƒ t j t jt j
tdd�¡}tjd
d��$}t ddt¡ tt jj	|dd�|ƒ t|d jtu ƒ W d   ƒ d S 1 sÒw   Y  d S )Nr:   r   rz   )r;   r†  ÚalwaysÚ r9   rŒ   r<   T)Úrecord)rO   r[   r   r	   rN   r   rÍ  ÚRuntimeWarningr   r   rÊ   r   ÚlogÚcategoryÚwarningsÚfilterwarningsr   Úcatch_warnings)rP   r?   r½   r@   rT   rT   rU   Ú
test_emptyá  s,   
ý
ü"ýzTestMedian.test_emptyc                 C   sX   t j t  d¡¡}ttt j | t¡¡ƒt	ƒ t j
|d< ttt j | t¡¡ƒt	ƒ d S )NrÃ   r9   )rO   r[   r   r
   r   r\   r   rM  rZ   rN   rÊ   )rP   r¾  rT   rT   rU   Útest_objectþ  s   
 zTestMedian.test_objectN)rƒ   r„   r…   r}  r~  r€  r…  r�  r‘  r“  r•  r  r¡  rp  r£  r¦  r¨  rË   rý   rþ   r´  r¶  rº  r¿  rÄ  rÇ  rÊ  rÔ  rÕ  rT   rT   rT   rU   ry  n  s8    &þ

	#	+ry  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S )ÚTestCovc                 C   s   t tj d¡ƒ| _d S ©NrÁ   )r	   rO   r  r  rl   r”  rT   rT   rU   Úsetup_method  s   zTestCov.setup_methodc                 C   s®   | j }tt|dd�d jtjƒ tt||dd�d jtjƒ |dk}tttj ||¡dd�d  	t
¡| dd¡ ƒ tttj ||¡|dd�d  	t
¡t | | f¡ƒ d S )NT©Úrowvarr<   F)r§   rÚ  r²   r  )rl   r   r6   r;   rO   rÉ  r   r[   r   rM  r�   r”   r5   )rP   r¦   r>   rT   rT   rU   Útest_covhelper
  s,   ÿþüÿþüzTestCov.test_covhelperc                 C   sZ   | j }tt |¡t|ƒƒ ttj|dd�t|dd�ƒ ttj|ddd�t|ddd�ƒ d S )NFrÙ  T©rÚ  Úbias)rl   r   rO   r   rT  rT   rT   rU   Útest_1d_without_missing  s   ÿzTestCov.test_1d_without_missingc                 C   sb   | j  dd¡}tt |¡t|ƒƒ ttj|dd�t|dd�ƒ ttj|ddd�t|ddd�ƒ d S )Nrz   r±   FrÙ  TrÜ  )rl   r”   r   rO   r   rT  rT   rT   rU   Útest_2d_without_missing&  s   ÿzTestCov.test_2d_without_missingc                 C   s>  | j }t|d< || ¡ 8 }| ¡ }tt |¡t|ƒƒ ttj|dd�t|dd�ƒ ttj|ddd�t|ddd�ƒ zt|dd� W n	 tyJ   Y nw |dd… }tt ||d d d… ¡t||d d d… ƒƒ ttj||d d d… dd�t||d d d… dd�ƒ ttj||d d d… ddd�t||d d d… ddd�ƒ d S )Nr  FrÙ  TrÜ  ©Úallow_maskedr<   )rl   r   Úmeanrn   r   rO   r   rÍ   )rP   r¦   ÚnxrT   rT   rU   Útest_1d_with_missing.  s,   ÿÿ,ÿÿzTestCov.test_1d_with_missingc                 C   s6  | j }t|d< | dd¡}t t|ƒ¡ t¡}t ||j	¡}|| 
d¡d d …d f   d¡}tt|ƒt |¡|jd d  |d  ƒ tt|dd�tj|dd�|jd  | ƒ t |j	|¡}|| 
d¡  d¡}tt|d	d
�tj|d	d
�|jd d  |d  ƒ tt|d	dd�tj|d	dd�|jd  | ƒ d S )Nr  rz   r±   r<   r   rˆ   T©rÝ  FrÙ  rÜ  )rl   r   r”   rO   Úlogical_notr   rM  rj   r   rÎ   râ  r_  r   r   r   )rP   r¦   ÚvalidÚfracÚxfrT   rT   rU   Útest_2d_with_missingF  s8    ÿÿÿÿÿÿÿÿzTestCov.test_2d_with_missingN)	rƒ   r„   r…   rØ  rÛ  rÞ  rß  rä  rê  rT   rT   rT   rU   rÖ    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 )ÚTestCorrcoefc                 C   s(   t tj d¡ƒ| _t tj d¡ƒ| _d S r×  )r	   rO   r  r  rl   Údata2r”  rT   rT   rU   rØ  ^  s   zTestCorrcoef.setup_methodc                 C   sÞ   | j | j}}t |¡}t ||¡}tƒ �P}t d¡ ttt|dd� | 	td¡ t
tj|dd�t|dd�ƒ t
t|dd�|ƒ t
t||dd�|ƒ t
t|dd�|ƒ t
t||dd�|ƒ W d   ƒ d S 1 shw   Y  d S )NrË  r  ©Úddofúbias and ddof have no effectr   rz   ©rl   rì  rO   r   r   rÑ  Úsimplefilterr   rZ  Úfilterr   )rP   r¦   r§   rÝ   Ú	expected2ÚsuprT   rT   rU   Ú	test_ddofb  s   

"÷zTestCorrcoef.test_ddofc                 C   s    | j | j}}t |¡}tƒ �7}t d¡ ttt||ddƒ ttt||ddƒ ttt|dd� | 	td¡ t
t|dd�|ƒ W d   ƒ d S 1 sIw   Y  d S )NrË  TFrå  rï  r<   rð  )rP   r¦   r§   rÝ   rô  rT   rT   rU   Ú	test_biasr  s   

"ùzTestCorrcoef.test_biasc                 C   sŽ   | j }tt |¡t|ƒƒ ttj|dd�t|dd�ƒ tƒ �}| td¡ ttj|ddd�t|ddd�ƒ W d   ƒ d S 1 s@w   Y  d S )NFrÙ  rï  TrÜ  )rl   r   rO   r   r   rò  rZ  ©rP   r¦   rô  rT   rT   rU   rÞ    s   
ÿÿ"þz$TestCorrcoef.test_1d_without_missingc                 C   s–   | j  dd¡}tt |¡t|ƒƒ ttj|dd�t|dd�ƒ tƒ �}| td¡ ttj|ddd�t|ddd�ƒ W d   ƒ d S 1 sDw   Y  d S )Nrz   r±   FrÙ  rï  TrÜ  )rl   r”   r   rO   r   r   rò  rZ  r÷  rT   rT   rU   rß  Š  s   
ÿÿ"þz$TestCorrcoef.test_2d_without_missingc              	   C   sÌ  | j }t|d< || ¡ 8 }| ¡ }tt |¡t|ƒƒ ttj|dd�t|dd�ƒ tƒ �}| t	d¡ ttj|ddd�t|ddd�ƒ W d   ƒ n1 sMw   Y  zt|dd� W n	 t
yc   Y nw |dd… }tt ||d d d… ¡t||d d d… ƒƒ ttj||d d d… dd�t||d d d… dd�ƒ tƒ �?}| t	d¡ tt ||d d d… ¡t||d d d… dd	�ƒ tt ||d d d… ¡t||d d d… d
d�ƒ W d   ƒ d S 1 sßw   Y  d S )Nr  FrÙ  rï  TrÜ  rà  r<   rå  r9   rí  )rl   r   râ  rn   r   rO   r   r   rò  rZ  rÍ   )rP   r¦   rã  rô  rT   rT   rU   rä  •  sB   
ÿÿþÿ,ÿÿÿ"ûz!TestCorrcoef.test_1d_with_missingc                 C   s$  | j }t|d< | dd¡}t|ƒ}t |¡}t|d d…d d…f |d d…d d…f ƒ tƒ �Z}| td¡ tt|dd�d d…d d…f |d d…d d…f ƒ tt|dd�d d…d d…f |d d…d d…f ƒ tt|dd�d d…d d…f |d d…d d…f ƒ W d   ƒ d S 1 s‹w   Y  d S )	Nr  rz   r±   rï  r  rí  r<   rå  )	rl   r   r”   r   rO   r   r   rò  rZ  )rP   r¦   rQ   rR   rô  rT   rT   rU   rê  ³  s$   
*ÿÿÿ"ùz!TestCorrcoef.test_2d_with_missingN)
rƒ   r„   r…   rØ  rõ  rö  rÞ  rß  rä  rê  rT   rT   rT   rU   rë  \  s    rë  c                   @   r  )ÚTestPolynomialc                 C   s´  t j d¡}t j d¡ dd¡}tt||dƒt  ||d¡ƒ | t¡}t|d< | t¡}t |d< |d< t||d d …df dd	d
�\}}}}}t j|dd … |dd …df  	¡ dd	d
�\}}	}
}}t
|||||f||	|
||fƒD ]	\}}t||ƒ qpt||d d …df dd	d
�\}}}}}t j|dd… |dd…df dd	d
�\}}	}
}}t
|||||f||	|
||fƒD ]	\}}t||ƒ q´t||dd	d
�\}}}}}t j|dd… |dd…d d …f dd	d
�\}}	}
}}t
|||||f||	|
||fƒD ]	\}}t||ƒ qôt j d¡d }| ¡ }|dd… }|dd… }|dd… }t||dd	|d�\}}}}}t j||dd	|d�\}}	}
}}t||ƒ t
|||||f||	|
||fƒD ]
\}}t||ƒ �qMd S )Nre   r>  r  r9   rz   r   rE   ©r  r  T©rk   r<   )rk   r½   )rO   r  r  r”   r   r   Úviewr   r   rn   ÚziprÂ  r   )rP   r¦   r§   ÚCÚRÚKÚSÚDrW   r|  rq   rs   r  r?   Úa_r½   ÚwoÚxsÚysÚwsrT   rT   rU   Útest_polyfitÉ  s@   

&"ÿ&&0&4&
&ÿzTestPolynomial.test_polyfitc                 C   sÜ   t j d¡}t j d¡ dd¡}t j|d< t j|d< | t¡}| t¡}t|d< t|d< t||ddd	�\}}}}}t j|d
d… |d
d…d d …f ddd	�\}}	}
}}t	|||||f||	|
||fƒD ]	\}}t
||ƒ qbd S )Nre   r>  r  r9   r   rù  rz   Trú  r<   )rO   r  r  r”   rÊ   rû  r   r   r   rü  r   )rP   r¦   r§   rý  rþ  rÿ  r   r  rW   r|  rq   rs   r  r?   r  rT   rT   rU   Útest_polyfit_with_masked_NaNsð  s   



4&ÿz,TestPolynomial.test_polyfit_with_masked_NaNsN)rƒ   r„   r…   r  r  rT   rT   rT   rU   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dd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#S )$ÚTestArraySetOpsc                 C   sn   g d¢}t |ddd�}tt|d tƒƒ t|d tg d¢g d¢d�ƒ t|d g d	¢ƒ t|d
 g d¢ƒ d S )N©r<   r<   r<   r9   r9   rz   T©Úreturn_indexÚreturn_inverser   ræ   rð   r‹   r<   )r   rz   r   r9   )r   r   r   r<   r<   r9   )r   r   r  r   r   r   r  rT   rT   rU   Útest_unique_onlist  s   z"TestArraySetOps.test_unique_onlistc                 C   sÔ   t g d¢g d¢d�}t|ddd�}t|d t g d¢g d¢d�ƒ t|d	 g d
¢ƒ t|d g d¢ƒ d|_t g d¢g d¢dd�}t|ddd�}t|d t g d¢g d¢d�ƒ t|d	 g d
¢ƒ t|d g d¢ƒ d S )Nr
  )r   r   r<   r   r<   r   r‹   Tr  r   )r<   r9   rz   r  ©r   r   r   r<   r<   )r   rz   r   r9   r9   )r   r   rz   r<   rz   r9   rz   )rl   r>   Ú
fill_value)r   r   r   r  r  rT   rT   rU   Útest_unique_onmaskedarray  s   ÿz)TestArraySetOps.test_unique_onmaskedarrayc                 C   s¢   t g d¢dd�}t|ddd�}t|d t dgdgd�ƒ t|d dgƒ t|d g d¢ƒ t}t|ddd�}t|d t tƒƒ t|d dgƒ t|d dgƒ d S )	Nr#  Tr‹   r  r   r<   r9   rð   )r   r   r   r   r  rT   rT   rU   Útest_unique_allmasked  s   z%TestArraySetOps.test_unique_allmaskedc                 C   sd   t t d¡g d¢d�}tg d¢g d¢d�}t|ƒ}t||ƒ t| d¡| d¡ƒ t|j|jƒ d S )Nr   ©r<   r   r   r   r<   r‹   )r<   r<   r<   r±   )r<   r   r   r<   r   )r   rO   r
   r	   r$   r   r_  r>   )rP   r¦   rR   rQ   rT   rT   rU   Útest_ediff1d+  s   
zTestArraySetOps.test_ediff1dc                 C   óº   t t d¡g d¢d�}t|td�}tg d¢g d¢d�}t||ƒ t| d¡| d¡ƒ t|j|jƒ t|g d¢d�}tg d	¢g d
¢d�}t||ƒ t| d¡| d¡ƒ t|j|jƒ d S )Nr   r  r‹   )Úto_begin)r   r<   r<   r<   r±   )r<   r<   r   r   r<   r   ræ   )r<   r9   rz   r<   r<   r<   r±   )r   r   r   r<   r   r   r<   ©	r   rO   r
   r$   r   r	   r   r_  r>   ©rP   r¦   rQ   rR   rT   rT   rU   Útest_ediff1d_tobegin4  ó   

z$TestArraySetOps.test_ediff1d_tobeginc                 C   r  )Nr   r  r‹   )Úto_end)r<   r<   r<   r±   r   )r<   r   r   r<   r<   r   ræ   )r<   r<   r<   r±   r<   r9   rz   )r<   r   r   r<   r   r   r   r  r  rT   rT   rU   Útest_ediff1d_toendC  r  z"TestArraySetOps.test_ediff1d_toendc                 C   s¾   t t d¡g d¢d�}t|ttd�}tg d¢g d¢d�}t||ƒ t| d¡| d¡ƒ t|j|jƒ t|g d¢td�}tg d	¢g d
¢d�}t||ƒ t| d¡| d¡ƒ t|j|jƒ d S )Nr   r  r‹   ©r  r  )r   r<   r<   r<   r±   r   )r<   r<   r   r   r<   r<   r   ræ   )r   r<   r<   r<   r±   r<   r9   rz   )r<   r<   r   r   r<   r   r   r   r  r  rT   rT   rU   Útest_ediff1d_tobegin_toendR  s   
ÿ
z*TestArraySetOps.test_ediff1d_tobegin_toendc                 C   sº   t  d¡}t|ƒ}tg d¢g d¢d�}t||ƒ tt|tƒƒ t| d¡| d¡ƒ t|j	|j	ƒ t|t
t
d�}tg d¢g d¢d�}tt|tƒƒ t| d¡| d¡ƒ t|j	|j	ƒ d S )	Nr   ©r<   r<   r<   r<   ©r   r   r   r   r‹   r   r  r™   rš   )rO   r
   r$   r	   r   r   r  r   r_  r>   r   r  rT   rT   rU   Útest_ediff1d_ndarrayb  s   

z$TestArraySetOps.test_ediff1d_ndarrayc                 C   sT   t g d¢g d¢d�}t g d¢g d¢d�}t||ƒ}t g d¢g d¢d�}t||ƒ d S )N)r<   rz   rz   rz   r  r‹   )rz   r<   r<   r<   )r<   rz   r  rÆ   )r	   r"   r   )rP   r¦   r§   rQ   rR   rT   rT   rU   Útest_intersect1dr  s
   
z TestArraySetOps.test_intersect1dc                 C   s$  t g d¢g d¢d�}t g d¢g d¢d�}t||ƒ}t|t g d¢ƒƒ t g d¢g d¢d�}g d¢}t||ƒ}t|t g d¢g d	¢d�ƒ t g d
¢ƒ}t g d¢ƒ}t||ƒ}tt|tƒƒ t|g d¢ƒ t g d¢g d¢d�}t g d¢g d	¢d�}t||ƒ}tt|tƒƒ t|g d¢ƒ tg tg g ƒƒ d S )N©r<   r9   r   rh   r  ©r   r   r   r   r<   r‹   ©r<   r9   rz   r±   r   r  r^  )rz   r±   rh   ©r<   r9   rz   r±   r   ©rz   r±   rh   r  r  ræ   )rw   r   r±   r  ©r<   rx   r9   rz   ©r   r<   r   r   ©rw   r   r±   rx   )r	   r   r   r   r  r   r   ©rP   r?   r@   rQ   rT   rT   rU   Útest_setxor1dz  s&   



zTestArraySetOps.test_setxor1dc                 C   sð   t g d¢g d¢d�}g d¢}t||dd�}t|t g d¢g d¢d�ƒ t g d	¢g d
¢d�}t g d¢g d¢d�}t||dd�}tt|tƒƒ t|g d¢ƒ t dgdgdgdggƒ}t ddgddggƒ}t||dd�}tt|tƒƒ t|g d¢ƒ d S )Nr#  r$  r‹   r&  T)Úassume_uniquer'  r  r(  r)  r*  r  r<   rx   r9   rz   rw   r   r±   )r	   r   r   r   r  r   r+  rT   rT   rU   Útest_setxor1d_unique”  s   z$TestArraySetOps.test_setxor1d_uniquec                 C   sº   t  d¡ g d¢¡}t  g d¢¡}d|d< t||d�}tg d¢g d¢d�}tdtd	�}d
|d< d
|d< d
|d< t||ƒ}tt|t	ƒƒ t
||ƒ t  |||j  ¡|j @ }t
||ƒ d S )Nr  r»   r<   )r<   r9   r   r‹   )	r   re   r>  r@  r<   rz   rç   r  rB  )	r   r<   r   r<   r   r<   r   r<   r   )rl   r>   r:   Trð   rÆ   )r   r9   rz   )rO   r
   r”   r   r	   r�   r1   r   r  r   r   r>   )rP   r?   r>   r@   ÚecrW   r  rT   rT   rU   Ú	test_isin§  s    ÿ

zTestArraySetOps.test_isinc                 C   s”   t g d¢g d¢d�}t g d¢g d¢d�}t||ƒ}t|g d¢ƒ t g d¢g d¢d�}t g d¢g d	¢d�}t||ƒ}t|g d
¢ƒ tg tg g ƒƒ d S )Nr#  r$  r‹   r%  r^  )TTTFT©r   r   r9   r<   r  ©r<   r   r  rÆ   )TTFTT)r	   r#   r   r   r+  rT   rT   rU   Ú	test_in1d¼  s   

zTestArraySetOps.test_in1dc                 C   s¨   t g d¢g d¢d�}t g d¢g d¢d�}tt t||ƒ¡t||dd�ƒ t g d¢g d¢d�}t g d	¢g d
¢d�}tt t||ƒ¡t||dd�ƒ tg tg g dd�ƒ d S )Nr#  r$  r‹   r%  r^  T)Úinvertr1  r2  rÆ   )r	   r   rO   r4  r#   r   rc  rT   rT   rU   Útest_in1d_invertÊ  s     z TestArraySetOps.test_in1d_invertc           	      C   sÄ   t g d¢g d¢d�}t g d¢g d¢d�}t||ƒ}t g d¢g d¢d�}t||ƒ t g d¢g d¢gg d	¢g d
¢gd�}t g d¢g d¢d�}t g d¢g d¢d�}t||ƒ}t||ƒ tg tg g ƒƒ d S )N)r<   r9   r   rh   r   r  r^  r‹   r%  )r<   r9   rz   r±   r   rh   r  )r   r   r   r   r   r   r<   rÉ   r"  rð   rÆ   r  r$  )r   r<   r9   rz   r±   r   )r	   r!   r   r   )	rP   r?   r@   rQ   rR   r¦   r§   Úezr­   rT   rT   rU   Útest_union1dÖ  s   

$

zTestArraySetOps.test_union1dc                 C   s”   t g d¢g d¢d�}t g d¢ƒ}t||ƒ}t|t g d¢g d¢d�ƒ tdƒ}tdƒ}tt||ƒt dd	gƒƒ t g tjg d�}tt|g ƒjtjƒ d S )
N)rw   r   r±   rh   rh   r<   r9   r<   )r   r   r   r   r   r   r   r<   r‹   )r9   r±   rz   rz   r9   r<   r   )rw   rh   r  rÆ   re   rx   ry   )r	   r    r   r
   rO   Úuint32r;   r+  rT   rT   rU   Útest_setdiff1dè  s   
zTestArraySetOps.test_setdiff1dc                 C   s8   t  g d¢¡}t  g d¢¡}tt||ƒt  dg¡ƒ d S )N)r?   r@   rW   )r?   r@   rs   rW   )rO   r	   r   r    rc  rT   rT   rU   Útest_setdiff1d_char_arrayõ  s   z)TestArraySetOps.test_setdiff1d_char_arrayN)rƒ   r„   r…   r  r  r  r  r  r  r  r!  r"  r,  r.  r0  r3  r5  r7  r9  r:  rT   rT   rT   rU   r	    s$    		r	  c                   @   r  )ÚTestShapeBasec                 C   sn   t g d¢g d¢d�}t|ƒ}t|jdƒ t|jj|jjƒ t|jdƒ t|jj|jjƒ t|jj|jjƒ d S )NrÉ   rR  r‹   rÁ  r½  )r   r   r   r   r>   rl   rc  rT   rT   rU   Útest_atleast_2dþ  s   zTestShapeBase.test_atleast_2dc                 C   s†  t dƒ}t|jdƒ t|jj|jƒ t|jj|jƒ t ddƒ}|D ]}t|jdƒ t|jj|jƒ t|jj|jƒ q!tdƒ}t|jdƒ t|jj|jƒ t|jj|jƒ tddƒ}|D ]}t|jdƒ t|jj|jƒ t|jj|jƒ q[tdƒ}t|jdƒ t|jj|jƒ t|jj|jƒ tddƒ}|D ]}t|jdƒ t|jj|jƒ t|jj|jƒ q•tdƒ}t|jdƒ t|jj|jjƒ d S )Nrˆ   rX   r‰   rF   r#  )r   r   r   r>   rl   r   r   r2   )rP   r@   r?   rT   rT   rU   Útest_shape_scalar  s<   


zTestShapeBase.test_shape_scalarN)rƒ   r„   r…   r<  r=  rT   rT   rT   rU   r;  ü  rs  r;  c                   @   rÿ   )ÚTestNDEnumeratec                 C   s‚   t  d¡ d¡}t j|td�}t||d�}ttt  |¡ƒtt|ƒƒƒ ttt|ƒƒtt|ƒƒƒ ttt|ƒƒtt|dd�ƒƒ d S )Nró   )r<   rz   r9   r:   r‹   F©rn   )	rO   r
   r”   Ú
zeros_liker�   r   r   rL  r3   )rP   ÚordinaryÚ
empty_maskÚ	with_maskrT   rT   rU   Útest_ndenumerate_nomasked5  s   
ÿ
ÿÿz)TestNDEnumerate.test_ndenumerate_nomaskedc                 C   sª   t dƒ}t dƒ}t dƒ}ttt|ƒƒg ƒ ttt|ƒƒg ƒ ttt|dd�ƒttt d¡dtg ƒƒƒ ttt|ƒƒg ƒ ttt|dd�ƒttt d¡dtg ƒƒƒ d S )NrT   )éd   r»   Fr?  rE  r  )r/   r   rL  r3   rü  rO   Úndindexr   )rP   r?   r@   rW   rT   rT   rU   Útest_ndenumerate_allmasked@  s   ÿÿz*TestNDEnumerate.test_ndenumerate_allmaskedc                 C   sˆ   t t d¡ d¡g d¢g d¢g d¢gd�}g d¢}ttt|ƒƒ|ƒ tttt|dd	�ƒƒ|jƒ t|dd	�D ]\}}t|| |ƒ q6d S )
NrÁ   r»  r  )r<   r<   r   r<   r   r‹   ))rÇ   rw   ))r9   r   rx   )r¼  ry   )rG   re   )rÀ  rç   Fr?  )	r   rO   r
   r”   r   rL  r3   r^   r€   )rP   r?   ÚitemsÚ
coordinateÚvaluerT   rT   rU   Útest_ndenumerate_mixedmaskedL  s   þÿÿz,TestNDEnumerate.test_ndenumerate_mixedmaskedN)rƒ   r„   r…   rD  rG  rK  rT   rT   rT   rU   r>  3  s    r>  c                   @   rÿ   )Ú	TestStackc                 C   sä   t g d¢g d¢d�}t g d¢g d¢d�}t||gdd�}t|jdƒ t|j|d jƒ t|j|d	 jƒ t||gƒ}t|j|jƒ t|j|jƒ t||gd	d�}t|jd
ƒ t|j|d d …df jƒ t|j|d d …d	f jƒ d S )NrÉ   rR  r‹   ©ry   rx   rh   rï   r   rŒ   rÀ  r<   ©rz   r9   ©r   r4   r   r   r   r>   r5   rl   ©rP   r?   r@   rW   r  rT   rT   rU   Útest_stack_1d[  s   zTestStack.test_stack_1dc                 C   sÜ   t g d¢dd�}t g d¢dd�}t||gdd�}t|jdƒ t|j|d jƒ t|j|d	 jƒ t||gƒ}t|j|jƒ t|j|jƒ t||gd	d�}t|jd
ƒ t|j|d d …df jƒ t|j|d d …d	f jƒ d S )NrÉ   Tr‹   rM  Fr   rŒ   rÀ  r<   rN  rO  rP  rT   rT   rU   Útest_stack_masksm  s   zTestStack.test_stack_masksc           
      C   sô  d}t j dd|¡}t j dd|¡}t j dd|¡ t¡}t j dd|¡ t¡}t||d�}t||d�}t||gdd�}d| }	t|j|	ƒ t	|j
|d j
ƒ t	|j
|d j
ƒ t||gd	d�}|d }	t|j|	ƒ t	|j
|d
 j
ƒ t	|j
|d j
ƒ d}t j dd|¡}t j dd|¡}t j dd|¡ t¡}t j dd|¡ t¡}t||d�}t||d�}t||gdd�}d| }	t|j|	ƒ t	|j
|d j
ƒ t	|j
|d j
ƒ t||gd	d�}|d }	t|j|	ƒ t	|j
|d
 j
ƒ t	|j
|d j
ƒ d S )NrN  r   re   r9   r‹   rŒ   r8   r<   r  ).r   ).r<   )rz   r9   r±   r   )rO   r  ÚrandintrM  r�   r   r4   r   r   r   r>   )
rP   ÚshpÚd1Úd2r¨   r©   Úa1rN  rW   Úc_shprT   rT   rU   Útest_stack_nd  sD   zTestStack.test_stack_ndN)rƒ   r„   r…   rQ  rR  rY  rT   rT   rT   rU   rL  Y  s    rL  )OÚ__doc__rÑ  r‡  rË   ÚnumpyrO   Únumpy._core.numericr   Únumpy.testingr   r   Únumpy.ma.testutilsr   r   r   r   Únumpy.ma.corer	   r
   r   r   r   r   r   r   r   r   r   Únumpy.ma.extrasr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r†   r   r  r   rj  rt  ry  rÖ  rë  rø  r	  r;  r>  rL  rT   rT   rT   rU   Ú<module>   sD   4”
   ,F  4   Wk: |7&