o
    Ô­j†:  ã                   @   sÞ   d dl Zd dl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 d dlmZ d dlm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G dd„ dƒZG dd„ dƒZG dd„ dƒZdS )é    N)ÚmatrixÚasmatrixÚbmat)Úassert_Úassert_equalÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equalÚassert_raises)Úmatrix_power)Úmatc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestCtorc           
      C   s   t  ddgddgg¡}t|ƒ}tt  |j|k¡ƒ tdƒ}t||g||ggƒ}t  g d¢g d¢g d¢g d¢g¡}tt  |j|k¡ƒ tt  |j|k¡ƒ t  dd	gd
dgg¡}tg d¢g d¢gƒ}tt  t||gƒ|k¡ƒ t  d¡}t|ƒ}	t|	jdkƒ d S )Né   é   é   é   úA,A;A,A©r   r   r   r   ©r   r   r   r   é   é   é   é   ©r   r   r   r   ©r   r   r   r   )r   r   )	ÚnpÚarrayr   r   ÚallÚAr   ÚarangeÚshape)
Úselfr   ÚmAÚBÚCÚDÚEÚAEresultÚvecÚmvec© r*   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/matrixlib/tests/test_defmatrix.pyÚ
test_basic   s$   
ý
zTestCtor.test_basicc                 C   s   t ttdƒ d S )NÚinvalid)r
   Ú
ValueErrorr   ©r!   r*   r*   r+   Útest_exceptions#   s   zTestCtor.test_exceptionsc                 C   s  t  ddgddgg¡}t  ddgddgg¡}t  g d	¢g d
¢g d	¢g d
¢g¡}t  g d¢g d¢g d¢g d¢g¡}tt  tdƒ|k¡ƒ tt  tdd|id�|k¡ƒ tttdd|id� tt  tdd|id|id�|k¡ƒ td||dœ||dœd�}tt  ||k¡ƒ d S )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )Úldict)Úgdict)r1   r2   zA,B;C,D)r   r#   )r$   r%   )r   r   r   r   r   r
   Ú	TypeError)r!   r   r#   ÚAresultÚ	mixresultÚb2r*   r*   r+   Útest_bmat_nondefault_str'   s(   
ý
ýÿz!TestCtor.test_bmat_nondefault_strN)Ú__name__Ú
__module__Ú__qualname__r,   r0   r7   r*   r*   r*   r+   r      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d„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestPropertiesc                 C   s¬   t g d¢g d¢g d¢g d¢gƒ}t g d¢ƒ}t g d¢ƒj}d}t||jdd	�ƒ t||jd
d	�ƒ t|| ¡ ƒ t|tj|dd	�ƒ t|tj|d
d	�ƒ t|t |¡ƒ dS )zeTest whether matrix.sum(axis=1) preserves orientation.
        Fails in NumPy <= 0.9.6.2127.
        )r   r   r   r   )r   r   r   r   r   r   )r   é   r   r   )r   r   r   é   é   r   ©Úaxisr   N)r   ÚTr   Úsumr   r   )r!   ÚMÚsum0Úsum1Úsumallr*   r*   r+   Útest_sum<   s   ýzTestProperties.test_sumc                 C   sÆ   t g d¢g d¢gƒ}t| ¡ dƒ t| d¡t g d¢gƒƒ t| d¡t dgdggƒƒ tt |¡dƒ ttj|dd	�t g d¢gƒƒ ttj|dd	�t dgdggƒƒ t g d
¢ƒ}t| ¡ dkƒ d S )N©r   r   r   ©r   r   r   iÐ  r   )r   é
   é   r   r   éx   r?   )r   r   r   )r   r   Úprodr   r   ©r!   ÚxÚyr*   r*   r+   Ú	test_prodO   s    zTestProperties.test_prodc                 C   sª   t g d¢g d¢gƒ}t| ¡ dƒ t| d¡t g d¢gƒƒ t| d¡t dgdggƒƒ tt |¡dƒ ttj|dd�t g d¢gƒƒ ttj|dd�t dgdggƒƒ d S )NrH   rI   r   r   r   r   r?   )r   r   Úmaxr   ©r!   rO   r*   r*   r+   Útest_max\   ó   $zTestProperties.test_maxc                 C   sª   t g d¢g d¢gƒ}t| ¡ dƒ t| d¡t g d¢gƒƒ t| d¡t dgdggƒƒ tt |¡dƒ ttj|dd�t g d¢gƒƒ ttj|dd�t dgdggƒƒ d S )NrH   rI   r   r   r   r?   )r   r   Úminr   rS   r*   r*   r+   Útest_minf   rU   zTestProperties.test_minc                 C   sh   t  d¡ d¡}t| ¡ dkƒ tt  | d¡t  ddg¡k¡ƒ tt  | d¡t  ddg¡k¡ƒ d S )Nr   )r   r   r   r   r   r   )r   r   Úreshaper   Úptpr   r   rS   r*   r*   r+   Útest_ptpp   s   "&zTestProperties.test_ptpc                 C   sT   t  d¡ d¡}| t j¡}t|jdd�|jdd�ƒ t|jdd�|jdd�ƒ d S )Né	   )r   r   r   )Úddofr   )r   r   rX   Úviewr   r   Úvar)r!   rO   Úmxr*   r*   r+   Útest_varv   s   zTestProperties.test_varc                 C   s
  dd l m} t ddgddgg¡}t|ƒ}tt | |¡|j¡ƒ tt 	t t 
|¡|jk¡¡ƒ tt 	t t 
|¡|jk¡¡ƒ tt 	||jk¡ƒ |d|  }t|ƒ}tt | |¡|j¡ƒ tt 	t t 
|¡|jk¡¡ƒ tt 	t t 
|¡ ¡ |jk¡¡ƒ d S )Nr   ç      ð?ç       @ç      @ç      @y               @)Únumpy.linalgÚlinalgr   r   r   r   ÚallcloseÚinvÚIr   Ú	transposerA   ÚHr   Úconj)r!   rf   r   r"   r#   ÚmBr*   r*   r+   r,   |   s   
ÿ   (zTestProperties.test_basicc                 C   s@   t t d¡ dd¡ƒ}t ddgddgdd	ggƒ}t|j|ƒ d S )
Nr   r   r   g·ù:Žãè¿gnó)tÇÑ?g#¬Çq¼¿g#¬Çq¼?gnó)tÇá?gç6ŸBÇq¬¿)r   r   r   rX   r   ri   )r!   rO   Úxpinvr*   r*   r+   Ú	test_pinv�   s   þzTestProperties.test_pinvc                 C   sr  t  d¡ dd¡}t|ƒ}t|ƒd }tt  ||d k¡ƒ tt  |t|d ƒk¡ƒ tt  |t|d ƒk¡ ƒ tt  ||k ¡ƒ tt  ||k¡ƒ tt  ||k¡ƒ tt  ||k ¡ ƒ tt  ||k ¡ ƒ tt  ||k¡ƒ tt  ||k¡ƒ tt  ||k¡ ƒ tt  ||k¡ƒ tt  ||k¡ ƒ tt  ||k¡ƒ tt  t|ƒdk¡ ƒ tt  t|dkƒ¡ƒ d S )Néd   rJ   çš™™™™™¹?r   )r   r   rX   r   r   r   ÚanyÚabs)r!   r   r"   rm   r*   r*   r+   Útest_comparisons”   s&   zTestProperties.test_comparisonsc                 C   s:   t  d¡ dd¡}t|ƒ}d|d< t|d |d kƒ d S )Nrp   rJ   iöÿÿÿ©r   r   )r   r   rX   r   r   )r!   r   r"   r*   r*   r+   Útest_asmatrix¬   s   zTestProperties.test_asmatrixc                 C   s@   t ddgddggƒ}t| ¡ t dƒkƒ t| ¡ t dƒkƒ d S )Nr   r   r   ç      à?)r   r   rB   Úmean©r!   r   r*   r*   r+   Útest_noaxis²   s   zTestProperties.test_noaxisc                 C   s(   t ddgddggƒ}tt|ƒdkƒ d S )Nr   r   z matrix([[1, 0],
        [0, 1]]))r   r   Úreprry   r*   r*   r+   Ú	test_repr·   s   zTestProperties.test_reprc                 C   s*   t dƒ}t dgdgdggƒ}t||ƒ d S )NzTrue; True; FalseTF)r   r   )r!   r   r#   r*   r*   r+   Útest_make_bool_matrix_from_str»   s   z-TestProperties.test_make_bool_matrix_from_strN)r8   r9   r:   rG   rQ   rT   rW   rZ   r`   r,   ro   rt   rv   rz   r|   r}   r*   r*   r*   r+   r;   ;   s    

r;   c                   @   ó   e Zd Zdd„ ZdS )ÚTestCastingc                 C   s¼   t  d¡ dd¡}t|ƒ}| ¡ }t  dt j¡d }|| }t|jj	t jkƒ tt  
||k¡ƒ tt  
||d k¡ƒ | ¡ }t  dt j¡}|| }t|jj	t jkƒ tt  
||k¡ƒ d S )Nrp   rJ   )rJ   rJ   rq   )r   r   rX   r   ÚcopyÚonesÚfloat64r   ÚdtypeÚtyper   Ú
complex128)r!   r   r"   rm   ÚOÚmCr*   r*   r+   r,   Á   s   zTestCasting.test_basicN©r8   r9   r:   r,   r*   r*   r*   r+   r   À   ó    r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestAlgebrac                 C   s&  dd l m} t ddgddgg¡}t|ƒ}t d¡}tdƒD ]}tt || j	|¡ƒ t 
||¡}q| |¡}t d¡}tdƒD ]}tt ||  j	|¡ƒ t 
||¡}q@tt || j	t 
||¡¡ƒ tt || j	|| ¡ƒ tt d| j	d| ¡ƒ t|ƒ}|d9 }tt |j	d| ¡ƒ d S )	Nr   ra   rb   rc   rd   r   r   r   )re   rf   r   r   r   ÚidentityÚranger   rg   r   Údotrh   )r!   rf   r   r"   r#   ÚiÚAinvÚmA2r*   r*   r+   r,   Ô   s$   


zTestAlgebra.test_basicc                 C   st   t dƒ}| ¡ }|dC }| ¡ }|dC }| ¡ }|dC }t||d ƒ t|t ||¡ƒ tt ||¡t d¡ƒ dS )z<Test raising a matrix to an integer power works as expected.z1. 2.; 3. 4.r   éÿÿÿÿN)r   r€   r	   r   r�   Úeye)r!   ÚmÚm2ÚmiÚm4r*   r*   r+   Útest_powí   s   zTestAlgebra.test_powc                 C   sD   t ddgddggƒ}tjtjfD ]}|dƒ}t|d || ƒ qd S ©Nr   r   r   r   )r   r   Úint8Úuint8r	   )r!   r“   Úscalar_tÚtwor*   r*   r+   Útest_scalar_type_powú   s
   þz TestAlgebra.test_scalar_type_powc                 C   s|   t ddgddggƒ}ttƒ� d|  W d  ƒ n1 sw   Y  ttƒ� |tƒ   W d  ƒ dS 1 s7w   Y  dS )z:Check that 'not implemented' operations produce a failure.ra   rb   rc   rd   N)r   r
   r3   Úobjectry   r*   r*   r+   Útest_notimplemented   s   ÿ

ÿ
"ÿzTestAlgebra.test_notimplementedN)r8   r9   r:   r,   r—   r�   rŸ   r*   r*   r*   r+   rŠ   Ó   s
    rŠ   c                   @   r~   )ÚTestMatrixReturnc           
   	   C   s  t dgdd�}dddgfdddt dg¡d	œ}g d
¢}t|ƒD ]<}| d¡s*||v r+qt||ƒ}t|tjj	ƒr[| 
d¡ | d¡ ||v rJ|| }nd}||Ž }tt|ƒt u d| ƒ qtt|jƒt u ƒ tt|jƒt u ƒ t dgƒ ¡ \}}	tt|ƒtju ƒ tt|	ƒtju ƒ d S )Nra   Úf8)rƒ   )Úintc)ç        ra   r   )r   ru   )ÚastypeÚclipÚcompressÚrepeatrX   Úswapaxesr�   )&ÚargminÚchooseÚdumpÚdumpsÚfillÚgetfieldÚgetAÚgetA1ÚitemÚnonzeroÚputÚputmaskÚresizeÚsearchsortedÚsetflagsÚsetfieldÚsortÚ	partitionÚargpartitionÚtakeÚtofileÚtolistÚtostringÚtobytesr   rr   rB   Úargmaxr©   rV   rR   rx   r^   rY   rM   ÚstdÚctypesÚitemsetÚ_r*   z%sr£   )r   r   r   ÚdirÚ
startswithÚgetattrÚ
isinstanceÚcollectionsÚabcÚCallabler¤   r­   r   r„   ÚrealÚimagr²   Úndarray)
r!   ÚaÚ
methodargsÚexcluded_methodsÚattribÚfÚargsÚbÚcÚdr*   r*   r+   Útest_instance_methods  s8   
ù		



€z&TestMatrixReturn.test_instance_methodsN)r8   r9   r:   rÙ   r*   r*   r*   r+   r      r‰   r    c                   @   r~   )ÚTestIndexingc                 C   sd   t t dt¡ƒ}t dt¡}g d¢|d d …df< |dk|d d …df< t|ddgddgddggƒ d S )N©r   r   )r   r   )gš™™™™™é?gš™™™™™É?g333333Ó?r   rw   r   ©r   r   ÚzerosÚfloatr   rN   r*   r*   r+   r,   9  s
    zTestIndexing.test_basicNrˆ   r*   r*   r*   r+   rÚ   8  r‰   rÚ   c                   @   sh   e Zd Zeddgddggƒ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 )ÚTestNewScalarIndexingr   r   r   r   c                 C   s   | j }|d }t|jdƒ d S )Nr   r   )rÐ   r   Úndim©r!   rÐ   rO   r*   r*   r+   Útest_dimesionsD  s   z$TestNewScalarIndexing.test_dimesionsc                 C   s(   | j }t ||g¡}t|jg d¢ƒ d S )N)r   r   r   )rÐ   r   r   r   r    rá   r*   r*   r+   Útest_array_from_matrix_listI  s   z1TestNewScalarIndexing.test_array_from_matrix_listc                 C   s$   | j }t| ¡ ddgddggƒ d S r˜   )rÐ   r   r¾   ©r!   rÐ   r*   r*   r+   Útest_array_to_listN  s   z(TestNewScalarIndexing.test_array_to_listc                 C   s¸   | j }|dg d¢f }tt|tƒƒ t|tg d¢gƒƒ |ddg }tt|tƒƒ t|tddgddggƒƒ |dgdggddgddggf }tt|tƒƒ t|tddgddggƒƒ d S )Nr   )r   r   r   )r   r   r   r   r   r   r   )rÐ   r   rÉ   r   r   rá   r*   r*   r+   Útest_fancy_indexingR  s    z)TestNewScalarIndexing.test_fancy_indexingc                 C   s®   t g d¢g d¢gƒ}t|d d t g d¢gƒƒ t|d d jdƒ t|d jdƒ t|d d …df jdƒ t dƒ}t|d dƒ t|d dƒ t|d d …df j|jƒ d S )NrH   rI   r   )r   r   ©r   r   ru   )r   r   r    rS   r*   r*   r+   Útest_matrix_element^  s   z)TestNewScalarIndexing.test_matrix_elementc                 C   s*   t t dt¡ƒ}t|d |d d ƒ d S )NrÛ   ru   r   rÜ   rS   r*   r*   r+   Útest_scalar_indexingj  s   z*TestNewScalarIndexing.test_scalar_indexingc                 C   s†   t t d¡ƒ}t|dd d …f ddggƒ t|dd d …f ddggƒ t|d d …df dgdggƒ t|d d …df dgdggƒ d S )Nr   r   r   )r   r   r’   r   rS   r*   r*   r+   Útest_row_column_indexingn  s
   "z.TestNewScalarIndexing.test_row_column_indexingc                 C   st   t  d¡}d|_t|ƒ}t|d d …t  ddg¡f |d d …df ƒ t|t  g d¢¡d d …f |dd d …f ƒ d S )Nr   rÛ   TFr   )TFF)r   r   r    r   r   r   ©r!   r   rO   r*   r*   r+   Útest_boolean_indexingu  ó
   
,0z+TestNewScalarIndexing.test_boolean_indexingc                 C   st   t  d¡}d|_t|ƒ}t|d d …ddgf |d d …d d d…f ƒ t|g d¢d d …f |d d d…d d …f ƒ d S )Nr   rÛ   r   r   r‘   )r   r   r   )r   r   r    r   r   rë   r*   r*   r+   Útest_list_indexing|  rí   z(TestNewScalarIndexing.test_list_indexingN)r8   r9   r:   r   rÐ   râ   rã   rå   ræ   rè   ré   rê   rì   rî   r*   r*   r*   r+   rß   A  s    rß   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	TestPowerc                 C   sP   t  ddgddgg¡}ttt|dƒƒt ju ƒ t|ƒ}ttt|dƒƒtu ƒ d S ©Nr   r   r   )r   r   r   r„   r   rÏ   r   r   rä   r*   r*   r+   Útest_returntype…  s   zTestPower.test_returntypec                 C   s,   t tddgddggdƒddgddggƒ d S rð   )r   r   r/   r*   r*   r+   Ú	test_list‹  s   ,zTestPower.test_listN)r8   r9   r:   rñ   rò   r*   r*   r*   r+   rï   „  s    rï   c                   @   sv   e Zd Ze dgdgg¡Zedgdggƒ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 )Ú	TestShaper   r   c                 C   s    t | jjdƒ t | jjdƒ d S )Nrç   )r   rÐ   r    r“   r/   r*   r*   r+   Ú
test_shape”  s   zTestShape.test_shapec                 C   s,   t t | j¡jdƒ t t | j¡jdƒ d S )N©r   )r   r   ÚravelrÐ   r    r“   r/   r*   r*   r+   Útest_numpy_ravel˜  s   zTestShape.test_numpy_ravelc                 C   ó(   t | j ¡ jdƒ t | j ¡ jdƒ d S ©Nrõ   )r   r   )r   rÐ   rö   r    r“   r/   r*   r*   r+   Útest_member_ravelœ  ó   zTestShape.test_member_ravelc                 C   rø   rù   )r   rÐ   Úflattenr    r“   r/   r*   r*   r+   Útest_member_flatten   rû   zTestShape.test_member_flattenc                 C   sæ   t  g d¢g d¢g¡}tt  |¡g d¢ƒ tt j|dd�g d¢ƒ tt  |j¡g d¢ƒ tt j|jdd�g d¢ƒ tg d¢g d¢gƒ}tt  |¡g d¢ƒ tt j|dd�g d¢ƒ tt  |j¡g d¢ƒ tt j|jdd�g d¢ƒ d S ©NrH   rI   )r   r   r   r   r   r   ÚF)Úorder)r   r   r   r   r   r   r   )r   r   r   rö   rA   r   rS   r*   r*   r+   Útest_numpy_ravel_order¤  s   z TestShape.test_numpy_ravel_orderc                 C   st   t g d¢g d¢gƒ}t| ¡ g d¢gƒ t|jdd�g d¢gƒ t|j ¡ g d¢gƒ t|jjdd�g d¢gƒ d S rþ   )r   r   rö   rA   rS   r*   r*   r+   Útest_matrix_ravel_order°  s
   z!TestShape.test_matrix_ravel_orderc                 C   ó6   t t | j| j ¡ ¡ƒ t t | j| j ¡ ¡ ƒ d S ©N)r   r   Úmay_share_memoryrÐ   rö   rü   r/   r*   r*   r+   Útest_array_memory_sharing·  ó   z#TestShape.test_array_memory_sharingc                 C   r  r  )r   r   r  r“   rö   rü   r/   r*   r*   r+   Útest_matrix_memory_sharing»  r  z$TestShape.test_matrix_memory_sharingc                 C   sH   t  d¡ d¡ t j¡}t j|dd�}t|jdƒ tt	|t jƒ ƒ d S )NrJ   )r   r   r   r?   r   )
r   r   rX   r]   r   Úexpand_dimsr   rà   r   rÉ   )r!   rÐ   Úexpandedr*   r*   r+   Útest_expand_dims_matrix¿  s   z!TestShape.test_expand_dims_matrixN)r8   r9   r:   r   r   rÐ   r   r“   rô   r÷   rú   rý   r  r  r  r  r  r*   r*   r*   r+   ró   �  s    ró   )Úcollections.abcrÊ   Únumpyr   r   r   r   Únumpy.testingr   r   r   r   r	   r
   re   r   Únumpy.matrixlibr   r   r;   r   rŠ   r    rÚ   rß   rï   ró   r*   r*   r*   r+   Ú<module>   s      / ;*	C