
    Khw.                         S r SSKrSSKrSSKrSSKrSSKJrJrJ	r	J
r
JrJrJr  S rS rS rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r  " S S5      r!S r"S r#g)zTests of interaction of matrix with other parts of numpy.

Note that tests with MaskedArray and linalg are done in separate files.
    N)assert_assert_equalassert_raisesassert_raises_regexassert_array_equalassert_almost_equalassert_array_almost_equalc                  x   [         R                  " SS/SS//5      n [        [        U / SQS S 24   [         R                  5      5        [         R                  " [         R
                  " S5      R                  SS5      5      n[        US S2[         R                  " S	5      4   US S2S	4   R                  5        g )
N            )r   r   r   2      
   )
npmatrixr   
isinstanceasmatrixarangereshaper   arrayT)mxs     X/var/www/html/env/lib/python3.13/site-packages/numpy/matrixlib/tests/test_interaction.pytest_fancy_indexingr      s    
 			Aq6Aq6"#AJqA		23 	BIIbM))!R01A2A2rxx|#$aBikk2    c                      SS/n SS/n[         R                  " X /5      n[         R                  R                  R	                  X U5      n[        [        U[         R                  5      5        g )Nr   r   r   r   )r   r   
polynomial	polyutils	mapdomainr   r   )dom1dom2r   ress       r   test_polynomial_mapdomainr'      sU     q6Dq6D
		4,A
--
!
!
+
+AT
:CJsBII&'r   c                      [         R                  " / SQ/5      n [         R                  " U S S9n[         R                  " / SQ/5      n[        X5        [	        [        U5      [         R                  L 5        g )Nr   r   r   axisr   r   r   )r   r   sortr   r   typeaactualexpecteds      r   test_sort_matrix_noner3   )   sO    
		9+AWWQT"Fyy)%H"DNbii'(r   c                      [         R                  " / SQ/5      n [         R                  " U SS S9n[         R                  " / SQ/5      n[        X5        [	        [        U5      [         R                  L 5        g )Nr)   r   r*   r,   )r   r   	partitionr   r   r.   r/   s      r   test_partition_matrix_noner6   2   sS     			9+A\\!QT*Fyy)%H"DNbii'(r   c                      [         R                  " SS/[        S9n [         R                  " SS//[        S9n[        [         R                  " U S5      U5        [        [         R                  " SU 5      U5        g Nr   r   dtyper      )r   r   objectr   dotarrdesireds     r   %test_dot_scalar_and_matrix_of_objectsrA   <   sV     ))QF&
)Cii!Q/GQ)3)r   c                     [         R                  S   [         R                  S   -   S-    H  n [         R                  " SU S9S   n[         R                  " SS/SS	//U S9n[         R                  " SS
/SS//U S9n[	        [         R
                  " X!5      U5        [	        [         R
                  " X5      U5        M     g )N
AllIntegerAllFloat?r   r9    r   r   r   r;   	      )r   	typecodesr   r   r   inner)dtscar?   r@   s       r   test_inner_scalar_and_matrixrM   E   s    ll<(2<<
+CCcIhhq#B'ii!Q!Q(3))aVaW-R8RXXc'1RXXc'1 Jr   c                      [         R                  " SS/[        S9n [         R                  " SS//[        S9n[        [         R                  " U S5      U5        [        [         R                  " SU 5      U5        g r8   )r   r   r<   r   rJ   r>   s     r   'test_inner_scalar_and_matrix_of_objectsrO   O   sX     ))QF&
)Cii!Q/G#q!7+!S!7+r   c            
         [         R                  " SS/SS//5      n [         R                  " S5      R                  SS5      R                  n[         R
                  " XS // S/S/SS//5      n[        [        UR                  S   5      [         R                  L 5        [        [        UR                  S   5      [         R                  L5        [        UR                  S   R                  S5        [         R                  " S5      R                  SSS5      n[        [        [         R
                  XS // S/S/SS//5        [         R
                  " XS // S/S// S	Q/5      n[        [        UR                  S   5      [         R                  L 5        [        [        UR                  S   5      [         R                  L5        [        UR                  S   R                  S
5        g )Nr   r   r   r   readonly	writeonlyallocate)r   r   )rR   rS   
no_subtype)r   r   r   )r   r   r   r   r   nditerr   r.   operandsndarrayr   shaper   RuntimeError)r0   bis      r   !test_iter_allocate_output_subtyper\   X   s    			Aq6Aq6"#A
		!Q"$$A
		1,<*Z/HI	KADA299,-DArzz12A$$f- 			!Q1%A,		A$<<*Z/HIK 			1,<*:<	=A DA2::-.DAryy01A$$i0r   c                  V   [         R                  " SS/SS//5      n [         R                  [         R                  [         R                  4 HZ  nU" U 5      n[        [        U5      [         R                  L 5        U" U SS9n[        [        U5      [         R                  L5        M\     g )Nr   r   r   r   F)subok)r   r   
zeros_like	ones_like
empty_liker   r.   )r0   like_functionrZ   cs       r   rb   rb   s   s{    
		Aq6Aq6"#AbmmC!Q299$%!5)Qryy() Dr   c                     [         R                  " / SQ/ SQ/SS9n U R                  SSSS9n[        XL 5        U R                  SSS	9n[	        X5        [	        [        U5      [         R                  5        U R                  SSSS9n[	        X5        [        XL5        [        [        U5      [         R                  L5        g )
Nr,   )r   r   r   f4r9   TF)r^   copyi4)rf   )r   r   astyper   r   r.   r0   rZ   s     r   test_array_astyperj   ~   s     			9i(5A	T.AAFO 	
E"Aa"))$ 	
U/ADG299$%r   c                  ~    [         R                  " SS/SS//5      n [        [        S[         R                  X /5        g )Nr   r   r   r   zshape too large to be a matrix)r   r   r   
ValueErrorstack)r   s    r   
test_stackrn      s7     			Aq6Aq6"#A
$D1&*r   c                      [         R                  " SS/[        S9n [         R                  " SS//[        S9n[        [         R                  " U S5      U5        [        [         R                  " SU 5      U5        g r8   )r   r   r<   r   multiplyr>   s     r   test_object_scalar_multiplyrq      sX     ))QF&
)Cii!Q/GS!$g.Q$g.r   c            	      `   [         R                  " [         R                  " S5      5      n [         R                  [         R                  4 H  nU" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U 5      n[        [         R                  " U5      5        M     [         R                  U S'   [         R                  [         R                  4 GHD  n[        R                  " SS9 n[        R                  " S	5        U" U SS9n[        [        U[         R                  5      5        [        [         R                  " [         R                  " U5      5      (       + 5        [        [        U5      S:H  5        S S S 5        [        R                  " SS9 n[        R                  " S	5        U" U SS9n[        [        U[         R                  5      5        [        [         R                  " US
   5      =(       aC    [         R                  " US   5      (       + =(       a    [         R                  " US   5      (       + 5        [        [        U5      S:H  S5        [        [!        US   R"                  [$        5      5        S S S 5        [        R                  " SS9 n[        R                  " S	5        U" U 5      n[        [         R                  " U5      5        [        U[         R                  :g  5        [        [        U5      S:H  5        S S S 5        GMG     g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       GM}  = f)Nr   r   r*   r   r   r   r   r   T)recordalways)r   r   )r   r   )r   r   zno warning raised)r   r   eyenanminnanmaxr   r   rX   isscalarnanwarningscatch_warningssimplefilteranyisnanlen
issubclasscategoryRuntimeWarning)matfr&   ws       r   test_nanfunctions_matricesr      sj    ))BFF1I
Cii#!n
3		*+		V#$!n
3		*+		V#$fC ! $ VVCFii#$$D1Q!!(+Ca.CJsBII./rxx}--.CFaK  2 $$D1Q!!(+Ca.CJsBII./BHHSY' 0T0C,C 0HHSY//1CFaK!45Jqt}}n=> 2 $$D1Q!!(+C&CBKK$%C266M"CFaK  21# $11 21 21s'   BM:4C+N;A1N:
N		
N	
N-	c                  n   [         R                  " [         R                  " S5      5      n [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  4 H  nU" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U 5      n[        [         R                  " U5      5        M     [         R                  [         R                  4 H  nU" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U SS9n[        [        U[         R                  5      5        [        UR                  S:H  5        U" U 5      n[        [        U[         R                  5      5        [        UR                  S:H  5        M     g )	Nr   r   r*   rs   r   rt   )r   r   )r   rG   )r   r   rw   	nanargmin	nanargmaxnansumnanprodnanmeannanvarnanstdr   r   rX   rz   	nancumsum
nancumprod)r   r   r&   s      r   "test_nanfunctions_matrices_generalr      sn    ))BFF1I
CllBLL"))RZZjj"))RYY0!n
3		*+		V#$!n
3		*+		V#$fC !0 \\2==(!n
3		*+		V#$!n
3		*+		V#$f
3		*+		X%& )r   c                     [         R                  " [         R                  R                  SS5      5      n [	        U R                  S5      [         R                  " U S5      5        [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[         R                  " USUS9n[        [        U5      [         R                  5        [        USS	//5        g )
Nr   r   r   r   r   r   )r+   weightsg      @g
@)	r   r   randomrandr   meanaverager   r.   )yr0   r   rs       r   test_average_matrixr      s    
		"))..A&'Aqvvay"**Q"23
		Aq6Aq6"#A
		Aq6Aq6"#A


11a(Aa"))$c6]O$r   c                  :   [         R                  " SS5      n [         R                  " SS5      n[         R                  " U 5      n[         R                  " U5      n[         R                  " X5      n[         R                  " X#R                  5      n[        XT5        g )Nr   r   )r   linspacer   r=   r   r   )r   r   mxmyr   mrs         r   test_dot_matrixr      se     	AqA
BA	1B	1B
qA	DD	Br   c                  &   [        [        R                  " [        R                  " S5      5      [        R                  5      (       d   e[        [        R                  " [        R                  " S5      SS9[        R                  5      (       d   eg )Nr   )to_begin)r   r   ediff1dr   rF   r   r   test_ediff1d_matrixr      sT    bjj1.		::;:bjj1:BIIFFGFr   c                     S n [         R                  " SS/SS//5      n[         R                  " SS/SS//5      n[         R                  " U SU5      n[        [	        U[         R                  5      5        [        X25        [         R                  " U SU5      n[        [	        U[         R                  5      5        [        X25        g )Nc                     U S-  $ Nr   rF   )rows    r   double,test_apply_along_axis_matrix.<locals>.double
  s    Qwr   r   r   r   r   r   r;   )r   r   apply_along_axisr   r   r   )r   r   r2   results       r   test_apply_along_axis_matrixr     s     			Aq6Aq6"#Ayy1a&1a&)*H  A.FJvryy)*v(  A.FJvryy)*v(r   c                     [         R                  " SS/5      n [         R                  " U 5      n[        [	        [         R
                  " X 5      5      [         R                  5        [        [	        [         R
                  " X5      5      [         R                  5        [        [	        [         R
                  " X5      5      [         R                  5        [        [	        [         R
                  " X5      5      [         R                  5        g r   )r   onesr   r   r.   kronrW   r   )r0   r   s     r   test_kron_matrixr     s    
AA
AAbggam$bjj1bggam$bii0bggam$bii0bggam$bii0r   c                   &    \ rS rSrS rS rS rSrg)TestConcatenatorMatrixi#  c                   ^^ SS/mSS/m[         R                  STT4   n[         R                  STT4   n[        [        U5      [         R                  5        [        [        U5      [         R                  5        [        [         R
                  " U5      / SQ/5        [        [         R
                  " U5      S/S/S/S//5        [        [        UU4S j5        g )	Nr   r   r   r   r   rc   )r   r   r   r   c                  0   > [         R                  ST T4   $ )Nrc)r   r_ri   s   r   <lambda>4TestConcatenatorMatrix.test_matrix.<locals>.<lambda>2  s    "%%a
*;r   )r   r   r   r.   r   r   r   rl   )selfab_rab_cr0   rZ   s      @@r   test_matrix"TestConcatenatorMatrix.test_matrix%  s    FFuuS!QYuuS!QYT$Z+T$Z+RXXd^l^4RXXd^qcA3aS%9:j";<r   c                     [         R                  SSS/S4   n[        [        U5      [         R                  5        [        [         R
                  " U5      / SQ/5        g )Nr   r   r   r   )r   r   r   )r   r   r   r.   r   r   )r   r   s     r   test_matrix_scalar)TestConcatenatorMatrix.test_matrix_scalar4  s@    EE#1vq.!T!Wbii(RXXa[9+.r   c                 h   [         R                  " S/5      n[         R                  " S/5      n[         R                  " S/5      n[         R                  " S/5      n[         R                  S   n[         R                  " X/X4//5      n[	        XV5        [	        [        U5      [        U5      5        g )Nr   r   r   r   z
a, b; c, d)r   r   r   bmatr   r.   )r   r0   rZ   rc   dr1   r2   s          r   test_matrix_builder*TestConcatenatorMatrix.test_matrix_builder9  s}    HHaSMHHaSMHHaSMHHaSM|$77QFQF+,V&T&\4>2r   rF   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__rF   r   r   r   r   #  s    =/
	3r   r   c                  H   [         R                  " [        5       n [        [        R
                  " SS/5      [        R                  " SS/5      5        S S S 5        [        W R                  5      n[        R                  " S5      n[        X5        g ! , (       d  f       NE= f)Nr   r   zw
    Arrays are not equal

    (shapes (2,), (1, 2) mismatch)
     ACTUAL: array([1, 2])
     DESIRED: matrix([[1, 2]]))pytestraisesAssertionErrorr   r   r   r   strvaluetextwrapdedent)exc_infomsgmsg_references      r   %test_array_equal_error_message_matrixr   E  sm    	~	&(RXXq!f%ryy!Q'89 
'
hnn
COO %" #M $ 
'	&s   9B
B!c                  H   [         R                  " SS//5      n [         R                  " S[         R                  //5      n[         R                  " S[         R                  * //5      n[         R                  " [         R                  [         R                  //5      n[         R                  " SS/[         R                  [         R                  //5      n[        [
        4 H=  nXX#U4 H1  nU" Xf5        [         R                  " U5      nU" Xv5        U" Xg5        M3     M?     g )Ng      ?g       @)r   r   r{   infr	   r   r   )m1m2m3m4m5assert_funcr   r0   s           r   test_array_almost_equal_matrixr   T  s     
RH:	B	RL>	"B	R"&&M?	#B	RVVRVV$%	&B	RHrvvrvv./	0B02EE#AA	 $ Fr   )$__doc__r   r   r|   numpyr   numpy.testingr   r   r   r   r   r   r	   r   r'   r3   r6   rA   rM   rO   r\   rb   rj   rn   rq   r   r   r   r   r   r   r   r   r   r   rF   r   r   <module>r      s       K K K
3())*2,16*&&*/&!R'8
%	H)&13 3D%r   