U
    b                     @   s  d dl mZ d dlZd dlm  mZ d dlm  mZ d dl	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"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZX d dlYmZZZ ej[Z[dfddZ\G d	d
 d
Z]G dd dZ^G dd dZ_dd Z`dS )    )reduceN)assert_assert_raisesassert_equal)KMaskTypeMaskedArrayabsoluteaddallallcloseallequalalltruearangearccosarcsinarctanarctan2arrayaveragechooseconcatenate	conjugatecoscoshcountdivideequalexpfilledgetmaskgreatergreater_equalinnerisMaskedArrayless
less_equalloglog10	make_maskmaskedmasked_arraymasked_equalmasked_greatermasked_greater_equalmasked_insidemasked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_optionmasked_valuesmasked_wheremaximumminimummultiplynomasknonzero	not_equalonesouterproductputravelrepeatresizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh	transposewherezeros)pickle c                 C   s,   t | |}|s(td| d|  d|  |S )NzNot eq:
z
----)r   print)vwmsgresult rY   >/tmp/pip-unpacked-wheel-_xqqh9v7/numpy/ma/tests/test_old_ma.pyeq   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-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=S )>TestMac                 C   s   t ddddtd dddddddg}t dd	ddd
dd	dddd	dg}d}ddddddddddddg}ddddddddddddg}t||d}t||d}t dd	ddg}t|ddddgd}	t |d|}
|j}|d |||||||||	|
|f| _d S )N      ?g              @      @      @g      $      $@      @        g               r   maskg            ?g?@xD)npr   pirO   rC   Zset_fill_valuedselfxya10m1m2xmymzzmxfsrY   rY   rZ   setup$   s    &"
zTestMa.setupc                 C   s   | j \}}}}}}}}}	}
}tt|  tt| tt|| t|j| t|j|j t|jtdd | tt|t	|tdd |  tt
||
 tt
t|d|
 tt
|| d S )Nc                 S   s   | | S NrY   ro   rp   rY   rY   rZ   <lambda>;       z)TestMa.test_testBasic1d.<locals>.<lambda>c                 S   s   | | S r{   rY   r|   rY   rY   rZ   r}   <   r~   ri   )rl   r   r#   r   rC   dtypesizer   r   lenr[   r   rm   rY   rY   rZ   test_testBasic1d3   s     zTestMa.test_testBasic1dc                 C   s   dD ]}| j \}}}}}}}}	}
}}||_||_||_||_||_tt|  tt| tt|| t|j| t|jtdd | tt|t|tdd |  tt	|| tt	t
|d| tt	|| |   qd S )N)      )      c                 S   s   | | S r{   rY   r|   rY   rY   rZ   r}   O   r~   z)TestMa.test_testBasic2d.<locals>.<lambda>c                 S   s   | | S r{   rY   r|   rY   rY   rZ   r}   Q   r~   ri   )rl   rC   r   r#   r   r   r   r   r   r[   r   rz   )rn   ry   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rY   rY   rZ   test_testBasic2dA   s&    zTestMa.test_testBasic2dc                 C   s  | j \}}}}}}}}}	}
}tddgddgg}t|ddgddgg}tt|| ||  tt|| ||  tt|| ||  dD ]X}||}||}||}||}|
|}
tt| |  tt|| ||  tt|| ||  tt|| ||  tjddd tt|| ||  W 5 Q R X tt|| ||  tt|| ||  tt|| ||  tjddd tt|| ||  W 5 Q R X tt|| ||  tt|| ||  tt|| ||  tt|| ||  tt|d |d  ttt|d t|d  tt|| ||  ttt	||t	|| ttt
||t
|| ttt||t|| tjddd" ttt||t|| W 5 Q R X qd S )	Nre   r   r   r   ))   r   )r   r   ignorer   invalid      @)rl   r   r*   r   r[   reshaperj   errstateabsr	   rI   r8   r   )rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   a2da2dmrY   rY   rZ   test_testArithmeticW   sF    





  zTestMa.test_testArithmeticc                 C   s>   t dg}tdg}tt|| t tt|| t d S )Nre   )rj   r   r   
isinstancer   )rn   namarY   rY   rZ   test_testMixedArithmetic}   s    
zTestMa.test_testMixedArithmeticc                 C   s  | j \}}}}}}}}}	}
}ttt|t| ttt|t| ttt|t| ttt|t| ttt|t| ttt	|t	| tj
dddZ tttt|t| tttt|t| tttt|t| W 5 Q R X ttt|t| ttt|t|	 ttt|t|	 ttt|t|	 ttt||t|| ttt|t| ttt||t|| ttt||t|| ttt||t|| ttt||t|| ttt||t|| ttt||t|| ttt|t| ttt||ft||f ttt||ft||f ttt||ft||f ttt|||ft|||f d S )Nr   r   )rl   r   r[   rj   r   r   rD   rE   rL   rM   r   rH   r   r&   r'   r   r   r   r   r   r   r   r;   r$   r    r%   r!   r   r   rm   rY   rY   rZ   test_testUfuncs1   s8    &   zTestMa.test_testUfuncs1c                 C   s   t ddddgddddgd}tt|jjtjk tdt| tdtd ttdt ddgd |	d	}tt|jjtjk tt
t|dtj tt|jjtjk ttdt| ttt|dtk ttdd
gt|d d S )Nrc   r]   r^   rb   re   r   rf   r   )r   r   r   )r   r   r   r   typerj   Zintpr   r[   r   r   ndarrayr   r9   )rn   ottrY   rY   rZ   test_xtestCount   s    
zTestMa.test_xtestCountc                 C   sb   | j \}}}}}}}}}	}
}t|}t|}ttt|t| ttt|t	| d S r{   )
rl   rj   r@   r   r[   maxr6   r   minr7   )rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   ZxrZxmrrY   rY   rZ   test_testMinMax   s
    
zTestMa.test_testMinMaxc                 C   s  | j \}}}}}}}}}	}
}tttj|t| tttj|t| ttdttddd ttdttddd tttj|ddt|dd tttjt	|dddt|dd ttt|dt|d tttj
|ddt
|dd ttt
|dt
|d tttj
t	|dddt
|dd t|dkrttt||fdt||fd tttj|dt|d ttt|dt|d ttt
|dt
|d d S )Nr   r   axisre   )rl   r   r[   rj   r	   r   
accumulaterJ   r   r   r>   r   r   rm   rY   rY   rZ   test_testAddSumProd   s(     & 
 zTestMa.test_testAddSumProdc                 C   s*  t ddddg}t|ddddgd}t|ddddgd}t|}t| t| ttt |t|dd tt|d t|d k t|d |d k t|d tk tt|d |d  tt|dd |dd  tt|d d  |d d   tt|dd  |dd   d	|d< d	|d< tt|| d
|dd< d
|dd< tt|| t|d< tt|| t|dd< tt|| ||d d < t|d< tt	t
|tddddg tddddgddddg|d d < tt	t
|tddddg tddddgddddg|d d < tt	t
|tddddg tt	|tddddg t dd }t|d}tt|| tt	tdddddgt|j ttd|j tddddgt}t ddddgt}|d }|d }tt|t tt|t t|| t|dd jdk d S )Nre   r   r   r   r   rf   )
fill_value   	   c   r]   rb   Zhello)r   )rj   r   strreprr   r[   rG   r   r)   r   r   r*   r   r4   r   rg   r   objectr   rC   )rn   x1x2Zx3x4s1s2rY   rY   rZ   test_testCI   sZ    ""
 
zTestMa.test_testCIc                 C   s.  dddddg}t |}t |}t||k t |dd}t||k	 td}t||d}t|j|k	 tt||j t|j|k t|dd}t|jj|jjk t||dd}t|j|k t|d t	k d	|d< t|d t	k	 t|j|k tt|j
d t||dd}	t|	j|k	 t|	d t	k d	|	d< t|	d t	k	 t|	j|k	 tt|	j
d t|d
 |d}
tt|
j|d
 jk td}t	|d< t|d}ttt||g| ttt|ddddddddg t|ddd}tt|ddddddddg t|ddd}tt|| d S )Nr   re   T)copyr   rf   rg   r   r   r   r]   r   )   )r   r   r   r   r   r   )r(   r   rj   r   r   _datar   _maskZ__array_interface__r)   rg   r   r   rB   r[   r   r   rA   )rn   nmrs   m3r   y1Zy1ay2Zy2aZy3r   Zy4Zy5Zy6rY   rY   rZ   test_testCopySize  sP    

"zTestMa.test_testCopySizec                 C   s  t d}dddddg}t|}| }t||d}t|d tk t|d tk ddg|ddg< t|j|k t|d tk t|d tk	 tt|ddd	d
dg t||dd}|ddd	gd
ddg t|j|k	 t|d tk t|d tk tt|d
ddddg d S )Nr   r   re   rf   r   r   
   (   r   Tr   d      )	r   r(   r   r   r   r)   r   r[   r?   )rn   rl   r   r   rs   ro   rY   rY   rZ   test_testPut5  s$    zTestMa.test_testPutc                 C   sn  t d}t|dddddgd}tddgddgd}t|d tk	 t|d tk	 ||dd	< t|d tk t|d tk	 tt|ddddd	g t d}t|dddddgd}|dd	 }tddgddgd}t|d tk	 t|d tk	 ||d d < t|d tk t|d tk	 tt|ddg t|d tk t|d tk	 tt|ddddd	g d S )
Nr   r   rf   r   r   re   r   r   r   )r   r   r   r)   r[   )rn   rl   ro   rv   rp   rY   rY   rZ   test_testPut2K  s,    zTestMa.test_testPut2c                 C   sp   | j \}}}}}}}}}	}
}ddddddddddddg}t|d }t|||	 ttt||dd|	k d S )Nre   r   r   )rl   rj   r:   r?   r   r
   rK   )rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r   irY   rY   rZ   test_testMaPute  s
    zTestMa.test_testMaPutc           
   
   C   s  t d}|dd}d|jd< t|d dk |d|  }tt|j| tt|jd|  tt|t| jd| |  d	|jd
< t d}t|d< tt	|d t	tk |dk}tt
t|ttdk ttt|tt|jk t||t}t|j|jk t|d tk t|d tk t|d tk t|d tk	 t|d tk	 tt|| t|t|}t|j|jk t|d tk t|d tk	 t|d tk	 t|d tk t|d tk t||}t|j|jk t|d tk t|d tk	 t|d tk	 t|d tk t|d tk tt|| tdddddg}tdddddg}t|d< t||| }tt|ddd	ddg t|d< t||| }tt|ddd	ddg t|d tk t|d tk	 t|d tk tttt|d|t|d tttt|d|t|d tttt|d|t|d tttt|d|t|d tttt|d|t|d tttt|d|t|d tttt|d|t|d tttttddddddddg tttttddddddddg ttttttddddddgdddj dddddg ttttttddddddgdddj dddddg ttttttddddddgddj dddddg ttttdddddgdddddgddj dddddg tttdddddgdddddgdddddg t!dt"j#d}t$|jt%}t||}tt|| t&|| |f}tt|ddd	ddg t|d tk t|d tk	 t|d tk t d}t|d< t dd }t|d< tddddddgddddddgd}|'d}t|||}t|||}	tt||	 tt(|	t)k tt|	ddddd d!g t|td}tt|ddddddg t|dt}tt|ddddddg d S )"N   r   r   r   )re   r   y              $@r   e   rc   .r   r   r      r   r]   r^   rb   r_   r`   re   r   rd      rf   r   )r   r   r   )r   r      r   2   )*r   r   Zflatr   r[   realimagr   r)   r   r   rO   rC   r   r5   r   r    r,   r!   r-   r$   r/   r%   r0   r;   r1   r   r+   r.   listranger2   rg   r<   rj   float32rP   r   r   r   r   r9   )
rn   ro   rv   cZatestZbtestZctestrp   cmrw   rY   rY   rZ   test_testOddFeaturesl  s    
 

      ((   
$
zTestMa.test_testOddFeaturesc                 C   s   t ttdddgdddgdddg t ttdddgdddgdddg td}tdd }t|d< t|d< t tt||tt|||| t tt||tt|||| t t	|dk t t	|dk d S )Nre   r   r   r   r   r   r   )
r   r[   r7   r6   r   r)   rO   r$   r    r   )rn   ro   rp   rY   rY   rZ   test_testMinMax2  s    &&""zTestMa.test_testMinMax2c                 C   s&  t d}t d}t|dd< |ddd}|ddd}ttt|dt|d ttt|ddt|dd tttt	|d	t	|d	t|| ttt
t	|d	t	|d	t
|| td
ddddgt}t|d< t|d	ddg}t|d	 d
k t|d dk t|d dk d S )N   r   r   r   r   r   )r   r   re   re   r   abcdef)r   rj   r)   r   r   r[   rN   rK   r"   r   r=   r   r   )rn   ro   rp   trY   rY   rZ    test_testTakeTransposeInnerOuter  s&    
 z'TestMa.test_testTakeTransposeInnerOuterc                 C   s  t d}t d}t d}t|d< |d7 }tt||d  |d7 }tt||d  t d}t d}t|d< |d8 }tt||d  |d8 }tt||d  t dd }t dd }t|d< |d9 }tt||d  |d9 }tt||d  t dd }t d}t|d< |d }tt|| |d }tt|| t dd }t dd }t|d< |d }tt||d  |t d }tt|td t dtj}t d}t|d< |d7 }tt||d  d S )Nr   r   re   r]   r^   )r   )r   r)   r   r[   r<   Zastyperj   r   )rn   rp   ro   rt   rY   rY   rZ   test_testInplace  sR    zTestMa.test_testInplacec                 C   sb   t d}t|ddd< |dd}tdtjd D ]*}tj||d}t|}tt	|| q2d S )Nr   r   r   r   r   re   )protocol)
r   r)   r   r   rQ   HIGHEST_PROTOCOLdumpsloadsr   r[   )rn   ro   protory   rp   rY   rY   rZ   test_testPickle$  s    
zTestMa.test_testPicklec                 C   sH   t d}t|d< tttdk t|d tk tt|d dd d S )Nr   re   z--r   )r   r)   r   r   r   r   )rn   ZxxrY   rY   rZ   test_testMasked.  s
    zTestMa.test_testMaskedc              	   C   sP  t ddddgddddgd}ttdt|dd ttdt|ddddgd	 t|ddddgd
d\}}ttd| t|dk t|d d < tt|ddtk t ddddgddddgd}|dd}t|d d df< ttt|ddddg tt|ddd tk ttddgt|dd t|dd
d\}}tt|ddg d S )Nrc   r]   r^   rb   re   r   rf   r   weightsTr   returnedr_   r   r   r   )r   r   r[   r   r)   r   )rn   r   rX   ZwtsrY   rY   rZ   test_testAverage16  s     zTestMa.test_testAverage1c              	   C   s0  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tt|ddd ttt|d|dd tt ddt d g}ttt|d tjt dd d	  ttt|ddt dd d  ttt|ddt|ddt|ddd g ttt|d |d
d ttt|d|dddddddg t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t
||ddd tttt
||ddd ttt
||ddtk ttt
||	ddd tttt
||ddd t
||}
ttt|
d d ttt|
ddddddddg ttt|
ddddg ttt|
d|dddddddg 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|k tddgddggt}t
|ddgddgg}t|dd}tt|ddg t|dd}tt|ddg t|d d}tt|d t|dd}tt|ddg d S )Nr   re   r   r   r   )r   r   r^   rb   g      (@r   g
@rc   r]   r_   ra   g     X@g      @r`   r   Tr   )r   r   r   )r   r   r   )r   r   r   r   rh   g@g      ?)r   r   r   r   r   rj   r	   r   rP   r<   r*   r)   r   r   rC   floatr[   )rn   Zw1Zw2ro   rp   rr   rs   r   Zm4Zm5rv   abZr1Zr2r   r   Za2daZa2dmarY   rY   rZ   test_testAverage2I  sx     $ 
zTestMa.test_testAverage2c                 C   s   t dttd t dttd t dttdggg t dttdgg ttttddg ttttddg ttttddgddgd d S )Nre   r]   r   rf   )r   intr   r   r   	TypeError
ValueErrorboolrn   rY   rY   rZ   test_testToPython  s    zTestMa.test_testToPythonc              	   C   s   t ddd}tjdd tdt d j W 5 Q R X td| j t| j t| j tt||j tt||j t| j|j	jk t ddd}t| |j	k t
t|tt d S )Nr   re   rf   r   r   )r   rj   r   r   rg   r6   r7   r   r   r   r   r   r3   )rn   rt   ro   rY   rY   rZ   test_testScalarArithmetic  s    z TestMa.test_testScalarArithmeticc              
   C   sv  t dddg}tt| |j  tt| |j  tt| |j  tt| |j  tt|ddddd|jddddd tt|	dddg|j	dddg tt|
 |j
  tt| |j  t ddgddgg}tt| |j  tt| |j  tt|ddg|jddg tt| |j  d S )Nre   r   r   r   r   )r   r   r[   anyr   r
   ZargmaxZargminr   compressZconjr   diagonalrJ   rK   rN   )rn   r   r   rY   rY   rZ   test_testArrayMethods  s     ($zTestMa.test_testArrayMethodsc                 C   s   t dddg}t|jd d S )Nre   r   r   )r   r   ndimrn   r   rY   rY   rZ   test_testArrayAttributes  s    zTestMa.test_testArrayAttributesc                 C   s   t dd ttjD   d S )Nc                 S   s&   g | ]}|t tkr|d s|qS )_)dirr   
startswith).0r   rY   rY   rZ   
<listcomp>  s    
z'TestMa.test_testAPI.<locals>.<listcomp>)r   r   rj   r   r   rY   rY   rZ   test_testAPI  s    zTestMa.test_testAPIc                 C   sZ   t dddg}t dddgdddgd}t|d jd t|d jd t|d jd d S )Nre   r   r   r   rf   rY   )r   r   rC   )rn   r   r   rY   rY   rZ   test_testSingleElementSubscript  s
    z&TestMa.test_testSingleElementSubscriptc                 C   s@   t ddddgddddgd}|dk}d||< t|d tk d S )Nre   r   r   r   r   rf   r   )r   r   r)   )rn   r   r   rY   rY   rZ   test_assignment_by_condition  s    z#TestMa.test_assignment_by_conditionc                 C   sT   t ddgddgd}t ddgddgd}|dk }|| ||< ddg}t|j| d S )Nr   re   Frf   T)r*   r   rg   )rn   r   r   rg   Zexpected_maskrY   rY   rZ   test_assignment_by_condition_2  s    z%TestMa.test_assignment_by_condition_2N)!__name__
__module____qualname__rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  rY   rY   rY   rZ   r\   "   s<   &
23e2
:	r\   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
TestUfuncsc                 C   sZ   t dddtd gd ddgdgd  dt dddtd gd ddgdgd  df| _d S )Nr]   r   r   r   re   r   rf   )r   rk   rl   r   rY   rY   rZ   rz     s    ((zTestUfuncs.setupc                 C   s   dddddddddd	d
ddg}dD ]}zt t|}W n tk
rR   t t|}Y nX t tj|}| jd |j }t > ||krtj	dd |dkrtj	dd || }|| }W 5 Q R X t
t|d|d| t
t|j|j q"d S )NrH   arctanhr   r   arccoshr&   r'   r   true_dividefloor_divide	remainderfmod)*rH   r&   r'   r   r   rD   r   rL   r   r   r   rE   r   rM   Zarcsinhr	  r  r   fabsnegativefloorceilZlogical_notr	   rI   r8   r   r
  r  r  r  hypotr   r   r;   r%   r!   r$   r    logical_and
logical_orlogical_xorr   )r   )r  r&   r'   r   r   )getattrumathAttributeErrorfromnumericrj   r   rl   Zninr   Zseterrr   r[   r   eqmaskrg   )rn   Zf_invalid_ignorefZufZmfargsurmrrY   rY   rZ   test_testUfuncRegression  s<              
z#TestUfuncs.test_testUfuncRegressionc                 C   s\   | j d }tt|dd  tt|dd tt|d d ddd tt|ddd d S )Nr   r   r   )rl   r   r   rF   r   rJ   r>   r   rY   rY   rZ   test_reduce  s
    
zTestUfuncs.test_reducec                 C   s   t dddd}t|dk |}t| |  t| d t|d|dk  t|ddddd	gk  t|dd j t|dd j d S )
Nre      r   r   r   r   r   r   r   )	r   r   r5   r   r   r   r   r
   rg   )rn   r   ZamaskrY   rY   rZ   test_minmax  s    zTestUfuncs.test_minmaxc                 C   s>   dD ]4}t ddddgddddgd}ttt|dg qd S )Nz?bhilqpBHILQPfdgFDGOre   r   r   rf   )r   r   r[   r:   )rn   r   ro   rY   rY   rZ   test_nonzero  s    zTestUfuncs.test_nonzeroN)r  r  r  rz   r  r   r"  r#  rY   rY   rY   rZ   r    s
   %
r  c                   @   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 )TestArrayMethodsc              &   C   s  t ddddddddd	d
dddddddddddddddddddddd d!d"d#d$g$}|d%d%}|d&d'd'd&}t d(d)d(d)d(d(d)d(d)d)d(d)d(d(d(d)d(d)d(d(d(d)d)d)d)d(d(d)d(d(d(d(d)d(d)d(g$}t||d*}t|||jd*}t|||jd*}|||||||f| _d S )+Ng      @gGz.@g-!@g      !@g&1?gʡE@g\( @gQ@g{G#@gPn@gh|?!@g!rh@gjt@gJ+@gzGa@g!rh@gʡE@g-@g)\(@g(\B#@g+@guV@g~j@g"~@gK7@g
ףp=J#@gGz@gMb@g}?5^#@g/$@g!rhm@g-#@gJ+@gMb@gʡ@g-?r   r   r   r   re   )datarg   )rj   r   r   rC   rl   )rn   ro   XXXr   mxmXmXXrY   rY   rZ   rz     s                                                      zTestArrayMethods.setupc           	      C   sf   | j \}}}}}}}| }t| |    tt| | t|j|  dd  d S )Nr   r   )	rl   r   r   trace
compressedrJ   r   r[   rg   )	rn   ro   r&  r'  r   r(  r)  r*  ZmXdiagrY   rY   rZ   
test_trace&  s    
zTestArrayMethods.test_tracec           	      C   sh   | j \}}}}}}}|dd}tt|j|j tt|j|dd tt|j|jdd d S )Nr   r   )rl   Zclipr   r[   rg   r   )	rn   ro   r&  r'  r   r(  r)  r*  ZclippedrY   rY   rZ   	test_clip.  s
    zTestArrayMethods.test_clipc                 C   s   | j \}}}}}}}|j\}}t| |   t|tj}	t|tj}
t|D ] }|d d |f   |
|< qXt|D ]}||   |	|< qt	t
|d|
 t	t
|d|	 d S Nr   re   )rl   rC   r   Zptpr,  rj   rP   Zfloat_r   r   r[   )rn   ro   r&  r'  r   r(  r)  r*  r   ZrowscolskrY   rY   rZ   test_ptp5  s    
zTestArrayMethods.test_ptpc           
      C   sZ   | j \}}}}}}}|dd}tt|d |d d df  |dd}	t|	jd d S )Nr   re   r   r   )r   r   r   r   )rl   Zswapaxesr   r[   r   rC   )
rn   ro   r&  r'  r   r(  r)  r*  Z	mXswappedZ
mXXswappedrY   rY   rZ   test_swapaxesB  s
    zTestArrayMethods.test_swapaxesc           	      C   sd   | j \}}}}}}}|d}tt|j|dd |d}tt|j|dd d S r/  )rl   Zcumprodr   r[   r   r   	rn   ro   r&  r'  r   r(  r)  r*  ZmXcprY   rY   rZ   test_cumprodI  s
    

zTestArrayMethods.test_cumprodc           	      C   sd   | j \}}}}}}}|d}tt|j|dd |d}tt|j|dd d S r/  )rl   Zcumsumr   r[   r   r   r4  rY   rY   rZ   test_cumsumP  s
    

zTestArrayMethods.test_cumsumc                 C   s(  | j \}}}}}}}tt|jd d|   tt|jd d|   tt|jddj|jddj tt| j| j |jdd|jdd }}	tdD ]t}
tt|	|
 ||
    tt||
 |d d |
f    ttt	||
 |d d |
f    qd S )Nr   r   r   re   r   )
rl   r   r[   varr,  ZstdrC   r   rj   rH   )rn   ro   r&  r'  r   r(  r)  r*  ZmXvar0ZmXvar1r1  rY   rY   rZ   test_varstdW  s    "&zTestArrayMethods.test_varstdN)r  r  r  rz   r-  r.  r2  r3  r5  r6  r8  rY   rY   rY   rZ   r$    s   r$  c                 C   s,   | t kr|t kS |t kr | t kS | |k S r{   )r9   r
   )rr   rs   rY   rY   rZ   r  e  s
    r  )a	functoolsr   Znumpyrj   Znumpy.core.umathcorer  Znumpy.core.fromnumericr  Znumpy.testingr   r   r   Znumpy.mar   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   Znumpy.compatrQ   rk   r[   r\   r  r$  r  rY   rY   rY   rZ   <module>   s$    5     0AW