o
    Ô­j²  ã                   @   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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   úW/var/www/html/CropPilot/venv/lib/python3.10/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  g d	¢¡}d}g d
¢}g d¢}t||d�}t||d�}t  g d¢¡}t|g d¢d�}	t  |d|¡}
|j}| d¡ |||||||||	|
|f| _d S )Nç      ð?g       Àç       @ç      @ç      @ç      $Àç      $@ç      @)r`   ç        rc   r^   g      ð¿ç      Àrd   ra   rb   r]   rd   rc   )é   r   r   r   r   r   rf   r   r   r   r   r   )r   r   rf   r   r   rf   rf   r   r   r   r   rf   ©Úmask)g      à¿rd   ç      à?gš™™™™™é?©r   rf   r   r   ç@Œµx¯D)Únpr   ÚpirO   rC   Ú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 ©NrY   ©rr   rs   rY   rY   rZ   Ú<lambda>=   ó    z)TestMa.test_testBasic1d.<locals>.<lambda>c                 S   ó   | | S r   rY   r€   rY   rY   rZ   r�   >   r‚   rk   )ro   r   r#   r   rC   ÚdtypeÚsizer   r   Úlenr[   r   rp   rY   rY   rZ   Útest_testBasic1d5   s    zTestMa.test_testBasic1dr|   ©é   é   )é   é   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   r~   r   rY   r€   rY   rY   rZ   r�   Q   r‚   z)TestMa.test_testBasic2d.<locals>.<lambda>c                 S   rƒ   r   rY   r€   rY   rY   rZ   r�   R   r‚   rk   )ro   rC   r   r#   r   r…   r   r   r†   r[   r   )rq   r|   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   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 �]K}| |¡}| |¡}| |¡}| |¡}|
 |¡}
tt| | ƒƒ tt|| || ƒƒ tt|| || ƒƒ tt|| || ƒƒ tjddd�� tt|| || ƒƒ W d   ƒ n1 s©w   Y  tt|| || ƒƒ tt|| || ƒƒ tt|| || ƒƒ tjddd�� tt|| || ƒƒ W d   ƒ n1 sìw   Y  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 d   ƒ n	1 �s�w   Y  qFd S )	Nrf   rŒ   r   r‰   ))é   rˆ   )rŒ   r‹   Úignore©r   Úinvalidç      @)ro   r   r*   r   r[   Úreshaperl   ÚerrstateÚabsr	   rI   r8   r   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   Úa2dÚa2dmrY   rY   rZ   Útest_testArithmeticW   sP   





ÿÿÿ€åzTestMa.test_testArithmeticc                 C   s>   t  dg¡}tdgƒ}tt|| tƒƒ tt|| tƒƒ d S )Nrf   )rl   r   r   Ú
isinstancer   )rq   Ú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��2 ttt t|ƒ¡t|ƒƒƒ ttt t|ƒ¡t|ƒƒƒ ttt t|ƒ¡t|ƒƒƒ W d   ƒ n1 s’w   Y  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�   )ro   r   r[   rl   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   rp   rY   rY   rZ   Útest_testUfuncs1ƒ   s:   ý   (zTestMa.test_testUfuncs1c                 C   sî   t g d¢g d¢d�}tt|ƒjjtju ƒ tdt|ƒƒ tdtdƒƒ ttdt ddgd�ƒƒ | 	d¡}tt|ƒjjtju ƒ tt
t|dƒtjƒƒ tt|ƒjjtju ƒ ttdt|ƒƒƒ ttt|dƒƒtu ƒ ttddgt|dƒƒƒ d S )	N©rd   r]   r^   rc   ©rf   r   r   r   rg   rŠ   rf   r   )rŒ   rŒ   rŒ   )r   r   r   r„   Útyperl   Úintpr   r[   r“   r™   Úndarrayr   r9   )rq   Ú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   )
ro   rl   r@   r   r[   Úmaxr6   r   Úminr7   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   ÚxrÚ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 d S )Nr‰   r   ©Úaxisrf   )ro   r   r[   rl   r	   r   Ú
accumulaterJ   r   r   Úprodr>   r†   r   rp   rY   rY   rZ   Útest_testAddSumProd»   s*    & 
ÿÿ  ûzTestMa.test_testAddSumProdc                 C   sð  t  g d¢¡}t|g d¢d�}t|g d¢d�}t|ƒ}t|ƒ t|ƒ ttt  |¡t|dd�ƒƒ tt|d ƒt|d ƒu ƒ t|d |d kƒ t|d tu ƒ 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g d¢ƒƒƒ tg d¢g d¢ƒ|d d …< tt	t
|ƒtg d¢ƒƒƒ tg d¢g d¢ƒ|d d …< tt	t
|ƒtg d¢ƒƒƒ tt	|tg d¢ƒƒƒ t  d	¡d }t|dƒ}tt||ƒƒ tt	tg d¢tƒ|jƒƒ ttd|jƒƒ tg d¢tƒ}t  g d¢t¡}|d }|d }tt|ƒtƒ tt|ƒtƒ t||ƒ t|dd… jdkƒ d S )N)rf   rŒ   r‰   rŠ   rŸ   rg   )r   rf   r   rf   r   )Ú
fill_valuerf   rŒ   é   é	   éc   rŠ   rj   ©rf   rŒ   rŠ   r‰   )r   rf   rf   r   r]   rc   )r   r   r   rf   r   )rf   ÚhellorŒ   rŠ   )r   )rl   r   ÚstrÚreprr   r[   rG   r    r)   r   r   r*   r   r4   r   rh   r¯   Úobjectr   rC   )rq   Úx1Úx2Úx3Úx4Ús1Ús2rY   rY   rZ   Útest_testCIÐ   sZ   

zTestMa.test_testCIc                 C   s  g d¢}t |ƒ}t |ƒ}t||u ƒ t |dd�}t||uƒ t d¡}t||d�}t|j|uƒ tt||jƒƒ t|j|u ƒ t|dd�}t|jj|jjkƒ t||dd�}t|j|u ƒ t|d t	u ƒ d	|d< t|d t	uƒ t|j|u ƒ tt|j
dƒƒ t||d
d�}	t|	j|uƒ t|	d t	u ƒ d	|	d< t|	d t	uƒ t|	j|uƒ tt|	j
dƒƒ t|d |d�}
tt|
ƒj|d ju ƒ tdƒ}t	|d< t|dƒ}ttt||gƒ|ƒƒ ttt|ƒg d¢ƒƒ t|ddd�}tt|g d¢ƒƒ t|ddd�}tt||ƒƒ d S )N)r   r   rf   r   r   T)Úcopyr°   rg   r   ©rh   r¿   rŒ   r±   rf   r]   r‰   )é   )r   r   rf   r   r   r   rf   r   )rŒ   rŒ   rŒ   rŒ   rª   )r   r   rf   rf   rŒ   rŒ   rŠ   rŠ   )r(   r   rl   r   r   Ú_datar   Ú_maskÚ__array_interface__r)   rh   r   r„   rB   r[   r   r   rA   )rq   ÚnÚmrv   Úm3r¸   Úy1Úy1aÚy2Úy2aÚy3r»   Úy4Úy5Úy6rY   rY   rZ   Útest_testCopySize  sP   
ÿ
zTestMa.test_testCopySizec                 C   s  t dƒ}g d¢}t|ƒ}| ¡ }t||d�}t|d tu ƒ t|d tu ƒ ddg|ddg< t|j|u ƒ t|d tu ƒ t|d tuƒ tt|g d	¢ƒƒ t||d
d�}| g d¢g d¢¡ t|j|uƒ t|d tu ƒ t|d tu ƒ tt|g d¢ƒƒ d S )Nr°   )r   r   r   rf   rf   rg   rŠ   r‰   é
   é(   rf   )r   rÑ   rŒ   éÿÿÿÿrÒ   TrÀ   )r   rf   rŒ   )rÓ   éd   éÈ   )rÓ   rÔ   rÕ   r   r   )	r   r(   r¿   r   r   r)   rÃ   r[   r?   )rq   ro   rÅ   rÆ   rv   rr   rY   rY   rZ   Útest_testPut5  s$   zTestMa.test_testPutc                 C   sV  t dƒ}t|g d¢d�}tddgddgd�}t|d tuƒ t|d	 tuƒ ||dd
…< t|d tu ƒ t|d	 tuƒ tt|g d¢ƒƒ t dƒ}t|g d¢d�}|dd
… }tddgddgd�}t|d tuƒ t|d	 tuƒ ||d d …< t|d tu ƒ t|d tuƒ tt|ddgƒƒ t|d tu ƒ t|d	 tuƒ tt|g d¢ƒƒ d S )Nr°   )r   r   r   r   r   rg   rÑ   rÒ   rf   r   rŒ   rŠ   r‰   )r   rf   rÑ   rÒ   r‰   )r   r   r   r)   r[   )rq   ro   rr   ry   rs   rY   rY   rZ   Útest_testPut2K  s,   zTestMa.test_testPut2c                 C   s\   | j \}}}}}}}}}	}
}g d¢}t |¡d }t|||	ƒ ttt||dd�|	kƒƒ d S )N)rf   r   r   r   r   r   rf   r   r   rf   r   rf   r   rª   )ro   rl   r:   r?   r   r
   rK   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   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u ƒ t|d tu ƒ t|d tu ƒ t|d tu ƒ t|d tuƒ t|d tuƒ tt||ƒƒ t|t|ƒ}t|j|ju ƒ t|d tu ƒ t|d tuƒ t|d tuƒ t|d tu ƒ t|d tu ƒ t||ƒ}t|j|ju ƒ t|d tu ƒ t|d tuƒ t|d tuƒ t|d tu ƒ t|d tu ƒ tt||ƒƒ tg d¢ƒ}tg d¢ƒ}t|d< t||| ƒ}tt|g d¢ƒƒ t|d< t||| ƒ}tt|g d¢ƒƒ t|d tu ƒ t|d tuƒ t|d tu ƒ 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ƒg d¢ƒƒ tttttdƒƒddƒg d¢ƒƒ ttttttdƒƒg d¢d�ddƒj g d¢ƒƒ ttttttdƒƒg d¢d�ddƒj g d¢ƒƒ ttttttdƒƒg d¢d�dƒj g d¢ƒƒ ttttg d¢g d¢d�dƒj g d¢ƒƒ tttg d¢g d ¢ƒg d!¢ƒƒ t!d"t"j#d#�}t$|jt%ƒ}t||ƒ}tt||ƒƒ t&|| |fƒ}tt|g d¢ƒƒ t|d tu ƒ t|d tuƒ t|d tu ƒ t d$ƒ}t|d< t d$ƒd }t|d< tg d%¢g d&¢d�}| 'd¡}t|||ƒ}t|||ƒ}	tt||	ƒƒ tt(|	ƒt)u ƒ tt|	g d'¢ƒƒ t|tdƒ}tt|g d(¢ƒƒ t|dtƒ}tt|g d)¢ƒƒ d S )*Né   r‰   r°   rŽ   )rf   r   y              $@rÑ   ée   rd   .rŠ   rÁ   r   é   r±   )r]   r^   rc   r_   r`   )rf   rf   rf   r   r   rŒ   )r]   r^   rd   re   éûÿÿÿrf   )r   éÇ   rÞ   rÞ   r‰   )rÞ   rf   rŒ   rŠ   rÞ   )rf   r   r   r   r   rg   )rf   rf   rf   rf   r   )r   rf   r   r   r   )rf   rf   r   r   rf   )rf   r   rf   r   r   )rŒ   rŒ   rf   rŒ   rf   )rf   r   rf   r   rf   )rf   rf   r   r   r   )rf   rŒ   rŠ   r‰   r°   )r²   r²   rŠ   r‰   r°   )rÑ   rÑ   rÑ   )r„   r‹   )rf   rf   rf   r   r   r   )rf   r   r   r   r   r   )r   rf   rŒ   é   rÒ   é2   )r²   r²   r²   rf   rf   rf   )r²   rf   rf   r²   r²   r²   )*r   r“   Ú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   rh   r<   rl   Úfloat32rP   r   r   r   r   r9   )
rq   rr   ry   ÚcÚatestÚbtestÚctestrs   Úcmrz   rY   rY   rZ   Útest_testOddFeaturesl  sî   
 

 ÿ     ""ÿÿþÿÿþÿÿþÿÿþÿ

zTestMa.test_testOddFeaturesc                 C   sÐ   t ttg d¢g d¢ƒg d¢ƒƒ t ttg d¢g d¢ƒg d¢ƒƒ 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 )
N)rf   rŒ   rŠ   )r‰   r   r±   )rf   r   rŠ   )r‰   rŒ   r±   r°   rŒ   rŠ   r   r‰   )
r   r[   r7   r6   r   r)   rO   r$   r    r   )rq   rr   rs   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g d
¢tƒ}t|d< t|g d¢ƒ}t|d	 dkƒ t|d dkƒ t|d dkƒ d S )Né   r°   r‹   rŒ   rŠ   r‰   )rŒ   r   rf   rf   r   )Úabcrf   ÚdefrŒ   rŠ   )r   rŠ   r‰   rï   )r   rl   r)   r“   r   r[   rN   rK   r"   r   r=   r   r·   )rq   rr   rs   Ú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Œ   rf   r]   r^   )rÑ   )r   r)   r   r[   r<   Úastyperl   ræ   )rq   rs   rr   rw   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	||ƒƒ qd S )NrŽ   r‰   rÑ   rŒ   rŠ   rf   )Úprotocol)
r   r)   r“   rå   rQ   ÚHIGHEST_PROTOCOLÚdumpsÚloadsr   r[   )rq   rr   Úprotor|   rs   rY   rY   rZ   Útest_testPickle$  s   
ýzTestMa.test_testPicklec                 C   sH   t dƒ}t|d< tttƒdkƒ t|d tu ƒ tt|d dƒdƒ d S )Nr‹   rf   z--r   )r   r)   r   rµ   r   r   )rq   ÚxxrY   rY   rZ   Útest_testMasked.  s
   zTestMa.test_testMaskedc                 C   s8  t g d¢g d¢d�}ttdt|dd�ƒƒ ttdt|g d¢d�ƒƒ t|g d¢d	d
�\}}ttd|ƒƒ t|dkƒ t|d d …< tt|dd�tu ƒ t g d¢g d¢d�}| dd¡}t|d d …df< ttt|dd�ddgƒƒ tt|dd�d tu ƒ ttddgt|dd�ƒƒ t|dd	d�\}}tt|ddgƒƒ d S )Nrž   rŸ   rg   r^   r   rª   )r]   r]   r^   r]   ©ÚweightsT©rþ   Úreturnedr_   rŒ   rf   rd   ©r«   r   r]   )r   r   r[   r   r)   r“   )rq   r£   rX   ÚwtsrY   rY   rZ   Útest_testAverage16  s    zTestMa.test_testAverage1c                 C   sà  g d¢}g d¢g d¢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�g d¢ƒƒ ttt|dd�t|dd�t|dd�d gƒƒ tdƒ}g d¢}g d¢g d¢g}t	dƒ}g d¢}	tttt
||ƒdd�dƒƒ tttt
||ƒdd�dƒƒ ttt
||ƒdd�tu ƒ ttt
||	ƒdd�dƒ tttt
||ƒdd�ƒdƒ t
||ƒ}
ttt|
d ƒdƒƒ ttt|
dd�g d¢ƒƒ ttt|
dd�ddgƒƒ ttt|
d|d�g d¢ƒƒ 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 )#N)r   rf   rf   rf   rf   r   )rf   r   r   r   r   rf   r‹   r   rª   r’   )r«   rþ   r^   rc   g      (@rf   rý   g«ªªªªª
@)rd   r]   r^   rc   r_   rb   )r   r   rf   rf   r   r   )r   rf   rf   rf   rf   rf   rd   )rd   r]   ç     ÀX@r  r_   g      @r`   )rd   r]   r  r  r_   rb   rŠ   Tr  )rŒ   rŒ   rŠ   )r«   rþ   r   )r   rÿ   rŒ   r‰   ri   r]   g«ªªªªª@g      ø?r_   )r   r   r   r   r   rl   r	   r   rP   r<   r*   r)   r   r   rC   Úfloatr[   )rq   Úw1Úw2rr   rs   ru   rv   rÇ   Úm4Úm5ry   ÚaÚbÚr1Úr2r–   r—   Úa2daÚ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 )Nrf   r]   r   rg   )r   Úintr   r  r   Ú	TypeErrorÚ
ValueErrorÚbool©rq   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 d   ƒ n1 s w   Y  td| jƒ t| jƒ t| jƒ tt||ƒjƒ tt||ƒjƒ t| ¡ j|j	ju ƒ t ddd�}t| ¡ |j	kƒ t
t|ƒttƒƒ d S )Nr   rf   rg   r�   ©r   )r   rl   r”   r   rh   r6   r7   r   r„   rÂ   r   rµ   r3   )rq   rw   rr   rY   rY   rZ   Útest_testScalarArithmeticŒ  s   ÿz TestMa.test_testScalarArithmeticc              
   C   sp  t g d¢ƒ}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| 	g d¢¡|j 	g d¢¡ƒƒ 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 )N©rf   rŠ   rŒ   r   rf   rŒ   rŠ   r‰   ©rf   r   rf   )r   r   r[   ÚanyrÂ   r
   ÚargmaxÚargminr   ÚcompressÚconjr   ÚdiagonalrJ   rK   rN   )rq   r
  rÆ   rY   rY   rZ   Útest_testArrayMethods›  s    ÿ$$zTestMa.test_testArrayMethodsc                 C   s   t g d¢ƒ}t|jdƒ d S )Nr  rf   )r   r   Úndim©rq   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ƒvr| d ¡s|‘qS )Ú_)Údirr   Ú
startswith)Ú.0rÆ   rY   rY   rZ   Ú
<listcomp>±  s    ÿÿz'TestMa.test_testAPI.<locals>.<listcomp>)r   r&  rl   r¢   r  rY   rY   rZ   Útest_testAPI°  s   zTestMa.test_testAPIc                 C   sT   t g d¢ƒ}t g d¢g d¢d�}t|d jdƒ t|d jdƒ t|d jdƒ d S )Nr  r  rg   r   rY   rf   )r   r   rC   )rq   r
  r  rY   rY   rZ   Útest_testSingleElementSubscriptµ  s
   z&TestMa.test_testSingleElementSubscriptc                 C   s8   t g d¢g d¢d�}|dk}d||< t|d tu ƒ d S )Nr³   )rf   r   rf   r   rg   rŠ   r°   rŒ   )r   r   r)   )rq   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   rf   Frg   T)r*   r   rh   )rq   r
  r  rh   Úexpected_maskrY   rY   rZ   Útest_assignment_by_condition_2Ã  s   z%TestMa.test_assignment_by_condition_2N)$Ú__name__Ú
__module__Ú__qualname__r}   r‡   ÚpytestÚmarkÚ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Œ   rf   r‹   rg   )r   rm   ro   r  rY   rY   rZ   r}   Î  s   ((
ÿzTestUfuncs.setup_methodc              	   C   sì   g d¢}dD ]m}zt t|ƒ}W n ty   t t|ƒ}Y nw t tj|ƒ}| jd |j… }t ¡ �$ ||v r;tj	dd� |dv rEtj	dd� ||Ž }||Ž }W d   ƒ n1 sWw   Y  t
t| d¡| d¡|ƒƒ t
t|j|jƒƒ qd S )N)rH   Úarctanhr   r   Úarccoshr6  r&   r'   r   Útrue_divideÚfloor_divideÚ	remainderÚfmod)*rH   r&   r'   r   r   rD   r   rL   r   r   r   rE   r   rM   Úarcsinhr7  r6  r   ÚfabsÚnegativeÚfloorÚceilÚlogical_notr	   rI   r8   r   r8  r9  r:  r;  Úhypotr   r   r;   r%   r!   r$   r    Úlogical_andÚ
logical_orÚlogical_xorr�   )r‘   )r6  r&   r'   r  r   )ÚgetattrÚumathÚAttributeErrorÚfromnumericrl   r›   ro   Úninr”   Úseterrr   r[   r   Úeqmaskrh   )rq   Úf_invalid_ignoreÚfÚ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Š   )ro   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¡g d¢k ¡ ƒ t| d¡d jƒ t| d¡d jƒ d S )Nrf   é   rŠ   r‰   r°   r   )r°   r‹   rÜ   rÁ   )	r   r“   r5   r   r¥   r¦   r   r
   rh   )rq   r
  ÚamaskrY   rY   rZ   Útest_minmaxþ  s   zTestUfuncs.test_minmaxc                 C   s6   dD ]}t g d¢g d¢d�}ttt|ƒdgƒƒ qd S )Nz?bhilqpBHILQPfdgFDGO)rf   r   rŒ   r   )r   r   rf   rf   rg   r   )r   r   r[   r:   )rq   rñ   rr   rY   rY   rZ   Útest_nonzero  s   þzTestUfuncs.test_nonzeroN)r/  r0  r1  r}   rT  rU  rX  rY  rY   rY   rY   rZ   r5  Í  s    %
r5  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  g d¢¡}| dd¡}| dddd¡}t  g d¢¡}t||d�}t|| |j¡d�}t|| |j¡d�}|||||||f| _d S )N)$g     À @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   rf   r   rf   r   r   rf   r   rf   rf   r   rf   r   r   r   rf   r   rf   r   r   r   rf   rf   rf   rf   r   r   rf   r   r   r   r   rf   r   rf   r   )Údatarh   )rl   r   r“   rC   ro   )rq   rr   ÚXÚXXrÆ   ÚmxÚmXÚmXXrY   rY   rZ   r}     s   zTestArrayMethods.setup_methodc           	      C   sf   | j \}}}}}}}| ¡ }t| ¡ | ¡  ¡  ¡ ƒ tt| ¡ | ¡ t|j| ¡  dd� ƒƒ d S )Nr   rª   )	ro   r   r   ÚtraceÚ
compressedrJ   r   r[   rh   )	rq   rr   r\  r]  rÆ   r^  r_  r`  Ú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Á   )ro   Úclipr   r[   rh   rÂ   )	rq   rr   r\  r]  rÆ   r^  r_  r`  Ú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  ¡  ¡ |
|< q,t|ƒD ]}||  ¡  ¡ |	|< qAt	t
| d¡|
ƒƒ t	t
| d¡|	ƒƒ d S ©Nr   rf   )ro   rC   r   Úptprb  rl   rP   Úfloat_rå   r   r[   )rq   rr   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   rf   rÓ   rŒ   )rŒ   rŒ   rŠ   rŠ   )ro   Úswapaxesr   r[   r   rC   )
rq   rr   r\  r]  rÆ   r^  r_  r`  Ú	mXswappedÚ
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 rh  )ro   Úcumprodr   r[   rÂ   r   ©	rq   rr   r\  r]  rÆ   r^  r_  r`  ÚmXcprY   rY   rZ   Útest_cumprodI  ó
   

 zTestArrayMethods.test_cumprodc           	      C   sd   | j \}}}}}}}| d¡}tt|j| d¡ d¡ƒƒ | d¡}tt|j| d¡ d¡ƒƒ d S rh  )ro   Úcumsumr   r[   rÂ   r   rt  rY   rY   rZ   Útest_cumsumP  rw  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||
 |d d …|
f  ¡  ¡ ƒƒ ttt 	||
 ¡|d d …|
f  ¡  ¡ ƒƒ qWd S )Nrª   rŠ   r   rf   r‹   )
ro   r   r[   Úvarrb  ÚstdrC   rå   rl   rH   )rq   rr   r\  r]  rÆ   r^  r_  r`  ÚmXvar0ÚmXvar1rm  rY   rY   rZ   Útest_varstdW  s   "&ÿýzTestArrayMethods.test_varstdN)r/  r0  r1  r}   rd  rg  rn  rr  rv  ry  r~  rY   rY   rY   rZ   rZ    s    rZ  c                 C   s,   | t u r|t u S |t u r| t u S | |k ¡ S r   )r9   r
   )ru   rv   rY   rY   rZ   rL  e  s
   rL  )rR   )bÚ	functoolsr   r2  Únumpyrl   Únumpy.core.umathÚcorerG  Únumpy.core.fromnumericrI  Únumpy.testingr   r   r   Ú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   Únumpy.compatrQ   rm   r[   r\   r5  rZ  rL  rY   rY   rY   rZ   Ú<module>   s(    þ6 
     .AW