a
    ³ÐOc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   úW/var/www/html/gsl.tools/lib/python3.9/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   sx   t tdƒtg d¢g d¢g d¢g d¢gƒƒ t tddd�tg d¢g d¢g d¢g d¢gdƒƒ t tdƒd	ktdtd�ƒ d S )
Né   ©é   r   r   r   ©r   r$   r   r   ©r   r   r$   r   ©r   r   r   r$   Úf©Údtypeé   r$   )r   r   r   Úbool©Úselfr   r   r   Ú
test_basic   s&    ýÿýýÿ
ÿzTestEye.test_basicc                 C   sb   t tt d¡td�tddgddggƒƒ t tt d¡t d¡t d¡d�tg d¢g d¢gƒƒ d S )	Né   r)   r$   r   r"   )ÚMÚkr%   r&   )r   r   ÚnpZuint64Úintr   r-   r   r   r   Útest_uint64/   s    ( ÿzTestEye.test_uint64c                 C   s`   t tddd�tg d¢g d¢g d¢g d¢gƒƒ t tddd�tg d¢g d	¢g d¢g d¢gƒƒ d S )
Nr"   r$   ©r2   r%   r&   r'   ©r   r   r   r   éÿÿÿÿr#   ©r   r   r   r-   r   r   r   Ú	test_diag5   s    ýÿýÿzTestEye.test_diagc                 C   sV   t tddƒtg d¢g d¢g d¢g d¢gƒƒ t tddƒtg d¢g d¢g d	¢gƒƒ d S )
Nr"   r+   ©r$   r   r   ©r   r$   r   )r   r   r$   ©r   r   r   r#   r%   r&   r9   r-   r   r   r   Útest_2dB   s    
ýÿ
þÿzTestEye.test_2dc                 C   s^   t tdddd�tg d¢g d¢g d¢gƒƒ t tdddd�tg d	¢g d	¢g d
¢g d¢gƒƒ d S )Nr+   r"   r0   r6   r&   r'   r7   éþÿÿÿr=   r;   r<   r9   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 )Nr0   r$   r   r8   r?   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 )Nr0   ZS3r)   ó   1ó    rB   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 )Nr0   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s4J ‚|jjr@J ‚|jjrLJ ‚|jjsXJ ‚d S )Nr"   r+   r8   r6   ÚF)r2   Úorder)r   r   ÚflagsÚc_contiguousÚf_contiguous)r.   Zmat_cZmat_fr   r   r   Ú
test_orderl   s    
zTestEye.test_orderN)Ú__name__Ú
__module__Ú__qualname__r/   r5   r:   r>   r@   rC   rF   rG   rM   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)rS   rS   )é   rU   r0   r6   r?   )r   Úastyper   Úranger   r   Úcopy)r.   ÚvalsÚbr2   Úcr   r   r   Útest_vectorw   s    zTestDiag.test_vectorNc                 C   sÒ   |d u 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 )
NrR   rS   r$   rT   )rS   r   r+   r0   r?   )r    rV   r   rW   r   r   )r.   rY   rZ   r2   r   r   r   Útest_matrix…   s    zTestDiag.test_matrixc                 C   s(   t dtdƒ d ddd�}|  |¡ d S )NrR   rS   r$   rH   rT   )rI   r*   )r   r    r]   )r.   rY   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$   r0   r+   r"   rS   é   r6   r   r8   r?   rA   )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)rN   rO   rP   r\   r]   r^   ra   rc   r   r   r   r   rQ   v   s
   
	rQ   c                   @   s   e Zd Zdd„ ZdS )Ú
TestFliplrc                 C   sn   t tttdƒƒ tdƒ}|d d …d d d…f }tt|ƒ|ƒ g d¢g d¢g}g d¢g d¢g}tt|ƒ|ƒ d S )Nr"   r8   ©r   r$   r0   ©r+   r"   rS   )r0   r$   r   )rS   r"   r+   )r   rb   r
   r   r    r   ©r.   ÚarZ   r   r   r   r/   ¦   s    ÿÿzTestFliplr.test_basicN©rN   rO   rP   r/   r   r   r   r   rd   ¥   s   rd   c                   @   s   e Zd Zdd„ ZdS )Ú
TestFlipudc                 C   s^   t dƒ}|d d d…d d …f }tt|ƒ|ƒ g d¢g d¢g}g d¢g d¢g}tt|ƒ|ƒ d S )Nr"   r8   re   rf   )r    r   r   rg   r   r   r   r/   ³   s    ÿÿzTestFlipud.test_basicNri   r   r   r   r   rj   ²   s   rj   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 g d¢ƒ}t g d¢ƒ}t ddd¡}t ddd¡}t||||fƒd }t g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢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 )N)gÌ™í
}°Ú?g%Úáñåç?g�$F�û?gí;c¸jYÓ?gI�+¤åÈÂ?)gÐp5x€£·?gó?ã_×Ç?gÒpˆÀªÖ?gúñb£dÙ?gºg<•ü=á?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   r   r   r   r   r   r   é	   é   )	r   r3   Úlinspacer   r   ÚTÚlistrW   r   )r.   ÚxÚyZxedgesZyedgesÚHÚanswerr   r   r   Útest_simple¿   s8    ÿÿøÿ
 zTestHistogram2d.test_simplec                 C   s¤   t g d¢ƒ}t g d¢ƒ}t||dddgddggdd�\}}}t g d	¢g d
¢g d¢g d¢g d¢g d¢gƒ}t||d dƒ t|t ddd¡ƒ t|t ddd¡ƒ d S )N)r$   r$   r0   r+   r"   r"   r"   rS   )r$   r+   r0   r   r$   r0   r+   r"   )r_   rS   r   r_   rS   T)rW   Údensity)ç        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$   g       @r+   rU   )r   r   r   r   r3   ro   ©r.   rr   rs   rt   ÚxedÚyedru   r   r   r   Ú	test_asymÙ   s"    ÿûÿzTestHistogram2d.test_asymc                 C   sh   t g d¢ƒ}t g d¢ƒ}t||g d¢g d¢gdd�\}}}t g d¢g d¢g d¢gƒd }t||d	ƒ d S )
N)	r$   r0   r+   r$   r0   r+   r$   r0   r+   )	r$   r$   r$   r0   r0   r0   r+   r+   r+   )r$   r0   r+   rS   T)rw   )r$   r$   ç      à?)r~   r~   ç      Ð?g      "@r+   )r   r   r   rz   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 )NrR   ç      ð?g    €„.A)r"   rS   r   r$   )rW   )r3   ÚrandomZrandr   r   )r.   Úrrt   r{   r|   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binsrx   r"   )r"   r"   )r   r   r   r3   r   )r.   rh   Zedge1Zedge2r   r   r   Ú
test_emptyø   s     zTestHistogram2d.test_emptyc                 C   sè   t g d¢ƒ}t g d¢ƒ}d}t|||dfƒ\}}}t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g
ƒ}t||ƒ t|t g d
¢ƒƒ t||d|fƒ\}}}t g d¢g d¢g d¢g d¢gƒ}t||ƒ t|t g d
¢ƒƒ d S )N)r   g<DŠžç‘·?gô±³Ï ªä?g!,ø§3{À?g˜lÊyTÞ?g¥f“ì¦.ã?r$   )r   g(@TT\Â?g±ÁÂIZß?gYöN»ŽÓ?gK?~Â›Ü?g&W-À©UÄ?r$   )r   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?r~   g333333ã?gffffffæ?gš™™™™™é?gÍÌÌÌÌÌì?r$   r"   )g       @rx   rx   rx   )rx   r�   rx   rx   )rx   rx   rx   rx   )r�   rx   rx   rx   )rx   rx   rx   r�   )rx   r   r~   g      è?r$   )
r�   r�   rx   r�   rx   rx   rx   rx   rx   rx   )
rx   rx   rx   rx   r�   rx   rx   rx   rx   rx   )
rx   r�   rx   rx   r�   rx   rx   rx   rx   rx   )
rx   rx   rx   rx   rx   rx   rx   rx   rx   r�   )r   r   r   )r.   rr   rs   Úedgesrt   ZxeZyeru   r   r   r   Útest_binparameter_combinationÿ   sB    ÿÿ÷ÿ
ýÿ
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)rN   rO   rP   r�   r   r   r   r   ÚShouldDispatch   s   rŽ   r$   r0   r…   rS   )Úweights)r   r   Údictr   Ú	Exception)r.   rŽ   ZxyZs_drƒ   r   r   r   Útest_dispatch  s    

 zTestHistogram2d.test_dispatch)Úx_lenÚy_len)rl   rn   )é   é   c                 C   sR   t  |¡t  |¡ }}tjtdd�� t||ƒ W d   ƒ n1 sD0    Y  d S )Nz"x and y must have the same length.)Úmatch)r3   r   ÚpytestZraisesrb   r   )r.   r“   r”   rr   rs   r   r   r   Útest_bad_length3  s
    ÿzTestHistogram2d.test_bad_lengthN)rN   rO   rP   rv   r}   r€   r„   r†   rˆ   r   r’   r˜   ÚmarkZparametrizer™   r   r   r   r   rk   ¾   s   

rk   c                   @   s   e Zd Zdd„ ZdS )ÚTestTric                 C   sD   t g d¢g d¢g d¢gƒ}ttdƒ|ƒ ttdtd�| t¡ƒ d S )Nr;   ©r$   r$   r   ©r$   r$   r$   r+   r)   )r   r   r   r,   rV   )r.   Úoutr   r   r   Ú
test_dtype<  s    þzTestTri.test_dtypeN)rN   rO   rP   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)r0   r0   r)   r$   r   )	r3   Ú	typecodesr   ÚtrilÚtriur   rp   r   r*   )r*   rh   rZ   r[   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)   )r3   r¢   r   r¤   r£   r   r   r*   )r*   rh   Za_tril_desiredZa_triu_desiredZa_triu_observedZa_tril_observedr   r   r   Útest_tril_triu_ndim3P  s8    ýüýüýü



r¦   c                  C   sn   t  ddt jgg d¢t jddgg¡} t  g d¢g d¢t jddgg¡}|j}tt  | ¡|ƒ tt  | ¡|ƒ d S )Nr$   r�   r;   rœ   )r3   r   Úinfrp   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)r3   r¢   r   r   r¤   r*   r£   r   )r[   r¨   r   r   r   Útest_tril_triu_dtypev  s     
ÿþr«   c                  C   s\   t dtjƒ} t d¡ dd¡}t||  tg d¢ƒƒ t dtjdƒ}t|| tg d¢ƒƒ d S )Nr+   rm   )r   r$   r0   r"   rS   é   r$   )r$   r0   rS   )r   r3   r¤   r   Úreshaper   r   )Úiurh   Úiu1r   r   r   Útest_mask_indicesŒ  s
    r°   c                  C   sL  t dƒ} t ddd�}t ddd�}t dddd�}t g d¢g d¢g d	¢g d
¢g¡}t dd¡ dd¡}t||  tg d¢ƒƒ t|| tg d¢ƒƒ d|| < t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d S )Nr"   r0   r6   rS   ©Úm©r2   r²   ©r$   r0   r+   r"   ©rS   r_   rU   r¬   ©rm   rl   rn   é   ©é   é   é   é   r$   é   )
r$   rS   r_   rm   rl   rn   r¹   rº   r»   r¼   )
r$   r_   rU   rn   r·   r¹   r¼   é   é   r–   r8   )r8   r0   r+   r"   )r8   r8   rU   r¬   )r8   r8   r8   r·   ©r8   r8   r8   r8   )r8   r0   r+   r"   rS   )r8   r8   r¬   rm   rl   )r8   r8   r8   rº   r»   )r8   r8   r8   r8   r•   éöÿÿÿ)rÁ   rÁ   rÁ   r"   )rÁ   rÁ   rÁ   rÁ   )rÁ   rÁ   rÁ   r"   rS   )rÁ   rÁ   rÁ   rÁ   rl   )rÁ   rÁ   rÁ   rÁ   rÁ   )r   r3   r   r   r­   r   )Zil1Zil2Zil3Zil4rh   rZ   r   r   r   Útest_tril_indices–  s`    
ý
ÿ
ÿýÿýÿýÿýÿrÂ   c                   @   s   e Zd Zdd„ ZdS )ÚTestTriuIndicesc                 C   sL  t dƒ}t ddd�}t ddd�}t dddd�}t g d¢g d¢g d	¢g d
¢g¡}t dd¡ dd¡}t|| tg d¢ƒƒ t|| tg d¢ƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d||< t|tg d¢g d¢g d¢g d¢gƒƒ d S )Nr"   r0   r6   rS   r±   r³   r´   rµ   r¶   r¸   r$   r½   )
r$   r0   r+   r"   r_   rU   r¬   rn   r·   r¼   )r$   r0   r+   r"   rS   rU   r¬   rm   rl   r¹   rº   r»   r–   r•   r8   rÀ   )rS   r8   r8   r8   )rm   rl   r8   r8   )r¹   rº   r»   r8   )r8   r8   r8   r8   r8   )r_   r8   r8   r8   r8   )rn   r·   r8   r8   r8   )r¼   r¾   r¿   r8   r8   rÁ   )r8   r8   rÁ   rÁ   )rS   r8   r8   rÁ   )r8   r8   rÁ   rÁ   rÁ   )r_   r8   r8   rÁ   rÁ   )rn   r·   r8   r8   rÁ   )r   r3   r   r   r­   r   )r.   r¯   Ziu2Ziu3Ziu4rh   rZ   r   r   r   Útest_triu_indicesÆ  s`    
ý
ÿ
ÿýÿýÿýÿýÿz!TestTriuIndices.test_triu_indicesN)rN   rO   rP   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)r0   )r0   r0   r0   )r   rb   r   r3   r   r-   r   r   r   Útest_exceptionsø  s    z#TestTrilIndicesFrom.test_exceptionsN©rN   rO   rP   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   rb   r   r3   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  g d¢¡}t|ƒ}t  g d¢g d¢g d¢g d¢g¡}t||d d …dd …f ƒ |jd }tdƒD ].}t||d�}t||d d …|| |…f ƒ qdd S )	N)r   r$   r?   r+   ry   )r$   r$   r$   r$   r$   )r¼   iøÿÿÿr"   r?   r$   )éQ   é   rm   r+   r$   r$   r_   ©ÚN)r3   r   r   r   ÚshaperW   )r.   r[   ÚvZpowersr²   r   r   r   r   r/     s    
ý
zTestVander.test_basicc                 C   s|   t g d¢tjd�}t|ƒ}t  g d¢g d¢g d¢g¡}t||ƒ t ddgƒ}t|dd	�}t  g d
¢g d¢g¡}t||ƒ d S )N)rn   éôÿÿÿr¹   r)   )éy   rn   r$   )é�   rÑ   r$   )é©   r¹   r$   ù      ð?      ð?ù      ð?      ð¿r+   rÍ   )y               @rÕ   r$   )y       €       ÀrÖ   r$   )r   r3   Zint8r   r   )r.   r[   rÐ   Úexpectedr   r   r   Útest_dtypes  s    
þ

ÿzTestVander.test_dtypesN)rN   rO   rP   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   r3   Znumpy.core.tests.test_overridesr   r˜   r    r!   rQ   rd   rj   rk   r›   r¥   r¦   r©   r«   r°   rÂ   rÃ   rÅ   rÉ   rÊ   r   r   r   r   Ú<module>   s,    LX/}	
/2