
    -i                        S SK r S SKrS SKJr  S SKJs  Jr  S SK	J
r
Jr   S SKr\ R                  R                  \SL SS9rSr\ R"                  " S5      \ R"                  " S\ R                  R%                  \S9/S94r\R(                  \R*                  \R,                  \R.                  \R0                  \R2                  /r\ R6                  " \S	9S
 5       r\ R6                  " \S	9S 5       r\ R6                  S 5       r\ R6                  S 5       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 r0S r1S  r2S! r3g! \ a    Sr GN5f = f)"    N)assert_allcloseassert_equalzpydata/sparse not installed)reasonz>pydata/sparse (0.15.1) does not implement necessary operationsCOODOK)marks)paramsc                 6    [        [        U R                  5      $ N)getattrsparseparamrequests    _/var/www/html/venv/lib/python3.13/site-packages/scipy/sparse/linalg/tests/test_pydata_sparse.py
sparse_clsr   "   s    67==))    c                     U R                   $ r   )r   r   s    r   sp_sparse_clsr   '   s    ==r   c                     [         R                  R                  S5        [         R                  R                  SS5      nU" U5      U " U5      4$ Ni  	   )nprandomseedrand)r   r   A_denses      r   same_matrixr   ,   s;    IINN4iinnQ"G!:g#666r   c                     [         R                  R                  S5        [         R                  R                  SS5      nXR                  -  nU " U5      n[         R                  R                  S5      nXU4$ r   )r   r   r   r   T)r   r   A_sparsebs       r   matricesr#   3   sY    IINN4iinnQ"G		!G'"H
		qAar   c                     U u  pn[         R                  " X#SS9u  pEUS:X  d   e[        U[        R                  5      (       d   e[        X$-  U5        g )NgV瞯<atolr   )splingmres
isinstancer   ndarrayr   )r#   r   r!   r"   xinfos         r   test_isolve_gmresr-   =   sO     $Gqkk(E2GA199a$$$$HL!$r   c                     U u  pn[         R                  " X5      n[         R                  " X#5      n[        US   US   SS9  g )Nr   MbP?r%   )r'   lsmrr   r#   r   r!   r"   res0ress         r   	test_lsmrr4   G   <    #Gq::g!D
**X
!CCFDG$/r   c                      [         R                  " [        R                  " S5      [        R                  " S5      [        R                  " S5      S9S   n [        U R                  S5        g )N)
      r7   r8   )Ar"   x0r   )r8   )r'   r0   r   oneszerosr   shape)r+   s    r   test_lsmr_output_shaper>   O   s@    

RWWW%""''!*EaHA$r   c                     U u  pn[         R                  " X5      n[         R                  " X#5      n[        US   US   SS9  g )Nr   gh㈵>r%   )r'   lsqrr   r1   s         r   	test_lsqrrA   T   r5   r   c                    U u  pn[         R                  " US-  5      nUR                  U5      n[        R                  " USUS9u  pg[        R                  " USUS9u  p[        X5        [        X5        XT4 H  n
[        R                  " XSUS9u  pg[        R                  " X*SUS9u  p[        X5        [        X5        [        R                  " XSUS9u  pg[        R                  " X*SUS9u  p[        X5        [        X5        M     g )N      kv0)MrF   rG   )r   diag	__class__r'   eigsr   eigsh)r#   r   r!   rG   M_denseM_sparsew_densev_densewvrH   s              r   	test_eigsrS   [   s    $Grggb!enG!!'*Hzz'Q26G::h!+DAAA  ::gA"Ezz(14## ;;wQ2F{{8A"5## !r   c                 X   U u  pn[         R                  " USUS9u  pEn[         R                  " USUS9u  pxn	[        X5        [        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U	5      [        R                  " U5      5        g )NrC   rE   )r'   svdsr   r   abs)
r#   r   r!   rG   u0s0vt0usvts
             r   	test_svdsr]   u   st    $Gr**Wb1KBCzz(aB/HA"ABFF1Irvvbz*BFF2Js,r   c                     U u  pnUS S 2S 4   n[         R                  " X5      u  pV[         R                  " X$5      u  px[        Xu5        [        X5        g r   )r'   lobpcgr   )	r#   r   r!   r+   XrO   rP   rQ   rR   s	            r   test_lobpcgra      sJ    #Gq	!D&	A||G/G<<$DAAAr   c                    U u  pn[         R                  R                  [        U5      S5      n[        R
                  " [        R                  " U5      U5      n[        R
                  " X#5      n[        U[         R                  5      (       d   e[        Xe5        [        R
                  " [        R                  " U5      U5      n[        R
                  " X#SS9n[        U[         R                  5      (       d   e[        Xe5        [        R
                  " [        R                  " U5      U5      n[        R
                  " X$5      n[        U[         R                  5      (       d   e[        Xe5        [        R
                  " [        R                  " U5      [        R                  " U5      5      n[        R
                  " X"5      n[        U[        U5      5      (       d   e[        UR                  5       UR                  5       5        g )NrD   T)use_umfpack)r   r   r   lenr'   spsolvesp	csc_arrayr)   r*   r   typetodense)r#   r   r!   r"   b2r:   r+   s          r   test_spsolverk      sX   #Gq	A	"B	r||G,a	0Bh"Aa$$$$A	r||G,a	0Bht4Aa$$$$A	r||G,b	1Bh#Aa$$$$A	r||G,||G,
.Bh)Aah((((AIIK.r   c                    U u  pn[        U5      n[        U5      n[        R                  " U5      n[	        UR
                  U5      (       d   e[	        UR                  U5      (       d   e[        R                  " [        R                  " U5      UR                  [        R                  " U5      445      n[        R                  " [        R                  " U5      [        R                  " U5      UR                  445      nUR                  U5      n	UR                  U5      n
U	R                  UR
                  -  UR                  -  U
R                  -  n[!        UR#                  5       UR#                  5       5        UR%                  UR#                  5       5      n[!        U[        R&                  " U5      SS9  g )Ng|=r%   )rd   rh   r'   splur)   LUrf   rg   r   r;   perm_rarangeperm_cfrom_scipy_sparser    r   ri   solveeye)r#   r   r!   r"   nr   lu	_Pr_scipy	_Pc_scipyPrPcA2zs                r   	test_splur~      s9   #GqAAhJ	H	BbddJ''''bddJ''''bggaj299biil*CDEIbggaj299Q<*CDEI		%	%i	0B		%	%i	0B	rtt	bdd	"BBJJL("2"2"45
!!#$AArvvayu-r   c                 R   U u  pn[        U5      n[        R                  " U5      n[        UR                  U5      (       d   e[        UR
                  U5      (       d   eUR                  UR                  5       5      n[        U[        R                  " [        U5      5      SS9  g )Nr/   r%   )rh   r'   spilur)   rn   ro   rt   ri   r   r   ru   rd   )r#   r   r!   r"   r   rw   r}   s          r   
test_spilur      s    #GqhJ	X	BbddJ''''bddJ''''
!!#$AArvvc!f~D1r   c                     U u  pn[         R                  " U5      n[        R                  " X#5      n[	        X$-  U5        g r   )r   trilr'   spsolve_triangularr   )r#   r   r!   r"   r+   s        r   test_spsolve_triangularr      s6    #Gq{{8$H  -AHL!$r   c                 |    U u  pn[         R                  " U5      n[         R                  " U5      n[        XT5        g r   )r'   
onenormestr   )r#   r   r!   r"   est0ests         r   test_onenormestr      s4    #GqG$D


8
$CCr   c                     U u  pn[         R                  " [        R                  " U5      5      n[         R                  " U5      n[	        XT5        g r   )r'   normrf   	csr_arrayr   )r#   r   r!   r"   norm0r   s         r   	test_normr      s9    #GqJJr||G,-E::hDD r   c                     U u  pn[         R                  " [        R                  " U5      5      n[         R                  " U5      n[	        UR                  5       UR                  5       5        g r   )r'   invrf   rg   r   ri   r#   r   r!   r"   r:   r+   s         r   test_invr      sG    #Gq	2<<(	)B		(AAIIK.r   c                     U u  pn[         R                  " [        R                  " U5      5      n[         R                  " U5      n[	        UR                  5       UR                  5       5        g r   )r'   expmrf   rg   r   ri   r   s         r   	test_expmr      sG    #Gq	BLL)	*B

8AAIIK.r   c                    U u  pn[         R                  " X5      n[         R                  " X#5      n[        XT5        [         R                  " X5      n[         R                  " X"5      n[        UR                  5       U5        g r   )r'   expm_multiplyr   ri   r   s         r   test_expm_multiplyr      sd    #Gq			W	(BH(AA			W	.BH/AAIIK$r   c                     U u  p[         R                  " U5      R                  UR                  5      nX:H  R	                  5       (       d   eg r   rf   
coo_matrixasformatformatallr   	sp_sparse	pd_sparses      r   test_eqr      A    &Ii(11)2B2BCI"''))))r   c                     U u  p[         R                  " U5      R                  UR                  5      nX:g  R	                  5       (       a   eg r   rf   r   r   r   anyr   s      r   test_ner      sD    &Ii(11)2B2BCI&++-----r   c                     U u  p[         R                  " U5      R                  UR                  5      nX:  R	                  5       (       d   eg r   r   r   s      r   test_ger     r   r   c                     U u  p[         R                  " U5      R                  UR                  5      nX:  R	                  5       (       a   eg r   r   r   s      r   test_gtr     sD    &Ii(11)2B2BCI%**,,,,,r   )4pytestnumpyr   scipy.sparser   rf   scipy.sparse.linalglinalgr'   numpy.testingr   r   	Exceptionmarkskipif
pytestmarkmsgr   xfailsparse_params	bsr_arrayr   	coo_arrayrg   	dia_array	dok_arrayscipy_sparse_classesfixturer   r   r   r#   r-   r4   r>   rA   rS   r]   ra   rk   r~   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r      s      # # 7 [[$'D   F
 G e$eFKK,=,=S,=,I+JKM LLLLLLLLLLLL  }%* &* +, - 7 7    %0 
0$4- /4.,
2%!//%*.*-C  Fs   E EE