
    Ng:                     L   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          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_power)matc                        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
             `/var/www/html/ai-engine/env/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)r6   r7   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.   r4   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   rG   )r   r   r   )r   r   prodr   r   r$   xys      r-   	test_prodzTestProperties.test_prodO   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 )NrQ   rR   r   r   r   r   rG   )r   r   maxr   r$   rX   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 )NrQ   rR   r   r   r   rG   )r   r   minr   r]   s     r-   test_minzTestProperties.test_minf   r_   r/   c           	         t          j        d                              d          }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"   reshaper   ptpr    r   r]   s     r-   test_ptpzTestProperties.test_ptpp   s    IaLL  ((1quuQxx28QF#3#3344555quuQxx28QF#3#334455555r/   c                 r   t          j        d                              d          }|                    t           j                  }t          |                    d          |                    d                     t          |                    d          |                    d                     d S )N	   )r   r   r   )ddofr   )r   r"   rd   viewr   r   var)r$   rX   mxs      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    	transposerI   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"   rd   r   rw   )r$   rX   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   rS   皙?r   )r   r"   rd   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   rS   ir   r   )r   r"   rd   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   rJ   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?   rO   rZ   r^   rb   rf   rm   r.   r~   r   r   r   r   r   r@   r/   r-   rB   rB   ;   s        ( ( (&  < < << < <6 6 64 4 4B B B"( ( (% % %0% % %) ) )
@ @ @! ! ! ! !r/   rB   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   rS   )rS   rS   r   )r   r"   rd   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   r8   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repeatrd   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    r   rJ   argmaxr   ra   r\   r   rk   re   rV   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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   rW   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   rX   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 )NrQ   rR   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!   rX   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FF\!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   r3   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   r3   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   r3   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   r3   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   r3   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 NrQ   rR   )r   r   r   r   r   r   F)order)r   r   r   r   r   r   r!   )r   r   r   r"  rI   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"  rI   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(  r3   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 r2  )r   r   r3  r   r"  r(  r3   s    r-   test_matrix_memory_sharingz$TestShape.test_matrix_memory_sharing  r5  r/   c                 4   t          j        d                              d                              t           j                  }t          j        |d          }t          |j        d           t          t          |t           j                              d S )NrS   )r   r   r   rG   r   )
r   r"   rd   rj   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)  r.  r0  r4  r7  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   numpy.matrixlibr   r   rB   r   r   r   r   r   r  r  r@   r/   r-   <module>r@     s@           ( ( ( ( ( ( ( ( ( (                & % % % % %      ,) ,) ,) ,) ,) ,) ,) ,)^C! C! C! C! C! C! C! C!J" " " " " " " "&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/   