o
    V=ºi  ã                   @   sæ  d Z ddlZddlZddlZddl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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<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ƒ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$ƒZKd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)Ú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Úvstackc                   @   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é   ©Úmaskr9   ÚaÚbÚf©ÚnamesÚformats©r   r   ©r:   r:   ©r7   r7   ©r=   r?   ©Úbar?   ©Zbbr?   ©r:   rD   )r.   Úfloatr   r   Únpr9   )ÚselfÚtestÚcontrolÚdt© rQ   ú`C:\Users\psant\Downloads\PAF backend\school\venv\Lib\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:   rD   rQ   ©rL   r9   ÚobjectÚmar.   r   ÚtypeÚcorer   Úlenr   Z_fill_value©rM   Zmy_dtypeÚ
masked_arrrQ   rQ   rR   Ú"test_masked_all_with_object_nestedC   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>   rU   r:   rD   rQ   rV   r\   rQ   rQ   rR   Útest_masked_all_with_objectO   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:   r7   r8   r;   r=   r>   r?   r@   rC   rD   )é
   r`   rF   rG   rI   rJ   )r   rK   r/   r   rL   r9   )rM   ÚbaserN   rO   rP   rQ   rQ   rR   Útest_masked_all_likeY   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:   é   r7   r8   r   )ÚrangerL   r	   ÚintÚfullr   r<   ÚdataÚsumr*   r   Ú
compressed)	rM   r?   ÚiÚjÚkÚjar=   ÚsÚslrQ   rQ   rR   Úcheck_clumpm   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 )Nr`   ©r   r:   r7   é   é   é	   r   é   rr   rc   rs   )r   rL   r	   r
   r)   Úslicer   rp   ©rM   r=   rN   rO   rQ   rQ   rR   Ú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 )Nr`   rq   ru   rr   rc   rs   )r   rL   r	   r
   r*   rv   r   rp   rw   rQ   rQ   rR   Ú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 )	Nr`   r   r8   ru   rs   é   rr   rt   )
r	   r+   r   rv   ÚsizerL   r   Úboolr<   r
   )rM   r=   rN   rQ   rQ   rR   Útest_flatnotmasked_contiguous’   s   z)TestGeneric.test_flatnotmasked_contiguousN)Ú__name__Ú
__module__Ú__qualname__rS   r^   r_   rb   rp   rx   ry   r}   rQ   rQ   rQ   rR   r5   #   s    

r5   c                   @   s¦   e Z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ç      @r7   r:   r‚   ©rˆ   rŒ   rƒ   )r   r   r   r   r
   r<   Úreshape)rM   ZottÚresultÚwtsrQ   rQ   rR   Ú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:   rr   r8   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	   rL   Zfloat_r   r   r   ÚaddÚreducer   r   r   r<   r   )rM   Úw1Úw2ÚxÚyÚm1Úm2Zm3Zm4Zm5ÚzrQ   rQ   rR   Ú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 )Nrr   ru   r:   TrŽ   )r7   r7   ru   r   ©rˆ   rŠ   rŒ   )rŒ   r‹   r7   é   Fr‡   ç      à?r…   rƒ   g«ªªªªª@ç      ø?r�   )r	   r   r   r   r   r   rK   r   )rM   r=   r>   Zr1rœ   Zr2r�   Za2dZa2dmZa2daZa2dmarQ   rQ   rR   Ú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©r7   ru   r¥   ru   r:   FTr†   )r¥   rz   rr   )rŠ   rˆ   Úkeepdimsr„   r…   r�   )rL   r   r�   rX   r   r   r   )rM   rž   r>   ÚwÚactualZdesiredrQ   rQ   rR   Útest_testAverage4ô   s   "zTestAverage.test_testAverage4c                 C   s@   t tddgƒƒ}t|dƒ t tg d¢g d¢d�ƒ}t|dƒ d S )Nr:   r7   r§   )r:   r7   ru   r¥   ©FFTTr†   )r   r   r   ©rM   r=   rQ   rQ   rR   Útest_onintegers_with_maský   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   r8   )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ˆ   )	rL   r   r|   r   r   ri   r   ÚrealÚimag)rM   r<   r=   ÚavÚexpectedZav0Z	expected0Zav1Z	expected1r‘   ZwavZwav0Zwav1rQ   rQ   rR   Útest_complex  sR   
ÿÿÿþ  
ÿÿÿzTestAverage.test_complexz<x, axis, expected_avg, weights, expected_wavg, expected_wsum©r:   r7   ru   Nr„   )ru   r¥   r:   g      ü?ç       @)r:   r7   rz   )r:   rr   é   r   )rƒ   r�   rº   r:   ru   )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ª   )rL   rX   r   r   r   )
rM   rž   rˆ   Zexpected_avgrŠ   Zexpected_wavgZexpected_wsumÚavgZwavgZwsumrQ   rQ   rR   Útest_basic_keepdims0  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 )Nrt   ru   ©r:   r   r   ©r   r   r   r†   )rz   é   é   Fr   r¤   )ç      @g     à@g     à@)rÂ   g0�­N@g0�­N@)rƒ   r„   r…   r�   r®   r:   r‰   r§   )r™   rÂ   ç      @rº   )g      "@rƒ   r„   r…   )FTTF)TFTT)TFTFr³   rƒ   ç      @)rL   rX   r   r	   r�   r   r   r   Únanr   r<   )	rM   r=   Zweights_unmaskedZweights_maskedZavg_unmaskedZexpected_unmaskedZ
avg_maskedZexpected_maskedZavg_expectedrQ   rQ   rR   Útest_masked_weightsG  sD   ÿÿ

ÿ
ýýü
ÿ
zTestAverage.test_masked_weights)r~   r   r€   r’   r£   r¨   r­   r°   r¸   ÚpytestÚmarkÚparametrizer½   rÆ   rQ   rQ   rQ   rR   r�   ¥   s"    "	,ÿÿþ
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:   r7   ru   r¥   rz   rr   rz   )r:   r   r   r   r   r†   r   )r:   r:   r:   r:   r:   r   r   r:   r:   r:   r:   r:   )	r   r   r   r   r   r   Ú
isinstancer   r<   )rM   r>   ÚmÚdrT   rQ   rQ   rR   Útest_1dv  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 )Nrz   r   r†   Ú1)rz   r`   )r`   rz   )rL   ÚrandomÚrandZround_r   r   r   r   r   r<   Zr_)rM   Za_1Za_2Zm_1Zm_2Zb_1Zb_2rÏ   rQ   rQ   rR   Ú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:   TFr7   )FFT)r   rL   rX   r
   r   r<   rg   )rM   r¬   rQ   rQ   rR   Útest_masked_constant•  s   z%TestConcatenator.test_masked_constantN)r~   r   r€   rÐ   rÔ   rÕ   rQ   rQ   rQ   rR   rË   s  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é   rz   )r   r   r:   r   r   )r   r   r   r:   r:   )r:   r:   r   r   r   )r   r   r   r   r   )r:   r:   r:   r   r   r†   r   é   ©r   r:   r7   ru   r¥   r:   )ru   ru   ru   r¥   r¥   )r   r   r7   r   ru   )r¥   r7   r¥   r¥   r¥   )r¥   r¥   r¥   r¥   r¥   éÿÿÿÿéþÿÿÿ)r:   r:   r7   r¥   r¥   )r   r:   r7   r¥   )r   r   r7   ru   )r¥   r7   r¥   r¥   )r   rL   r	   r�   r-   r   rg   r
   ©rM   rg   rN   rQ   rQ   rR   Ú
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Ù   ru   rs   )r   r   r   r   r:   r:   r:   r:   )r:   r:   r:   r:   r:   r:   r:   r:   )r   r   r   r   r   r   r:   r   r†   r   r¥   é   é   é   r:   r7   rr   rc   )r   rL   r	   r�   r,   r   rv   )rM   r=   ÚtmprQ   rQ   rR   Útest_contiguousÄ  s:   þÿ



ý
ø

ýzTestNotMasked.test_contiguousN)r~   r   r€   rÞ   rã   rQ   rQ   rQ   rR   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é<   ru   r¥   rz   ©ru   r¥   rz   T©r:   r:   r:   r†   )r   r7   ru   r¥   )r`   é   é   é   )é   é   é   é   )é(   é*   é+   é,   )é2   é4   é5   é6   )é7   é9   é:   é;   r   rÚ   )rz   rr   rc   rs   rt   )r`   r»   rè   ré   rê   )rë   rß   rì   rí   rî   )rï   é)   rð   rñ   rò   )é-   é.   é/   é0   é1   )ró   é3   rô   rõ   rö   )r÷   é8   rø   rù   rú   r:   )é   é   rà   rá   rÙ   )é   rÁ   é    é!   é"   )é#   é$   é%   é&   é'   rU   rÜ   )rÜ   r7   )rz   rc   rs   rt   )r  rà   rá   rÙ   )rØ   é   rÀ   é   )r  r  r  r  )r	  r  r  r  )rü   rþ   rÿ   r   r6   rÛ   )rÛ   )r   r:   )r   rÜ   ©r:   r7   )rÜ   r7   )r:   rÛ   )rÜ   rÛ   ©r   r7   )r   rÛ   )
rL   r   Úlistrd   r�   r   Úastyper|   r&   r   )rM   rž   rÎ   r=   Úa2Úa3Za4rQ   rQ   rR   Ú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 )Nrt   ru   r¾   r¿   r†   r¥   rz   rc   rs   r   ræ   )rr   rc   rs   r:   r7   ©r   r:   r   rr   ©r   r:   r7   ©r   r   r:   )r   rL   r	   r�   r   r'   Ú_datar{   ©rM   rž   rQ   rQ   rR   Útest_compress_rowcolsW  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 )Nrt   ru   r¾   r¿   r†   rç   r   r:   r  )r:   r:   r   r  )r   rL   r	   r�   r   r(   r<   r  r   Úallr
   r  rQ   rQ   rR   Útest_mask_rowcolsk  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 )Nrt   ru   r¾   r¿   r†   r‡   )r   rL   r	   r�   r   ÚDeprecationWarningr   r(   )rM   rˆ   r  r   rž   ÚresrQ   rQ   rR   Ú#test_mask_row_cols_axis_deprecation‹  s   ÿ
"þz9TestCompressFunctions.test_mask_row_cols_axis_deprecationc                 C   sº  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	¡¡ƒ d S )Nr:   rc   )r:   r   r   r   r   r   r†   r7   ru   T)Ústrictr   rç   r¾   F©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<   Úfilledr   )rM   ÚnrÎ   r=   r>   rT   rQ   rQ   rR   Útest_dot—  sz   


"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 )Nru   )rL   Úeyer   r   rY   r   r   ©rM   r=   r>   rQ   rQ   rR   Ú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 )Nru   )ru   ru   ©Úout)r   rL   r)  r   r   r   r   )rM   r=   r-  r"  rQ   rQ   rR   Útest_dot_outæ  s
   z"TestCompressFunctions.test_dot_outN)r~   r   r€   r  r  r  rÇ   rÈ   rÉ   rL   rX   Z	mask_rowsZ	mask_colsr#  r(  r+  r.  rQ   rQ   rQ   rR   rä   å  s    p ÿ	F	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–   r7   ru   c                 S   s   | d S ©Nr:   rQ   )r>   rQ   rQ   rR   Úmyfuncó  s   z*TestApplyAlongAxis.test_3d.<locals>.myfuncr:   r¥   rc   r`   ©r	   r�   r%   r   ©rM   r=   r1  ZxarQ   rQ   rR   Útest_3dð  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è   r7   ru   r   c                 S   s   | d|  S r0  rQ   )r>   ÚoffsetrQ   rQ   rR   r1  ý  s   z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr:   )r5  rz   rs   r»   )r   r2  r3  rQ   rQ   rR   Útest_3d_kwargsú  s   
z!TestApplyAlongAxis.test_3d_kwargsN)r~   r   r€   r4  r6  rQ   rQ   rQ   rR   r/  î  ó    
r/  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Ù   r7   ru   r¥   r   rå   é\   é|   rÀ   rò   )
r	   r�   r$   rL   rh   r   r   r
   r  r|   )rM   r=   rN   ZctrlrQ   rQ   rR   Ú
test_basic  s   
zTestApplyOverAxes.test_basicN)r~   r   r€   r;  rQ   rQ   rQ   rR   r8    s    r8  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-S ).Ú
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‡   )rL   rX   r   Úinfr   ©rM   ÚrrQ   rQ   rR   Útest_pytype  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†   )rL   rX   r   r   r=  r   r<   r>  rQ   rQ   rR   Útest_inf  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 )Nrt   r�   rs   rÄ   rz   r™   éH   r   r‡   r:   g      R@)
rL   r	   r   rX   r   r   rY   r   rd   r�   r  rQ   rQ   rR   Ú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.medianrs   r   r¥   r:   r†   r§   rQ   úshape mismatchr`   r7   rz   rr   r•   rÛ   T©rˆ   Zoverwrite_inputr„   r™   r6   N)r   rL   r	   r   rX   r   r   r   rY   r   r�   )rM   rž   Zma_xrQ   rQ   rR   Útest_docstring_examples=  s   "*z"TestMedian.test_docstring_examplesc                 C   sò   d}t dƒD ]p}dD ]k}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	yj   Y qQw t|||||f ƒ‚q
qd S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %srz   )FTr:   )Úndminr<   FTrE  )
rd   r   Ú	itertoolsÚproductrL   rX   r   Ú	ExceptionÚAssertionErrorZ	AxisError)rM   ÚmsgrG  r<   rž   Úargsrˆ   ZoverrQ   rQ   rR   Útest_axis_argument_errorsL  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   rL   rX   r   r
   r  rQ   rQ   rR   Útest_masked_0dd  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 )Nrz   Tr†   rQ   rD  Fr„   r±   r•   )r   r:   r:   r:   r:   r‚   )r   r:   r:   r   r   r…   r™   rr   r“   rÂ   )r   rL   r	   r   rX   r   r
   r   r   rY   rZ   ZMaskedConstantr   r  rQ   rQ   rR   Útest_masked_1dk  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†   r  )r   rL   rX   r   r   r   ©rM   rQ   rQ   rR   Ú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ƒ   r`   éöÿÿÿr8   r   r:   r‡   )r   rL   Zlinspacer
   ÚemptyrK   r	   r[   rd   rÒ   Úshuffler   r   r   ÚT)rM   r'  Úprž   r¢   Úidxrj   rQ   rQ   rR   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  r`   ru   éýÿÿÿç      -@r   r‡   )ç      +@r\  g      /@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   rY   rX   r   r<   r  rQ   rQ   rR   Ú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Ù   ru   r¥   r7   r   rè   rt   rr   rë   rí   )r¥   ru   r7   éc   r`   r»   ré   rê   rz   rs   rß   rì   )rL   rX   r	   r�   r
   r   r   r   r  rQ   rQ   rR   r4  ±  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  r`   ru   r[  rÛ   r‡   r:   )r   rL   r	   r�   r
   r   r   r  rQ   rQ   rR   Ú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      ?@ru   r[  rQ   r,  r  r\  g      .@)
r   rL   r	   r
   r   r   r   r   rY   r   )rM   Úvrž   r-  r?  rQ   rQ   rR   Ú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  ra  r`   rÛ   ru   r[  r:   )rˆ   r-  r  r‚   )r`   ré   rß   rî   TFr¥   r†   )r]  g     €1@g     €5@g     €9@)r   rL   r	   r�   r
   r   r   r   r   rY   r   )rM   rb  rž   r-  r?  ÚerQ   rQ   rR   Útest_outÏ  s    ÿÿ
ózTestMedian.test_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‡   )rL   rX   Zmasked_equalr   r   )rM   rg   r]   r·   rQ   rQ   rR   Ú$test_single_non_masked_value_on_axisà  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 )NFrr   r8   r:   ru   r¹   r‡   r   r7   rÛ   r§   )rL   r   r|   rX   r   rÅ   r<   r   r   Úisscalarr   Zravelr   rY   r   r
   )rM   r<   Údmr?  rQ   rQ   rR   Útest_nané  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¥   ©ru   r¥   ©r7   r:   rE   r   r,  ©ru   r:   rQ   )	rL   rX   r   r   r   rÅ   r
   r   r   )rM   ÚorÏ   rQ   rQ   rR   Ú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Ù   r8   ru   r7   r   r‡   r¥   r:   r¹   )r:   r:   r7   ©r7   ru   r  ©r:   ru   r  )rL   rX   r   r	   rK   r
   rÅ   r   r   r�   r{   r<   Úcopyr   rg  r   )rM   r=   Zaorigr>   rQ   rQ   rR   Ú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)ru   ru   éÿ   r8   ru   r†   r:   r‡   rs  Fr   )rL   r   Zuint8rX   r   r   r   r<   r¯   rQ   rQ   rR   Útest_ambigous_fill4  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:   Frc   i÷ÿÿÿrU  rz   r¥   r8   r�   rÃ   r™   g      @g      $Àg      "Àg      ÀrT  r`   r7   )rL   r=  r   rÅ   rX   r   Úisnanr   r   r   r<   Zfloat32rd   )rM   r=  r=   rj   rk   rQ   rQ   rR   Ú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 )Nr8   r   ru   )r9   rG  ÚalwaysÚ r7   r‡   r:   T)Úrecord)rL   rX   r   r   rK   r   ry  ÚRuntimeWarningr   r   rÅ   r   ÚlogÚcategoryÚwarningsÚfilterwarningsr   Úcatch_warnings)rM   r=   r«   r>   rQ   rQ   rR   Ú
test_emptyh  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Ã   r7   )rL   rX   r   r	   r   rY   r   r  rW   rK   rÅ   )rM   rm  rQ   rQ   rR   Útest_object…  s   
 zTestMedian.test_objectN)r~   r   r€   r@  rA  rC  rF  rN  rO  rP  rR  rÔ   r^  r4  r`  rc  re  rf  ri  rn  rr  rt  rv  r€  r�  rQ   rQ   rQ   rR   r<    s.    &	#	+r<  c                   @   s4   e Z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   rL   rÒ   rÓ   rg   rQ  rQ   rQ   rR   Úsetup_methodŽ  s   zTestCov.setup_methodc                 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 )NF©ÚrowvarT©r†  Úbias)rg   r   rL   r   r  rQ   rQ   rR   Ú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 )Nru   r¥   Fr…  Tr‡  )rg   r�   r   rL   r   r  rQ   rQ   rR   Ú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‡  ©Zallow_maskedr:   )rg   r
   Úmeanri   r   rL   r   Ú
ValueError)rM   rž   ÚnxrQ   rQ   rR   Ú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Û   ru   r¥   r:   r   rƒ   T©rˆ  Fr…  r‡  )rg   r
   r�   rL   Zlogical_notr   r  re   r   rX  rŒ  r&  r   r   r   )rM   rž   ZvalidÚfracZxfrQ   rQ   rR   Útest_2d_with_missing¹  s8    ÿÿÿÿÿÿÿÿzTestCov.test_2d_with_missingN)r~   r   r€   r„  r‰  rŠ  r�  r’  rQ   rQ   rQ   rR   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   rL   rÒ   rÓ   rg   Údata2rQ  rQ   rQ   rR   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 )Nrw  rÛ   ©Zddofúbias and ddof have no effectr   ru   ©rg   r”  rL   r   r   r}  Úsimplefilterr   r!  Úfilterr   )rM   rž   rŸ   r·   Z	expected2ÚsuprQ   rQ   rR   Ú	test_ddofÕ  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 )Nrw  TFr�  r–  r:   r—  )rM   rž   rŸ   r·   rš  rQ   rQ   rR   Ú	test_biaså  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‡  )rg   r   rL   r   r   r™  r!  ©rM   rž   rš  rQ   rQ   rR   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 )Nru   r¥   Fr…  r–  Tr‡  )rg   r�   r   rL   r   r   r™  r!  r�  rQ   rQ   rR   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�  r7   r•  )rg   r
   rŒ  ri   r   rL   r   r   r™  r!  r�  )rM   rž   rŽ  rš  rQ   rQ   rR   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Û   ru   r¥   r–  rÜ   r•  r:   r�  )	rg   r
   r�   r   rL   r   r   r™  r!  )rM   rž   rN   rO   rš  rQ   rQ   rR   r’  &  s$   
*ÿÿÿ"ùz!TestCorrcoef.test_2d_with_missingN)
r~   r   r€   r„  r›  rœ  r‰  rŠ  r�  r’  rQ   rQ   rQ   rR   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 )Nr`   r  rÛ   r7   ru   r   rC   ©rÛ   rÛ   T©rf   r:   )rf   r«   )rL   rÒ   rÓ   r�   r   r   Úviewr   r
   ri   Úziprq  r   )rM   rž   rŸ   ÚCÚRÚKÚSÚDrT   r?  rl   rn   rÏ   r=   Úa_r«   ZwoÚxsZysÚwsrQ   rQ   rR   Ú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 )Nr`   r  rÛ   r7   r   rŸ  ru   Tr   r:   )rL   rÒ   rÓ   r�   rÅ   r¡  r   r
   r   r¢  r   )rM   rž   rŸ   r£  r¤  r¥  r¦  r§  rT   r?  rl   rn   rÏ   r=   r¨  rQ   rQ   rR   Útest_polyfit_with_masked_NaNsc  s   



4&ÿz,TestPolynomial.test_polyfit_with_masked_NaNsN)r~   r   r€   r«  r¬  rQ   rQ   rQ   rR   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!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:   r7   r7   ru   T©Zreturn_indexZreturn_inverser   r¹   r¿   r†   r:   )r   ru   rz   r7   )r   r   r   r:   r:   r7   )r   r   rÍ   r   r   r   rÝ   rQ   rQ   rR   Útest_unique_onlistv  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:   r7   ru   rÛ   ©r   r   r   r:   r:   )r   ru   rz   r7   r7   )r   r   ru   r:   ru   r7   ru   )rg   r<   Ú
fill_value)r   r   r   r²  rÝ   rQ   rQ   rR   Ú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:   r7   r¿   )r   r   r   r
   rÝ   rQ   rQ   rR   Ú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 )Nrz   ©r:   r   r   r   r:   r†   )r:   r:   r:   r¥   )r:   r   r   r:   r   )r   rL   r	   r   r#   r   r&  r<   )rM   rž   rO   rN   rQ   rQ   rR   Ú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 )Nrz   rµ  r†   )Úto_begin)r   r:   r:   r:   r¥   )r:   r:   r   r   r:   r   r¹   )r:   r7   ru   r:   r:   r:   r¥   )r   r   r   r:   r   r   r:   ©	r   rL   r	   r#   r
   r   r   r&  r<   ©rM   rž   rN   rO   rQ   rQ   rR   Útest_ediff1d_tobegin§  ó   

z$TestArraySetOps.test_ediff1d_tobeginc                 C   r·  )Nrz   rµ  r†   )Úto_end)r:   r:   r:   r¥   r   )r:   r   r   r:   r:   r   r¹   )r:   r:   r:   r¥   r:   r7   ru   )r:   r   r   r:   r   r   r   r¹  rº  rQ   rQ   rR   Útest_ediff1d_toend¶  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 )Nrz   rµ  r†   ©r½  r¸  )r   r:   r:   r:   r¥   r   )r:   r:   r   r   r:   r:   r   r¹   )r   r:   r:   r:   r¥   r:   r7   ru   )r:   r:   r   r   r:   r   r   r   r¹  rº  rQ   rQ   rR   Útest_ediff1d_tobegin_toendÅ  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 )	Nrz   ©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º  rQ   rQ   rR   Útest_ediff1d_ndarrayÕ  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:   ru   ru   ru   r±  r†   )ru   r:   r:   r:   )r:   ru   rÛ   r  )r   r!   r   )rM   rž   rŸ   rN   rO   rQ   rQ   rR   Útest_intersect1då  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:   r7   rz   rc   rÛ   ©r   r   r   r   r:   r†   ©r:   r7   ru   r¥   rz   rÛ   r%  )ru   r¥   rc   )r:   r7   ru   r¥   rz   )ru   r¥   rc   rÛ   r±  r¹   )rr   rz   r¥   rÌ   )r:   rs   r7   ru   )r   r:   r   r   )rr   rz   r¥   rs   )r   r   r   r   rÍ   r   r   ©rM   r=   r>   rN   rQ   rQ   rR   Útest_setxor1dí  s&   



zTestArraySetOps.test_setxor1dc                 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:   r7   r   r†   )	r   r`   r  r  r:   ru   r»   rà   r  )	r   r:   r   r:   r   r:   r   r:   r   )rg   r<   r8   Tr¿   r  )r   r7   ru   )rL   r	   r�   r   r   r|   r0   r   rÍ   r   r   r<   )rM   r=   r<   r>   ZecrT   rÏ   rQ   rQ   rR   Ú	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©rz   rz   r7   r:   rÛ   ©r:   rz   rÛ   r  )TTFTT)r   r"   r   r   rÈ  rQ   rQ   rR   Ú	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)ÚinvertrË  rÌ  r  )r   r   rL   rÎ  r"   r   r*  rQ   rQ   rR   Ú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:   r7   rz   rc   rz   rÛ   r%  r†   rÇ  )r:   r7   ru   r¥   rz   rc   rÛ   )r   r   r   r   r   r   r:   r  ræ   r¿   r  rÚ   rÆ  )r   r:   r7   ru   r¥   rz   )r   r    r   r   )	rM   r=   r>   rN   rO   rž   rŸ   Zezr¢   rQ   rQ   rR   Útest_union1d6  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)rr   rz   r¥   rc   rc   r:   r7   r:   )r   r   r   r   r   r   r   r:   r†   )r7   r¥   ru   ru   r7   r:   rz   )rr   rc   rÛ   r  r`   rs   rt   )r   r   r   r	   rL   Zuint32r9   rÈ  rQ   rQ   rR   Útest_setdiff1dH  s   
zTestArraySetOps.test_setdiff1dc                 C   s8   t  g d¢¡}t  g d¢¡}tt||ƒt  dg¡ƒ d S )N)r=   r>   rT   )r=   r>   rn   rT   )rL   r   r   r   r*  rQ   rQ   rR   Útest_setdiff1d_char_arrayU  s   z)TestArraySetOps.test_setdiff1d_char_arrayN)r~   r   r€   r°  r³  r´  r¶  r»  r¾  rÀ  rÃ  rÄ  rÉ  rÊ  rÍ  rÏ  rÐ  rÑ  rÒ  rQ   rQ   rQ   rR   r­  t  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  r  r†   rp  rl  )r   r   r   r   r<   rg   r*  rQ   rQ   rR   Ú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ƒ   rU   r„   rD   rç   )r   r   r   r<   rg   r   r   r1   )rM   r>   r=   rQ   rQ   rR   Útest_shape_scalarh  s<   


zTestShapeBase.test_shape_scalarN)r~   r   r€   rÔ  rÕ  rQ   rQ   rQ   rR   rÓ  \  r7  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:   ru   r7   r8   r†   F©ri   )	rL   r	   r�   Z
zeros_liker|   r   r   r  r2   )rM   ZordinaryZ
empty_maskZ	with_maskrQ   rQ   rR   Útest_ndenumerate_nomasked•  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 )NrQ   )éd   r©   Fr×  rÙ  rÙ   )r.   r   r  r2   r¢  rL   Zndindexr
   )rM   r=   r>   rT   rQ   rQ   rR   Ú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è   rj  rÁ  )r:   r:   r   r:   rÂ  r†   ))r  rr   ))r7   r   rs   )rk  rt   )rE   r`   )ro  r»   Fr×  )	r   rL   r	   r�   r   r  r2   r[   r{   )rM   r=   ÚitemsZ
coordinateÚvaluerQ   rQ   rR   Útest_ndenumerate_mixedmasked¬  s   þÿÿz,TestNDEnumerate.test_ndenumerate_mixedmaskedN)r~   r   r€   rØ  rÚ  rÝ  rQ   rQ   rQ   rR   rÖ  “  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  r  r†   ©rt   rs   rc   r¾   r   r‡   ro  r:   ©ru   r7   ©r   r3   r   r   r   r<   r4   rg   ©rM   r=   r>   rT   rÏ   rQ   rQ   rR   Ú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†   rß  Fr   r‡   ro  r:   rà  rá  râ  rQ   rQ   rR   Útest_stack_masksÍ  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 )Nrà  r   r`   r7   r†   r‡   r6   r:   rÛ   ).r   ).r:   )ru   r7   r¥   rz   )rL   rÒ   Úrandintr  r|   r   r3   r   r   r   r<   )
rM   ZshpZd1Zd2r    r¡   Za1r  rT   Zc_shprQ   rQ   rR   Útest_stack_ndß  sD   zTestStack.test_stack_ndN)r~   r   r€   rã  rä  ræ  rQ   rQ   rQ   rR   rÞ  ¹  s    rÞ  )LÚ__doc__r}  rH  rÇ   ZnumpyrL   Znumpy.testingr   r   Znumpy.ma.testutilsr   r   r   r   Znumpy.ma.corer   r	   r
   r   r   r   r   r   r   r   r   Z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.   r/   r0   r1   r2   r3   r4   r5   r�   rË   r×   rä   r/  r8  r<  r‚  r“  rž  r­  rÓ  rÖ  rÞ  rQ   rQ   rQ   rR   Ú<module>   s>   4�
  O,F    }Ck: i7&