U
    ¸mœd¾  ã                   @   sÜ  d dl mZ d dl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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[ 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„ Zad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   úS/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/ma/tests/test_old_ma.pyÚeq   s    
r[   c                   @   s  e Zd Zdd„ Zdd„ Zej dddg¡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d0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Z d:d;„ Z!d<d=„ Z"d>d?„ Z#d@S )AÚ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_method&   s    &"
zTestMa.setup_methodc                 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_testBasic1d5   s     zTestMa.test_testBasic1dry   ©é   é   )é   é   c                 C   sØ   | 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	||ƒƒ d S )Nc                 S   s   | | S r{   rY   r|   rY   rY   rZ   r}   Q   r~   z)TestMa.test_testBasic2d.<locals>.<lambda>c                 S   s   | | S r{   rY   r|   rY   rY   rZ   r}   R   r~   ri   )rl   rC   r   r#   r   r€   r   r   r�   r[   r   )rn   ry   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rY   rY   rZ   Útest_testBasic2dC   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 qŒd 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�rÖt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   Úx1Z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ÚbÚr1Ú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‚   ÚpytestÚmarkZparametrizerˆ   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.setup_methodc                 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rŽtj	dd� |dkr¢t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ufÚ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     À @g®Gáz.@g-²�ï§!@g      !@gé&1¬ü?gƒÀÊ¡E¶@g\�Âõ(Ü @g…ëQ¸@g{®Gáº#@gP�—nƒ@gh‘í|?õ!@g!°rh‘í@gj¼t“@gJ+‡@gáz®Ga@g!°rh‘í@gÁÊ¡E¶ó@g-²�ï§@g)\�Âõ(@gÃõ(\�B#@g+‡Ù@gu“V@gÛù~j¼ô@gÑ"Ûù~ê@g¨ÆK7‰Á@g
×£p=J#@g®Gáz”@gòÒMbØ@g}?5^ºÉ#@g¾Ÿ/Ý$@g!°rh‘m@g-²�ï§#@gJ+‡@gªñÒMb@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.setup_methodc           	      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 ]}||  ¡  ¡ |	|< q‚t	t
| d¡|
ƒƒ t	t
| d¡|	ƒƒ d S ©Nr   re   )rl   rC   r   Zptpr0  rj   rP   Zfloat_rÎ   r   r[   )rn   ro   r*  r+  r¶   r,  r-  r.  rµ   Ú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 r3  )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 r3  )rl   Zcumsumr   r[   r³   r   r9  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  ¡  ¡ ƒƒ q®d S )Nr    r…   r   re   r†   )
rl   r   r[   Úvarr0  ZstdrC   rÎ   rj   rH   )rn   ro   r*  r+  r¶   r,  r-  r.  ZmXvar0ZmXvar1r6  rY   rY   rZ   Útest_varstdW  s    "&ÿzTestArrayMethods.test_varstdN)r  r  r  rz   r1  r2  r7  r8  r:  r;  r=  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  )bÚ	functoolsr   r  Ú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     .AW