3
Kéd~ ã               @   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j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j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 d0|d}td2ggd4gg|d}t||ƒ d S )5Né   )Údtypeé   )Úmaskr6   ÚaÚbÚf)ÚnamesÚformatsr   ÚbaÚbb)r5   )r5   )r   r   )r   r   )r7   r7   )r7   r7   )r5   r5   )r   r   )r   r   )r   r   )r   r   )r7   r7   )r7   r7   )r7   r7   )r7   r7   )r9   r;   )r>   r;   )r?   r;   )r5   ©r7   r7   )r7   r@   ©r7   r7   )r7   rA   ©r7   r7   )r7   rB   ©r7   r7   )r7   rC   )r5   ©r7   r7   )r7   rD   ©r7   r7   )r7   rE   ©r7   r7   )r7   rF   ©r7   r7   )r7   rG   )r7   r7   ©r7   r7   )r7   rH   ©r7   r7   )r7   rI   )r.   Úfloatr   r   Únpr6   )ÚselfÚtestÚcontrolÚdt© rP   úN/var/www/html/virt/lib64/python3.6/site-packages/numpy/ma/tests/test_extras.pyÚtest_masked_all%   s0    




zTestGeneric.test_masked_allc             C   s    t jddtfgdffgƒ}t j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
f ƒ d S )Nr:   Úcr7   )r7   )r7   )r7   r7   )rK   r6   ÚobjectÚmar.   r   ÚtypeÚcorer   Úlenr   Ú_fill_value)rL   Úmy_dtypeÚ
masked_arrrP   rP   rQ   Ú"test_masked_all_with_object_nestedC   s    z.TestGeneric.test_masked_all_with_object_nestedc             C   sr   t jdtdffgƒ}t jjd|ƒ}tt|d ƒt jjjƒ tt	|d ƒdƒ t|d j
dƒ t|d jj
f ƒ d S )Nr:   r7   )r7   )r7   )r7   r7   )rK   r6   rT   rU   r.   r   rV   rW   r   rX   r   rY   )rL   rZ   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j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jddddgfgƒ}t ddgddg|d}t|ƒ}t||ƒ d S ) Nr7   r5   )r6   )r8   r6   r9   r:   r;   )r<   r=   r   é
   r>   r?   )r   r   )r   r   )r7   r7   )r7   r7   )r^   r^   )r^   r^   )r7   r7   )r7   r7   )r9   r;   )r>   r;   )r?   r;   ©r7   r7   )r7   r_   ©r7   r7   )r7   r`   ©r7   r7   )r7   ra   ©r7   r7   )r7   rb   )r   rJ   r/   r   rK   r6   )rL   ÚbaserM   rN   rO   rP   rP   rQ   Útest_masked_all_likeY   s    

z TestGeneric.test_masked_all_likec       	      C   sÊ   xÄt ddƒD ]¶}x°t d| ƒD ] }tj|td}tj||td}td| ƒ}|d| @ dk|_d}x"||ƒD ]}||j| jƒ 7 }qlW |t	kr¢t
|jƒ jƒ |ƒ q|j |_t
|jƒ jƒ |ƒ qW qW d S )Nr7   é   r5   )r6   r   )ÚrangerK   r	   ÚintÚfullr   r8   ÚdataÚsumr*   r   Ú
compressed)	rL   r;   ÚiÚjÚkÚjar9   ÚsÚslrP   rP   rQ   Úcheck_clumpm   s    
zTestGeneric.check_clumpc             C   s^   t tjdƒƒ}t|ddddddg< t|ƒ}tddƒtdd	ƒtddƒg}t||ƒ | jtƒ d S )
Nr^   r   r7   r5   é   é   é	   é   re   )r   rK   r	   r
   r)   Úslicer   rr   )rL   r9   rM   rN   rP   rP   rQ   Útest_clump_masked}   s    
zTestGeneric.test_clump_maskedc             C   sV   t tjdƒƒ}t|ddddddg< t|ƒ}tddƒtd	dƒg}t||ƒ | jtƒ d S )
Nr^   r   r7   r5   rs   rt   ru   rv   re   )r   rK   r	   r
   r*   rw   r   rr   )rL   r9   rM   rN   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   )r6   rv   rt   é   rs   ru   )
r	   r+   r   rw   ÚsizerK   r   Úboolr8   r
   )rL   r9   rM   rP   rP   rQ   Útest_flatnotmasked_contiguous’   s    z)TestGeneric.test_flatnotmasked_contiguousN)Ú__name__Ú
__module__Ú__qualname__rR   r\   r]   rd   rr   rx   ry   r}   rP   rP   rP   rQ   r4   #   s   

r4   c               @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestAveragec             C   s<  t ddddgddddgd}tdt|dd	ƒ tdt|ddddgd
ƒ t|ddddgdd\}}td|ƒ t|dkƒ t|d d …< tt|dd	jdgƒ t ddddgddddgd}|j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 )Ng        g      ð?g       @g      @TF)r8   r   )Úaxis)Úweights)rƒ   Úreturnedg      @r5   r7   )r‚   r„   )r   r   r   r   r
   r8   Úreshape)rL   ZottÚresultÚwtsrP   rP   rQ   Útest_testAverage1§   s     
zTestAverage.test_testAverage1c             C   s’  ddddddg}ddddddgddddddg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jtj dƒƒd	 d
 ƒ tt|ddtj dƒd	 d ƒ tt|ddt|ddt|ddd gƒ tt|d |ddƒ tt|d|ddddd	ddgƒ tt|ddt|ddt|ddd gƒ tdƒ}ddddddg}ddddddgddddddgg}t	dƒ}ddddddg}	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ddddddgƒ tt|
ddddgƒ tt|
d|dddddddgƒ d S )Nr   r7   rs   )r6   )r‚   g      @)r‚   rƒ   g       @g      @g      (@)rƒ   g      4@g      @g        g      ð?g      @g      $@Tg     ÀX@g      @g      @g«ªªªªª
@g«ªªªªª
@)r	   rK   Zfloat_r   r   r   ÚaddÚreducer   r   r   r8   r   )rL   Úw1Úw2ÚxÚyÚm1Úm2Zm3Zm4Zm5ÚzrP   rP   rQ   Útest_testAverage2º   s>     &  
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 )Nrs   rv   r7   T)r‚   r„   r5   r   )r‚   rƒ   r„   )r„   )rƒ   r„   é   F)r‚   g      à?g      @g      ð?g      @g      ø?g      @)r5   r5   rv   )r5   r5   rv   )r5   r5   rv   )r5   r5   rv   g«ªªªªª@)r	   r   r   r   r   r   rJ   r   )rL   r9   r:   Zr1r‹   Zr2rŒ   Za2dZa2dmZa2daZa2dmarP   rP   rQ   Útest_testAverage3Ü   s*    
zTestAverage.test_testAverage3c             C   sH   t tddgƒƒ}t|dƒ t tddddgddddgdƒ}t|dƒ d S )	Nr7   r5   g      ø?rv   r“   FT)r8   )r   r   r   )rL   r9   rP   rP   rQ   Útest_onintegers_with_maskô   s    
 z%TestAverage.test_onintegers_with_maskc             C   s  t jdddddgdddddggtd}tdddddgddddd gg|d}t|ƒ}t j|jƒ ƒ}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 jdddddgdddddggƒ}	t||	d}
t j|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 )!Nr   r7   )r6   y               @rv   y              @rz   y              @re   y               @y              "@y              ð?r5   y              @r“   y              @y              @)r8   )r‚   g      à?g      ð?g       @)rƒ   )rƒ   r‚   y      ð?       @y      @      @y      @      @y      @       @y              ð?y       @      @y      @      @y      @      @)	rK   r   r|   r   r   rk   r   ÚrealÚimag)rL   r8   r9   ÚavÚexpectedZav0Z	expected0Zav1Z	expected1r‡   ZwavZwav0Zwav1rP   rP   rQ   Útest_complexû   sB      zTestAverage.test_complexN)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   sœ   t td	 tddddddgƒƒ tdƒ}dddddg}t||d}t|dd|f }tt|tƒƒ t |ddddddddddddgƒ t |jt|dd|f ƒ d S )
Nr7   r5   rv   r“   rz   rs   r   )r8   )r7   r5   rv   r“   rz   rs   )	r   r   r   r   r   r   Ú
isinstancer   r8   )rL   r:   ÚmÚdrS   rP   rP   rQ   Útest_1d+  s    "zTestConcatenator.test_1dc             C   s0  t jjddƒ}t jjddƒ}t jt jjddƒdƒ}t jt j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   )r8   Ú1r^   )rz   r^   )r^   rz   )rK   ÚrandomÚrandZround_r   r   r   r   r   r8   Zr_)rL   Za_1Za_2Zm_1Zm_2Zb_1Zb_2rž   rP   rP   rQ   Útest_2d6  s     zTestConcatenator.test_2dc             C   sr   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dddgƒ t|jd d… ddgƒ d S )Nr7   TFr5   )r   rK   rU   r
   r   r8   ri   )rL   ÚactualrP   rP   rQ   Útest_masked_constantJ  s    z%TestConcatenator.test_masked_constantN)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 )ÚTestNotMaskedc             C   s¬  t tjdƒjddƒdddddgdddddgdddddgdddddgdddddg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   r7   )r8   é   r5   rv   r“   )r   r   r7   r   r   )r   r7   r5   rv   r“   )rv   rv   rv   r“   r“   )r   r7   r5   rv   r“   )r   r7   r5   rv   r“   )r   r   r5   r   rv   )r   r7   r5   rv   r“   )r“   r5   r“   r“   r“   )r   r   r   r   r   )r   r7   r5   rv   r“   )r“   r“   r“   r“   r“   )r   r7   r5   rv   r“   éÿÿÿÿ)r   r7   r5   rv   r“   )r   r   r   r   r   )r   r7   r5   rv   r“   )r“   r“   r“   r“   r“   éþÿÿÿ)r   r   r7   r   r   )r   r7   r5   rv   r“   )r7   r7   r5   r“   r“   )r   r7   r5   rv   r“   r©   )r   r7   r5   r“   )r   r   r5   rv   )r   r7   r5   r“   )r“   r5   r“   r“   )r   rK   r	   r…   r-   r   ri   r
   )rL   ri   rM   rP   rP   rQ   Ú
test_edgesW  s:    




zTestNotMasked.test_edgesc             C   sP  t tjdƒjddƒddddddddgddddddddgddddddddg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¨   rv   rt   r   r7   )r8   r“   é   é   é   r5   rs   re   )r   rK   r	   r…   r,   r   rw   )rL   r9   ÚtmprP   rP   rQ   Útest_contiguousy  s0    




zTestNotMasked.test_contiguousN)r~   r   r€   r«   r°   rP   rP   rP   rQ   r¦   T  s   "r¦   c               @   s~   e Zd Zdd„ Zdd„ Zdd„ Zejjddd	d
gƒej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 jttd?ƒƒƒjdddƒ}t jd@ƒjtƒ}d|dA< t||d}t|ƒ}t	|ddddgd	d
ddgddddggddddgddddgddddgggƒ t|dƒ}t	|dddddgddddd gd	d!d
ddgdd"dddggdd#dddgd$d%d&d'd(gdd)dddgdd*dddgggƒ t|dƒ}t	|dddddgd	d!d
ddgdd"dddggd+d,d-d.d/gd0d1d2d3d4gd5d6d7d8d9ggdd#dddgdd)dddgdd*dddgggƒ t|dBƒ}t|dCƒ}t|dEƒ}t	||ƒ t	||ƒ t	||ƒ t|dƒ}t	|ddddgdddd gd	d
ddgddddggd+d-d.d/gd:d;d<d=gd0d2d3d4gd5d7d8d9ggddddgd$d&d'd(gddddgddddgggƒ t|dFƒ}t|dGƒ}t|dIƒ}t	||ƒ t	||ƒ t	||ƒ t|dJƒ}t	|dddddgd	d!d
ddgdd"dddggdd#dddgdd)dddgdd*dddgggƒ t|dLƒ}t	||ƒ t|dMƒ}t	|ddddgd	d
ddgddddggd+d-d.d/gd0d2d3d4gd5d7d8d9ggddddgddddgddddgggƒ t|dOƒ}t|dQƒ}t|dTƒ}t	||ƒ t	||ƒ t	||ƒ t|dUƒ}t	|ddddgdddd gd	d
ddgddddggddddgd$d&d'd(gddddgddddgggƒ t|dWƒ}t	||ƒ d S )XNrv   r“   rz   Tr7   )r8   r   r5   r^   é   é   é   é   é   é   é   é(   é*   é+   é,   é2   é4   é5   é6   é7   é9   é:   é;   rs   re   rt   ru   é   r¬   é)   é-   é.   é/   é0   é1   é3   é8   é   é   r­   r®   r¨   é   é   é    é!   é"   é#   é$   é%   é&   é'   r§   é   é   é   r²   é<   )rv   r“   rz   )r7   r7   r7   )r7   rª   rª   )rª   )r5   r©   r©   )r©   )r   r7   rª   )r   rª   )r7   r5   rª   )rª   r5   r©   )r7   r©   rª   r©   )rª   r©   )r   r5   r©   )r   r©   )
rK   r   Úlistrf   r…   r   Úastyper|   r&   r   )rL   r   r   r9   Úa2Úa3Za4rP   rP   rQ   Útest_compress_ndœ  s¶    















































z&TestCompressFunctions.test_compress_ndc             C   sÚ  t tjdƒjddƒdddgdddgdddggd}tt|ƒddgdd	ggƒ tt|dƒdddgd
dd	ggƒ tt|dƒddgddgdd	ggƒ t |jdddgdddgdddggd}tt|ƒddgd
d	ggƒ tt|dƒdddgd
dd	ggƒ tt|dƒddgddgd
d	ggƒ t |jdddgdddgdddggd}tt|ƒd	ggƒ tt|dƒd
dd	ggƒ tt|dƒdgdgd	ggƒ t |jdddgdddgdddggd}tt|ƒjdƒ tt|dƒjdƒ tt|dƒjdƒ d S )Nru   rv   r7   r   )r8   r“   rz   re   rt   rs   r5   )r   rK   r	   r…   r   r'   Ú_datar{   )rL   r   rP   rP   rQ   Útest_compress_rowcols  s"      "& "&&z+TestCompressFunctions.test_compress_rowcolsc             C   s–  t tjdƒjddƒdddgdddgdddggd}tt|ƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ t |jdddgdddgdddggd}tt|ƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ t |jdddgdddgdddggd}tt|ƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ tt|dƒjdddgdddgdddggƒ t |jdddgdddgdddggd}tt|ƒj	ƒ t
kƒ tt|dƒj	ƒ t
kƒ tt|dƒj	ƒ t
kƒ tt|ƒjj	ƒ ƒ tt|dƒjj	ƒ ƒ tt|dƒjj	ƒ ƒ d S )Nru   rv   r7   r   )r8   )r   rK   r	   r…   r   r(   r8   rã   r   Úallr
   )rL   r   rP   rP   rQ   Útest_mask_rowcols   s:     
&
&
&z'TestCompressFunctions.test_mask_rowcolsr‚   Nr   r7   ÚfuncÚrowcols_axisc             C   sf   t tjdƒjddƒdddgdddgdddggd}ttƒ" |||d}t|t||ƒƒ W d Q R X d S )Nru   rv   r7   r   )r8   )r‚   )r   rK   r	   r…   r   ÚDeprecationWarningr   r(   )rL   r‚   rç   rè   r   ÚresrP   rP   rQ   Ú#test_mask_row_cols_axis_deprecation@  s
     
z9TestCompressFunctions.test_mask_row_cols_axis_deprecationc             C   s   t jddƒ}ddddddg}t||djddƒ}t||djddƒ}t||dd}t|jddgddggƒ t||dd}t|jdddgdddgdddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t||d	d}t|t j|jdƒ|jdƒƒƒ ddddddg}t||djddƒ}t||djddƒ}t||dd}t|jddgddggƒ t||dd}t|jdddgdddgdddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t|t||ƒƒ t||d	d}t|t j|jdƒ|jdƒƒƒ ddddddg}t||djddƒ}t||djddƒ}t||ƒ}t|jtƒ t||ƒ}t|jtƒ t|ddddddgdjddƒ}t|ddddddgdjddƒ}t||dd}t|jddgddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t||dd}t|jdddgdddgdddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t|ddddddgdjddƒ}t|ddddddgdjddƒ}t||dd}t|jddgddggƒ t||ƒ}t|t j|jdƒ|jdƒƒƒ t||dd}t|jdddgdddgdddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t|ddddddgdjddƒ}t|ddddddgdjddƒ}t||dd}t|jddgddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ t||dd}t|jdddgdddgdddggƒ t||d	d}t|t j|jdƒ|jdƒƒƒ d S )
Nr7   re   r   )r8   r5   rv   T)ÚstrictF)	rK   r	   r   r…   r   r   r8   Úfilledr   )rL   Únr   r9   r:   rS   rP   rP   rQ   Útest_dotL  sz    $$

  $  
$  $zTestCompressFunctions.test_dotc             C   sn   t jdƒ}t|ƒ}ttt||ƒƒtkƒ ttt||ƒƒtkƒ ttt||ƒƒtkƒ ttt||ƒƒtkƒ d S )Nrv   )rK   Úeyer   r   rV   r   r   )rL   r9   r:   rP   rP   rQ   Útest_dot_returns_maskedarray’  s    
z2TestCompressFunctions.test_dot_returns_maskedarrayc             C   sD   t tjdƒƒ}t tjdƒƒ}t|||d}t||kƒ t||ƒ d S )Nrv   )Úout)rv   rv   )r   rK   rð   r   r   r   r   )rL   r9   rò   rê   rP   rP   rQ   Útest_dot_out›  s
    z"TestCompressFunctions.test_dot_out)r~   r   r€   râ   rä   ræ   ÚpytestÚmarkZparametrizerK   rU   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ƒjdddƒ}dd„ }t|d|ƒ}t|ddgdd	ggƒ d S )
Ng      (@r5   rv   c             S   s   | d S )Nr7   rP   )r:   rP   rP   rQ   Úmyfunc¨  s    z*TestApplyAlongAxis.test_3d.<locals>.myfuncr7   r“   re   r^   )r	   r…   r%   r   )rL   r9   r÷   ÚxarP   rP   rQ   Útest_3d¥  s    zTestApplyAlongAxis.test_3dc             C   sF   t dƒjdddƒ}ddd„}t|d|dd}t|dd	gd
dggƒ d S )Nr²   r5   rv   r   c             S   s   | d|  S )Nr7   rP   )r:   ÚoffsetrP   rP   rQ   r÷   ²  s    z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr7   )rú   rz   rt   rÅ   )r   )r	   r…   r%   r   )rL   r9   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ƒjdddƒ}ttj|ddgƒ}tjdgdgdgggƒ}t||ƒ t||d jt	ƒ< ttj|ddgƒ}tjd	gd
gdgggƒ}t||ƒ d S )Nr¨   r5   rv   r“   r   rÝ   é\   é|   rÛ   r¼   )
r	   r…   r$   rK   rj   r   r   r
   rß   r|   )rL   r9   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 )Nr7   )r‚   r©   )rK   rU   r   Úinfr   )rL   ÚrrP   rP   rQ   Útest_pytypeÇ  s    $zTestMedian.test_pytypec             C   sì   t jjt j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}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 )Nr7   )r‚   T)r8   r©   r©   )rK   rU   r   r   r  r   r8   )rL   r  rP   rP   rQ   Útest_infË  s    zTestMedian.test_infc             C   sl  t jdƒ}tt jj|ƒdƒ ttt jj|ƒƒtk	ƒ tdƒ}tt jj|ƒdƒ ttt jj|ƒƒtk	ƒ d}tt jj|ƒdƒ ttt jj|ƒƒtk	ƒ t jdƒj	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k	ƒ t jdƒj	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k	ƒ d S )Nru   g      @rt   g      @rz   g      @r   )r‚   r7   g       @éH   g      R@)
rK   r	   r   rU   r   r   rV   r   rf   r…   )rL   r   rP   rP   rQ   Útest_non_maskedÝ  s"    
    zTestMedian.test_non_maskedc             C   s  t tjdƒdgd dgd  d}ttjj|ƒdƒ ttjj|ƒjf dƒ tttjj|ƒƒt	k	ƒ t tjdƒj
d	d
ƒdgd dgd  d}ttjj|ƒdƒ ttjj|ƒjf dƒ tttjj|ƒƒt	k	ƒ tjj|ddd}t|ddgƒ t|jddƒ tt|ƒt	kƒ dS )z5test the examples given in the docstring of ma.medianrt   r   r“   r7   )r8   g      ø?zshape mismatchr^   r5   rz   rs   g      @T)r‚   Úoverwrite_inputg       @g      @Nr©   )r5   )r   rK   r	   r   rU   r   r   r   rV   r   r…   )rL   r   Zma_xrP   rP   rQ   Útest_docstring_examplesò  s    "*z"TestMedian.test_docstring_examplesc             C   s  d}xt dƒD ]ø}xòdD ]ê}td||d}tjt | |ƒddgƒ}xP|D ]H\}}ytjj|||d W qJ tk
r   t|||||f ƒ‚Y qJX qJW tj|d  |gddgƒ}xR|D ]J\}}ytjj|||d W n tj	k
rê   Y q¶X t|||||f ƒ‚q¶W qW qW d S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %srz   FTr7   )Úndminr8   )r‚   r  )FT)
rf   r   Ú	itertoolsÚproductrK   rU   r   Ú	ExceptionÚAssertionErrorZ	AxisError)rL   Úmsgr	  r8   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j|ƒdƒ t ddd}ttjj|ƒtjjƒ d S )Nr7   F)r8   T)r   r   rK   rU   r   r
   )rL   r   rP   rP   rQ   Útest_masked_0d  s    zTestMedian.test_masked_0dc             C   sÞ  t tjdƒdd}ttjj|ƒtjjƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtjj
jkƒ t tjdƒdd}ttjj|ƒdƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒdddddgd}ttjj|ƒd	ƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒdddddgd}ttjj|ƒd
ƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒdddddgd}ttjj|ƒdƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒdddddgd}ttjj|ƒdƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒddddddgd}ttjj|ƒd	ƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ t tjdƒddddddgd}ttjj|ƒd	ƒ ttjj|ƒjf dƒ tt	tjj|ƒƒtk	ƒ d S )Nrz   T)r8   zshape mismatchFg       @r   r7   g      @g        g      @g      @rs   g      @)r   rK   r	   r   rU   r   r
   r   r   rV   rW   ZMaskedConstantr   )rL   r   rP   rP   rQ   Útest_masked_1d   s@    zTestMedian.test_masked_1dc             C   sJ   t tjjtdddgdddgdƒjtjjtdddgdddgdƒjƒ d S )Nr7   r5   rv   r   )r8   )r   rK   rU   r   r   r   )rL   rP   rP   rQ   Útest_1d_shape_consistencyF  s    "z$TestMedian.test_1d_shape_consistencyc             C   s   d	\}}t tjd
d|ƒƒ}t |d d…< |dd …< t tj||ftdƒ}|d d … |d d …df< tjt|ƒƒ}x2td|ƒD ]$}tj	j
|ƒ || |d d …|f< qzW tt|d d …df ƒdƒ tt|ƒdƒ tt|ddtj|ƒƒ tt|jddtj|ƒƒ d S )Née   rÐ   g      ð?r^   )r6   r   r7   )r‚   )r  rÐ   g      ð¿iöÿÿÿ)r   rK   Zlinspacer
   ÚemptyrJ   r	   rX   rf   r¡   Úshuffler   r   r   ÚT)rL   rî   Úpr   r‘   Úidxrl   rP   rP   rQ   r£   J  s    zTestMedian.test_2dc             C   sö   t tjdƒjddƒƒ}t |d d…< |dd …< tt|ƒdƒ tttj	j|ƒƒt
k	ƒ tt|dddddgƒ tttj	j|ddƒt
kƒ tt|d	dddddd
dddddg
ƒ tttj	j|d	dƒt
kƒ tt|d	djd	d	d	ddddd	d	d	g
ƒ d S )NrÐ   r^   rv   g      -@r   )r‚   g      +@g      /@r7   r³   r¬   r¸   éýÿÿÿ)r   rK   r	   r…   r
   r   r   r   rV   rU   r   r8   )rL   r   rP   rP   rQ   Útest_2d_waxisZ  s    &zTestMedian.test_2d_waxisc             C   sÂ   t jjdƒj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jdƒjdddƒ}t||d dk< tt|dƒddgddgddggƒ d S )Nr¨   rv   r“   r5   r   r²   ru   rs   rµ   r·   éc   r^   rÅ   r³   r´   rz   rt   r¬   r¶   )r“   rv   r5   )rK   rU   r	   r…   r
   r   r   r   )rL   r   rP   rP   rQ   rù   f  s    ("zTestMedian.test_3dc             C   sL   t tjdƒjddƒƒ}t |d d…< |dd …< tt|ddt|ddƒ d S )NrÐ   r^   rv   r7   )r‚   r  r©   )r   rK   r	   r…   r
   r   r   )rL   r   rP   rP   rQ   Útest_neg_axisq  s    zTestMedian.test_neg_axisc             C   sŒ   x†d	D ]~}t tj|ƒƒ}t |d d…< |d
d …< t tjf ƒƒ}t||d}|dkr^t|dƒ n
t|dƒ t||kƒ tt|ƒt	kƒ qW d S )NrÐ   ç      >@rÑ   ç      ?@rv   )rò   g      -@g      .@)rÐ   r  rÑ   r  r  )
r   rK   r	   r
   r   r   r   r   rV   r   )rL   Úvr   rò   r  rP   rP   rQ   Útest_out_1dv  s    

zTestMedian.test_out_1dc             C   s  xdD ]}t tj|ƒjddƒƒ}t |d d…< |dd …< t tjdƒƒ}t|d|d}|dkr¤t d	gd dd
ddg d	gd  dgd dgd  dgd  d}nBt d	gd ddddg d	gd  dgd dgd  dgd  d}t||ƒ t||kƒ tt	|ƒt
kƒ qW d S )Nr¹   ç      D@rÐ   ç      >@r^   r7   rv   )r‚   rò   g        r³   r¬   r¸   TFr“   )r8   g      +@g     €1@g     €5@g     €9@)r¹   r"  rÐ   r#  r©   r  )r   rK   r	   r…   r
   r   r   r   r   rV   r   )rL   r   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j|dƒ}ddg}tt jj|dd|ƒ d S )Ng      ð?g        g      @r   )r‚   )rK   rU   Zmasked_equalr   r   )rL   ri   r[   r™   rP   rP   rQ   Ú$test_single_non_masked_value_on_axis•  s    
z/TestMedian.test_single_non_masked_value_on_axisc             C   s°  x$dt jdtdfD ]}t jjdt jdgdddggƒ}||_t jj|d d}tt j	|ƒƒ t
|t jƒ t jj|jƒ dd}tt j	|ƒƒ 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W t jjdt jdgdddg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 )NFrs   )r6   r7   rv   r5   )r‚   r   g      ø?r©   )rK   r   r|   rU   r   Únanr8   r   r   Úisscalarr   Zravelr   rV   r   r
   )rL   r8   Údmr  rP   rP   rQ   Útest_nanž  s.    zTestMedian.test_nanc             C   s¨   t jjt jdƒƒ}t jjt jdƒƒ}t j|d	< t jj|d
< tt jj|d|d|ƒ t jjt jdƒƒ}tt jj|d|d|ƒ t jjt jf ƒƒ}tt jj||d|ƒ d S )Nr“   rv   r5   r7   r   )rò   )r“   )rv   r“   )r5   r7   )r5   r5   )rv   )	rK   rU   r   r   r   r'  r
   r   r   )rL   Úorž   rP   rP   rQ   Útest_out_nan»  s    
zTestMedian.test_out_nanc             C   s†  t jjt jdtdƒ}t jj|d d d…< t j|d< tt jj|ƒt jƒ tt jj|ddt jƒ t jjt jdtdj	dddƒƒ}t j|j
ƒd dk|_|jƒ }t j|d	< t j|d
< tt jj|ƒt jƒ tt jt jj|ƒƒƒ t jj|dd}t j|d< t j|d< tt jj|dƒ|ƒ t jj|dd}t j|d< t j|d< tt jj|dƒ|ƒ t jj|dd}t j|d< t j|d< tt jj|dƒ|ƒ d S )Nr¨   )r6   rv   r5   r   )r‚   r“   r7   )r7   r5   rv   )r7   r7   r5   )r5   rv   )r7   r5   )r7   rv   )r7   r5   )r   r5   )r   r5   )rK   rU   r   r	   rJ   r
   r'  r   r   r…   r{   r8   Úcopyr   r(  r   )rL   r9   Zaorigr:   rP   rP   rQ   Útest_nan_behaviorÆ  s0    
 







zTestMedian.test_nan_behaviorc             C   s’   t jdddgdddg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j|ƒdƒ d S )	Nrv   éÿ   )r6   )r8   r7   )r‚   Fr   )rK   r   Zuint8rU   r   r   r   r8   )rL   r9   rP   rP   rQ   Útest_ambigous_fillé  s     zTestMedian.test_ambigous_fillc             C   s  xt jt j gD ]ô}t j|t jgt jt jggƒ}t jj|t j|ƒd}tt jj|dd|t jgƒ tt jj|dd|t jgƒ tt jj|ƒ|ƒ t jt jt j|gt jt j|ggƒ}t jj|t j|ƒ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j|ƒ|ƒ t j||g||ggƒ}tt j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 j|ƒd}|dkrtt jj|dddd| dgƒ tt jj|ƒdƒ n2tt jj|dddd| dgƒ tt jj|ƒdƒ tt jj|dddd|gƒ x²tddƒD ]¤}xœtddƒD ]Ž}t jt jg| |g|  gd ƒ}t jj|t j|ƒd}tt jj|ƒ|ƒ tt jj|dd|ƒ tt jj|ddt jg| |g|  ƒ qpW q`W qW d S )N)r8   r   )r‚   r7   Fre   ru   r^   rz   r“   )r6   g      @g      @g      @g      @g      $@g      "@g      @g      ð?r5   i÷ÿÿÿiöÿÿÿg      $Àg      "Àg      Àg      ð¿g      À)rK   r  r   r'  rU   r   Úisnanr   r   r   r8   Zfloat32rf   )rL   r  r9   rl   rm   rP   rP   rQ   Útest_specialò  sF    "

  "zTestMedian.test_specialc             C   st  t jjt jg tdƒ}tƒ 8}|jtƒ tt jj	|ƒt j
ƒ t|jd jtkƒ W d Q R X t jjt jg tddƒ}tƒ F}|jtƒ tjddtƒ tt jj	|ƒt j
ƒ t|jd jtkƒ W d Q R X t jjt jg tddƒ}tt jj	|dd|ƒ tt jj	|d	d|ƒ t jjt jt j
tddƒ}tjd
d<}tjddtƒ tt jj	|dd|ƒ t|d jtkƒ W d Q R X d S )N)r6   r   rv   )r6   r	  ÚalwaysÚ r5   )r‚   r7   T)Úrecord)rK   rU   r   r   rJ   r   r5  ÚRuntimeWarningr   r   r'  r   ÚlogÚcategoryÚwarningsÚfilterwarningsr   Úcatch_warnings)rL   r9   Úwr:   rP   rP   rQ   Ú
test_empty  s&    

zTestMedian.test_emptyc             C   sX   t jjt jdƒƒ}ttt jj|jtƒƒƒt	ƒ t j
|d< ttt jj|jtƒƒƒt	ƒ d S )Ng      @r5   )rK   rU   r   r	   r   rV   r   rß   rT   rJ   r'  )rL   r+  rP   rP   rQ   Útest_object:  s    
zTestMedian.test_objectN)r~   r   r€   r  r  r  r  r  r  r  r  r£   r  rù   r  r!  r%  r&  r*  r,  r.  r0  r2  r=  r>  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jdƒƒ| _d S )Nr²   )r   rK   r¡   r¢   ri   )rL   rP   rP   rQ   ÚsetupC  s    zTestCov.setupc             C   sZ   | j }ttj|ƒt|ƒƒ ttj|ddt|ddƒ ttj|dddt|dddƒ d S )NF)ÚrowvarT)rA  Úbias)ri   r   rK   r   )rL   r   rP   rP   rQ   Útest_1d_without_missingF  s
    zTestCov.test_1d_without_missingc             C   sb   | j jddƒ}ttj|ƒt|ƒƒ ttj|ddt|ddƒ ttj|dddt|dddƒ d S )Nrv   r“   F)rA  T)rA  rB  )ri   r…   r   rK   r   )rL   r   rP   rP   rQ   Útest_2d_without_missingN  s
    zTestCov.test_2d_without_missingc             C   s@  | j }t|d< ||jƒ 8 }|jƒ }ttj|ƒt|ƒƒ ttj|ddt|ddƒ ttj|dddt|dddƒ yt|dd W n tk
r–   Y nX |dd… }ttj||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 )Nr7   F)rA  T)rA  rB  )Úallow_maskedr©   r©   r©   r©   r©   r©   r©   r©   )ri   r
   Úmeanrk   r   rK   r   Ú
ValueError)rL   r   ÚnxrP   rP   rQ   Útest_1d_with_missingV  s$    ,zTestCov.test_1d_with_missingc             C   s6  | j }t|d< |jddƒ}tjt|ƒƒjtƒ}tj||j	ƒ}||j
dƒd d …d f  jdƒ}tt|ƒtj|ƒ|jd d  |d  ƒ tt|ddtj|dd|jd  | ƒ tj|j	|ƒ}||j
dƒ j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 )Nr7   rv   r“   r   g      ð?T)rB  F)rA  )rA  rB  r©   )ri   r
   r…   rK   Zlogical_notr   rß   rg   r   r  rF  rí   r   r   r   )rL   r   ZvalidÚfracZxfrP   rP   rQ   Útest_2d_with_missingn  s      "&zTestCov.test_2d_with_missingN)r~   r   r€   r@  rC  rD  rI  rK  rP   rP   rP   rQ   r?  A  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jdƒƒ| _t tjjdƒƒ| _d S )Nr²   )r   rK   r¡   r¢   ri   Údata2)rL   rP   rP   rQ   r@  †  s    zTestCorrcoef.setupc             C   sÈ   | j | j }}tj|ƒ}tj||ƒ}tƒ ”}tjdƒ ttt|dd |j	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 Q R X d S )
Nr3  r7   )Úddofzbias and ddof have no effectr   rv   r©   r©   r©   )ri   rM  rK   r   r   r9  Úsimplefilterr   ré   Úfilterr   )rL   r   rŽ   r™   Z	expected2ÚsuprP   rP   rQ   Ú	test_ddofŠ  s    

zTestCorrcoef.test_ddofc             C   sŠ   | j | j }}tj|ƒ}tƒ b}tjdƒ ttt||ddƒ ttt||ddƒ ttt|dd |j	tdƒ t
t|dd|ƒ W d Q R X d S )Nr3  TF)rB  zbias and ddof have no effectr7   )ri   rM  rK   r   r   r9  rO  r   ré   rP  r   )rL   r   rŽ   r™   rQ  rP   rP   rQ   Ú	test_biasš  s    

zTestCorrcoef.test_biasc             C   sx   | j }ttj|ƒt|ƒƒ ttj|ddt|ddƒ tƒ 2}|jtdƒ ttj|dddt|dddƒ W d Q R X d S )NF)rA  zbias and ddof have no effectT)rA  rB  )ri   r   rK   r   r   rP  ré   )rL   r   rQ  rP   rP   rQ   rC  §  s    z$TestCorrcoef.test_1d_without_missingc             C   s€   | j jddƒ}ttj|ƒt|ƒƒ ttj|ddt|ddƒ tƒ 2}|jtdƒ ttj|dddt|dddƒ W d Q R X d S )Nrv   r“   F)rA  zbias and ddof have no effectT)rA  rB  )ri   r…   r   rK   r   r   rP  ré   )rL   r   rQ  rP   rP   rQ   rD  ²  s    z$TestCorrcoef.test_2d_without_missingc             C   s¤  | j }t|d< ||jƒ 8 }|jƒ }ttj|ƒt|ƒƒ ttj|ddt|ddƒ tƒ 2}|jt	dƒ ttj|dddt|dddƒ W d Q R X yt|dd W n t
k
r´   Y nX |dd… }ttj||d d d… ƒt||d d d… ƒƒ ttj||d d d… ddt||d d d… ddƒ tƒ r}|jt	dƒ ttj||d d d… ƒt||d d d… ddƒ ttj||d d d… ƒt||d d d… d	d
ƒ W d Q R X d S )Nr7   F)rA  zbias and ddof have no effectT)rA  rB  )rE  )rB  r5   )rN  r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   )ri   r
   rF  rk   r   rK   r   r   rP  ré   rG  )rL   r   rH  rQ  rP   rP   rQ   rI  ½  s2    ,z!TestCorrcoef.test_1d_with_missingc             C   s  | j }t|d< |jddƒ}t|ƒ}tj|ƒ}t|d d	…d d
…f |d d…d d…f ƒ tƒ ¨}|j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 Q R X d S )Nr7   rv   r“   zbias and ddof have no effectr5   )rN  )rB  r©   r©   r©   r©   r©   rª   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   )	ri   r
   r…   r   rK   r   r   rP  ré   )rL   r   rM   rN   rQ  rP   rP   rQ   rK  Û  s    
*z!TestCorrcoef.test_2d_with_missingN)
r~   r   r€   r@  rR  rS  rC  rD  rI  rK  rP   rP   rP   rQ   rL  „  s   rL  c               @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestPolynomialc             C   sÈ  t jjdƒ}t jjdƒjd
dƒ}tt||dƒt j||dƒƒ |jtƒ}t|d< |jtƒ}t |d< |d< t||d d …df ddd\}}}}}t j|dd … |dd …df j	ƒ ddd\}}	}
}}x4t
|||||f||	|
||fƒD ]\}}t||ƒ qâW t||d d …df ddd\}}}}}t j|dd… |dd…df ddd\}}	}
}}x6t
|||||f||	|
||fƒD ]\}}t||ƒ qnW t||ddd\}}}}}t j|dd… |dd…d d …f ddd\}}	}
}}x6t
|||||f||	|
||fƒD ]\}}t||ƒ qôW t jjdƒd }|jƒ }|dd… }|dd… }|dd… }t||dd|d	\}}}}}t j||dd|d	\}}	}
}}t||ƒ x6t
|||||f||	|
||fƒD ]\}}t||ƒ q¬W d S )Nr^   rÎ   r7   r5   rv   r   T)rh   )rh   r<  r©   )r   r   r©   r©   )r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   r©   )rK   r¡   r¢   r…   r   r   Úviewr   r
   rk   Úzipr-  r   )rL   r   rŽ   ÚCÚRÚKÚSÚDrS   r  rn   rp   rž   r9   Úa_r<  ZwoÚxsZysÚwsrP   rP   rQ   Útest_polyfitñ  s<    

&"(&0(4(
(zTestPolynomial.test_polyfitc             C   sà   t jjdƒ}t jjdƒjd	dƒ}t j|d< t j|d< |jtƒ}|jtƒ}t|d< t|d< t||ddd\}}}}}t j|dd… |dd…d d …f ddd\}}	}
}}x4t	|||||f||	|
||fƒD ]\}}t
||ƒ qÆW d S )Nr^   rÎ   r7   r5   r   rv   T)rh   r©   r©   r©   )r©   r©   r©   r©   )r©   r©   r©   r©   )rK   r¡   r¢   r…   r'  rU  r   r
   r   rV  r   )rL   r   rŽ   rW  rX  rY  rZ  r[  rS   r  rn   rp   rž   r9   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   rT  ï  s   'rT  c               @   sŒ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚTestArraySetOpsc             C   s„   ddddddg}t |ddd}tt|d tƒƒ t|d tdddgdddgdƒ t|d dddgƒ t|d ddddddgƒ d S )	Nr7   r5   rv   T)Úreturn_indexÚreturn_inverser   )r8   rz   )r   r   rœ   r   r   r   )rL   ri   rM   rP   rP   rQ   Útest_unique_onlist+  s    "z"TestArraySetOps.test_unique_onlistc             C   s  t ddddddgddddddgd}t|ddd}t|d t dddd
gddddgdƒ t|d ddddgƒ t|d ddddddgƒ d|_t ddddddgddddddgdd	}t|ddd}t|d t ddddgddddgdƒ t|d ddddgƒ t|d ddddddgƒ d S )Nr7   r5   rv   r   )r8   T)rb  rc  rz   )ri   r8   Ú
fill_valuer©   r©   )r   r   r   re  )rL   ri   rM   rP   rP   rQ   Útest_unique_onmaskedarray4  s    $&&z)TestArraySetOps.test_unique_onmaskedarrayc             C   s¦   t dddgdd}t|ddd}t|d t dgdgdƒ t|d dgƒ t|d dddgƒ t}t|ddd}t|d t tƒƒ t|d dgƒ t|d dgƒ d S )Nr7   T)r8   )rb  rc  r   r5   )r   r   r   r
   )rL   ri   rM   rP   rP   rQ   Útest_unique_allmaskedD  s    z%TestArraySetOps.test_unique_allmaskedc             C   sr   t tjdƒdddddgd}tddddgddddgd}t|ƒ}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ d S )Nrz   r7   r   )r8   r“   )r   rK   r	   r   r#   r   rí   r8   )rL   r   rN   rM   rP   rP   rQ   Útest_ediff1dS  s    
zTestArraySetOps.test_ediff1dc          	   C   sâ   t tjdƒdddddgd}t|td}tdddddgdddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ t|dddgd}tdddddddgdddddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ d S )	Nrz   r7   r   )r8   )Úto_beginr“   r5   rv   )	r   rK   r	   r#   r
   r   r   rí   r8   )rL   r   rM   rN   rP   rP   rQ   Útest_ediff1d_tobegin\  s     
(
z$TestArraySetOps.test_ediff1d_tobeginc          	   C   sâ   t tjdƒdddddgd}t|td}tdddddgdddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ t|dddgd}tdddddddgdddddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ d S )	Nrz   r7   r   )r8   )Úto_endr“   r5   rv   )	r   rK   r	   r#   r
   r   r   rí   r8   )rL   r   rM   rN   rP   rP   rQ   Útest_ediff1d_toendk  s     
(
z"TestArraySetOps.test_ediff1d_toendc          
   C   sî   t tjdƒdddddgd}t|ttd}tddddddgddddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ t|dddgtd}tddddddddgddddddddgd}t||ƒ t|jdƒ|jdƒƒ t|j|jƒ d S )	Nrz   r7   r   )r8   )rk  ri  r“   r5   rv   )	r   rK   r	   r#   r
   r   r   rí   r8   )rL   r   rM   rN   rP   rP   rQ   Útest_ediff1d_tobegin_toendz  s    $

z*TestArraySetOps.test_ediff1d_tobegin_toendc             C   sÒ   t jdƒ}t|ƒ}tddddgddddgd}t||ƒ tt|tƒƒ t|jdƒ|jdƒƒ t|j	|j	ƒ t|t
t
d}tddddddgddddddgd}tt|tƒƒ t|jdƒ|jdƒƒ t|j	|j	ƒ d S )Nrz   r7   r   )r8   )rk  ri  )rK   r	   r#   r   r   r   rœ   r   rí   r8   r
   )rL   r   rM   rN   rP   rP   rQ   Útest_ediff1d_ndarrayŠ  s    

$z$TestArraySetOps.test_ediff1d_ndarrayc             C   sh   t ddddgddddgd}t ddddgddddgd}t||ƒ}t dddgdddgd}t||ƒ d S )Nr7   rv   r   )r8   r©   )r   r!   r   )rL   r   rŽ   rM   rN   rP   rP   rQ   Útest_intersect1dš  s
    
z TestArraySetOps.test_intersect1dc             C   s€  t dddddgdddddgd}t ddddddgddddddgd}t||ƒ}t|t dddgƒƒ t dddddgdddddgd}dddddg}t||ƒ}t|t ddddgddddgdƒ t dddgƒ}t d	ddgƒ}t||ƒ}tt|tƒƒ t|dddddd	gƒ t dd
ddgddddgd}t d	ddd
gddddgd}t||ƒ}tt|tƒƒ t|dddddd	gƒ tg tg g ƒƒ d S )Nr7   r5   rz   re   r   )r8   rv   r“   rs   rt   r©   r©   r©   r©   )r   r   r   r   rœ   r   r   )rL   r9   r:   rM   rP   rP   rQ   Útest_setxor1d¢  s&     $
 
"

zTestArraySetOps.test_setxor1dc             C   sÚ   t jdƒjdddgƒ}t jdddgƒ}d|d< t||d}tddd	d
dddddg	dddddddddg	d}tdtd}d|d< d|d< d|d< t||ƒ}tt|t	ƒƒ t
||ƒ t j|||j  ƒ|j @ }t
||ƒ d S )Nr¨   r5   rv   r“   r7   r   )r8   r^   rÎ   rÐ   rÅ   r­   rÓ   )ri   r8   )r6   T)r7   r5   r   )r5   rv   r“   )r   r   r   )r   r   r7   )r   r5   rv   )rK   r	   r…   r   r   r|   r0   r   rœ   r   r   r8   )rL   r9   r8   r:   ZecrS   rž   rP   rP   rQ   Ú	test_isin¼  s    

zTestArraySetOps.test_isinc             C   sÌ   t dddddgdddddgd}t ddddddgddddddgd}t||ƒ}t|d	d	d	d
d	gƒ t dddddgdddddgd}t dddgdddgd}t||ƒ}t|d	d	d
d	d	gƒ tg tg g ƒƒ d S )Nr7   r5   rz   re   r   )r8   rv   r“   TFr©   r©   r©   r©   )r   r"   r   r   )rL   r9   r:   rM   rP   rP   rQ   Ú	test_in1dÑ  s     $
 
zTestArraySetOps.test_in1dc             C   sÔ   t dddddgdddddgd}t ddddddgddddddgd}ttjt||ƒƒt||d	d
ƒ t dddddgdddddgd}t dddgdddgd}ttjt||ƒƒt||d	d
ƒ tg tg g d	d
ƒ d S )Nr7   r5   rz   re   r   )r8   rv   r“   T)Úinvertr©   r©   r©   r©   )r   r   rK   rs  r"   r   )rL   r9   r:   rP   rP   rQ   Útest_in1d_invertß  s     $   z TestArraySetOps.test_in1d_invertc       	   	   C   s  t dddddd	gddddddgd}t dddddd
gddddddgd}t||ƒ}t dddddddgdddddddgd}t||ƒ t dddgdddggdddgdddggd}t dddddgdddddgd}t ddddddgddddddgd}t||ƒ}t||ƒ tg tg g ƒƒ d S )Nr7   r5   rz   re   r   )r8   rv   r“   r©   r©   r©   )r   r    r   r   )	rL   r9   r:   rM   rN   r   rŽ   Zezr‘   rP   rP   rQ   Útest_union1dë  s    $$
(
, $

zTestArraySetOps.test_union1dc          
   C   sº   t ddddddddgddddddddgd}t ddd	d	dddgƒ}t||ƒ}t|t dddgdddg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 )Nrs   rz   r“   re   r7   r5   r   )r8   rv   r^   rt   ru   r©   )r   r   r   r	   rK   Zuint32r6   )rL   r9   r:   rM   rP   rP   rQ   Útest_setdiff1dý  s    ,
zTestArraySetOps.test_setdiff1dc             C   s<   t jdddgƒ}t jdddgƒ}tt||ƒt jdgƒƒ d S )Nr9   r:   rS   rp   )rK   r   r   r   )rL   r9   r:   rP   rP   rQ   Útest_setdiff1d_char_array
  s    z)TestArraySetOps.test_setdiff1d_char_arrayN)r~   r   r€   rd  rf  rg  rh  rj  rl  rm  rn  ro  rp  rq  rr  rt  ru  rv  rw  rP   rP   rP   rQ   ra  )  s    		ra  c               @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestShapeBasec             C   sr   t dddgdddg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   r7   r5   )r8   rv   )r7   rv   )rv   )r   r   r   r   r8   ri   )rL   r9   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ƒ}x8|D ]0}t|jdƒ t|jj|jƒ t|jj|jƒ qDW tdƒ}t|jdƒ t|jj|jƒ t|jj|jƒ tddƒ}x8|D ]0}t|jdƒ t|jj|jƒ t|jj|jƒ q¼W tdƒ}t|jdƒ t|jj|jƒ t|jj|jƒ tddƒ}x:|D ]2}t|jd	ƒ t|jj|jƒ t|jj|jƒ q4W tdƒ}t|jd
ƒ t|jj|jjƒ d S )Ng      ð?r7   g       @)r7   )r7   )r7   r7   )r7   r7   )r7   r7   r7   )r7   r7   r7   )r7   r7   )r   r   r   r8   ri   r   r   r1   )rL   r:   r9   rP   rP   rQ   Útest_shape_scalar  s<    





zTestShapeBase.test_shape_scalarN)r~   r   r€   ry  rz  rP   rP   rP   rQ   rx    s   
rx  c               @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	TestStackc             C   sì   t dddgdddgd}t dddgdddg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   r7   r5   )r8   ru   rt   re   )r‚   rv   )r5   rv   )rv   r5   )r   r2   r   r   r   r8   r3   ri   )rL   r9   r:   rS   rž   rP   rP   rQ   Útest_stack_1dK  s    zTestStack.test_stack_1dc             C   sà   t dddgdd}t dd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   r7   r5   T)r8   ru   rt   re   F)r‚   rv   )r5   rv   )rv   r5   )r   r2   r   r   r   r8   r3   ri   )rL   r9   r:   rS   rž   rP   rP   rQ   Útest_stack_masks]  s    zTestStack.test_stack_masksc       
      C   sô  d}t jjdd|ƒ}t jjdd|ƒ}t jjdd|ƒjtƒ}t jjdd|ƒj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jdd|ƒ}t jjdd|ƒ}t jjdd|ƒjtƒ}t jjdd|ƒj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 )Nrv   r5   r   r^   )r8   )r‚   r7   .r“   rz   )rv   r5   )r5   r©   )r5   ).r   ).r7   )rv   r5   r“   rz   )r5   r©   )r5   ).r   ).r7   )rK   r¡   Úrandintrß   r|   r   r2   r   r   r   r8   )
rL   ZshpZd1Zd2r   r   Za1rà   rS   Zc_shprP   rP   rQ   Útest_stack_ndo  sD    zTestStack.test_stack_ndN)r~   r   r€   r|  r}  r  rP   rP   rP   rQ   r{  I  s   r{  )JÚ__doc__r9  r
  rô   Z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   r?  rL  rT  ra  rx  r{  rP   rP   rP   rQ   Ú<module>	   s:   4Œ
  ,F    }Ck: i8