
    (phy7                      	   S SK r S SKrS SKJr  S SKrS SKJ	s  J
r  Sr\ V s/ s H  n \" \R                  U  S35      PM     sn r\R                  " / SQ/ SQ/ SQ/5      r\R                  " S S/SS //5      r\R                  " / S	Q/ S
Q/ SQ/ SQ/\S9r\ Vs/ s H
  o" \5      PM     snr\ Vs/ s H
  o" \5      PM     snr\ Vs/ s H
  o" \5      PM     snr\ R.                  R1                  S\\S9r\ R.                  R1                  S\\S9r\ R.                  R1                  S\\S9r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!\S 5       r"\S 5       r#\S 5       r$\S 5       r%\S 5       r&\S 5       r'\\ R.                  RP                  S 5       5       r)\S 5       r*\S  5       r+\S! 5       r,\S" 5       r-\S# 5       r.\S$ 5       r/\S% 5       r0\S& 5       r1\S' 5       r2\S( 5       r3\S) 5       r4\ R.                  R1                  S*S+S,/5      S- 5       r5\S. 5       r6\\ R.                  R1                  S// S0Q5      S1 5       5       r7\\ R.                  R1                  S/S2S3/5      S4 5       5       r8\S5 5       r9\S6 5       r:\S7 5       r;S8 r<S9 r=\ R.                  R1                  S:\R                  R|                  S;S</4\R                  R~                  S;S</4\R                  R                  S=S>/4/5      \ R.                  R1                  S?\R                  \R                  /5      S@ 5       5       rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rL\ R.                  R1                  SJ\R                  R                  \R                  R                  45      SK 5       rOSL rPSM rQSN rRSO rS\ R.                  R1                  SPSQ\R                  R                  4SR\R                  R                  4S,\R                  R                  4S+\R                  R                  4SS\R                  R                  4ST\R                  R                  4SU\R                  R                  445      SV 5       r[gs  sn f s  snf s  snf s  snf )W    N)bsrcoocsccsrdiadoklil_array)r         r   )r   r   r      )r      r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   dtypeA)idsBXc                     [        U R                  SS9[        R                  5      (       a   S5       eU R                  SS9R                  S:X  d   eU R                  SS9R                  S:X  d   eg )Nr   axisExpected array, got matrix)r   r   )r   )
isinstancesumnpmatrixshaper   s    T/var/www/html/venv/lib/python3.13/site-packages/scipy/sparse/tests/test_array_api.pytest_sumr    0   si    !%%Q%-33 %$%355a5=$&&&55a5=$&&&    c                 j    [        U R                  SS9[        R                  5      (       a   S5       eg )Nr   r   r   )r   meanr   r   r   s    r   	test_meanr$   8   s0    !&&a&."))44 %$%44r!   c                 &   [        U S5      (       a3  [        U R                  SS9[        R                  5      (       a   S5       e[        U S5      (       a3  [        U R                  SS9[        R                  5      (       a   S5       e[        U S5      (       a3  [        U R                  SS9[        R                  5      (       a   S5       e[        U S5      (       a4  [        U R                  SS9[        R                  5      (       a   S5       eg g )Nminr   r   r   maxargminargmax)hasattrr   r&   r   r   r'   r(   r)   r   s    r   test_min_maxr+   >   s     q%aeeemRYY77 	)(	)7q%aeeemRYY77 	)(	)7q(ahhAh.		:: 	)(	):q(ahhAh.		:: 	)(	):: r!   c                 l    [        U R                  5       [        R                  5      (       a   S5       eg Nr   )r   todenser   r   r   s    r   test_todenser/   O   s,    !))+ryy11 %$%11r!   c                 z   U R                   R                  S S S;   a  g U SS S 24   U S S 2S4   U SSS/4   U SS/S4   U S/   U S S 2SS/4   U SS/S S 24   U SSS//4   U SS//S4   4	nU HJ  n[        U[        R                  R
                  5      (       a  M.   SUR                  R                   35       e   g )Nr   )r   r   r   r   r   r   zExpected sparse array, got )	__class____name__r   scipysparsesparray_class__)r   all_resress      r   test_indexingr9   U   s    {{BQ#88 	
!Q$	!Q$	!aV)	1a&!)	1#	!aV)	1a&!)	!q!fX+	Aq6(A+
G #u||3344 	B)#,,*?*?)@A	B4 r!   c                     [         R                  R                  U R                  5      n[        X-   [         R                  5      (       a   S5       eg r-   )r   randomr   r   r   )r   r   s     r   test_dense_additionr<   k   s<    
		!A!%++I-II++r!   c                 h    [        X -   [        R                  R                  5      (       d   S5       eg r-   r   r3   r4   r5   r   s    r   test_sparse_additionr?   q   s'    quu||3344R6RR4r!   c                     [         R                  " X -  R                  5       U R                  S5      R                  5       :H  5      (       d   eg )Nr   )r   allr.   powerr   s    r   test_elementwise_mulrC   v   s6    6615//#qwwqz'9'9';;<<<<r!   c                    [         R                  " [        5         S U -    S S S 5        [         R                  " [        5         [        R
                  " S5      [        R                  R                  [        R                  " S5      R                  SS5      5      -    S S S 5        [        R                  " SU -  U R                  5       S-  :H  5      (       d   e[        R                  " U R                  5       U -  U R                  5       S-  :H  5      (       d   eg ! , (       d  f       GN= f! , (       d  f       N= f)Nr      r   )pytestraises	TypeError
ValueErrorr   eyer3   r4   	csr_arrayarangereshaperA   r.   r   s    r   test_elementwise_rmulrN   {   s    	y	!q 
" 
z	"
q	ELL**299Q<+?+?1+EFF 
# 661q5aiikAo.////66199;?		q(89:::: 
"	! 
#	"s   DAD/
D,/
D=c                     [         R                  " X R                  -  R                  5       U R	                  U R                  5      R                  5       :H  5      (       d   eg N)r   rA   Tr.   dotr   s    r   test_matmulrS      s@    661ss7##%qss););)==>>>>r!   c                 L   [        U S-  [        R                  R                  5      (       d   S5       e[        R
                  " U S-  R                  5       U R                  5       S-  5        [        R                  " [        SS9   U S-    S S S 5        g ! , (       d  f       g = f)Nr   r   z
zero power)matchr   )
r   r3   r4   r5   nptassert_equalr.   rF   rG   NotImplementedErrorr   s    r   test_power_operatorrY      sv    q!tell2233Q5QQ3 ad^^%		a'78 
*,	?	1 
@	?	?s   B
B#c                 J    [        X -  [        R                  5      (       d   eg rP   )r   r   ndarrayr   s    r   test_sparse_divider\      s    aeRZZ((((r!   c                     [         R                  " [        5         [        X R	                  5       -  [
        R                  R                  5      (       d   e S S S 5        g ! , (       d  f       g = frP   )rF   warnsRuntimeWarningr   r.   r3   r4   r5   r   s    r   test_sparse_dense_divider`      sA     
n	%1yy{?U\\-A-ABBBB 
&	%	%s   <A!!
A/c                 j    [        U S-  [        R                  R                  5      (       d   S5       eg )Nr   r   r>   r   s    r   test_dense_dividerb      s)    q1uu||3344R6RR4r!   c                     [         R                  " [        5         U R                    S S S 5        g ! , (       d  f       g = frP   )rF   rG   AttributeErrorr   r   s    r   test_no_A_attrre      !    	~	&	 
'	&	&   1
?c                     [         R                  " [        5         U R                    S S S 5        g ! , (       d  f       g = frP   )rF   rG   rd   Hr   s    r   test_no_H_attrrj      rf   rg   c                     [        U R                  S5      [        R                  R                  5      (       d   e[        U R                  S5      [        R                  R                  5      (       d   eg )Nr   )r   _getcolr3   r4   r5   _getrowr   s    r   test_getrow_getcolrn      sL    aiilELL$8$89999aiilELL$8$89999r!   c                 r    [         R                  " U 5      n[        R                  " U/ SQ-  U / SQ-  5        g )Nr   r   r   r   )splaaslinearoperatorrV   assert_allclose)r   Ls     r   test_as_linearoperatorru      s,    a AL(!l*:;r!   c                 b   U R                   R                  S S S:w  a  g [        R                  " U 5      n[	        U[
        R                  R                  5      (       d   e[        R                  " UR                  5       [        R                  R                  U R                  5       5      5        g Nr   r   )r1   r2   rq   invr   r3   r4   r5   rV   rs   r.   r   linalgr   Cs     r   test_invr|      sq    {{BQ5(Aa--....		RYY]]199;%?@r!   c                    U R                   R                  S S S:w  a  g [        R                  R	                  U 5      n[
        R                  " U 5      n[        U[        R                  R                  5      (       d   e[        R                  " UR                  5       [
        R                  " U5      R                  5       5        g rw   )r1   r2   r3   r4   
csc_matrixrq   expmr   r5   rV   rs   r.   )r   Bmatr{   s      r   	test_expmr      s    {{BQ5(<<""1%D		!Aa--....					$!r!   c           	          U R                   R                  S S S:w  a  g [        R                  " [        R
                  " U [        R                  " SS/5      5      [        R                  " U 5      SS/-  5        g Nr   r   r   r   )	r1   r2   rV   rs   rq   expm_multiplyr   arrayr   r   s    r   test_expm_multiplyr      s]    {{BQ5(1bhh1v./		!1vr!   c                     [         R                  " U 5      n[        R                  " U[        R
                  R                  U R                  5       5      5        g rP   )rq   normrV   rs   r   ry   r.   )r   r{   s     r   	test_normr      s2    		!A299>>!))+67r!   c                     [         R                  " U 5      n[        R                  " U[        R
                  R                  U R                  5       S5      5        g )Nr   )rq   
onenormestrV   rs   r   ry   r   r.   rz   s     r   test_onenormestr      s5    A299>>!))+q9:r!   c                     U R                   R                  S S S;  a  g [        R                  " [        R
                  " U SS/5      [        R                  R                  U R                  5       SS/5      5        g )Nr   )r   r   r   r   )
r1   r2   rV   rs   rq   spsolver   ry   solver.   r   s    r   test_spsolver      sZ    {{BQ~5QA
				aV,r!   fmtr   r   c                     / SQ/ SQ/ SQ/ SQ/nU S:X  a   [         R                  R                  U5      nO[         R                  R                  U5      n[        R
                  " U/ SQ5        g )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   )r3   r4   rK   	csc_arrayrq   spsolve_triangular)r   arrr   s      r   test_spsolve_triangularr      sX     		C e|
,,
 
 
%a
,,
 
 
%aA|,r!   c                 .   U R                   R                  S S S:w  a  g [        R                  " U 5      n[        R
                  " U" [        R                  " SS/5      5      [        R                  R                  U R                  5       SS/5      5        g r   )r1   r2   rq   
factorizedrV   rs   r   r   ry   r   r.   )r   LUs     r   test_factorizedr     sk    {{BQ5(		B
288QF
				aV,r!   solver)
bicgbicgstabcgcgsgmreslgmresminresqmrgcrotmktfqmrc                     US:X  a  0 nOSS0n[        [        U5      " U [        R                  " SS/5      40 UD6u  p4US:  d   e[        R
                  " USS/SS9  g )	Nr   atolgh㈵>r   r   r   g?r   )getattrrq   r   r   rV   rs   )r   r   kwargsxinfos        r   test_solversr     sc     $dF#ArxxA'7B6BGA199Aq6-r!   lsqrlsmrc                 n    [        [        U5      " U / SQ5      tp#[        R                  " X-  / SQ5        g )Nr   r   r   )r   rq   rV   rs   )r   r   r   _s       r   test_lstsqrr   +  s+     D&!!Y/EAy)r!   c                 p    [         R                  " U SS9u  p[        R                  " X-  US   U-  5        g Nr   kr   )rq   eigsrV   rs   r   evs      r   	test_eigsr   5  s2    99Q!DA		!qr!   c                     X R                   -   n [        R                  " U SS9u  p[        R                  " X-  US   U-  5        g r   )rQ   rq   eigshrV   rs   r   s      r   
test_eigshr   >  s=    	CCA::a1DA		!qr!   c                    [         R                  " U SS9u  pn[        R                  R	                  U R                  5       5      u  pEn[        R                  " U5      n[        R                  " US S 5      n[        R                  " X%SS9  g )Nr   r   gMbP?r   )	rq   svdsr   ry   svdr.   sortrV   rs   )r   usvhu2s2vh2s          r   	test_svdsr   H  sb    yya HA"))--		,KBC

A	BQBD)r!   c                  D   [         R                  R                  / SQ/ SQ/ SQ/ SQ/5      n [        R                  " U 5      n[
        R                  " UR                  [        R                  " / SQ5      5      [        R                  " / SQ[        R                  S9SSS	9  g 
Nr   r   r   r   rp   r   g+=gMg<)rtolr   )r3   r4   r   rq   splurV   rs   r   r   r   asarrayfloat64r   r   s     r   	test_splur   Q  sp    	  	A 
1B
,'(


<rzz2r!   c                  D   [         R                  R                  / SQ/ SQ/ SQ/ SQ/5      n [        R                  " U 5      n[
        R                  " UR                  [        R                  " / SQ5      5      [        R                  " / SQ[        R                  S9SSS	9  g r   )r3   r4   r   rq   spilurV   rs   r   r   r   r   r   r   s     r   
test_spilur   `  sp    	  	A 
AB
,'(


<rzz2r!   zcls,indices_attrsindicesindptrrowcolexpected_dtypec                 t   [         R                  R                  [        R                  " S5      R                  SS5      5      nUR                  UR                  R                  U5      UR                  R                  U5      44nU " U5      nU H  n[        XV5      R                  U:X  a  M   e   U " USS9nU H  n[        XV5      R                  U:X  a  M   e   [        U [         R                  R                  R                  5      (       a  UR                  5       nUR                  UR                   R                  U5      UR"                  R                  U5      4nU " U5      nU H  n[        XV5      R                  U:X  a  M   e   U " USS9nU H  n[        XV5      R                  U:X  a  M   e   g g )N	   r   )r   r   )r   )r3   r4   	coo_arrayr   rL   rM   datar   astyper   r   r   
issubclass_compressed
_cs_matrixtocsrr   r   )	clsindices_attrsr   input_array	coo_tupleresultattrinput_array_csr	csr_tuples	            r   test_index_dtype_compressedr   o  s   & ,,((1)=)=a)CDKOO"">2OO"">2	
I ^Fv$**n<<<  &)Fv$**n<<<  #u||//::;;%++-  ##**>:"")).9
	 Y!D6(...@@@ " Yf-!D6(...@@@ " <r!   c                      [         R                  R                  / SQ5      n [        U [         R                  R                  5      (       a   eg )N)r   r   r   )r3   r4   diagsr   r5   ms    r   test_default_is_matrix_diagsr     s6    9%A!U\\1122222r!   c                      [         R                  R                  S5      n [        U [         R                  R                  5      (       a   eg Nr   )r3   r4   rJ   r   r5   r   s    r   test_default_is_matrix_eyer     s6    A!U\\1122222r!   c                      [         R                  R                  / SQSSS5      n [        U [         R                  R                  5      (       a   eg )Nr   r   r   )r3   r4   spdiagsr   r5   r   s    r   test_default_is_matrix_spdiagsr     s<    Y1a0A!U\\1122222r!   c                      [         R                  R                  S5      n [        U [         R                  R                  5      (       a   eg r   )r3   r4   identityr   r5   r   s    r   test_default_is_matrix_identityr     s6    a A!U\\1122222r!   c                     [         R                  R                  [        R                  " SS/SS//5      [        R                  " SS/SS//5      5      n [        U [         R                  R                  5      (       a   eg )Nr   r   r   r   r3   r4   kronr   r   r   r5   r   s    r   !test_default_is_matrix_kron_denser    i    
1a&1a&!"BHHq!fq!f-=$>	A !U\\1122222r!   c                     [         R                  R                  [        R                  " SS/SS//5      [        R                  " SS/SS//5      5      n [        U [         R                  R                  5      (       a   eg )Nr   r   r   r   r   r  r   s    r   "test_default_is_matrix_kron_sparser    r  r!   c                     [         R                  R                  [        R                  " SS/SS//5      [        R                  " SS/SS//5      5      n [        U [         R                  R                  5      (       a   eg )Nr   r   )r3   r4   kronsumr   r   r   r5   r   s    r   test_default_is_matrix_kronsumr	    si    
1a&1a&!"BHHq!fq!f-=$>	A !U\\1122222r!   c                      [         R                  R                  SS5      n [        U [         R                  R                  5      (       a   eg r   )r3   r4   r;   r   r5   r   s    r   test_default_is_matrix_randomr    s8    Aq!A!U\\1122222r!   c                      [         R                  R                  SS5      n [        U [         R                  R                  5      (       a   eg r   )r3   r4   randr   r5   r   s    r   test_default_is_matrix_randr    s8    !QA!U\\1122222r!   fnc                    [         R                  R                  [        R                  " S5      5      n[         R                  R                  SS/SS//5      nU " X/5      n[        U[         R                  R                  5      (       a   eg)z^Same idea as `test_default_construction_fn_matrices`, but for the
stacking creation functions.r   r   r   N)r3   r4   
coo_matrixr   rJ   r   r5   )r  r   r   r   s       r   test_default_is_matrix_stacksr    sl     	q	*A!Q!Q 01A
A6
A!U\\1122222r!   c                  *   [         R                  R                  [        R                  " S5      5      n [         R                  R                  S/S//5      n[         R                  R                  S//5      n[         R                  R                  XU45      n[        U[         R                  R                  5      (       a   e[         R                  R                  U S/SU//5      n[        U[         R                  R                  5      (       a   eg)zYSame idea as `test_default_construction_fn_matrices`, but for the block
creation functionr   r   r   N)	r3   r4   r  r   rJ   
block_diagr   r5   bmat)r   r   r{   r   s       r   ,test_blocks_default_construction_fn_matricesr    s     	q	*A!qc
+A!&A 	q	*A!U\\112222 	At9tQi01A!U\\1122222r!   c                  .   [          Hy  n [        [        R                  U  S35      nU" SS//5      nUR                  U :X  d   eUR
                  U :X  d   e[        R                  " [        5         SUl        S S S 5        M{     g ! , (       d  f       M  = f)Nr
   r   r   qqq)	sparray_typesr   r3   r4   format_formatrF   rG   rd   )r   arr_clsMs      r   test_format_propertyr    sx    %,,3%v7aVHxx3yyC]]>*AH +* 
 +*s   0B
B	c                     [         R                  R                  S5      n [         R                  R                  U 5      n[	        U [         R                  R
                  5      (       a   e[	        U[         R                  R
                  5      (       d   e[         R                  R                  U5      (       d   e[         R                  R                  U 5      (       d   e[         R                  R                  UR                  5       5      (       a   e[         R                  R                  U R                  5       5      (       a   eg r   )r3   r4   rJ   rK   r   r5   issparser.   r   as     r   test_issparser#    s    Aq!A!U\\112222a--.... <<  ####<<  #### ||$$QYY[1111||$$QYY[11111r!   c                     [         R                  R                  S5      n [         R                  R                  U 5      n[	        U [         R                  R
                  5      (       a   e[	        U[         R                  R
                  5      (       d   e[         R                  R                  U5      (       a   e[         R                  R                  U 5      (       d   e[         R                  R                  UR                  5       5      (       a   e[         R                  R                  U R                  5       5      (       a   eg r   )r3   r4   rJ   rK   r   r5   
isspmatrixr.   r!  s     r   test_isspmatrixr&  
  s    Aq!A!U\\112222a--.... ||&&q))))<<""1%%%% ||&&qyy{3333||&&qyy{33333r!   )r   r  r   r   r   r   r	   c                    [         R                  R                  SU S9n[         R                  R                  U5      R	                  U 5      n[        U[         R                  R                  5      (       a   e[        U[         R                  R                  5      (       d   eU" U5      (       a   eU" U5      (       d   eU" UR                  5       5      (       a   eU" UR                  5       5      (       a   eg )Nr   )r  )r3   r4   rJ   rK   asformatr   r5   r.   )r   r  r   r"  s       r   test_isspmatrix_formatr)    s     	3'Aq!**3/A!U\\112222a--.... !uu9a55L5 !))+!))+r!   )\rF   numpyr   numpy.testingtestingrV   scipy.sparser3   scipy.sparse.linalgr4   ry   rq   r  r   sparray_classesr   r   r   floatr   sparrayssquare_sparrayseig_sparraysmarkparametrizeparametrize_sparraysparametrize_square_sparraysparametrize_eig_sparraysr    r$   r+   r/   r9   r<   r?   rC   rN   rS   rY   r\   thread_unsafer`   rb   re   rj   rn   ru   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rK   r   r   int64int32r   r   r   r   r   r  r  r	  r  r  hstackvstackr  r  r  r#  r&  isspmatrix_bsrisspmatrix_cooisspmatrix_cscisspmatrix_csrisspmatrix_diaisspmatrix_dokisspmatrix_lilr)  )rQ   r5   s   00r   <module>rE     s2       " " B 2?1>AGELLQCv,' HH  HHFF 
 HH	
 
 '66o7GAJo6-<=_'71:_=*9:/w
/:{{..} /   %kk55m 6   ";;22= 3  
 ' ' % %
 ) )  % %
 B B* J J
 S S = = 	; 	; ? ?   ) ) C  C S S  
  
 : : < <
 A A     8 8
 ; ;
   e}-- .-   
. . V*	 
*
     * *  LL""!	

 LL""!	

 LL""EN	
" )BHHbhh+?@ A A#$ AF3
3
3
3
3333
3
  3 3U\\5H5HIJ3 K33 24 	++,	++,	++,	++,	++,	++,	++,w. 7=:s    Q<R1R	R