o
    V=ºi+L  ã                   @   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   úfC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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sJ ‚|jjr J ‚|jjr&J ‚|jjs,J ‚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 ||< q1tt|dƒ|d d… ƒ tdƒD ]}||d |f ||< qNt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_failurer   )rN   rO   rP   r\   r]   r^   ra   rc   r   r   r   r   rQ   v   s    
	rQ   c                   @   ó   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   re   ¥   ó    re   c                   @   rd   )Ú
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   rf   rg   )r    r   r   rh   r   r   r   r/   ³   s   ÿÿzTestFlipud.test_basicNrj   r   r   r   r   rl   ²   rk   rl   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   rq   ©r.   rt   ru   rv   ÚxedÚyedrw   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)ry   )r$   r$   ç      à?)r€   r€   ç      Ð?g      "@r+   )r   r   r   r|   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.   Úrrv   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binsrz   r"   )r"   r"   )r   r   r   r3   r   )r.   ri   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       @rz   rz   rz   )rz   rƒ   rz   rz   )rz   rz   rz   rz   )rƒ   rz   rz   rz   )rz   rz   rz   rƒ   )rz   r�   r€   g      è?r$   )
rƒ   rƒ   rz   rƒ   rz   rz   rz   rz   rz   rz   )
rz   rz   rz   rz   rƒ   rz   rz   rz   rz   rz   )
rz   rƒ   rz   rz   rƒ   rz   rz   rz   rz   rz   )
rz   rz   rz   rz   rz   rz   rz   rz   rz   rƒ   )r   r   r   )r.   rt   ru   Úedgesrv   ZxeZyerw   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                   @   rd   )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   rk   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)rn   rp   )é   é   c                 C   sT   t  |¡t  |¡}}tjtdd�� t||ƒ W d   ƒ d S 1 s#w   Y  d S )Nz"x and y must have the same length.)Úmatch)r3   r   ÚpytestZraisesrb   r   )r.   r•   r–   rt   ru   r   r   r   Útest_bad_length3  s   ÿ"þzTestHistogram2d.test_bad_lengthN)rN   rO   rP   rx   r   r‚   r†   rˆ   rŠ   r   r”   rš   ÚmarkZparametrizer›   r   r   r   r   rm   ¾   s    

rm   c                   @   rd   )Ú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�   ;  rk   r�   c                  C   s~   t jd t jd  D ]2} 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   rr   r   r*   )r*   ri   rZ   r[   r   r   r   Útest_tril_triu_ndim2D  s   

ør§   c                  C   s
  t jd t jd  D ]x} 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*   ri   Za_tril_desiredZa_triu_desiredZa_triu_observedZa_tril_observedr   r   r   Útest_tril_triu_ndim3P  s:   ýüýüýü



ë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   Úinfrr   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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+   ro   )r   r$   r0   r"   rS   é   r$   )r$   r0   rS   )r   r3   r¦   r   Úreshaper   r   )Úiuri   Ú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®   ©ro   rn   rp   é   ©é   é   é   é   r$   é   )
r$   rS   r_   ro   rn   rp   r»   r¼   r½   r¾   )
r$   r_   rU   rp   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®   ro   rn   )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Ã   rn   )rÃ   rÃ   rÃ   rÃ   rÃ   )r   r3   r   r   r¯   r   )Zil1Zil2Zil3Zil4ri   rZ   r   r   r   Útest_tril_indices–  s`   
ý
ÿ
ÿýÿýÿýÿýÿrÄ   c                   @   rd   )Ú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®   rp   r¹   r¾   )r$   r0   r+   r"   rS   rU   r®   ro   rn   r»   r¼   r½   r˜   r—   r8   rÂ   )rS   r8   r8   r8   )ro   rn   r8   r8   )r»   r¼   r½   r8   )r8   r8   r8   r8   r8   )r_   r8   r8   r8   r8   )rp   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Ã   )rp   r¹   r8   r8   rÃ   )r   r3   r   r   r¯   r   )r.   r±   Ziu2Ziu3Ziu4ri   rZ   r   r   r   Útest_triu_indicesÆ  s`   
ý
ÿ
ÿýÿýÿýÿýÿz!TestTriuIndices.test_triu_indicesN)rN   rO   rP   rÆ   r   r   r   r   rÅ   Å  rk   rÅ   c                   @   rd   )ÚTestTrilIndicesFromc                 C   ó(   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ø  ó   z#TestTrilIndicesFrom.test_exceptionsN©rN   rO   rP   rÊ   r   r   r   r   rÇ   ÷  rk   rÇ   c                   @   rd   )ÚTestTriuIndicesFromc                 C   rÈ   rÉ   )r   rb   r   r3   r   r-   r   r   r   rÊ   ÿ  rË   z#TestTriuIndicesFrom.test_exceptionsNrÌ   r   r   r   r   rÍ   þ  rk   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 ƒ q2d S )	N)r   r$   r?   r+   r{   )r$   r$   r$   r$   r$   )r¾   iøÿÿÿr"   r?   r$   )éQ   é   ro   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)rp   éôÿÿÿr»   r)   )éy   rp   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   Z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   re   rl   rm   r�   r§   r¨   r«   r­   r²   rÄ   rÅ   rÇ   rÍ   rÎ   r   r   r   r   Ú<module>   s.     LX/}	
/2