a
    Lf:                     @   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&   ]/var/www/ai-form-bot/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#qg#q?gn)t?g6Bq)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 )Nd   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
||}qt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tolistZ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_methodsZ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