
    G/Ph:                     @   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          Z G d d          Z G d	 d
          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G 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                        e Zd Zd Zd Zd ZdS )TestCtorc                    t          j        ddgddgg          }t          |          }t          t          j        |j        |k                         t          d          }t          ||g||gg          }t          j        g dg dg dg dg          }t          t          j        |j        |k                         t          t          j        |j        |k                         t          j        dd	gd
dgg          }t          g dg dg          }t          t          j        t          ||g          |k                         t          j        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mvecs
             d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/matrixlib/tests/test_defmatrix.py
test_basiczTestCtor.test_basic   sk   Hq!fq!f%&&AYYrtqy!!"""OO1a&1a&!""Hlll"ll"ll"ll$ % % 	qsax  !!!qsax  !!!Hq!fq!f%&&<<<677tQF||x/00111illc{{
f$%%%%%    c                 <    t          t          t          d           d S )Ninvalid)r   
ValueErrorr   r#   s    r,   test_exceptionszTestCtor.test_exceptions"   s    j&)44444r.   c           
         t          j        ddgddgg          }t          j        ddgddgg          }t          j        g d	g d
g d	g d
g          }t          j        g dg dg dg dg          }t          t          j        t	          d          |k                         t          t          j        t	          dd|i          |k                         t          t          t          dd|i           t          t          j        t	          dd|id|i          |k                         t	          d||d||d          }t          t          j        ||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)r5   r6   zA,B;C,D)r    r%   )r&   r'   )r   r   r   r   r   r   	TypeError)r#   r    r%   Aresult	mixresultb2s         r,   test_bmat_nondefault_strz!TestCtor.test_bmat_nondefault_str&   s   Hq!fq!f%&&Hq!fq!f%&&(LLL(LL(LL(LL* + + Hlll*ll*ll*ll, - -	 	tI'122333tIc!W555@AABBBiyQ@@@@F4	#aQ@@@GKLL	N 	N 	N)a==Q1FFFrY''(((((r.   N)__name__
__module____qualname__r-   r3   r;    r.   r,   r   r      sA        & & &,5 5 5) ) ) ) )r.   r   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestPropertiesc                 6   t          g dg dg dg dg          }t          g d          }t          g d          j        }d}t          ||                    d	                     t          ||                    d
	                     t	          ||                                           t          |t          j        |d	                     t          |t          j        |d
	                     t	          |t          j        |                     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sumalls        r,   test_sumzTestProperties.test_sum;   s    LLL<<<<<<! " " mmm$$mmm$$&4A///4A///VQUUWW%%%4!2!2!23334!2!2!2333VRVAYY'''''r.   c                    t          g dg dg          }t          |                                d           t          |                    d          t          g dg                     t          |                    d          t          dgdgg                     t          t          j        |          d           t          t          j        |d	          t          g dg                     t          t          j        |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   rF   )r   r   r   )r   r   prodr   r   r#   xys      r,   	test_prodzTestProperties.test_prodN   s+   IIIyyy)**QVVXXs###QVVAYY} 5 5666QVVAYYcU| 4 4555RWQZZ%%%RWQQ''')>)>???RWQQ'''!se)=)=>>>999Ar.   c                 X   t          g dg dg          }t          |                                d           t          |                    d          t          g dg                     t          |                    d          t          dgdgg                     t          t          j        |          d           t          t          j        |d          t          g dg                     t          t          j        |d          t          dgdgg                     d S )NrP   rQ   r   r   r   r   rF   )r   r   maxr   r#   rW   s     r,   test_maxzTestProperties.test_max[       IIIyyy)**QUUWWa   QUU1XXvyyyk22333QUU1XXvsQCj11222RVAYY"""RVAA&&&			{(;(;<<<RVAA&&&aSz(:(:;;;;;r.   c                 X   t          g dg dg          }t          |                                d           t          |                    d          t          g dg                     t          |                    d          t          dgdgg                     t          t          j        |          d           t          t          j        |d          t          g dg                     t          t          j        |d          t          dgdgg                     d S )NrP   rQ   r   r   r   rF   )r   r   minr   r\   s     r,   test_minzTestProperties.test_mine   r^   r.   c           	         t          j        d                              d          }|                    t           j                  }t          |                                dk               t          t          j        |                    d          t          j        ddg          k                         t          t          j        |                    d          t          j        ddg          k                         d S )Nr   )r   r   r   r   r   r   )	r   r!   reshapeviewr   r   ptpr   r   r#   rW   mxs      r,   test_ptpzTestProperties.test_ptpo   s    IaLL  ((VVBIArvvayyBHaV$4$4455666rvvayyBHaV$4$445566666r.   c                 r   t          j        d                              d          }|                    t           j                  }t          |                    d          |                    d                     t          |                    d          |                    d                     d S )N	   )r   r   r   )ddofr   )r   r!   rc   rd   r   r   varrf   s      r,   test_varzTestProperties.test_varv   s    IaLL  ((VVBIQUUU]]BFFFNN333QUUU]]BFFFNN33333r.   c           	      b   dd l m} t          j        ddgddgg          }t	          |          }t          t          j        |                    |          |j                             t          t          j	        t          j        t          j
        |          |j        k                                   t          t          j	        t          j        t          j
        |          |j        k                                   t          t          j	        ||j        k                         |d|z  z   }t	          |          }t          t          j        |                    |          |j                             t          t          j	        t          j        t          j
        |          |j        k                                   t          t          j	        t          j        t          j
        |                                          |j        k                                   d S )Nr         ?       @      @      @y               @)numpy.linalglinalgr   r   r   r   allcloseinvIr   	transposerH   Hr    conj)r#   rt   r    r$   r%   mBs         r,   r-   zTestProperties.test_basic|   s   %%%%%%Hr2h2h  ! !AYYFJJqMM2400111rxQ24 78899:::rxQ24 78899:::qBDy!!"""1HAYYFJJqMM2400111rxQ24 78899:::rxQ 4 4 6 6"$ >??@@AAAAAr.   c                     t          t          j        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!   rc   r   rw   )r#   rW   xpinvs      r,   	test_pinvzTestProperties.test_pinv   sl    29Q<<''1--..z2$z2$k24 5 5 	AC'''''r.   c           	         t          j        d                              dd          }t          |          }t          |          dz   }t	          t          j        ||dz   k                         t	          t          j        |t          |dz             k                         t	          t          j        |t          |dz
            k                          t	          t          j        ||k                          t	          t          j        ||k                         t	          t          j        ||k                         t	          t          j        ||k                           t	          t          j        ||k                           t	          t          j        ||k                         t	          t          j        ||k                         t	          t          j        ||k                          t	          t          j        ||k                         t	          t          j        ||k                          t	          t          j        ||k                         t	          t          j        t          |          dk                          t	          t          j        t          |dk                                   d S )Nd   rR   皙?r   )r   r!   rc   r   r   r   anyabs)r#   r    r$   r{   s       r,   test_comparisonszTestProperties.test_comparisons   s/   IcNN""2r**AYYAYY_rQsU{##$$$rVAcE]]*++,,,BF2#.///000rBw   rRx  !!!rRx  !!!BF27OO#$$$BF27OO#$$$rRx  !!!rRx  !!!BF27OO#$$$rRx  !!!BF28$$$%%%rRx  !!!BF3r77Q;'''(((s26{{##$$$$$r.   c                     t          j        d                              dd          }t          |          }d|d<   t	          |d         |d         k               d S )Nr   rR   ir   r   )r   r!   rc   r   r   )r#   r    r$   s      r,   test_asmatrixzTestProperties.test_asmatrix   sT    IcNN""2r**a[[$$2d8#$$$$$r.   c                     t          ddgddgg          }t          |                                t          d          k               t          |                                t          d          k               d S )Nr   r   r         ?)r   r   rI   meanr#   r    s     r,   test_noaxiszTestProperties.test_noaxis   sd    QFQF#$$6!99$%%%F3KK'(((((r.   c                 p    t          ddgddgg          }t          t          |          dk               d S )Nr   r   z matrix([[1, 0],
        [0, 1]]))r   r   reprr   s     r,   	test_reprzTestProperties.test_repr   s<    QFQF#$$Q>>?????r.   c                 n    t          d          }t          dgdgdgg          }t          ||           d S )NzTrue; True; FalseTF)r   r	   )r#   r    r%   s      r,   test_make_bool_matrix_from_strz-TestProperties.test_make_bool_matrix_from_str   s@    &''TFTFUG,--1a     r.   N)r<   r=   r>   rN   rY   r]   ra   rh   rm   r-   r~   r   r   r   r   r   r?   r.   r,   rA   rA   :   s        ( ( (&  < < << < <7 7 74 4 4B B B"( ( (% % %0% % %) ) )
@ @ @! ! ! ! !r.   rA   c                       e Zd Zd ZdS )TestCastingc                    t          j        d                              dd          }t          |          }|                                }t          j        dt           j                  dz  }||z   }t          |j        j	        t           j        k               t          t          j
        ||k                         t          t          j
        ||dz   k                         |                                }t          j        dt           j                  }||z  }t          |j        j	        t           j        k               t          t          j
        ||k                         d S )Nr   rR   )rR   rR   r   )r   r!   rc   r   copyonesfloat64r   dtypetyper   
complex128)r#   r    r$   r{   OmCs         r,   r-   zTestCasting.test_basic   s   IcNN""2r**AYYWWYYGHbj))C/!V+,,,rRx  !!!rRV|$$%%%WWYYGHbm,,!V.///rRx  !!!!!r.   Nr<   r=   r>   r-   r?   r.   r,   r   r      s#        " " " " "r.   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestAlgebrac           	         dd l m} t          j        ddgddgg          }t	          |          }t          j        d          }t          d          D ]A}t          t          j        ||z  j	        |                     t          j
        ||          }B|                    |          }t          j        d          }t          d          D ]B}t          t          j        || z  j	        |                     t          j
        ||          }Ct          t          j        ||z  j	        t          j
        ||                               t          t          j        ||z   j	        ||z                        t          t          j        d|z  j	        d|z                       t	          |          }|dz  }t          t          j        |j	        d|z                       d S )	Nr   ro   rp   rq   rr   r   r   r   )rs   rt   r   r   r   identityranger   ru   r    dotrv   )r#   rt   r    r$   r%   iAinvmA2s           r,   r-   zTestAlgebra.test_basic   s   %%%%%%Hr2hR)**AYYKNNq 	 	ABKqQ//000q!AAzz!}}KNNq 	  	 ABKra00111q$AAR"WK166777R"WK!a%11222QrTHqs,,---QiiqCE1Q3''(((((r.   c                    t          d          }|                                }|dz  }|                                }|dz  }|                                }|dz  }t          ||dz             t          |t          j        ||                     t          t          j        ||          t          j        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m4s        r,   test_powzTestAlgebra.test_pow   s    >""VVXX
qVVXX
r	WWYY
q!"ad+++!"bfRnn555!"&Q--;;;;;r.   c                     t          ddgddgg          }t          j        t          j        fD ]#} |d          }t	          |dz  ||z             $d S Nr   r   r   r   )r   r   int8uint8r
   )r#   r   scalar_ttwos       r,   test_scalar_type_powz TestAlgebra.test_scalar_type_pow   sf    QFQF#$$"(+ 	8 	8H(1++C%a1fa3h7777	8 	8r.   c                    t          ddgddgg          }t          t                    5  d|z   ddd           n# 1 swxY w Y   t          t                    5  |t                      z   ddd           dS # 1 swxY w Y   dS )z:Check that 'not implemented' operations produce a failure.ro   rp   rq   rr   N)r   r   r7   objectr   s     r,   test_notimplementedzTestAlgebra.test_notimplemented   s   RHH   9%% 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9%% 	 	fhhJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s!   <A A A::A>A>N)r<   r=   r>   r-   r   r   r   r?   r.   r,   r   r      sP        ) ) )2< < <8 8 8    r.   r   c                       e Zd Zd ZdS )TestMatrixReturnc           	      z   t          dgd          }dddgfdddt          j        dg          d	}g d
}t          |          D ]}|                    d          s||v rt          ||          }t          |t          j        j	                  re|
                    d           |                    d           ||v r	||         }nd} || }t          t          |          t           u d|z             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 )Nro   f8)r   )intc)        ro   r   )r   r   )astypeclipcompressrepeatrc   swapaxesr   ))argminchoosedumpdumpsfillgetfieldgetAgetA1itemnonzeroputputmaskresizesearchsortedsetflagssetfieldsort	partitionargpartitionnewbyteorder	to_devicetaketofiletolisttostringtobytesr   r   rI   argmaxr   r`   r[   r   rl   re   rU   stdctypesitemsetbitwise_count_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ds
             r,   test_instance_methodsz&TestMatrixReturn.test_instance_methods  s   C5%%%8SE?? 
   !ff 	: 	:F  %% 3C)C)C6""A![_566 	:sZ''%f-DDDAtHQ6)4&=999QV&'''QV&'''se}}$$&&1Q2:%&&&Q2:%&&&&&r.   N)r<   r=   r>   r   r?   r.   r,   r   r     s#        &' &' &' &' &'r.   r   c                       e Zd Zd ZdS )TestIndexingc                     t          t          j        dt                              }t          j        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   r   r   r   r   zerosfloatr   rV   s      r,   r-   zTestIndexing.test_basic9  s    RXfe,,--HVU##!//!!!Q$c'!!!Q$Q!Q!Q!Q011111r.   Nr   r?   r.   r,   r   r   8  s#        2 2 2 2 2r.   r   c                   f    e Zd Z eddgddgg          Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd ZdS )TestNewScalarIndexingr   r   r   r   c                 N    | j         }|d         }t          |j        d           d S )Nr   r   )r   r   ndimr#   r   rW   s      r,   test_dimesionsz$TestNewScalarIndexing.test_dimesionsD  s*    FaDQVQr.   c                 n    | j         }t          j        ||g          }t          |j        g d           d S )N)r   r   r   )r   r   r   r   r"   r  s      r,   test_array_from_matrix_listz1TestNewScalarIndexing.test_array_from_matrix_listI  s8    FHaVQWiii(((((r.   c                 d    | j         }t          |                                ddgddgg           d S r   )r   r   r   r#   r   s     r,   test_array_to_listz(TestNewScalarIndexing.test_array_to_listN  s4    FQXXZZ1a&1a&!122222r.   c                     | 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  s      r,   test_fancy_indexingz)TestNewScalarIndexing.test_fancy_indexingR  s   FalO
1f%%&&&Q}--...q!fI
1f%%&&&QQ!Q011222sQCjAq6Aq6**+
1f%%&&&QQ!a12233333r.   c                    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 )NrP   rQ   r   )r   r   r   r   r   )r   r   r"   r\   s     r,   test_matrix_elementz)TestNewScalarIndexing.test_matrix_element^  s    IIIyyy)**QqT!Wfiii[11222QqT!W]F+++QqTZ(((Qqqq!tW]F+++1IIQtWa   QqT1Qqqq!tW]AG,,,,,r.   c                     t          t          j        dt                              }t	          |d         |d         d                    d S )Nr   r   r   r   r\   s     r,   test_scalar_indexingz*TestNewScalarIndexing.test_scalar_indexingj  s=    RXfe,,--QtWad1g&&&&&r.   c                 4   t          t          j        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	   r\   s     r,   test_row_column_indexingz.TestNewScalarIndexing.test_row_column_indexingn  s    RVAYY1QqqqS6QF8,,,1QqqqS6QF8,,,1QQQT7aS1#J///1QQQT7aS1#J/////r.   c                 :   t          j        d          }d|_        t          |          }t	          |d d t          j        ddg          f         |d d df                    t	          |t          j        g d          d d f         |dd d f                    d S )Nr   r   TFr   )TFF)r   r!   r"   r   r	   r   r#   r    rW   s      r,   test_boolean_indexingz+TestNewScalarIndexing.test_boolean_indexingu  s    IaLLQKK1QQQ$ 7 778!AAAqD'BBB1RX&:&:&:;;AAA=>!AAA#GGGGGr.   c                     t          j        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  s      r,   test_list_indexingz(TestNewScalarIndexing.test_list_indexing|  s    IaLLQKK1QQQAY<111ddd74441YYYqqq[>1TTrT!!!V955555r.   N)r<   r=   r>   r   r   r  r  r	  r  r  r  r  r  r  r?   r.   r,   r   r   A  s        AA  A     
) ) )
3 3 3
4 
4 
4
- 
- 
-' ' '0 0 0H H H6 6 6 6 6r.   r   c                       e Zd Zd Zd ZdS )	TestPowerc                 &   t          j        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  s     r,   test_returntypezTestPower.test_returntype  s{    Hq!fq!f%&&\!Q''((BJ6777QKK\!Q''((F233333r.   c                 Z    t          t          ddgddggd          ddgddgg           d S r  )r	   r   r2   s    r,   	test_listzTestPower.test_list  s<    <!Q!Q(8!<<1v1v>NOOOOOr.   N)r<   r=   r>   r  r  r?   r.   r,   r  r    s7        4 4 4P P P P Pr.   r  c                       e Zd Z ej        dgdgg          Z edgdgg          Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd ZdS )	TestShaper   r   c                 n    t          | j        j        d           t          | j        j        d           d S )Nr  )r   r   r"   r   r2   s    r,   
test_shapezTestShape.test_shape  s0    TV\6***TV\6*****r.   c                     t          t          j        | j                  j        d           t          t          j        | j                  j        d           d S )Nr   )r   r   ravelr   r"   r   r2   s    r,   test_numpy_ravelzTestShape.test_numpy_ravel  sF    RXdf%%+T222RXdf%%+T22222r.   c                     t          | j                                        j        d           t          | j                                        j        d           d S Nr$  )r   r   )r   r   r%  r"   r   r2   s    r,   test_member_ravelzTestShape.test_member_ravel  sB    TV\\^^)4000TV\\^^)622222r.   c                     t          | j                                        j        d           t          | j                                        j        d           d S r(  )r   r   flattenr"   r   r2   s    r,   test_member_flattenzTestShape.test_member_flatten  sF    TV^^%%+T222TV^^%%+V44444r.   c                    t          j        g dg dg          }t          t          j        |          g d           t          t          j        |d          g d           t          t          j        |j                  g d           t          t          j        |j        d          g d           t          g dg dg          }t          t          j        |          g d           t          t          j        |d          g d           t          t          j        |j                  g d           t          t          j        |j        d          g d           d S NrP   rQ   )r   r   r   r   r   r   F)order)r   r   r   r   r   r   r    )r   r   r   r%  rH   r   r\   s     r,   test_numpy_ravel_orderz TestShape.test_numpy_ravel_order  sZ   Hiii+,,RXa[["4"4"4555RXas+++-?-?-?@@@RXac]]$6$6$6777RXac---/A/A/ABBBIIIyyy)**RXa[["4"4"4555RXas+++-?-?-?@@@RXac]]$6$6$6777RXac---/A/A/ABBBBBr.   c                 t   t          g dg dg          }t          |                                g dg           t          |                    d          g dg           t          |j                                        g dg           t          |j                            d          g dg           d S r.  )r   r   r%  rH   r\   s     r,   test_matrix_ravel_orderz!TestShape.test_matrix_ravel_order  s    IIIyyy)**QWWYY!3!3!3 4555QWW3W''*<*<*<)=>>>QSYY[[#5#5#5"6777QSYYSY)),>,>,>+?@@@@@r.   c                     t          t          j        | j        | j                                                             t          t          j        | j        | j                                                              d S N)r   r   may_share_memoryr   r%  r+  r2   s    r,   test_array_memory_sharingz#TestShape.test_array_memory_sharing  [    #DFDFLLNN;;<<<B'0@0@AAABBBBBr.   c                     t          t          j        | j        | j                                                             t          t          j        | j        | j                                                              d S r5  )r   r   r6  r   r%  r+  r2   s    r,   test_matrix_memory_sharingz$TestShape.test_matrix_memory_sharing  r8  r.   c                 4   t          j        d                              d                              t           j                  }t          j        |d          }t          |j        d           t          t          |t           j                              d S )NrR   )r   r   r   rF   r   )
r   r!   rc   rd   r   expand_dimsr   r  r   r   )r#   r   expandeds      r,   test_expand_dims_matrixz!TestShape.test_expand_dims_matrix  sx     IbMM!!&))..ry99>!!,,,X]A&&&Jx33344444r.   N)r<   r=   r>   r   r   r   r   r   r"  r&  r)  r,  r1  r3  r7  r:  r>  r?   r.   r,   r   r     s        1#sAaSzA+ + +3 3 33 3 35 5 5
C 
C 
CA A AC C CC C C5 5 5 5 5r.   r   )collections.abcr   numpyr   r   r   r   numpy.testingr   r   r   r	   r
   r   rs   r   r   rA   r   r   r   r   r   r  r   r?   r.   r,   <module>rB     s.           ( ( ( ( ( ( ( ( ( (                & % % % % %,) ,) ,) ,) ,) ,) ,) ,)^D! D! D! D! D! D! D! D!L" " " " " " " "&8 8 8 8 8 8 8 8v'' '' '' '' '' '' '' ''T2 2 2 2 2 2 2 2@6 @6 @6 @6 @6 @6 @6 @6FP P P P P P P P65 65 65 65 65 65 65 65 65 65r.   