U
    ¸mœdJ  ã                   @   sT  d Z ddl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 ddlZddlmZ ddlZ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ƒZ#G dd„ dƒZ$dd„ Z%dd„ Z&dd„ Z'dd„ Z(dd„ Z)dd„ Z*G d d!„ d!ƒZ+G d"d#„ d#ƒZ,G d$d%„ d%ƒZ-G d&d'„ d'ƒZ.dS )(z"Test functions for matrix module

é    )Úassert_equalÚassert_array_equalÚassert_array_max_ulpÚassert_array_almost_equalÚassert_raisesÚassert_)ÚarangeÚaddÚfliplrÚflipudÚzerosÚonesÚeyeÚarrayÚdiagÚhistogram2dÚtriÚmask_indicesÚtriu_indicesÚtriu_indices_fromÚtril_indicesÚtril_indices_fromÚvanderN)Úrequires_array_functionc                 C   s   t | ƒ}t ||¡}|S ©N)r   r	   Úouter)ÚnÚdata© r   úY/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/lib/tests/test_twodim_base.pyÚget_mat   s    r    c                   @   sT   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S )ÚTestEyec              
   C   s˜   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ƒƒ t tddd�tddddgddddgddddgddddggdƒƒ t tdƒdktdtd�ƒ d S )Né   é   r   Úf©Údtypeé   )r   r   r   Úbool©Úselfr   r   r   Ú
test_basic   s&    


ýÿ


ýýÿ
ÿzTestEye.test_basicc                 C   sj   t tt d¡td�tddgddggƒƒ t tt d¡t d¡t d¡d�tddddgddddggƒƒ d S )Né   r%   r#   r   r"   )ÚMÚk)r   r   ÚnpZuint64Úintr   r)   r   r   r   Útest_uint64/   s    ( ÿzTestEye.test_uint64c              
   C   s€   t tddd�tddddgddddgddddgddddggƒƒ t tddd�tddddgddddgddddgddddggƒƒ d S )Nr"   r#   ©r.   r   éÿÿÿÿ©r   r   r   r)   r   r   r   Ú	test_diag5   s    


ýÿ


ýÿzTestEye.test_diagc              	   C   sj   t tddƒtdddgdddgdddgdddggƒƒ t tddƒtddddgddddgddddggƒƒ d S )Nr"   r'   r#   r   r4   r)   r   r   r   Útest_2dB   s    

ýÿ


þÿzTestEye.test_2dc              	   C   sr   t tdddd�tddddgddddgddddggƒƒ t tdddd�tdddgdddgdddgdddggƒƒ d S )Nr'   r"   r,   r2   r   r#   éþÿÿÿr4   r)   r   r   r   Útest_diag2dN   s    

þÿ
ýÿzTestEye.test_diag2dc                 C   s0  t tdddƒddgddggƒ t tdddƒddgddggƒ t tdddƒddgddggƒ t tdddƒddgddggƒ t tdddƒddgddgddggƒ t tdddƒddgddgddggƒ t tdddƒddgddgddggƒ t tdddƒddgddgddggƒ t tdddƒddgddgddggƒ d S )Nr,   r#   r   r3   r7   r'   éýÿÿÿ©r   r   r)   r   r   r   Útest_eye_boundsZ   s    $$$$zTestEye.test_eye_boundsc                 C   s$   t tdddd�ddgddggƒ d S )Nr,   ZS3r%   ó   1ó    r:   r)   r   r   r   Útest_stringse   s    ÿzTestEye.test_stringsc                 C   s$   t tddtd�ddgddggƒ d S )Nr,   r%   TF)r   r   r(   r)   r   r   r   Ú	test_booli   s    zTestEye.test_boolc                 C   s\   t dddd�}t ddddd�}t||ƒ |jjs4t‚|jjr@t‚|jjrLt‚|jjsXt‚d S )Nr"   r'   r3   r2   ÚF)r.   Úorder)r   r   ÚflagsÚc_contiguousÚAssertionErrorÚf_contiguous)r*   Zmat_cZmat_fr   r   r   Ú
test_orderl   s    
zTestEye.test_orderN)Ú__name__Ú
__module__Ú__qualname__r+   r1   r5   r6   r8   r;   r>   r?   rF   r   r   r   r   r!      s   r!   c                   @   s6   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ ZdS )ÚTestDiagc                 C   s´   dt dƒ  d¡}tdƒ}tdƒD ]}|| |||f< q"tt|ƒ|ƒ tdƒ}| ¡ }tdƒD ],}|| |||d f< || ||d |f< q^tt|dd�|ƒ tt|dd�|ƒ d S )	Néd   é   Úl)rL   rL   )é   rN   r,   r2   r7   )r   Úastyper   Úranger   r   Úcopy)r*   ÚvalsÚbr.   Úcr   r   r   Útest_vectorw   s    zTestDiag.test_vectorNc                 C   sÒ   |d krdt dƒ d  d¡}tdƒ}tdƒD ]}|||f ||< q.tt|ƒ|ƒ |d }tdƒD ]}|||d f ||< qbtt|dƒ|d d… ƒ tdƒD ]}||d |f ||< qœtt|d	ƒ|d d… ƒ d S )
NrK   rL   r#   rM   )rL   r   r'   r,   r7   )r    rO   r   rP   r   r   )r*   rR   rS   r.   r   r   r   Útest_matrix…   s    zTestDiag.test_matrixc                 C   s(   t dtdƒ d ddd�}|  |¡ d S )NrK   rL   r#   r@   rM   )rA   r&   )r   r    rV   )r*   rR   r   r   r   Útest_fortran_order”   s    zTestDiag.test_fortran_orderc                 C   s’   ddgddgddgg}t t|dd�g ƒ t t|dd�dgƒ t t|dd�ddgƒ t t|d	d�ddgƒ t t|d
d�dgƒ t t|dd�g ƒ d S )Nr#   r,   r'   r"   rL   é   r2   r   r3   r7   r9   )r   r   )r*   ÚAr   r   r   Útest_diag_bounds˜   s    zTestDiag.test_diag_boundsc                 C   s   t ttdgggƒ d S )Nr#   )r   Ú
ValueErrorr   r)   r   r   r   Útest_failure¡   s    zTestDiag.test_failure)N)rG   rH   rI   rU   rV   rW   rZ   r\   r   r   r   r   rJ   v   s
   
	rJ   c                   @   s   e Zd Zdd„ ZdS )Ú
TestFliplrc                 C   sv   t tttdƒƒ tdƒ}|d d …d d d…f }tt|ƒ|ƒ dddgdddgg}dddgdddgg}tt|ƒ|ƒ d S ©Nr"   r3   r   r#   r,   r'   rL   )r   r[   r
   r   r    r   ©r*   ÚarS   r   r   r   r+   ¦   s    ÿÿzTestFliplr.test_basicN©rG   rH   rI   r+   r   r   r   r   r]   ¥   s   r]   c                   @   s   e Zd Zdd„ ZdS )Ú
TestFlipudc                 C   sf   t dƒ}|d d d…d d …f }tt|ƒ|ƒ dddgdddgg}dddgdddgg}tt|ƒ|ƒ d S r^   )r    r   r   r_   r   r   r   r+   ³   s    ÿÿzTestFlipud.test_basicNra   r   r   r   r   rb   ²   s   rb   c                   @   sb   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	dd„ ƒZ
ej dddg¡dd„ ƒZdS )ÚTestHistogram2dc                 C   s”  t dddddgƒ}t dddd	d
gƒ}t ddd¡}t ddd¡}t||||fƒd }t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	ƒ}t|j|ƒ t|||ƒd }t|j|ƒ tttdƒƒttdƒƒƒ\}}}t|tddƒƒ t|t ddd¡ƒ t|t ddd¡ƒ d S )NgÌ™í
}°Ú?g%Úáñåç?g�$F�û?gí;c¸jYÓ?gI�+¤åÈÂ?gÐp5x€£·?gó?ã_×Ç?gÒpˆÀªÖ?gúñb£dÙ?gºg<•ü=á?r   r#   é
   é	   é   )	r   r/   Úlinspacer   r   ÚTÚlistrP   r   )r*   ÚxÚyZxedgesZyedgesÚHÚanswerr   r   r   Útest_simple¿   s8    ÿÿøÿ
 zTestHistogram2d.test_simplec                 C   sà   t ddddddddgƒ}t ddddddddgƒ}t||dddgddggd	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dddddgdddddggƒ}t||d dƒ t|t ddd¡ƒ t|t ddd¡ƒ d S )Nr#   r,   r'   r"   rL   r   )rX   rL   rX   T)rP   Údensityç        g       @rN   )r   r   r   r   r/   rg   ©r*   rj   rk   rl   ÚxedÚyedrm   r   r   r   Ú	test_asymÙ   s*        ÿûÿzTestHistogram2d.test_asymc              
   C   s’   t dddddddddg	ƒ}t dddddddddg	ƒ}t||ddddgddddggdd�\}}}t dddgdddgdddggƒd	 }t||dƒ d S )
Nr#   r,   r'   rL   T)ro   ç      à?ç      Ð?g      "@)r   r   r   rq   r   r   r   Útest_densityé   s       ÿ
þþzTestHistogram2d.test_densityc                 C   sD   t j d¡d d }t||dddgddgfd�\}}}t|dƒ d S )NrK   ç      ð?g    €„.A)r"   rL   r   r#   )rP   )r/   ÚrandomZrandr   r   )r*   Úrrl   rr   rs   r   r   r   Útest_all_outliersó   s    "z!TestHistogram2d.test_all_outliersc                 C   sZ   t g g ddgddgfd�\}}}t|tdggƒƒ t g g dd�\}}}t|t d¡ƒ d S )Nr   r#   ©Zbinsrp   r"   )r"   r"   )r   r   r   r/   r   )r*   r`   Zedge1Zedge2r   r   r   Ú
test_emptyø   s     zTestHistogram2d.test_emptyc                 C   sp  t dddddddgƒ}t ddd	d
dddgƒ}d}t|||dfƒ\}}}t ddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgg
ƒ}t||ƒ t|t dddddgƒƒ t||d|fƒ\}}}t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
gƒ}t||ƒ t|t dddddgƒƒ d S )Nr   g<DŠžç‘·?gô±³Ï ªä?g!,ø§3{À?g˜lÊyTÞ?g¥f“ì¦.ã?r#   g(@TT\Â?g±ÁÂIZß?gYöN»ŽÓ?gK?~Â›Ü?g&W-À©UÄ?)r   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ru   g333333ã?gffffffæ?gš™™™™™é?gÍÌÌÌÌÌì?r#   r"   g       @rp   rx   rv   ru   g      è?)r   r   r   )r*   rj   rk   Úedgesrl   ZxeZyerm   r   r   r   Útest_binparameter_combinationÿ   sN    
 ÿÿ
 ÿÿ









÷ÿ
ýÿ
z-TestHistogram2d.test_binparameter_combinationc                 C   sþ   G dd„ dƒ}ddg}|ƒ }t ||ƒ}t||f||fi fkƒ t ||ƒ}t||f||fi fkƒ t |||d�}t||f||ft|d�fƒ t |||dgd�}t||f||ft|dgd�fƒ ttt |||gd� t |||d�}t||f||ft|d�fƒ d S )Nc                   @   s   e Zd Zdd„ ZdS )z5TestHistogram2d.test_dispatch.<locals>.ShouldDispatchc                 S   s
   |||fS r   r   )r*   ÚfunctionÚtypesÚargsÚkwargsr   r   r   Ú__array_function__!  s    zHTestHistogram2d.test_dispatch.<locals>.ShouldDispatch.__array_function__N)rG   rH   rI   r„   r   r   r   r   ÚShouldDispatch   s   r…   r#   r,   r|   rL   )Úweights)r   r   Údictr   Ú	Exception)r*   r…   ZxyZs_drz   r   r   r   Útest_dispatch  s    

 zTestHistogram2d.test_dispatch)Úx_lenÚy_len)rd   rf   )é   é   c              	   C   s>   t  |¡t  |¡ }}tjtdd�� t||ƒ W 5 Q R X d S )Nz"x and y must have the same length.)Úmatch)r/   r   ÚpytestZraisesr[   r   )r*   rŠ   r‹   rj   rk   r   r   r   Útest_bad_length3  s
    ÿzTestHistogram2d.test_bad_lengthN)rG   rH   rI   rn   rt   rw   r{   r}   r   r   r‰   r�   ÚmarkZparametrizer�   r   r   r   r   rc   ¾   s   

rc   c                   @   s   e Zd Zdd„ ZdS )ÚTestTric                 C   sJ   t dddgdddgdddggƒ}ttdƒ|ƒ ttdtd�| t¡ƒ d S )Nr#   r   r'   r%   )r   r   r   r(   rO   )r*   Úoutr   r   r   Ú
test_dtype<  s    
þzTestTri.test_dtypeN)rG   rH   rI   r”   r   r   r   r   r’   ;  s   r’   c                  C   s~   t jd t jd  D ]d} t jd| d�}t  |¡}t  |¡}t|ddgddggƒ t||jƒ t|j|jƒ t|j|jƒ qd S )NÚAllFloatÚ
AllInteger)r,   r,   r%   r#   r   )	r/   Ú	typecodesr   ÚtrilÚtriur   rh   r   r&   )r&   r`   rS   rT   r   r   r   Útest_tril_triu_ndim2D  s    

rš   c                  C   s
  t jd t jd  D ]ð} t jddgddggddgddggddgddggg| d�}t jddgddggddgddggddgddggg| d�}t jddgddggddgddggddgddggg| d�}t  |¡}t  |¡}t||ƒ t||ƒ t|j|jƒ t|j|jƒ qd S )Nr•   r–   r#   r   r%   )r/   r—   r   r™   r˜   r   r   r&   )r&   r`   Za_tril_desiredZa_triu_desiredZa_triu_observedZa_tril_observedr   r   r   Útest_tril_triu_ndim3P  s8    ýüýüýü



r›   c                  C   st   t  ddt jgdddgt jddgg¡} t  dddgdddgt jddgg¡}|j}tt  | ¡|ƒ tt  | ¡|ƒ d S )Nr#   r   )r/   r   Úinfrh   r   r™   r˜   )ÚarrZout_trilZout_triur   r   r   Útest_tril_triu_with_infi  s    
þ
þrž   c                  C   sÌ   t jd D ]D} | dkrq
t jd| d�}tt  |¡j|jƒ tt  |¡j|jƒ q
t jddgddggd	d�}tt  |¡j|jƒ tt  |¡j|jƒ t jdd
d�}tt  |¡j|jƒ tt  |¡j|jƒ d S )NZAllÚV)r'   r'   r%   z2001-01-01T12:00z2002-02-03T13:56z2004-01-01T12:00z2003-01-03T13:45Z
datetime64zf4,f4)r/   r—   r   r   r™   r&   r˜   r   )rT   r�   r   r   r   Útest_tril_triu_dtypev  s     
ÿþr    c               	   C   sf   t dtjƒ} t d¡ dd¡}t||  tddddddgƒƒ t dtjdƒ}t|| tdddgƒƒ d S )	Nr'   re   r   r#   r,   r"   rL   é   )r   r/   r™   r   Úreshaper   r   )Úiur`   Úiu1r   r   r   Útest_mask_indicesŒ  s
    r¥   c                  C   sÌ  t dƒ} t ddd�}t ddd�}t dddd�}t ddddgdd	d
dgddddgddddgg¡}t dd¡ dd¡}t||  tddd	dddddddg
ƒƒ t|| tdd	d
dddddddg
ƒƒ d|| < t|tddddgddd
dgddddgddddggƒƒ d||< t|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||< t|tddddgddddgddddgddddggƒƒ d||< t|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 S )Nr"   r,   r2   rL   ©Úm©r.   r§   r#   r'   rX   rN   r¡   re   rd   rf   é   é   é   é   é   é   é   é   r�   r3   rŒ   éöÿÿÿ)r   r/   r   r   r¢   r   )Zil1Zil2Zil3Zil4r`   rS   r   r   r   Útest_tril_indices–  s`    


ýÿÿ


ýÿýÿ


ýÿýÿr²   c                   @   s   e Zd Zdd„ ZdS )ÚTestTriuIndicesc                 C   sÔ  t dƒ}t ddd�}t ddd�}t dddd�}t ddddgdd	d
dgddddgddddgg¡}t dd¡ dd¡}t|| tddddd	d
ddddg
ƒƒ t|| tdddddd
ddddddddgƒƒ d||< t|tddddgddddgddddgddddggƒƒ d||< t|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||< t|tddddgddddgddddgddddggƒƒ d||< t|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 S )Nr"   r,   r2   rL   r¦   r¨   r#   r'   rX   rN   r¡   re   rd   rf   r©   rª   r«   r¬   r­   r®   r�   rŒ   r3   r¯   r°   r±   )r   r/   r   r   r¢   r   )r*   r¤   Ziu2Ziu3Ziu4r`   rS   r   r   r   Útest_triu_indicesÆ  sn    


ýÿ     ÿÿ


ýÿýÿ


ýÿýÿz!TestTriuIndices.test_triu_indicesN)rG   rH   rI   r´   r   r   r   r   r³   Å  s   r³   c                   @   s   e Zd Zdd„ ZdS )ÚTestTrilIndicesFromc                 C   s(   t ttt d¡ƒ t ttt d¡ƒ d S ©N)r,   )r,   r,   r,   )r   r[   r   r/   r   r)   r   r   r   Útest_exceptionsø  s    z#TestTrilIndicesFrom.test_exceptionsN©rG   rH   rI   r·   r   r   r   r   rµ   ÷  s   rµ   c                   @   s   e Zd Zdd„ ZdS )ÚTestTriuIndicesFromc                 C   s(   t ttt d¡ƒ t ttt d¡ƒ d S r¶   )r   r[   r   r/   r   r)   r   r   r   r·   ÿ  s    z#TestTriuIndicesFrom.test_exceptionsNr¸   r   r   r   r   r¹   þ  s   r¹   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TestVanderc              
   C   s´   t  ddddg¡}t|ƒ}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¡}t||d d …dd …f ƒ |jd }tdƒD ].}t||d�}t||d d …|| |…f ƒ q€d S )Nr   r#   r7   r'   r­   iøÿÿÿr"   éQ   é   re   rX   ©ÚN)r/   r   r   r   ÚshaperP   )r*   rT   ÚvZpowersr§   r   r   r   r   r+     s    ý
zTestVander.test_basicc                 C   sˆ   t dddgtjd�}t|ƒ}t  dddgdddgdddgg¡}t||ƒ t d	d
gƒ}t|dd�}t  dd	dgdd
dgg¡}t||ƒ d S )Nrf   iôÿÿÿrª   r%   éy   r#   é�   é©   y      ð?      ð?y      ð?      ð¿r'   r½   y               @y       €       À)r   r/   Zint8r   r   )r*   rT   rÀ   Úexpectedr   r   r   Útest_dtypes  s    þ
ÿzTestVander.test_dtypesN)rG   rH   rI   r+   rÅ   r   r   r   r   rº     s   rº   )/Ú__doc__Znumpy.testingr   r   r   r   r   r   Únumpyr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   Znumpy.core.tests.test_overridesr   r�   r    r!   rJ   r]   rb   rc   r’   rš   r›   rž   r    r¥   r²   r³   rµ   r¹   rº   r   r   r   r   Ú<module>   s,    LX/}	
/2