B
    G0d                @   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 )#zTests 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   )maskr6   abf)namesformats)r   r   )r7   r7   )r5   r5   )r9   r;   )bar;   )bbr;   )r7   )r7   r7   )r.   floatr   r   npr6   )selftestcontroldt rF   L/var/www/html/venv/lib/python3.7/site-packages/numpy/ma/tests/test_extras.pytest_masked_all%   s0    




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)r7   r7   )r7   r7   rF   )rA   r6   objectmar.   r   typecorer   lenr   _fill_value)rB   my_dtype
masked_arrrF   rF   rG   "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:   )r7   r7   )r7   r7   rF   )rA   r6   rJ   rK   r.   r   rL   rM   r   rN   r   rO   )rB   rP   rQ   rF   rF   rG   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 )Nr7   r5   )r6   )r8   r6   r9   r:   r;   )r<   r=   )r   r   )r7   r7   )
   rT   )r9   r;   )r>   r;   )r?   r;   )r7   )r7   r7   )r   r@   r/   r   rA   r6   )rB   baserC   rD   rE   rF   rF   rG   test_masked_all_likeY   s    

z TestGeneric.test_masked_all_likec       	      C   s   xt ddD ]}xt d| D ]}tj|td}tj||td}td| }|d| @ dk|_d}x"||D ]}||j|  7 }qlW |t	krt
|  | q|j |_t
|  | qW qW d S )Nr7      r5   )r6   r   )rangerA   r	   intfullr   r8   datasumr*   r   
compressed)	rB   r;   ijkjar9   sslrF   rF   rG   check_clumpm   s    
zTestGeneric.check_clumpc             C   s^   t td}t|ddddddg< t|}tddtdd	tddg}t|| | t d S )
NrT   r   r7   r5         	      rW   )r   rA   r	   r
   r)   slicer   rd   )rB   r9   rC   rD   rF   rF   rG   test_clump_masked}   s    
zTestGeneric.test_clump_maskedc             C   sV   t td}t|ddddddg< t|}tddtd	dg}t|| | t d S )
NrT   r   r7   r5   re   rf   rg   rh   rW   )r   rA   r	   r
   r*   ri   r   rd   )rB   r9   rC   rD   rF   rF   rG   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 )	NrT   r   )r6   rh   rf      re   rg   )
r	   r+   r   ri   sizerA   r   boolr8   r
   )rB   r9   rC   rF   rF   rG   test_flatnotmasked_contiguous   s    z)TestGeneric.test_flatnotmasked_contiguousN)__name__
__module____qualname__rH   rR   rS   rV   rd   rj   rk   ro   rF   rF   rF   rG   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 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}|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)ru   returnedg      @r5   r7   )rt   rv   )r   r   r   r   r
   r8   reshape)rB   ZottresultwtsrF   rF   rG   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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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   re   )r6   )rt   g      @)rt   ru   g       @g      @g      (@)ru   g
@g        g      ?g      @g      $@Tg     X@g      @g      @)r	   rA   Zfloat_r   r   r   addreducer   r   r   r8   r   )rB   w1w2xym1m2Zm3Zm4Zm5zrF   rF   rG   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 )Nre   rh   r7   T)rt   rv   )r5   r5   rh   r   )rt   ru   rv   )rv   )ru   rv   r5      F)rt   g      ?g      @g      ?g@g      ?g      @)r	   r   r   r   r   r   r@   r   )rB   r9   r:   r1r}   r2r~   Za2dZa2dmZa2daZa2dmarF   rF   rG   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      ?rh   r   FT)r8   )r   r   r   )rB   r9   rF   rF   rG   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 | }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 dddddgdddddg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 )Nr   r7   )r6   y      ?       @y      @      @y      @      @y      @       @y              "@y              ?y       @      @y      @      @y      @      @)r8   )rt   g      ?g      ?g       @)ru   )ru   rt   )	rA   r   rn   r   r   r]   r   realimag)rB   r8   r9   avexpectedZav0Z	expected0Zav1Z	expected1ry   ZwavZwav0Zwav1rF   rF   rG   test_complex   sB      zTestAverage.test_complexc             C   s   t jjt ddddddgdddgdddggd}tdddgd	d}tdddgdddgd}t|d|d	d
}t dddg}t|| t|d|d	d
}t dddg}t|| d S )Nrg   rh   r7   r   )r8   rl         F)rt   ru   rv   g      @g     @g     @g0N@g0N@)rA   rK   r   r	   rw   r   r   r   )rB   r9   Zweights_unmaskedZweights_maskedZavg_unmaskedZexpected_unmaskedZ
avg_maskedZexpected_maskedrF   rF   rG   test_masked_weights'  s     

zTestAverage.test_masked_weightsN)	rp   rq   rr   rz   r   r   r   r   r   rF   rF   rF   rG   rs      s   ",rs   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 )
N)r7   r5   rh   r   rl   re   r7   r5   rh   r   rl   re   r   )r8   )	r   r   r   r   r   r   
isinstancer   r8   )rB   r:   mdrI   rF   rF   rG   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 )Nrl   r   )r8   1)rl   rT   )rT   rl   )rA   randomrandZround_r   r   r   r   r   r8   Zr_)rB   Za_1Za_2Zm_1Zm_2Zb_1Zb_2r   rF   rF   rG   test_2dG  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   rA   rK   r
   r   r8   r[   )rB   actualrF   rF   rG   test_masked_constant[  s    z%TestConcatenator.test_masked_constantN)rp   rq   rr   r   r   r   rF   rF   rF   rG   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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   rl   r   r7   )r8      )r   r   r7   r   r   )r   r7   r5   rh   r   )rh   rh   rh   r   r   )r   r   r5   r   rh   )r   r5   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r7   r7   r5   r   r   )r   r7   r5   r   )r   r   r5   rh   )r   r5   r   r   )r   rA   r	   rw   r-   r   r[   r
   )rB   r[   rC   rF   rF   rG   
test_edgesh  s:    




zTestNotMasked.test_edgesc             C   sP  t td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   rh   rf   r   r7   )r8   r            r5   re   rW   )r   rA   r	   rw   r,   r   ri   )rB   r9   tmprF   rF   rG   test_contiguous  s0    




zTestNotMasked.test_contiguousN)rp   rq   rr   r   r   rF   rF   rF   rG   r   e  s   "r   c               @   s~   e Zd Zdd Zdd Zdd Zejddd	d
g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	|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/d0d1d2gd3d4d5d6d7gd8d9d: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|d=}t|d>}t|d?}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.d0d1d2gd@dAdBdCgd3d5d6d7gd8d: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|dD}t|dE}t|dF}t	|| t	|| t	|| t|dG}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|dH}t	|| t|dI}t	|d	d
ddgddddgddddggd.d0d1d2gd3d5d6d7gd8d:d;d<ggddddgddddgddddggg t|dJ}t|dK}t|dL}t	|| t	|| t	|| t|dM}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|dN}t	|| d S )ON<   rh   r   rl   )rh   r   rl   T)r7   r7   r7   )r8   r   r5   rT                        (   *   +   ,   2   4   5   6   7   9   :   ;   r7   re   rW   rf   rg      r   )   -   .   /   0   1   3   8         r   r   r      r       !   "   #   $   %   &   '   )r7   r   )r   r      r      )r5   r   )r   )r   r7   )r   r   )r7   r5   )r   r5   )r7   r   )r   r   )r   r5   )r   r   )
rA   r   listrX   rw   r   astypern   r&   r   )rB   r   r   r9   a2a3Za4rF   rF   rG   test_compress_nd  s    















































z&TestCompressFunctions.test_compress_ndc             C   s  t td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 )Nrg   rh   r7   r   )r8   r   rl   rW   rf   re   r5   )r   rA   r	   rw   r   r'   _datarm   )rB   r   rF   rF   rG   test_compress_rowcols  s"      "& "&&z+TestCompressFunctions.test_compress_rowcolsc             C   s  t td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|	 t
k tt|d	 t
k tt|d	 t
k tt|j	  tt|dj	  tt|dj	  d S )Nrg   rh   r7   r   )r8   )r   rA   r	   rw   r   r(   r8   r   r   allr
   )rB   r   rF   rF   rG   test_mask_rowcols1  s:     
&
&
&z'TestCompressFunctions.test_mask_rowcolsrt   Nr   r7   funcrowcols_axisc          	   C   sf   t td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 )Nrg   rh   r7   r   )r8   )rt   )r   rA   r	   rw   r   DeprecationWarningr   r(   )rB   rt   r   r   r   resrF   rF   rG   #test_mask_row_cols_axis_deprecationQ  s
     
z9TestCompressFunctions.test_mask_row_cols_axis_deprecationc             C   s   t dd}ddddddg}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dddgdddgdddgg t||d	d}t|t |d|d t||d	d}t|t |d|d ddddddg}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dddgdddgdddgg t||d	d}t|t |d|d t|t|| t||d	d}t|t |d|d ddddddg}t||ddd}t||ddd}t||}t|jt t||}t|jt t|ddddddgddd}t|ddddddg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dddgdddgdddgg t||d	d}t|t |d|d t|ddddddgddd}t|ddddddg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dddgdddgdddgg t||d	d}t|t |d|d t|ddddddgddd}t|ddddddg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dddgdddgdddgg t||d	d}t|t |d|d d S )
Nr7   rW   r   )r8   r5   rh   T)strictF)	rA   r	   r   rw   r   r   r8   filledr   )rB   nr   r9   r:   rI   rF   rF   rG   test_dot]  sz    $$

  $  
$  $zTestCompressFunctions.test_dotc             C   sn   t d}t|}ttt||tk ttt||tk ttt||tk ttt||tk d S )Nrh   )rA   eyer   r   rL   r   r   )rB   r9   r:   rF   rF   rG   test_dot_returns_maskedarray  s    
z2TestCompressFunctions.test_dot_returns_maskedarrayc             C   sD   t td}t td}t|||d}t||k t|| d S )Nrh   )rh   rh   )out)r   rA   r   r   r   r   r   )rB   r9   r   r   rF   rF   rG   test_dot_out  s
    z"TestCompressFunctions.test_dot_out)rp   rq   rr   r   r   r   pytestmarkZparametrizerA   rK   Z	mask_rowsZ	mask_colsr   r   r   r   rF   rF   rF   rG   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 )
Ng      (@r5   rh   c             S   s   | d S )Nr7   rF   )r:   rF   rF   rG   myfunc  s    z*TestApplyAlongAxis.test_3d.<locals>.myfuncr7   r   rW   rT   )r	   rw   r%   r   )rB   r9   r   xarF   rF   rG   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   r5   rh   r   c             S   s   | d|  S )Nr7   rF   )r:   offsetrF   rF   rG   r     s    z1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr7   )r   rl   rf   r   )r   )r	   rw   r%   r   )rB   r9   r   r   rF   rF   rG   test_3d_kwargs  s    
z!TestApplyAlongAxis.test_3d_kwargsN)rp   rq   rr   r   r   rF   rF   rF   rG   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   r5   rh   r   r   r   \   |   r   r   )
r	   rw   r$   rA   r\   r   r   r
   r   rn   )rB   r9   rC   ZctrlrF   rF   rG   
test_basic  s    
zTestApplyOverAxes.test_basicN)rp   rq   rr   r   rF   rF   rF   rG   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   )rt   )rA   rK   r   infr   )rB   rrF   rF   rG   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   )rt   T)r8   )rA   rK   r   r   r   r   r8   )rB   r   rF   rF   rG   test_inf  s    zTestMedian.test_infc             C   sl  t d}tt j|d ttt j|tk	 td}tt j|d ttt j|tk	 d}tt j|d ttt j|tk	 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k	 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k	 d S )Nrg   g      @rf   g      @rl   g      @H   r   )rt   r7   g      R@)
rA   r	   r   rK   r   r   rL   r   rX   rw   )rB   r   rF   rF   rG   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	k	 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	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.medianrf   r   r   r7   )r8   g      ?rF   zshape mismatchrT   r5   rl   re   g      @r   T)rt   overwrite_inputg       @g      @)r5   N)r   rA   r	   r   rK   r   r   r   rL   r   rw   )rB   r   Zma_xrF   rF   rG   test_docstring_examples  s    "*z"TestMedian.test_docstring_examplesc             C   s  d}xt dD ]}xdD ]}td||d}tt | |ddg}xP|D ]H\}}ytjj|||d W qJ tk
r   t|||||f Y qJX qJW t|d  |gddg}xR|D ]J\}}ytjj|||d W n tj	k
r   Y qX t|||||f qW qW qW d S )	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %srl   )FTr7   )ndminr8   FT)rt   r   )
rX   r   	itertoolsproductrA   rK   r   	ExceptionAssertionErrorZ	AxisError)rB   msgr   r8   r   argsrt   ZoverrF   rF   rG   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 )Nr7   F)r8   T)r   r   rA   rK   r   r
   )rB   r   rF   rF   rG   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k t tddd}ttj|d ttj|jdd tt	tj|tk	 t tddd	dddgd}ttj|d
 ttj|jdd tt	tj|tk	 t tddd	d	d	d	gd}ttj|d ttj|jdd tt	tj|tk	 t tddd	d	ddgd}ttj|d ttj|jdd tt	tj|tk	 t tddd	d	ddgd}ttj|d ttj|jdd tt	tj|tk	 t tddd	d	d	d	dgd}ttj|d
 ttj|jdd tt	tj|tk	 t tddd	d	d	d	dgd}ttj|d
 ttj|jdd tt	tj|tk	 d S )Nrl   T)r8   rF   zshape mismatchFg       @r   r7   g      @g        g      @g      @re   g      @)r   rA   r	   r   rK   r   r
   r   r   rL   rM   ZMaskedConstantr   )rB   r   rF   rF   rG   test_masked_1d1  s@    zTestMedian.test_masked_1dc          	   C   sJ   t tjtdddgdddgdjtjtdddgdddgdj d S )Nr7   r5   rh   r   )r8   )r   rA   rK   r   r   r   )rB   rF   rF   rG   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|}x2td|D ]$}tj	
| || |d d |f< qzW tt|d d df d tt|d tt|dd	t| tt|jdd	t| d S )
N)e   r   g      g      ?rT   i)r6   r   r7   )rt   )r   rA   Zlinspacer
   emptyr@   r	   rN   rX   r   shuffler   r   r   T)rB   r   pr   r   idxr^   rF   rF   rG   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
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   rT   rh   g      -@r   )rt   g      +@g      /@r7   r   r   r   )r   rA   r	   rw   r
   r   r   r   rL   rK   r   r8   )rB   r   rF   rF   rG   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   rh   r   r5   r   r   rg   re   r   r   )r   rh   r5   c   rT   r   r   r   rl   rf   r   r   )rA   rK   r	   rw   r
   r   r   r   )rB   r   rF   rF   rG   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   rT   rh   r  r   )rt   r7   )r   rA   r	   rw   r
   r   r   )rB   r   rF   rF   rG   test_neg_axis  s    zTestMedian.test_neg_axisc             C   s   xdD ]~}t t|}t |d d< |dd < t td}t||d}|dkr^t|d n
t|d t||k tt|t	k qW d S )	N)r   g      >@r   g      ?@rh   r  rF   )r   r   g      -@g      .@)
r   rA   r	   r
   r   r   r   r   rL   r   )rB   vr   r   r   rF   rF   rG   test_out_1d  s    

zTestMedian.test_out_1dc             C   s  xdD ]}t t|dd}t |d d< |dd < t td}t|d|d}|dkrt 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 )N)r   g      D@r   g      >@rT   r   rh   r  r7   )rt   r   r   g        r   r   r   TFr   )r8   g      +@g     1@g     5@g     9@)r   rA   r	   rw   r
   r   r   r   r   rL   r   )rB   r  r   r   r   erF   rF   rG   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 )Ng      ?g        g      @r   )rt   )rA   rK   Zmasked_equalr   r   )rB   r[   rQ   r   rF   rF   rG   $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dt jdgdddg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W t 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 )NFre   )r6   r7   rh   r5   )rt   r   r   g      ?)rA   r   rn   rK   r   nanr8   r   r   isscalarr   Zravelr   rL   r   r
   )rB   r8   dmr   rF   rF   rG   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   )rh   r   )r5   r7   )r5   r5   r   )r   )rh   r7   rF   )	rA   rK   r   r   r   r  r
   r   r   )rB   or   rF   rF   rG   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   )r6   rh   r5   r   )rt   r   r7   )r7   r5   rh   )r7   r7   r5   )r5   rh   )r7   r5   )r7   rh   )r   r5   )rA   rK   r   r	   r@   r
   r  r   r   rw   rm   r8   copyr   r  r   )rB   r9   Zaorigr:   rF   rF   rG   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|d d S )	Nrh      )r6   )r8   r7   )rt   Fr   )rA   r   Zuint8rK   r   r   r   r8   )rB   r9   rF   rF   rG   test_ambigous_fill  s     zTestMedian.test_ambigous_fillc             C   s  xt jt j g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 xtddD ]}xt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|   qpW q`W qW d S )N)r8   r   )rt   r7   FrW   iirl   r   )r6   g      @g      @g      @g      @g      $g      "g      g      rT   r5   )rA   r   r   r  rK   r   isnanr   r   r   r8   Zfloat32rX   )rB   r   r9   r^   r_   rF   rF   rG   test_special  sF    "

  "zTestMedian.test_specialc          	   C   st  t jt jg td}t 8}|t tt j	|t j
 t|jd jtk W d Q R X t jt jg tdd}t F}|t tddt tt j	|t j
 t|jd jtk W d Q R X t jt jg tdd}tt jj	|dd| tt jj	|d	d| t jt jt j
tdd}tjd
d<}tddt tt jj	|dd| t|d jtk W d Q R X d S )N)r6   r   rh   )r6   r   always r5   )rt   r7   T)record)rA   rK   r   r   r@   r   r&  RuntimeWarningr   r   r  r   logcategorywarningsfilterwarningsr   catch_warnings)rB   r9   wr:   rF   rF   rG   
test_empty.  s&    

zTestMedian.test_emptyc             C   sX   t jt d}ttt j|tt	 t j
|d< ttt j|tt	 d S )Ng      @r5   )rA   rK   r   r	   r   rL   r   r   rJ   r@   r  )rB   r  rF   rF   rG   test_objectK  s    
zTestMedian.test_objectN)rp   rq   rr   r   r   r   r   r  r  r  r  r   r  r   r  r  r  r  r  r  r  r!  r#  r.  r/  rF   rF   rF   rG   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   rA   r   r   r[   )rB   rF   rF   rG   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)r2  bias)r[   r   rA   r   )rB   r   rF   rF   rG   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 )Nrh   r   F)r2  T)r2  r3  )r[   rw   r   rA   r   )rB   r   rF   rF   rG   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 yt|dd W n tk
r   Y nX |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   F)r2  T)r2  r3  )allow_maskedr7   )r[   r
   meanr]   r   rA   r   
ValueError)rB   r   nxrF   rF   rG   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   rh   r   r7   r   g      ?T)r3  F)r2  )r2  r3  )r[   r
   rw   rA   Zlogical_notr   r   rY   r   r  r7  r   r   r   r   )rB   r   ZvalidfracZxfrF   rF   rG   test_2d_with_missing  s      "&zTestCov.test_2d_with_missingN)rp   rq   rr   r1  r4  r5  r:  r<  rF   rF   rF   rG   r0  R  s
   r0  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 )Nr   )r   rA   r   r   r[   data2)rB   rF   rF   rG   r1    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 Q R X d S )Nr$  r   )ddofzbias and ddof have no effectr   rh   )r[   r>  rA   r   r   r*  simplefilterr   r   filterr   )rB   r   r   r   Z	expected2suprF   rF   rG   	test_ddof  s    

zTestCorrcoef.test_ddofc          	   C   s   | j | j }}t|}t b}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 Q R X d S )Nr$  TF)r3  zbias and ddof have no effectr7   )r[   r>  rA   r   r   r*  r@  r   r   rA  r   )rB   r   r   r   rB  rF   rF   rG   	test_bias  s    

zTestCorrcoef.test_biasc          	   C   sx   | j }tt|t| ttj|ddt|dd t 2}|td ttj|dddt|ddd W d Q R X d S )NF)r2  zbias and ddof have no effectT)r2  r3  )r[   r   rA   r   r   rA  r   )rB   r   rB  rF   rF   rG   r4    s    z$TestCorrcoef.test_1d_without_missingc          	   C   s   | j dd}tt|t| ttj|ddt|dd t 2}|td ttj|dddt|ddd W d Q R X d S )Nrh   r   F)r2  zbias and ddof have no effectT)r2  r3  )r[   rw   r   rA   r   r   rA  r   )rB   r   rB  rF   rF   rG   r5    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 2}|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||d d d t||d d d  ttj||d d d ddt||d d d dd t r}|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 Q R X d S )Nr   F)r2  zbias and ddof have no effectT)r2  r3  )r6  r7   )r3  r5   )r?  )r[   r
   r7  r]   r   rA   r   r   rA  r   r8  )rB   r   r9  rB  rF   rF   rG   r:    s2    ,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 Q R X d S )	Nr   rh   r   zbias and ddof have no effectr   )r?  r7   )r3  )	r[   r
   rw   r   rA   r   r   rA  r   )rB   r   rC   rD   rB  rF   rF   rG   r<    s    
*z!TestCorrcoef.test_2d_with_missingN)
rp   rq   rr   r1  rC  rD  r4  r5  r:  r<  rF   rF   rF   rG   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
\}}	}
}}x4t
|||||f||	|
||fD ]\}}t|| qW 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|| qW t jdd }| }|dd }|dd }|dd }t||dd	|d\}}}}}t j||dd	|d\}}	}
}}t|| x6t
|||||f||	|
||fD ]\}}t|| qW d S )NrT   r   r   r5   rh   r   )r   r   )r   r   T)rZ   r7   )rZ   r-  )rA   r   r   rw   r   r   viewr   r
   r]   zipr  r   )rB   r   r   CRKSDrI   r   r`   rb   r   r9   a_r-  ZwoZxsZyswsrF   rF   rG   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	\}}	}
}}x4t	|||||f||	|
||fD ]\}}t
|| qW d S )NrT   r   r   r5   r   )r   r   rh   T)rZ   r7   )rA   r   r   rw   r  rF  r   r
   r   rG  r   )rB   r   r   rH  rI  rJ  rK  rL  rI   r   r`   rb   r   r9   rM  rF   rF   rG   test_polyfit_with_masked_NaNs)  s    



4(z,TestPolynomial.test_polyfit_with_masked_NaNsN)rp   rq   rr   rO  rP  rF   rF   rF   rG   rE     s   'rE  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   rh   T)return_indexreturn_inverser   )r8   rl   )r   r   r   r   r   r   )rB   r[   rC   rF   rF   rG   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   rh   r   )r8   T)rR  rS  r   rl   )r[   r8   
fill_value)r   r   r   rU  )rB   r[   rC   rF   rF   rG   test_unique_onmaskedarrayE  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   )rR  rS  r   r5   )r   r   r   r
   )rB   r[   rC   rF   rF   rG   test_unique_allmaskedU  s    z%TestArraySetOps.test_unique_allmaskedc             C   sr   t tddddddgd}tddddgddddgd}t|}t|| t|d|d t|j|j d S )Nrl   r7   r   )r8   r   )r   rA   r	   r   r#   r   r   r8   )rB   r   rD   rC   rF   rF   rG   test_ediff1dd  s    
zTestArraySetOps.test_ediff1dc          	   C   s   t t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|d|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|d|d t|j|j d S )	Nrl   r7   r   )r8   )to_beginr   r5   rh   )	r   rA   r	   r#   r
   r   r   r   r8   )rB   r   rC   rD   rF   rF   rG   test_ediff1d_tobeginm  s     
(
z$TestArraySetOps.test_ediff1d_tobeginc          	   C   s   t t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|d|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|d|d t|j|j d S )	Nrl   r7   r   )r8   )to_endr   r5   rh   )	r   rA   r	   r#   r
   r   r   r   r8   )rB   r   rC   rD   rF   rF   rG   test_ediff1d_toend|  s     
(
z"TestArraySetOps.test_ediff1d_toendc          
   C   s   t t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|d|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|d|d t|j|j d S )	Nrl   r7   r   )r8   )r[  rY  r   r5   rh   )	r   rA   r	   r#   r
   r   r   r   r8   )rB   r   rC   rD   rF   rF   rG   test_ediff1d_tobegin_toend  s    $

z*TestArraySetOps.test_ediff1d_tobegin_toendc             C   s   t d}t|}tddddgddddgd}t|| tt|t t|d|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|d|d t|j	|j	 d S )Nrl   r7   r   )r8   )r[  rY  )rA   r	   r#   r   r   r   r   r   r   r8   r
   )rB   r   rC   rD   rF   rF   rG   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   rh   r   )r8   r   )r   r!   r   )rB   r   r   rC   rD   rF   rF   rG   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   rl   rW   r   r   )r8   rh   r   re   rf   )r   r   r   r   r   r   r   )rB   r9   r:   rC   rF   rF   rG   test_setxor1d  s&     $
 
"

zTestArraySetOps.test_setxor1dc             C   s   t ddddg}t 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 @ }t
|| d S )Nr   r5   rh   r   r7   )r7   r5   r   )r8   r   rT   r   r   r   r   r   )r[   r8   )r5   rh   r   )r6   T)r   r   r   )r   r   r7   )r   r5   rh   )rA   r	   rw   r   r   rn   r0   r   r   r   r   r8   )rB   r9   r8   r:   ecrI   r   rF   rF   rG   	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   rl   rW   r   r   )r8   rh   r   TF)r   r"   r   r   )rB   r9   r:   rC   rF   rF   rG   	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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t||t||d
d tg tg g d
d d S )Nr7   r5   rl   rW   r   r   )r8   rh   r   T)invert)r   r   rA   rd  r"   r   )rB   r9   r:   rF   rF   rG   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   rl   rW   r   r   )r8   rh   r   )r   r    r   r   )	rB   r9   r:   rC   rD   r   r   Zezr   rF   rF   rG   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 )Nre   rl   r   rW   r7   r5   r   )r8   rh   r   rT   rf   rg   )r   r   r   r	   rA   Zuint32r6   )rB   r9   r:   rC   rF   rF   rG   test_setdiff1d  s    ,
zTestArraySetOps.test_setdiff1dc             C   s<   t dddg}t dddg}tt||t dg d S )Nr9   r:   rI   rb   )rA   r   r   r   )rB   r9   r:   rF   rF   rG   test_setdiff1d_char_array  s    z)TestArraySetOps.test_setdiff1d_char_arrayN)rp   rq   rr   rT  rV  rW  rX  rZ  r\  r]  r^  r_  r`  rb  rc  re  rf  rg  rh  rF   rF   rF   rG   rQ  :  s    		rQ  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   )r7   rh   )rh   )r   r   r   r   r8   r[   )rB   r9   r:   rF   rF   rG   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 qW 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   )r   r   r   r8   r[   r   r   r1   )rB   r:   r9   rF   rF   rG   test_shape_scalar.  s<    





zTestShapeBase.test_shape_scalarN)rp   rq   rr   rj  rk  rF   rF   rF   rG   ri  "  s   
ri  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   rg   rf   rW   )rt   )r5   rh   )rh   r5   )r   r2   r   r   r   r8   r3   r[   )rB   r9   r:   rI   r   rF   rF   rG   test_stack_1d\  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   rg   rf   rW   F)rt   )r5   rh   )rh   r5   )r   r2   r   r   r   r8   r3   r[   )rB   r9   r:   rI   r   rF   rF   rG   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 )N)rh   r5   r   rT   r5   )r8   )rt   )r5   r7   r   ).r   ).r7   )rh   r5   r   rl   )rA   r   randintr   rn   r   r2   r   r   r   r8   )
rB   ZshpZd1Zd2r   r   Za1r   rI   Zc_shprF   rF   rG   test_stack_nd  sD    zTestStack.test_stack_ndN)rp   rq   rr   rm  rn  rp  rF   rF   rF   rG   rl  Z  s   rl  )J__doc__r*  r   r   numpyrA   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   rs   r   r   r   r   r   r   r0  r=  rE  rQ  ri  rl  rF   rF   rF   rG   <module>	   s:   4
  ,F    }Ck: i8