a
    ç´«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 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_powerc                   @   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ÚEZAEresultZvecZmvec© r&   úc/var/www/html/laksyashrimp/venv/lib/python3.9/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)r-   r.   zA,B;C,D)r   r"   )r#   r$   )r   r   r   r   r   r
   Ú	TypeError)r    r   r"   ZAresultZ	mixresultÚb2r&   r&   r'   Útest_bmat_nondefault_str&   s(    
ý
ýÿz!TestCtor.test_bmat_nondefault_strN)Ú__name__Ú
__module__Ú__qualname__r(   r,   r1   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   ©Zaxisr   N)r   ÚTr   Úsumr   r   )r    ÚMZsum0Zsum1Z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   r9   )r   r   r   )r   r   Úprodr   r   ©r    ÚxÚyr&   r&   r'   Ú	test_prodN   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 )Nr>   r?   r   r   r   r   r9   )r   r   Úmaxr   ©r    rE   r&   r&   r'   Útest_max[   s    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 )Nr>   r?   r   r   r   r9   )r   r   Úminr   rI   r&   r&   r'   Útest_mine   s    zTestProperties.test_minc                 C   st   t  d¡ d¡}| t j¡}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   ÚreshapeÚviewr   r   Úptpr   r   ©r    rE   Zmxr&   r&   r'   Útest_ptpo   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   )Zddofr   )r   r   rM   rN   r   r   ÚvarrP   r&   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   Z	transposer:   ÚHr   Zconj)r    rZ   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   rM   r   r]   )r    rE   Z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   r@   çš™™™™™¹?r   )r   r   rM   r   r   r   ÚanyÚabs)r    r   r!   r_   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 )Nra   r@   iöÿÿÿ©r   r   )r   r   rM   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   r;   Ú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   Úreprrj   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)r2   r3   r4   r=   rG   rJ   rL   rQ   rT   r(   r`   re   rg   rk   rm   rn   r&   r&   r&   r'   r5   :   s   

r5   c                   @   s   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 )Nra   r@   )r@   r@   rb   )r   r   rM   r   ÚcopyZonesZfloat64r   ÚdtypeÚtyper   Z
complex128)r    r   r!   r_   ÚOZmCr&   r&   r'   r(   Á   s    zTestCasting.test_basicN©r2   r3   r4   r(   r&   r&   r&   r'   ro   À   s   ro   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   rU   rV   rW   rX   r   r   r   )rY   rZ   r   r   r   ÚidentityÚranger   r[   r   Údotr\   )r    rZ   r   r!   r"   ÚiZAinvZ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   rp   r	   r   rx   Úeye)r    ÚmÚm2ÚmiZ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   Zint8Zuint8r	   )r    r|   Zscalar_tÚtwor&   r&   r'   Útest_scalar_type_powú   s    z TestAlgebra.test_scalar_type_powc                 C   sz   t ddgddggƒ}ttƒ� d|  W d  ƒ n1 s:0    Y  ttƒ� |tƒ   W d  ƒ n1 sl0    Y  dS )z:Check that 'not implemented' operations produce a failure.rU   rV   rW   rX   N)r   r
   r/   Úobjectrj   r&   r&   r'   Útest_notimplemented   s    ÿ
&
zTestAlgebra.test_notimplementedN)r2   r3   r4   r(   r   r‚   r„   r&   r&   r&   r'   ru   Ó   s   ru   c                   @   s   e Zd Zdd„ ZdS )ÚTestMatrixReturnc           
   	   C   s  t dgdd�}dddgfdddt dg¡d	œ}g d
¢}t|ƒD ]x}| d¡s>||v rVq>t||ƒ}t|tjj	ƒr>| 
d¡ | d¡ ||v r”|| }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 )NrU   Zf8)rq   )Zintc)ç        rU   r   )r   rf   )ÚastypeZclipÚcompressÚrepeatrM   Zswapaxesrx   ))ÚargminÚchooseÚdumpÚdumpsÚfillZgetfieldZgetAZgetA1ÚitemÚnonzeroÚputZputmaskÚresizeZsearchsortedZsetflagsZsetfieldÚsortÚ	partitionZargpartitionZnewbyteorderZ	to_deviceZtakeÚtofileÚtolistÚtostringÚtobytesr   rc   r;   ZargmaxrŠ   rK   rH   ri   rS   rO   rC   ZstdÚctypesZitemsetZbitwise_countÚ_r&   z%sr†   )r   r   r   ÚdirÚ
startswithÚgetattrÚ
isinstanceÚcollectionsÚabcÚCallabler‡   rŽ   r   rr   ÚrealÚimagr�   Úndarray)
r    ÚaZ
methodargsZexcluded_methodsÚattribÚfÚargsÚbÚcÚdr&   r&   r'   Útest_instance_methods  s6    
ù		



z&TestMatrixReturn.test_instance_methodsN)r2   r3   r4   r¬   r&   r&   r&   r'   r…     s   r…   c                   @   s   e Zd Zdd„ ZdS )Ú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   rh   r   ©r   r   ZzerosÚfloatr   rD   r&   r&   r'   r(   9  s
    zTestIndexing.test_basicNrt   r&   r&   r&   r'   r­   8  s   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¥   rE   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 )Nr>   r?   r   )r   r   ©r   r   rf   )r   r   r   rI   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®   rf   r   r¯   rI   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   rI   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   rE   r&   r&   r'   Útest_boolean_indexingu  s
    
,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   rz   )r   r   r   )r   r   r   r   r   r½   r&   r&   r'   Útest_list_indexing|  s
    
,z(TestNewScalarIndexing.test_list_indexingN)r2   r3   r4   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   rr   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)r2   r3   r4   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   s(   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œ  s    zTestShape.test_member_ravelc                 C   s(   t | j ¡ jdƒ t | j ¡ jdƒ d S rÉ   )r   r¥   Úflattenr   r|   r+   r&   r&   r'   Útest_member_flatten   s    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 ©Nr>   r?   )r   r   r   r   r   r   ÚF)Úorder)r   r   r   r   r   r   r   )r   r   r   rÇ   r:   r   rI   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Ç   r:   rI   r&   r&   r'   Útest_matrix_ravel_order°  s
    z!TestShape.test_matrix_ravel_orderc                 C   s6   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·  s    z#TestShape.test_array_memory_sharingc                 C   s6   t t | j| j ¡ ¡ƒ t t | j| j ¡ ¡ ƒ d S rÒ   )r   r   rÓ   r|   rÇ   rË   r+   r&   r&   r'   Útest_matrix_memory_sharing»  s    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 )Nr@   )r   r   r   r9   r   )
r   r   rM   rN   r   Zexpand_dimsr   r²   r   rž   )r    r¥   Úexpandedr&   r&   r'   Útest_expand_dims_matrix¿  s    z!TestShape.test_expand_dims_matrixN)r2   r3   r4   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   Znumpy.testingr   r   r   r   r	   r
   rY   r   r   r5   ro   ru   r…   r­   r±   rÀ   rÄ   r&   r&   r&   r'   Ú<module>   s    / ;*	C