
    ,|h:                        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y)    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y)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(         y )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
             c/var/www/html/test/engine/venv/lib/python3.12/site-packages/numpy/matrixlib/tests/test_defmatrix.py
test_basiczTestCtor.test_basic   s    HHq!fq!f%&AYrttqy!"O1a&1a&!"HHl"""$ % 	qssax !qssax !HHq!fq!f%&<67tQF|x/01iilc{

f$%    c                 .    t        t        t        d       y )Ninvalid)r   
ValueErrorr   r$   s    r-   test_exceptionszTestCtor.test_exceptions#   s    j&)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(               y )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   HHq!fq!f%&HHq!fq!f%&((L(((* + HHl***, -	 	tI'123tIc!W5@ABiyQ@FF4	#aQ@GKL	N)a=Q1FrY'(r/   N)__name__
__module____qualname__r.   r4   r<    r/   r-   r   r      s    &,5)r/   r   c                   Z    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y)TestPropertiesc                    t        g dg dg dg dg      }t        g d      }t        g d      j                  }d}t        ||j                  d	             t        ||j                  d
	             t	        ||j                                t        |t        j                  |d	             t        |t        j                  |d
	             t	        |t        j                  |             y)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     L! " m$m$&&4A/4A/VQUUW%4!234!23VRVVAY'r/   c                 >   t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  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	        |j                         dk(         y )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    Iy)*QVVXs#QVVAY} 56QVVAYcU| 45RWWQZ%RWWQQ')>?RWWQQ'!se)=>9Ar/   c                    t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  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             y )NrQ   rR   r   r   r   r   rG   )r   r   maxr   r$   rX   s     r-   test_maxzTestProperties.test_max\       Iy)*QUUWa QUU1Xvyk23QUU1XvsQCj12RVVAY"RVVAA&	{(;<RVVAA&aSz(:;r/   c                    t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  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             y )NrQ   rR   r   r   r   rG   )r   r   minr   r]   s     r-   test_minzTestProperties.test_minf   r_   r/   c           	         t        j                  d      j                  d      }t        |j	                         dk(         t        t        j
                  |j	                  d      t        j                  ddg      k(               t        t        j
                  |j	                  d      t        j                  ddg      k(               y )Nr   )r   r   r   r   r   r   )r   r"   reshaper   ptpr    r   r]   s     r-   test_ptpzTestProperties.test_ptpp   s    IIaL  (1quuQx288QF#3345quuQx288QF#3345r/   c                 :   t        j                  d      j                  d      }|j                  t         j                        }t        |j                  d      |j                  d             t        |j                  d      |j                  d             y )N	   )r   r   r   )ddofr   )r   r"   rd   viewr   r   var)r$   rX   mxs      r-   test_varzTestProperties.test_varv   sh    IIaL  (VVBIIQUUU]BFFFN3QUUU]BFFFN3r/   c           	      \   dd l m} t        j                  ddgddgg      }t	        |      }t        t        j                  |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                  |      |j                               t        t        j                  t        j                  t        j                  |      |j                  k(                     t        t        j                  t        j                  t        j                  |      j                         |j                  k(                     y )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|   sP   %HHr2h2h  !AYFJJqM24401rxxQ244 789:rxxQ244 789:qBDDy!"1HAYFJJqM24401rxxQ244 789:rxxQ 4 4 6"$$ >?@Ar/   c                     t        t        j                  d      j                  dd            }t        ddgddgdd	gg      }t	        |j
                  |       y )
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   sW    299Q<''1-.z2$z2$k24 5 	ACC'r/   c           	         t        j                  d      j                  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                  ||kD                t	        t        j
                  ||k(               t	        t        j                  ||k(                t	        t        j
                  ||k7               t	        t        j
                  t        |      dkD                t	        t        j
                  t        |dkD                     y )Nd   rS   皙?r   )r   r"   rd   r   r   r    anyabs)r$   r!   r%   r{   s       r-   test_comparisonszTestProperties.test_comparisons   s   IIcN""2r*AYAY_rQsU{#$rVAcE]*+,BFF2#.//0rBw rRx !rRx !BFF27O#$BFF27O#$rRx !rRx !BFF27O#$rRx !BFF28$$%rRx !BFF3r7Q;''(s26{#$r/   c                     t        j                  d      j                  dd      }t        |      }d|d<   t	        |d   |d   k(         y )Nr   rS   ir   r   )r   r"   rd   r   r   )r$   r!   r%   s      r-   test_asmatrixzTestProperties.test_asmatrix   sC    IIcN""2r*a[$$2d8#$r/   c                     t        ddgddgg      }t        |j                         t        d      k(         t        |j                         t        d      k(         y )Nr   r   r         ?)r   r   rJ   meanr$   r!   s     r-   test_noaxiszTestProperties.test_noaxis   sG    QFQF#$6!9$%F3K'(r/   c                 T    t        ddgddgg      }t        t        |      dk(         y )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                 T    t        d      }t        dgdgdgg      }t        ||       y )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   ;   sE    (&<<64B"(%0%)
@!r/   rB   c                       e Zd Zd Zy)TestCastingc                    t        j                  d      j                  dd      }t        |      }|j	                         }t        j
                  dt         j                        dz  }||z   }t        |j                  j                  t         j                  k(         t        t        j                  ||k7               t        t        j                  ||dz   k(               |j	                         }t        j
                  dt         j                        }||z  }t        |j                  j                  t         j                  k(         t        t        j                  ||k7               y )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    IIcN""2r*AYWWYGGHbjj)C/!V+,rRx !rRV|$%WWYGGHbmm,!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y)TestAlgebrac           	         dd l m} t        j                  ddgddgg      }t	        |      }t        j
                  d      }t        d      D ]D  }t        t        j                  ||z  j                  |             t        j                  ||      }F |j                  |      }t        j
                  d      }t        d      D ]E  }t        t        j                  || z  j                  |             t        j                  ||      }G t        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               y )	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`   %HHr2hR)*AYKKNq 	ABKKqQ/0q!A	 zz!}KKNq 	 ABKKra01q$A	  	R"WKK167R"WKK!a%12QrTHHqs,-QiqCEE1Q3'(r/   c                 \   t        d      }|j                         }|dz  }|j                         }|dz  }|j                         }|dz  }t        ||dz         t        |t        j                  ||             t        t        j                  ||      t        j
                  d             y)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    >"VVX
qVVX
r	WWY
q!"ad+!"bffRn5!"&&Q-;r/   c                     t        ddgddgg      }t        j                  t        j                  fD ]  } |d      }t	        |dz  ||z          y Nr   r   r   r   )r   r   int8uint8r
   )r$   r   scalar_ttwos       r-   test_scalar_type_powz TestAlgebra.test_scalar_type_pow   sP    QFQF#$"((+ 	8H1+C%a1fa3h7	8r/   c                     t        ddgddgg      }t        t              5  d|z   ddd       t        t              5  |t               z   ddd       y# 1 sw Y   /xY w# 1 sw Y   yxY w)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   sq    RHH  9% 	F	 9% 	fhJ	 			 		 	s   AA!A!A*N)r=   r>   r?   r.   r   r   r   r@   r/   r-   r   r      s    )2<8r/   r   c                       e Zd Zd Zy)TestMatrixReturnc           	         t        dgd      }dddgfdddt        j                  dg      d	}g d
}t        |      D ]  }|j	                  d      s||v rt        ||      }t        |t        j                  j                        sJ|j                  d       |j                  d       ||v r||   }nd} || }t        t        |      t         u d|z          t        t        |j                        t         u        t        t        |j                        t         u        t        dg      j!                         \  }}	t        t        |      t        j"                  u        t        t        |	      t        j"                  u        y )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  sK   C5%88SE?
 !f 	:F  %3C)C6"A![__556sZ'%f-DDtHQ6)4&=9	: 	QVV&'QVV&'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y)TestIndexingc                     t        t        j                  dt                    }t        j                  dt              }g d|d d df<   |dkD  |d d df<   t	        |ddgddgddgg       y )Nr   r   )r   r   )g?g?g333333?r   r   r   r   r   zerosfloatr   rW   s      r-   r.   zTestIndexing.test_basic9  sb    RXXfe,-HHVU#!!Q$c'!Q$Q!Q!Q!Q01r/   Nr   r@   r/   r-   r   r   8  s    2r/   r   c                   ^    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y)TestNewScalarIndexingr   r   r   r   c                 R    | j                   }|d   }t        |j                  d       y )Nr   r   )r   r   ndimr$   r   rX   s      r-   test_dimesionsz$TestNewScalarIndexing.test_dimesionsD  s"    FFaDQVVQr/   c                 z    | j                   }t        j                  ||g      }t        |j                  g d       y )N)r   r   r   )r   r   r   r   r#   r   s      r-   test_array_from_matrix_listz1TestNewScalarIndexing.test_array_from_matrix_listI  s+    FFHHaVQWWi(r/   c                 \    | j                   }t        |j                         ddgddgg       y r   )r   r   r   r$   r   s     r-   test_array_to_listz(TestNewScalarIndexing.test_array_to_listN  s(    FFQXXZ1a&1a&!1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             y )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    FFalO
1f%&Q}-.q!fI
1f%&QQ!Q012sQCjAq6Aq6**+
1f%&QQ!a12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                         y )NrQ   rR   r   )r   r   r   r   r   )r   r   r#   r]   s     r-   test_matrix_elementz)TestNewScalarIndexing.test_matrix_element^  s    Iy)*QqT!Wfi[12QqT!W]]F+QqTZZ(Qq!tW]]F+1IQtWa QqT1Qq!tW]]AGG,r/   c                 t    t        t        j                  dt                    }t	        |d   |d   d          y )Nr   r   r   r   r]   s     r-   test_scalar_indexingz*TestNewScalarIndexing.test_scalar_indexingj  s-    RXXfe,-QtWad1g&r/   c                     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       y )Nr   r   r   )r   r   r   r	   r]   s     r-   test_row_column_indexingz.TestNewScalarIndexing.test_row_column_indexingn  sx    RVVAY1QqS6QF8,1QqS6QF8,1QT7aS1#J/1Q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          y )Nr   r   TFr   )TFF)r   r"   r#   r   r	   r   r$   r!   rX   s      r-   test_boolean_indexingz+TestNewScalarIndexing.test_boolean_indexingu  sn    IIaLQK1Q$ 778!AqD'B1RXX&:;A=>!A#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          y )Nr   r   r   r   r   )r   r   r   )r   r"   r#   r   r	   r  s      r-   test_list_indexingz(TestNewScalarIndexing.test_list_indexing|  s_    IIaLQK1QAY<1dd741Yq[>1TrT!V95r/   N)r=   r>   r?   r   r   r  r  r  r  r  r  r  r  r  r@   r/   r-   r   r   A  sG    AA A 
)
3
4
-'0H6r/   r   c                       e Zd Zd Zd Zy)	TestPowerc                     t        j                  ddgddgg      }t        t        t	        |d            t         j
                  u        t        |      }t        t        t	        |d            t        u        y Nr   r   r   )r   r   r   r   r   r   r   r   r  s     r-   test_returntypezTestPower.test_returntype  s\    HHq!fq!f%&\!Q'(BJJ67F\!Q'(F23r/   c                 H    t        t        ddgddggd      ddgddgg       y r  )r	   r   r3   s    r-   	test_listzTestPower.test_list  s-    <!Q!Q(8!<1v1v>NOr/   N)r=   r>   r?   r  r  r@   r/   r-   r  r    s    4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y)	TestShaper   r   c                     t        | j                  j                  d       t        | j                  j                  d       y )Nr
  )r   r   r#   r   r3   s    r-   
test_shapezTestShape.test_shape  s&    TVV\\6*TVV\\6*r/   c                     t        t        j                  | j                        j                  d       t        t        j                  | j
                        j                  d       y )Nr   )r   r   ravelr   r#   r   r3   s    r-   test_numpy_ravelzTestShape.test_numpy_ravel  s<    RXXdff%++T2RXXdff%++T2r/   c                     t        | j                  j                         j                  d       t        | j                  j                         j                  d       y Nr!  )r   r   )r   r   r"  r#   r   r3   s    r-   test_member_ravelzTestShape.test_member_ravel  s6    TVV\\^))40TVV\\^))62r/   c                     t        | j                  j                         j                  d       t        | j                  j                         j                  d       y r%  )r   r   flattenr#   r   r3   s    r-   test_member_flattenzTestShape.test_member_flatten  s8    TVV^^%++T2TVV^^%++V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       y 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  s    HHi+,RXXa["45RXXas+-?@RXXacc]$67RXXacc-/ABIy)*RXXa["45RXXas+-?@RXXacc]$67RXXacc-/ABr/   c                 >   t        g dg dg      }t        |j                         g dg       t        |j                  d      g dg       t        |j                  j                         g dg       t        |j                  j                  d      g dg       y r+  )r   r   r"  rI   r]   s     r-   test_matrix_ravel_orderz!TestShape.test_matrix_ravel_order  ss    Iy)*QWWY!3 45QWW3W'*<)=>QSSYY[#5"67QSSYYSY),>+?@r/   c                 
   t        t        j                  | j                  | j                  j	                                      t        t        j                  | j                  | j                  j                                       y N)r   r   may_share_memoryr   r"  r(  r3   s    r-   test_array_memory_sharingz#TestShape.test_array_memory_sharing  L    ##DFFDFFLLN;<B''0@AABr/   c                 
   t        t        j                  | j                  | j                  j	                                      t        t        j                  | j                  | j                  j                                       y r2  )r   r   r3  r   r"  r(  r3   s    r-   test_matrix_memory_sharingz$TestShape.test_matrix_memory_sharing  r5  r/   c                 (   t        j                  d      j                  d      j                  t         j                        }t        j
                  |d      }t        |j                  d       t        t        |t         j                                y )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  s_     IIbM!!&)..ryy9>>!!,X]]A&Jx33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5
CACC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!J" "&8 8v'' ''T2 2@6 @6FP P65 65r/   