a
    hÝEbÓ ã                   @   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; G dd„ dƒZ<G d	d
„ d
ƒZ=G dd„ dƒZ>G dd„ dƒZ?G dd„ dƒZ@G dd„ dƒ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"ƒZId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Ú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é   ©Úmaskr8   ÚaÚbÚf©ÚnamesÚformats©r   r   ©r9   r9   ©r6   r6   ©r<   r>   ©Úbar>   ©Zbbr>   ©r9   rC   )r.   Úfloatr   r   Únpr8   )ÚselfÚtestÚcontrolÚdt© rP   úZ/home/ja/django-apps/lartica_env/lib/python3.9/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©r9   r9   rC   rP   ©rK   r8   ÚobjectÚmar.   r   ÚtypeÚcorer   Úlenr   Z_fill_value©rL   Zmy_dtypeÚ
masked_arrrP   rP   rQ   Ú"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=   rT   r9   rC   rP   rU   r[   rP   rP   rQ   Ú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 )Nr9   r6   r7   r:   r<   r=   r>   r?   rB   rC   )é
   r_   rE   rF   rH   rI   )r   rJ   r/   r   rK   r8   )rL   ÚbaserM   rN   rO   rP   rP   rQ   Útest_masked_all_likeY   s    

ÿz TestGeneric.test_masked_all_likec           	      C   s¾   t ddƒD ]®}t d| ƒD ]œ}tj|td�}tj||td�}td| ƒ}|d| @ dk|_d}||ƒD ]}||j|  ¡ 7 }qf|t	kršt
| ¡  ¡ |ƒ q|j |_t
| ¡  ¡ |ƒ qq
d S )Nr9   é   r6   r7   r   )ÚrangerK   r	   ÚintÚfullr   r;   ÚdataÚsumr*   r   Ú
compressed)	rL   r>   ÚiÚjÚkÚjar<   ÚsÚslrP   rP   rQ   Ú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   r9   r6   é   é   é	   r   é   rq   rb   rr   )r   rK   r	   r
   r)   Úslicer   ro   ©rL   r<   rM   rN   rP   rP   rQ   Ú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_   rp   rt   rq   rb   rr   )r   rK   r	   r
   r*   ru   r   ro   rv   rP   rP   rQ   Ú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   r7   rt   rr   é   rq   rs   )
r	   r+   r   ru   ÚsizerK   r   Úboolr;   r
   )rL   r<   rM   rP   rP   rQ   Útest_flatnotmasked_contiguous’   s    z)TestGeneric.test_flatnotmasked_contiguousN)Ú__name__Ú
__module__Ú__qualname__rR   r]   r^   ra   ro   rw   rx   r|   rP   rP   rP   rQ   r4   #   s   

r4   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 )Ú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ç      @r6   r9   r�   ©r‡   r‹   r‚   )r   r   r   r   r
   r;   Úreshape)rL   ZottÚresultÚwtsrP   rP   rQ   Ú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   r9   r9   r9   r9   r   ©r9   r   r   r   r   r9   rq   r7   r   r†   ç      @)r‡   r‰   rƒ   r„   ç      (@r9   rˆ   g«ªªªªª
@)r�   r‚   rƒ   r„   rŒ   ç      $@)r   r   r9   r9   r   r   )r   r9   r9   r9   r9   r9   Tr�   )r�   r‚   ç     ÀX@r—   rŒ   g      @ç      @)r�   r‚   r—   r—   rŒ   r–   )r	   rK   Zfloat_r   r   r   ÚaddÚreducer   r   r   r;   r   )rL   Úw1Úw2ÚxÚyÚm1Úm2Zm3Zm4Zm5ÚzrP   rP   rQ   Ú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 )Nrq   rt   r9   Tr�   )r6   r6   rt   r   ©r‡   r‰   r‹   )r‹   rŠ   r6   é   Fr†   ç      à?r„   r‚   g«ªªªªª@ç      ø?rŒ   )r	   r   r   r   r   r   rJ   r   )rL   r<   r=   Úr1r›   Úr2rœ   Za2dZa2dmZa2daZa2dmarP   rP   rQ   Útest_testAverage3Ü   s*    
zTestAverage.test_testAverage3c                 C   s@   t tddgƒƒ}t|dƒ t tg d¢g d¢d�ƒ}t|dƒ d S )Nr9   r6   r¦   )r9   r6   rt   r¤   )FFTTr…   )r   r   r   ©rL   r<   rP   rP   rQ   Ú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   r9   r   ©r   r9   r   r   r   r7   )r   y      ð?       @y      @      @y      @      @y      @       @)y              "@ù              ð?y       @      @y      @      @y      @      @r…   r   r†   r­   r9   )r¥   r‚   rƒ   r‚   r¥   )r‚   r‚   r‚   r‚   r‚   rˆ   )r‰   r‡   )	rK   r   r{   r   r   rh   r   ÚrealÚimag)rL   r;   r<   ÚavÚexpectedZav0Z	expected0Zav1Z	expected1r�   ZwavZwav0Zwav1rP   rP   rQ   Útest_complexû   sR    
ÿÿÿþ  
ÿÿÿzTestAverage.test_complexc                 C   s¨   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||ƒ d S )Nrs   rt   ©r9   r   r   ©r   r   r   r…   )ry   é   é   Fr   r£   )ç      @g     à@g     à@)r·   g0�­N@g0�­N@)rK   rW   r   r	   rŽ   r   r   r   )rL   r<   Zweights_unmaskedZweights_maskedZavg_unmaskedZexpected_unmaskedZ
avg_maskedZexpected_maskedrP   rP   rQ   Útest_masked_weights'  s    ÿÿ
zTestAverage.test_masked_weightsN)	r}   r~   r   r‘   r¢   r©   r«   r²   r¸   rP   rP   rP   rQ   r€   ¥   s   ",r€   c                   @   s$   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©r9   r6   rt   r¤   ry   rq   ry   )r9   r   r   r   r   r…   r   )r9   r9   r9   r9   r9   r   r   r9   r9   r9   r9   r9   )	r   r   r   r   r   r   Ú
isinstancer   r;   )rL   r=   ÚmÚdrS   rP   rP   rQ   Ú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 )Nry   r   r…   Ú1)ry   r_   )r_   ry   )rK   ÚrandomÚrandZround_r   r   r   r   r   r;   Zr_)rL   Za_1Za_2Zm_1Zm_2Zb_1Zb_2r½   rP   rP   rQ   Útest_2dG  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 )Nr9   TFr6   )FFT)r   rK   rW   r
   r   r;   rf   )rL   ÚactualrP   rP   rQ   Útest_masked_constant[  s    z%TestConcatenator.test_masked_constantN)r}   r~   r   r¾   rÂ   rÄ   rP   rP   rP   rQ   r¹   9  s   r¹   c                   @   s   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é   ry   )r   r   r9   r   r   )r   r   r   r9   r9   )r9   r9   r   r   r   )r   r   r   r   r   )r9   r9   r9   r   r   r…   r   é   ©r   r9   r6   rt   r¤   r9   )rt   rt   rt   r¤   r¤   )r   r   r6   r   rt   )r¤   r6   r¤   r¤   r¤   )r¤   r¤   r¤   r¤   r¤   éÿÿÿÿéþÿÿÿ)r9   r9   r6   r¤   r¤   )r   r9   r6   r¤   )r   r   r6   rt   )r¤   r6   r¤   r¤   )r   rK   r	   rŽ   r-   r   rf   r
   ©rL   rf   rM   rP   rP   rQ   Ú
test_edgesh  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Ç   rt   rr   )r   r   r   r   r9   r9   r9   r9   )r9   r9   r9   r9   r9   r9   r9   r9   )r   r   r   r   r   r   r9   r   r…   r   r¤   é   é   é   r9   r6   rq   rb   )r   rK   r	   rŽ   r,   r   ru   )rL   r<   ÚtmprP   rP   rQ   Útest_contiguousŠ  s:    þÿ



ý
ø
ýzTestNotMasked.test_contiguousN)r}   r~   r   rÌ   rÑ   rP   rP   rP   rQ   rÅ   e  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é<   rt   r¤   ry   ©rt   r¤   ry   T©r9   r9   r9   r…   )r   r6   rt   r¤   )r_   é   é   é   )é   é   é   é   )é(   é*   é+   é,   )é2   é4   é5   é6   )é7   é9   é:   é;   r   rÈ   )ry   rq   rb   rr   rs   )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è   r9   )é   é   rÎ   rÏ   rÇ   )é   r¶   é    é!   é"   )é#   é$   é%   é&   é'   rT   rÊ   )rÊ   r6   )ry   rb   rr   rs   )rò   rÎ   rÏ   rÇ   )rÆ   é   rµ   é   )rô   rõ   rö   r÷   )rø   rú   rû   rü   )rë   rí   rî   rï   r5   rÉ   )rÉ   )r   r9   )r   rÊ   ©r9   r6   )rÊ   r6   )r9   rÉ   )rÊ   rÉ   ©r   r6   )r   rÉ   )
rK   r   Úlistrc   rŽ   r   Úastyper{   r&   r   )rL   r�   r¼   r<   Úa2Úa3Za4rP   rP   rQ   Ú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 )Nrs   rt   r³   r´   r…   r¤   ry   rb   rr   r   rÔ   )rq   rb   rr   r9   r6   ©r   r9   r   rq   ©r   r9   r6   ©r   r   r9   )r   rK   r	   rŽ   r   r'   Ú_datarz   ©rL   r�   rP   rP   rQ   Ú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 )Nrs   rt   r³   r´   r…   rÕ   r   r9   r  )r9   r9   r   r  )r   rK   r	   rŽ   r   r(   r;   r	  r   Úallr
   r
  rP   rP   rQ   Útest_mask_rowcols1  sN    ÿ
ÿÿÿ 
ÿÿÿ 
ÿÿÿ z'TestCompressFunctions.test_mask_rowcolsr‡   )Nr   r9   ÚfuncÚrowcols_axisr   r9   c                 C   st   t t d¡ dd¡g d¢g d¢g d¢gd�}ttƒ�, |||d�}t|t||ƒƒ W d   ƒ n1 sf0    Y  d S )Nrs   rt   r³   r´   r…   r†   )r   rK   r	   rŽ   r   ÚDeprecationWarningr   r(   )rL   r‡   r  r  r�   ÚresrP   rP   rQ   Ú#test_mask_row_cols_axis_deprecationQ  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 )Nr9   rb   )r9   r   r   r   r   r   r…   r6   rt   T)Ústrictr   rÕ   r³   F©r   r   r   r   r   r9   r  )r   r   r   r   r   r   )r   r   r9   r   r   r   )	rK   r	   r   rŽ   r   r   r;   Úfilledr   )rL   Únr¼   r<   r=   rS   rP   rP   rQ   Ú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 )Nrt   )rK   Úeyer   r   rX   r   r   ©rL   r<   r=   rP   rP   rQ   Ú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 )Nrt   )rt   rt   ©Úout)r   rK   r  r   r   r   r   )rL   r<   r  r  rP   rP   rQ   Útest_dot_out¬  s
    z"TestCompressFunctions.test_dot_outN)r}   r~   r   r  r  r  ÚpytestÚmarkZparametrizerK   rW   Z	mask_rowsZ	mask_colsr  r  r  r  rP   rP   rP   rQ   rÒ   «  s   p ÿ	F	rÒ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestApplyAlongAxisc                 C   s@   t dƒ ddd¡}dd„ }t|d|ƒ}t|ddgdd	ggƒ d S )
Nr•   r6   rt   c                 S   s   | d S ©Nr9   rP   )r=   rP   rP   rQ   Úmyfunc¹  s    z*TestApplyAlongAxis.test_3d.<locals>.myfuncr9   r¤   rb   r_   ©r	   rŽ   r%   r   ©rL   r<   r"  ZxarP   rP   rQ   Ú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Ö   r6   rt   r   c                 S   s   | d|  S r!  rP   )r=   ÚoffsetrP   rP   rQ   r"  Ã  s    z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr9   )r&  ry   rr   ré   )r   r#  r$  rP   rP   rQ   Útest_3d_kwargsÀ  s    
z!TestApplyAlongAxis.test_3d_kwargsN)r}   r~   r   r%  r'  rP   rP   rP   rQ   r   ´  s   
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Ç   r6   rt   r¤   r   rÓ   é\   é|   rµ   rà   )
r	   rŽ   r$   rK   rg   r   r   r
   r  r{   )rL   r<   rM   ZctrlrP   rP   rQ   Ú
test_basicÌ  s    
zTestApplyOverAxes.test_basicN)r}   r~   r   r+  rP   rP   rP   rQ   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#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†   )rK   rW   r   Úinfr   ©rL   ÚrrP   rP   rQ   Ú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…   )rK   rW   r   r   r-  r   r;   r.  rP   rP   rQ   Ú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 )Nrs   rŒ   rr   g      @ry   r˜   éH   r   r†   r9   g      R@)
rK   r	   r   rW   r   r   rX   r   rc   rŽ   r
  rP   rP   rQ   Ú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.medianrr   r   r¤   r9   r…   r¦   rP   úshape mismatchr_   r6   ry   rq   r”   rÉ   T©r‡   Zoverwrite_inputrƒ   r˜   r5   N)r   rK   r	   r   rW   r   r   r   rX   r   rŽ   )rL   r�   Zma_xrP   rP   rQ   Útest_docstring_examples  s    "*z"TestMedian.test_docstring_examplesc                 C   sú   d}t dƒD ]è}dD ]Þ}td||d�}t t | |ƒddg¡}|D ]F\}}ztjj|||d� W qB ty†   t|||||f ƒ‚Y qB0 qBt |d  |gddg¡}|D ]H\}}ztjj|||d� W n tj	yÚ   Y q¨0 t|||||f ƒ‚q¨qqd S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sry   )FTr9   )Úndminr;   FTr5  )
rc   r   Ú	itertoolsÚproductrK   rW   r   Ú	ExceptionÚAssertionErrorZ	AxisError)rL   Úmsgr7  r;   r�   Úargsr‡   ZoverrP   rP   rQ   Ú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 )Nr9   Fr…   T)r   r   rK   rW   r   r
   r
  rP   rP   rQ   Ú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 )Nry   Tr…   rP   r4  Frƒ   r¬   r”   )r   r9   r9   r9   r9   r�   )r   r9   r9   r   r   r„   r˜   rq   r’   r·   )r   rK   r	   r   rW   r   r
   r   r   rX   rY   ZMaskedConstantr   r
  rP   rP   rQ   Útest_masked_1d1  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 )N©r9   r6   rt   r´   r…   r  )r   rK   rW   r   r   r   ©rL   rP   rP   rQ   Útest_1d_shape_consistencyW  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< qxt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_   éöÿÿÿr7   r   r9   r†   )r   rK   Zlinspacer
   ÚemptyrJ   r	   rZ   rc   rÀ   Úshuffler   r   r   ÚT)rL   r  Úpr�   r¡   Úidxri   rP   rP   rQ   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_   rt   éýÿÿÿç      -@r   r†   )ç      +@rM  g      /@r9   )
r   r   r   r_   r×   rÍ   rÜ   r   r   r   )
r9   r9   r9   r   r   r   r   r9   r9   r9   )r   rK   r	   rŽ   r
   r   r   r   rX   rW   r   r;   r
  rP   rP   rQ   Útest_2d_waxisk  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Ç   rt   r¤   r6   r   rÖ   rs   rq   rÙ   rÛ   )r¤   rt   r6   éc   r_   ré   r×   rØ   ry   rr   rÍ   rÚ   )rK   rW   r	   rŽ   r
   r   r   r   r
  rP   rP   rQ   r%  w  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_   rt   rL  rÉ   r†   r9   )r   rK   r	   rŽ   r
   r   r   r
  rP   rP   rQ   Ú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      ?@rt   rL  rP   r  rô   rM  g      .@)
r   rK   r	   r
   r   r   r   r   rX   r   )rL   Úvr�   r  r/  rP   rP   rQ   Ú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ršt 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ô   rR  r_   rÉ   rt   rL  r9   )r‡   r  rô   r�   )r_   r×   rÍ   rÜ   TFr¤   r…   )rN  g     €1@g     €5@g     €9@)r   rK   r	   rŽ   r
   r   r   r   r   rX   r   )rL   rS  r�   r  r/  ÚerP   rP   rQ   Ú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†   )rK   rW   Zmasked_equalr   r   )rL   rf   r\   r±   rP   rP   rQ   Ú$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 )NFrq   r7   r9   rt   rA  r†   r   r6   rÉ   r¦   )rK   r   r{   rW   r   Únanr;   r   r   Úisscalarr   Zravelr   rX   r   r
   )rL   r;   Údmr/  rP   rP   rQ   Ú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¤   )rt   r¤   )r6   r9   rD   r   r  ©rt   r9   rP   )	rK   rW   r   r   r   rX  r
   r   r   )rL   Úor½   rP   rP   rQ   Ú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Ç   r7   rt   r6   r   r†   r¤   r9   rA  )r9   r9   r6   ©r6   rt   rÿ   ©r9   rt   r   )rK   rW   r   r	   rJ   r
   rX  r   r   rŽ   rz   r;   Úcopyr   rY  r   )rL   r<   Zaorigr=   rP   rP   rQ   Ú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)rt   rt   éÿ   r7   rt   r…   r9   r†   rc  Fr   )rK   r   Zuint8rW   r   r   r   r;   rª   rP   rP   rQ   Útest_ambigous_fillú  s    zTestMedian.test_ambigous_fillc                 C   s  t jt j fD �]ì}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ƒ n2t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 ] }tddƒD ]Ž}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|  ƒ �qh�qZqd S )Nr…   r   r†   r9   Frb   i÷ÿÿÿrF  ry   r¤   r7   rŒ   ç      @r˜   g      @g      $Àg      "Àg      ÀrE  r_   r6   )rK   r-  r   rX  rW   r   Úisnanr   r   r   r;   Zfloat32rc   )rL   r-  r<   ri   rj   rP   rP   rQ   Útest_special  sL    "þý
  "ÿzTestMedian.test_specialc                 C   s²  t j t jg td�¡}tƒ �B}| t¡ tt j 	|¡t j
ƒ t|jd jtu ƒ W d   ƒ n1 sd0    Y  t j t jg tdd�¡}tƒ �P}| t¡ t ddt¡ tt j 	|¡t j
ƒ t|jd jtu ƒ W d   ƒ n1 sâ0    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��F}t ddt¡ tt jj	|dd�|ƒ t|d jtu ƒ W d   ƒ n1 �s¤0    Y  d S )Nr7   r   rt   )r8   r7  ÚalwaysÚ r6   r†   r9   T)Úrecord)rK   rW   r   r   rJ   r   rj  ÚRuntimeWarningr   r   rX  r   ÚlogÚcategoryÚwarningsÚfilterwarningsr   Úcatch_warnings)rL   r<   Úwr=   rP   rP   rQ   Ú
test_empty.  s&    
2
2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 )Nre  r6   )rK   rW   r   r	   r   rX   r   r  rV   rJ   rX  )rL   r]  rP   rP   rQ   Útest_objectK  s    
zTestMedian.test_objectN)r}   r~   r   r0  r1  r3  r6  r>  r?  r@  rC  rÂ   rO  r%  rQ  rT  rV  rW  r[  r^  rb  rd  rg  rr  rs  rP   rP   rP   rQ   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   rK   rÀ   rÁ   rf   rB  rP   rP   rQ   ÚsetupT  s    zTestCov.setupc                 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©rx  Úbias)rf   r   rK   r   r
  rP   rP   rQ   Útest_1d_without_missingW  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 )Nrt   r¤   Frw  Try  )rf   rŽ   r   rK   r   r
  rP   rP   rQ   Ú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y”   Y n0 |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É   Frw  Try  ©Zallow_maskedr9   )rf   r
   Úmeanrh   r   rK   r   Ú
ValueError)rL   r�   ÚnxrP   rP   rQ   Útest_1d_with_missingg  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É   rt   r¤   r9   r   r‚   T©rz  Frw  ry  )rf   r
   rŽ   rK   Zlogical_notr   r  rd   r   rI  r~  r  r   r   r   )rL   r�   ZvalidÚfracZxfrP   rP   rQ   Útest_2d_with_missing  s8     ÿÿÿÿÿÿÿÿzTestCov.test_2d_with_missingN)r}   r~   r   rv  r{  r|  r�  r„  rP   rP   rP   rQ   rt  R  s
   rt  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 ru  )r   rK   rÀ   rÁ   rf   Údata2rB  rP   rP   rQ   rv  —  s    zTestCorrcoef.setupc                 C   sÜ   | j | j }}t |¡}t ||¡}tƒ �ž}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   ƒ n1 sÎ0    Y  d S )Nrh  rÉ   ©Zddofúbias and ddof have no effectr   rt   ©rf   r†  rK   r   r   rn  Úsimplefilterr   r  Úfilterr   )rL   r�   rž   r±   Z	expected2ÚsuprP   rP   rQ   Ú	test_ddof›  s    

zTestCorrcoef.test_ddofc                 C   sž   | j | j }}t |¡}tƒ �l}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   ƒ n1 s�0    Y  d S )Nrh  TFr‚  rˆ  r9   r‰  )rL   r�   rž   r±   rŒ  rP   rP   rQ   Ú	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   ƒ n1 s~0    Y  d S )NFrw  rˆ  Try  )rf   r   rK   r   r   r‹  r  ©rL   r�   rŒ  rP   rP   rQ   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   ƒ n1 s†0    Y  d S )Nrt   r¤   Frw  rˆ  Try  )rf   rŽ   r   rK   r   r   r‹  r  r�  rP   rP   rQ   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 sš0    Y  zt|dd� W n t
yÆ   Y n0 |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   ƒ n1 �s¾0    Y  d S )NrÉ   Frw  rˆ  Try  r}  r9   r‚  r6   r‡  )rf   r
   r~  rh   r   rK   r   r   r‹  r  r  )rL   r�   r€  rŒ  rP   rP   rQ   r�  Î  s<    
ÿÿ",ÿÿÿ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ƒ �²}| 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   ƒ n1 �s0    Y  d S )	NrÉ   rt   r¤   rˆ  rÊ   r‡  r9   r‚  )	rf   r
   rŽ   r   rK   r   r   r‹  r  )rL   r�   rM   rN   rŒ  rP   rP   rQ   r„  ì  s"    
*ÿÿÿz!TestCorrcoef.test_2d_with_missingN)
r}   r~   r   rv  r�  rŽ  r{  r|  r�  r„  rP   rP   rP   rQ   r…  •  s   r…  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú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||ƒ qàt||d d …df dd	d
�\}}}}}t j|dd… |dd…df dd	d
�\}}	}
}}t
|||||f||	|
||fƒD ]\}}t||ƒ �qht||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||ƒ �qžd S )Nr_   rò   rÉ   r6   rt   r   rB   ©rÉ   rÉ   T©re   r9   )re   rq  )rK   rÀ   rÁ   rŽ   r   r   Úviewr   r
   rh   Úzipra  r   )rL   r�   rž   ÚCÚRÚKÚSÚDrS   r/  rk   rm   r½   r<   Úa_rq  ZwoÚxsZysÚwsrP   rP   rQ   Ú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
||ƒ qÄd S )Nr_   rò   rÉ   r6   r   r‘  rt   Tr’  r9   )rK   rÀ   rÁ   rŽ   rX  r“  r   r
   r   r”  r   )rL   r�   rž   r•  r–  r—  r˜  r™  rS   r/  rk   rm   r½   r<   rš  rP   rP   rQ   Útest_polyfit_with_masked_NaNs)  s    



4&z,TestPolynomial.test_polyfit_with_masked_NaNsN)r}   r~   r   r�  rž  rP   rP   rP   rQ   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©r9   r9   r9   r6   r6   rt   T©Zreturn_indexZreturn_inverser   rA  r´   r…   r9   )r   rt   ry   r6   )r   r   r   r9   r9   r6   )r   r   r»   r   r   r   rË   rP   rP   rQ   Ú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   r9   r   r9   r   r…   Tr¡  r   )r9   r6   rt   rÉ   ©r   r   r   r9   r9   )r   rt   ry   r6   r6   )r   r   rt   r9   rt   r6   rt   )rf   r;   Ú
fill_value)r   r   r   r¤  rË   rP   rP   rQ   Útest_unique_onmaskedarrayE  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   r9   r6   r´   )r   r   r   r
   rË   rP   rP   rQ   Útest_unique_allmaskedU  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 )Nry   ©r9   r   r   r   r9   r…   )r9   r9   r9   r¤   )r9   r   r   r9   r   )r   rK   r	   r   r#   r   r  r;   )rL   r�   rN   rM   rP   rP   rQ   Útest_ediff1dd  s    
zTestArraySetOps.test_ediff1dc                 C   sº   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 )Nry   r§  r…   )Úto_begin)r   r9   r9   r9   r¤   )r9   r9   r   r   r9   r   rA  )r9   r6   rt   r9   r9   r9   r¤   )r   r   r   r9   r   r   r9   ©	r   rK   r	   r#   r
   r   r   r  r;   ©rL   r�   rM   rN   rP   rP   rQ   Útest_ediff1d_tobeginm  s    

z$TestArraySetOps.test_ediff1d_tobeginc                 C   sº   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 )Nry   r§  r…   )Úto_end)r9   r9   r9   r¤   r   )r9   r   r   r9   r9   r   rA  )r9   r9   r9   r¤   r9   r6   rt   )r9   r   r   r9   r   r   r   rª  r«  rP   rP   rQ   Útest_ediff1d_toend|  s    

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 )Nry   r§  r…   ©r­  r©  )r   r9   r9   r9   r¤   r   )r9   r9   r   r   r9   r9   r   rA  )r   r9   r9   r9   r¤   r9   r6   rt   )r9   r9   r   r   r9   r   r   r   rª  r«  rP   rP   rQ   Ú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 )	Nry   )r9   r9   r9   r9   )r   r   r   r   r…   r   r¯  r’   r“   )rK   r	   r#   r   r   r   r»   r   r  r;   r
   r«  rP   rP   rQ   Ú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)r9   rt   rt   rt   r£  r…   )rt   r9   r9   r9   )r9   rt   rÉ   r  )r   r!   r   )rL   r�   rž   rM   rN   rP   rP   rQ   Ú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©r9   r6   ry   rb   rÉ   ©r   r   r   r   r9   r…   ©r9   r6   rt   r¤   ry   rÉ   r  )rt   r¤   rb   )r9   r6   rt   r¤   ry   )rt   r¤   rb   rÉ   r£  rA  )rq   ry   r¤   rº   )r9   rr   r6   rt   )r   r9   r   r   )rq   ry   r¤   rr   )r   r   r   r   r»   r   r   ©rL   r<   r=   rM   rP   rP   rQ   Ú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Ç   )r6   rt   r¤   r9   )r9   r6   r   r…   )	r   r_   rò   rô   r9   rt   ré   rÎ   rö   )	r   r9   r   r9   r   r9   r   r9   r   )rf   r;   r7   Tr´   r  )r   r6   rt   )rK   r	   rŽ   r   r   r{   r0   r   r»   r   r   r;   )rL   r<   r;   r=   ÚecrS   r½   rP   rP   rQ   Ú	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©ry   ry   r6   r9   rÉ   ©r9   ry   rÉ   r  )TTFTT)r   r"   r   r   r¶  rP   rP   rQ   Ú	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   rK   r½  r"   r   r  rP   rP   rQ   Ú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)r9   r6   ry   rb   ry   rÉ   r  r…   rµ  )r9   r6   rt   r¤   ry   rb   rÉ   )r   r   r   r   r   r   r9   r  rÔ   r´   r  rÈ   r´  )r   r9   r6   rt   r¤   ry   )r   r    r   r   )	rL   r<   r=   rM   rN   r�   rž   Zezr¡   rP   rP   rQ   Ú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)rq   ry   r¤   rb   rb   r9   r6   r9   )r   r   r   r   r   r   r   r9   r…   )r6   r¤   rt   rt   r6   r9   ry   )rq   rb   rÉ   r  r_   rr   rs   )r   r   r   r	   rK   Zuint32r8   r¶  rP   rP   rQ   Ú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=   rS   )r<   r=   rm   rS   )rK   r   r   r   r  rP   rP   rQ   Ú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¹  r¼  r¾  r¿  rÀ  rÁ  rP   rP   rP   rQ   rŸ  :  s    		rŸ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú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…   r`  r\  )r   r   r   r   r;   rf   r  rP   rP   rQ   Ú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 ]0}t|jdƒ t|jj|jƒ t|jj|jƒ qBtdƒ}t|jdƒ t|jj|jƒ t|jj|jƒ tddƒ}|D ]0}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 ]2}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‚   rT   rƒ   rC   rÕ   )r   r   r   r;   rf   r   r   r1   )rL   r=   r<   rP   rP   rQ   Útest_shape_scalar.  s<    


zTestShapeBase.test_shape_scalarN)r}   r~   r   rÃ  rÄ  rP   rP   rP   rQ   rÂ  "  s   
rÂ  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	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…   ©rs   rr   rb   r³   r   r†   r_  r9   ©rt   r6   ©r   r2   r   r   r   r;   r3   rf   ©rL   r<   r=   rS   r½   rP   rP   rQ   Ú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†   r_  r9   rÇ  rÈ  rÉ  rP   rP   rQ   Útest_stack_masksn  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_   r6   r…   r†   r5   r9   rÉ   ).r   ).r9   )rt   r6   r¤   ry   )rK   rÀ   Úrandintr  r{   r   r2   r   r   r   r;   )
rL   ZshpZd1Zd2rŸ   r    Za1r  rS   Zc_shprP   rP   rQ   Útest_stack_nd€  sD    zTestStack.test_stack_ndN)r}   r~   r   rÊ  rË  rÍ  rP   rP   rP   rQ   rÅ  Z  s   rÅ  )JÚ__doc__rn  r8  r  ÚnumpyrK   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   r€   r¹   rÅ   rÒ   r   r(  r,  rt  r…  r�  rŸ  rÂ  rÅ  rP   rP   rP   rQ   Ú<module>   s:   4Œ
  ,F    }Ck: i8