Ë
    âQ(h¸*  ã            
       óÊ  — d dl Z d dlZd dlmZ d dl mZ d dlmZ d dl	m
Z
 d dlmZmZ d„ Zd„ Zd"d
„Zd#d„Zd„ Zd„ Zd„ Zd„ Zej,                  eej.                  fZej2                  ej4                  ej6                  fZej:                  ej<                  ej>                  fZ eez   e z   Z!e jD                  jG                  de!«      e jD                  jG                  dejH                  ejJ                  ejL                  ejN                  ejP                  g«      e jD                  jG                  ddd	g«      e jD                  jG                  ddd	g«      e jD                  jG                  ddd	g«      d„ «       «       «       «       «       Z)e jD                  jG                  dg d¢«      e jD                  jG                  ddd	g«      e jD                  jG                  ddd	g«      d„ «       «       «       Z*e jD                  jG                  dejV                  ejJ                  ejL                  ejN                  ejP                  g«      e jD                  jG                  dg d¢«      d„ «       «       Z,e jD                  jG                  dejV                  ejJ                  ejL                  ejN                  ejP                  g«      e jD                  jG                  de!«      e jD                  jG                  ddd	g«      e jD                  jG                  ddd	g«      e jD                  jG                  ddd	g«      e jD                  jG                  dddg«      d „ «       «       «       «       «       «       Z-d!„ Z.y)$é    N)Úassert_allclose)Úraises)Úsparse)Úcsgraph)Únp_longÚnp_ulongc                 óª   — t        j                  | j                  t         j                  «      xs$ t        j                  | j                  t        «      S ©N)ÚnpÚ
issubdtypeÚdtypeÚsignedintegerr   )Úmats    úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/csgraph/tests/test_graph_laplacian.pyÚcheck_int_typer      s8   € Ü�=‰=˜Ÿ™¤B×$4Ñ$4Ó5ò ¼¿¹Ø�	‰	”8ó:ð ó    c                  óÚ   — t         t        t        fD ]W  } ddgdgggg d¢g d¢gddgddgddggfD ]8  }t        j                  || ¬«      }t        t        t        j                  |«       Œ: ŒY y )	Né   )r   é   é   )é   é   é   r   r   r   r   ©r   )	ÚintÚfloatÚcomplexr   ÚarrayÚassert_raisesÚ
ValueErrorr   Ú	laplacian)ÚtÚmÚAs      r   Útest_laplacian_value_errorr%      s{   € Ü”%œÐ ò <ˆØ�a�&Ø�C�5�'ÚšiÐ(Ø�q�6˜A˜q˜6 A q 6Ð*ð,ò 	<ˆAô —‘˜ !Ô$ˆAÜœ*¤g×&7Ñ&7¸Õ;ñ	<ñ<r   Fc                 óÂ  — t        j                  | «      r| j                  «       } t        j                  | «      } d| z  }t        |j                  d   «      D ]9  }| ||dz   d …f   j                  «       | |d |…f   j                  «       z   |||f<   Œ; |rIt        j                  |«      j                  «       }d||dk(  <   ||d d …d f   dz  z  }||d d d …f   dz  z  }|S )Ng      ð¿r   r   g      ð?g      à?)
r   ÚissparseÚtoarrayr   ÚasarrayÚrangeÚshapeÚsumÚdiagÚcopy)ÚxÚnormedÚyÚjÚds        r   Ú_explicit_laplacianr4      sØ   € Ü‡��qÔØ�I‰I‹KˆÜ
�
‰
�1‹€AØˆq‰€AÜ�1—7‘7˜1‘:Óò 1ˆØ�1�Q�q‘S‘T�6‘—‘“ 1 Q r¨ r T¡7§;¡;£=Ñ0ˆˆ!ˆAˆ#Šð1áÜ�G‰G�A‹J�O‰OÓˆØˆˆ!ˆq‰&‰	Ø	ˆQŠq�ˆv‰Y˜‰]ÑˆØ	ˆQˆt’Aˆv‰Y˜‰]ÑˆØ€Hr   Tc                 ój  — t        | d«      st        | t        t        t        ¬«      «      } t	        j
                  | «      r| }|j                  «       } nt	        j                  | «      }t        j                  | «      }t	        j                  |d¬«      }| j                  d   }t        | |¬«      }t        j                  | ||¬«      }t        j                  |||¬«      }	|rt        | |«       t        ||«       n4|rt        | «      s't        || «       |j                   dk(  rt        |	|«       t        ||	j                  «       «       ||	j                  «       fD ]U  }
|s/t        |
j#                  d¬	«      t        j$                  |«      «       t        |
j&                  |
«       t        |
|«       ŒW y )
Nr+   )r   r   T)r.   r   )r0   )r0   r.   Úcoo)Úaxis)ÚhasattrÚevalÚdictr   r   r'   r(   Ú	csr_arrayr.   r+   r4   r   r!   r   Ú_assert_allclose_sparser   Úformatr,   ÚzerosÚT)r   r0   r.   Úsp_matÚmat_copyÚsp_mat_copyÚn_nodesÚexplicit_laplacianr!   Úsp_laplacianÚtesteds              r   Ú _check_symmetric_graph_laplacianrG   *   s]  € Ü�3˜Ô Ü�3œ¤¬6Ô2Ó3ˆä‡��sÔØˆØ�n‰nÓ‰ä×!Ñ! #Ó&ˆä�w‰w�s‹|€HÜ×"Ñ" 6°Ô5€Kà�i‰i˜‰l€GÜ,¨S¸Ô@ÐÜ×!Ñ! #¨f¸4Ô@€IÜ×$Ñ$ V°FØ*.ô0€Lñ Ü˜˜XÔ&Ü ¨Õ4áœ>¨#Ô.Ü˜I sÔ+Ø�}‰} Ò%Ü'¨°fÔ=ä�I˜|×3Ñ3Ó5Ô6à˜l×2Ñ2Ó4Ð5ò 4ˆÙÜ˜FŸJ™J¨A˜JÓ.´·±¸Ó0AÔBÜ˜Ÿ™ &Ô)Ü˜Ð 2Õ3ñ	4r   c                  óL   — d} | D ]  }dD ]  }dD ]  }t        |||«       Œ Œ Œ y )N)z,np.arange(10) * np.arange(10)[:, np.newaxis]znp.ones((7, 7))z
np.eye(19)z+sparse.diags([1, 1], [-1, 1], shape=(4, 4))z5sparse.diags([1, 1], [-1, 1], shape=(4, 4)).toarray()z5sparse.diags([1, 1], [-1, 1], shape=(4, 4)).todense()z3np.vander(np.arange(4)) + np.vander(np.arange(4)).T)TF)rG   )Úsymmetric_matsr   r0   r.   s       r   Útest_symmetric_graph_laplacianrJ   O   sJ   € ð€Nð ò DˆØ!ò 	DˆFØ#ò D�Ü0°°f¸dÕCñDñ	DñDr   c                 ó²   — t        j                  | «      r| j                  «       } t        j                  |«      r|j                  «       }t        | |fi |¤Ž y r
   )r   r'   r(   r   )ÚaÚbÚkwargss      r   r<   r<   _   s?   € ä‡��qÔØ�I‰I‹KˆÜ‡��qÔØ�I‰I‹KˆÜ�A�qÑ#˜FÓ#r   c                 óÚ  —  || |¬«      }t        j                  ||d||d ¬«      \  }	}
|rft        |«      r[|	j                  t        j
                  k(  sJ ‚|
j                  t        j
                  k(  sJ ‚t        |	|d¬«       t        |
|d¬«       n†|	j                  |k(  sJ ‚|
j                  |k(  sJ ‚t	        j                  |«      j                  |«      }t	        j                  |«      j                  |«      }t        |	|d¬«       t        |
|d¬«       |sS|rt        |«      sEt        |«      t        j                  u rt        |	|«       y |j                  dk(  rt        |	|«       y y y y ©Nr   T)r0   Úreturn_diagÚuse_out_degreer.   r   gê-�™—q=)Úatolr6   )r   r!   r   r   r   Úfloat64r<   r)   ÚastypeÚtypeÚndarrayr   r=   ©r$   Ú	desired_LÚ	desired_dr0   rR   r.   r   Úarr_typer   ÚLr3   s              r   Ú_check_laplacian_dtype_noner]   h   s@  € ñ �1˜EÔ
"€CÜ×ÑØØØØ%ØØô�D€A€qñ ”. Ô%Ø�w‰wœ"Ÿ*™*Ò$Ð$Ð$Ø�w‰wœ"Ÿ*™*Ò$Ð$Ð$Ü  9°5Õ9Ü  9°5Ö9à�w‰w˜%ÒÐÐØ�w‰w˜%ÒÐÐÜ—J‘J˜yÓ)×0Ñ0°Ó7ˆ	Ü—J‘J˜yÓ)×0Ñ0°Ó7ˆ	Ü  9°5Õ9Ü  9°5Õ9áÙœ>¨#Ô.Ü�C‹yœBŸJ™JÑ&Ü  3Õ'Ø—‘˜uÒ$Ü'¨¨3Õ/ð %ð /ð r   c                 ó
  —  || |¬«      }t        j                  ||d|||¬«      \  }	}
|	j                  |k(  sJ ‚|
j                  |k(  sJ ‚t        j                  |«      j                  |«      }t        j                  |«      j                  |«      }t        |	|d¬«       t        |
|d¬«       |sS|rt        |«      sEt        |«      t        j                  u rt        |	|«       y |j                  dk(  rt        |	|«       y y y y rP   )r   r!   r   r   r)   rU   r<   r   rV   rW   r   r=   rX   s              r   Ú_check_laplacian_dtyper_   ‰   sò   € ñ �1˜EÔ
"€CÜ×ÑØØØØ%ØØô�D€A€qð �7‰7�eÒÐÐØ�7‰7�eÒÐÐÜ—
‘
˜9Ó%×,Ñ,¨UÓ3€IÜ—
‘
˜9Ó%×,Ñ,¨UÓ3€IÜ˜A˜y¨uÕ5Ü˜A˜y¨uÕ5áÙœ>¨#Ô.Ü�C‹yœBŸJ™JÑ&Ü  3Õ'Ø—‘˜uÒ$Ü'¨¨3Õ/ð %ð /ð r   r   r[   r.   r0   rR   c           
      óX  — g d¢g d¢g d¢g} |t        j                  |«      |¬«      }|j                  «       }|s| rg d¢g d¢g d¢g}g d¢}|r| rg d¢g d	¢g d¢g}g d
¢}|s| sg d¢g d¢g d¢g}g d¢}|r| sg d¢g d	¢g d¢g}g d¢}t        ||| |||¬«       t	        ||||| |||¬«       y )N©r   r   r   ©r   r   r   ©r   r   r   r   )r   éÿÿÿÿr   )éüÿÿÿr   r   )r   r   r   )r   g      à¿r   )éþÿÿÿr   r   )r   r   r   )r   rd   r   )re   r   r   )r   r   r   )r   r   r   )r0   rR   r.   r   r[   )r   r   r.   r]   r_   )	rR   r0   r.   r   r[   r$   ÚA_copyr\   r3   s	            r   Útest_asymmetric_laplacianrh   ª   sç   € ò 
Ú	Ú	ð	€Añ 	”—‘˜!“ EÔ*€AØ�V‰V‹X€Fá‘nâÚÚðˆò ˆá‘.âÚÚðˆò ˆá™.âÚÚðˆò ˆá‘nâÚÚðˆò ˆäØ	Ø	Ø	ØØ%ØØØõ	ô ØØ	Ø	ØØ%ØØØö	r   Úfmt)ÚcsrÚcscr6   ÚlilÚdokÚdiaÚbsrc                 óX   — t        j                  ddgddgd| ¬«      }t        |||«       y )Nr   rd   )r   r   )Úoffsetsr+   r=   )r   Údiags_arrayrG   )ri   r0   r.   r   s       r   Útest_sparse_formatsrs   ï   s.   € ô
 ×
Ñ
˜a ˜V¨b°!¨W¸FÈ3Ô
O€CÜ$ S¨&°$Õ7r   Úform)r   ÚfunctionÚloc                 óJ  — d} | t        j                  ||z  «      j                  ||«      «      }t        j                  |d|¬«      \  }}t        j                  |dd|¬«      \  }}t        j                  |dd|¬«      \  }}	t        j                  |ddd|¬«      \  }
}||j
                  z  }t        j                  |d|¬«      \  }}t        j                  |dd|¬«      \  }}t        |	||z   «       t        |	|«       t        ||«       i }dD ]I  }|d	k(  rt        |«      ||<   Œ t        |«      t        j                  ||j                  ¬
«      «      ||<   ŒK t        |d   |d   |d   j
                  z   «       t        |d   |d   «       t        |d   |d   «       y )Nr   T)rQ   rt   )rQ   rR   rt   )rQ   Úsymmetrizedrt   )rQ   rx   r0   rt   )rQ   r0   rt   )ÚL_inÚL_outÚLsÚ	Ls_normedÚLssÚ
Lss_normedr   r   r{   ry   rz   r}   r|   r~   )r   ÚarangeÚreshaper   r!   r?   r   r9   Úeyer   r<   )r[   rt   Únr   ry   Úd_inrz   Úd_outr{   Údsr|   Ú	ds_normedr}   Údssr~   Ú
dss_normedr3   r\   s                     r   Útest_laplacian_symmetrizedr‰   ø   s°  € ð 	
€AÙ
”2—9‘9˜Q ™UÓ#×+Ñ+¨A¨qÓ1Ó
2€CÜ×"Ñ"ØØØô�J€Dˆ$ô
 ×$Ñ$ØØØØô	�L€Eˆ5ô ×ÑØØØØô	�F€Bˆô #×,Ñ,ØØØØØôÑ€Iˆyð ˆ3�5‰5�L€CÜ× Ñ  °$¸TÔB�H€CˆÜ$×.Ñ.ØØØØô	Ñ€J�
ô �B˜˜u™Ô%Ü�B˜ÔÜ�I˜zÔ*à
€AØFò 7ˆØ�7Š?Ü˜“7ˆAˆaŠDà”4˜“7œ2Ÿ6™6 !¨3¯9©9Ô5Ó6ˆAˆaŠDð	7ô ˜A˜d™G Q v¡Y°°7±·±Ñ%=Ô>Ü˜A˜d™G Q u¡XÔ.Ü˜A˜k™N¨A¨l©OÕ<r   rx   ru   rv   c           	      óŽ  — d}g d¢g d¢g d¢g} |t        j                  |«      | ¬«      }t        j                  |d|||| ¬«      \  }}	t        j                  |d|||| d¬	«      \  }
}t	        |	|«       t        ||
«       t        j                  |d|||| |¬	«      \  }}t	        ||	«       |j                  | k(  sJ ‚ |t        j                  ||j                  ¬«      «      j                  | «      }t        ||d
d
¬«       t        j                  d«      j                  dd«      }|r| t        v st	         ||«      ||z  «       y y )Nr   ra   rb   rc   r   T)rQ   r0   rx   rR   r   r   )rQ   r0   rx   rR   r   rt   gH¯¼šò×Š>)ÚrtolrS   r   r   )r   r   r   r!   r   r<   r   r�   rU   r   r€   Ú
INT_DTYPES)r   r[   r0   rx   rR   rt   r‚   r   ÚLoÚdoÚLaÚdar\   r3   ÚLmr/   s                   r   Útest_formatr’   5  sD  € ð 	
€AÚ’i¢Ð
+€CÙ
”2—8‘8˜C“=¨Ô
.€CÜ×ÑØØØØØ%Øô�F€Bˆô ×ÑØØØØØ%ØØô�F€Bˆô �B˜ÔÜ˜B Ô#ä×ÑØØØØØ%ØØô�D€A€qô �A�rÔØ�7‰7�eÒÐÐÙ	
Œ2�6‰6�!˜3Ÿ9™9Ô%Ó	&×	-Ñ	-¨eÓ	4€BÜ˜B ¨°DÕ9Ü
�	‰	�!‹×Ñ˜Q Ó"€AÙ�u¤
Ñ*Ü™˜!›˜b 1™fÕ%ð 	r   c                  ó¸   — t        j                  t        d¬«      5  t        j                  t        j                  d«      d¬«      } d d d «       y # 1 sw Y   y xY w)NzInvalid form: 'toto')Úmatchr   Útoto)rt   )Úpytestr   r    r   r!   r   r�   )Ú_s    r   Útest_format_error_messager˜   n  s@   € Ü	�‰”zÐ)?Ô	@ñ 6Ü×ÑœbŸf™f Q›i¨fÔ5ˆ÷6÷ 6ñ 6ús   œ+AÁA)F)T)/r–   Únumpyr   Únumpy.testingr   r   r   Úscipyr   Úscipy.sparser   Úscipy._lib._utilr   r   r   r%   r4   rG   rJ   r<   r]   r_   ÚintcÚlonglongrŒ   Úfloat32rT   Ú
longdoubleÚREAL_DTYPESÚ	complex64Ú
complex128ÚclongdoubleÚCOMPLEX_DTYPESÚDTYPESÚmarkÚparametrizer   Ú
csr_matrixÚ
coo_matrixr;   Ú	coo_arrayrh   rs   r)   r‰   r’   r˜   © r   r   ú<module>r®      s$  ðÛ Û Ý )Ý *Ý å  ß .òò<óó"4òJDò $ò0òB0ð6 �g‰g�w §¡Ð,€
Ø�z‰z˜2Ÿ:™: r§}¡}Ð5€Ø—,‘, §¡¨r¯~©~Ð>€Ø	�kÑ	! NÑ	2€ð ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜ b§h¡hØ&,×&7Ñ&7Ø&,×&7Ñ&7Ø&,×&6Ñ&6Ø&,×&6Ñ&6ð	&8ó 9ð
 ‡�×Ñ˜ $¨ Ó/Ø‡�×Ñ˜ D¨% =Ó1Ø‡�×ÑÐ)¨D°%¨=Ó9ñ9ó :ó 2ó 0ó9ó *ð9ðx ‡�×Ñ˜ò !6ó 7à‡�×Ñ˜ D¨% =Ó1Ø‡�×Ñ˜ $¨ Ó/ñ8ó 0ó 2ó7ð8ð
 ‡�×ÑØ�—‘Ø×"Ñ"Ø×"Ñ"Ø×!Ñ!Ø×!Ñ!ð	#óð ‡�×Ñ˜Ò!<Ó=ñ2=ó >óð2=ðj ‡�×ÑØ�—‘Ø×"Ñ"Ø×"Ñ"Ø×!Ñ!Ø×!Ñ!ð	#óð ‡�×Ñ˜ &Ó)Ø‡�×Ñ˜ D¨% =Ó1Ø‡�×Ñ˜¨¨u¨Ó6Ø‡�×ÑÐ)¨D°%¨=Ó9Ø‡�×Ñ˜ *¨dÐ!3Ó4ñ*ó 5ó :ó 7ó 2ó *óð*óZ6r   