Ë
    D^(h7  ã                   ó”   — d dl Z  e j                  d«      Z e j                  d«       d dlZd dlmZ d dlmZ  G d„ d«      Z	d„ Z
d	„ Zy)
é    NÚnumpyÚscipy)Úhavel_hakimi_graph)Úmargulis_gabber_galil_graphc                   ó(   — e Zd Zed„ «       Zd„ Zd„ Zy)ÚTestLaplacianc                 ó¦  — g d¢}t        |«      | _        t        j                  d„ | j                  j	                  «       D «       «      | _        | j
                  j                  d«       t        j                  | j                  «      | _        | j                  j                  «       | _
        | j                  j                  «       D ]  }| j                  j                  ||«       Œ  t        j                  «       | _        | j                  j                  d«       t        j                   | j                  «      | _        t        j                  d„ | j                  j	                  «       D «       «      | _        | j                  j                  «       | _        | j&                  j                  «       D ]  }| j&                  j                  ||«       Œ  y )N)é   é   r   é   r   c              3   ó2   K  — | ]  \  }}||d ddœf–— Œ y­w©ç      à?ç333333Ó?)ÚweightÚotherN© ©Ú.0ÚuÚvs      úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/linalg/tests/test_laplacian.pyú	<genexpr>z,TestLaplacian.setup_class.<locals>.<genexpr>   s%   è ø€ ò 
Ù6<°q¸!ˆQ�˜c¨CÑ0Ô1ñ
ùó   ‚é   ©
©r   r   ©r   r
   )r
   r   )r
   r   )r
   é   )r   r   )r   é   )r   r   )r   r    )r    r   c              3   ó2   K  — | ]  \  }}||d ddœf–— Œ y­wr   r   r   s      r   r   z,TestLaplacian.setup_class.<locals>.<genexpr>-   s%   è ø€ ò 
Ù6<°q¸!ˆQ�˜c¨CÑ0Ô1ñ
ùr   )r   ÚGÚnxÚGraphÚedgesÚWGÚadd_nodeÚ
MultiGraphÚMGÚcopyÚGslÚnodesÚadd_edgeÚDiGraphÚDiGÚadd_edges_fromÚMultiDiGraphÚDiMGÚDiWGÚDiGsl)ÚclsÚdegÚnodes      r   Úsetup_classzTestLaplacian.setup_class   sD  € âˆÜ" 3Ó'ˆŒÜ—‘ñ 
Ø@CÇÁÇÁÃô
ó 
ˆŒð 	�‰�‰˜ÔÜ—‘˜sŸu™uÓ%ˆŒð —%‘%—*‘*“,ˆŒØ—G‘G—M‘M“Oò 	)ˆDØ�G‰G×Ñ˜T 4Õ(ð	)ô
 —*‘*“,ˆŒØ�‰×Ñðô	
ô —?‘? 3§7¡7Ó+ˆŒÜ—:‘:ñ 
Ø@CÇÁÇÁÃô
ó 
ˆŒð —G‘G—L‘L“NˆŒ	Ø—I‘I—O‘OÓ%ò 	+ˆDØ�I‰I×Ñ˜t TÕ*ñ	+ó    c           	      óN  — t         j                  g d¢g d¢g d¢g d¢g d¢g«      }d|z  }d|z  }t         j                  g d¢g d	¢g d
¢g d¢g d¢g d¢g«      }d|z  }d|z  }t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  ddg¬«      j                  «       t         j                  ddgddgg«      «       t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |«       t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  ddg¬«      j                  «       t         j                  ddgddgg«      «       t         j                  j                  t	        j
                  | j                  «      j                  «       |«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |«       y)zGraph Laplacian)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   )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   r   r;   r   r;   )r   r   r   r   r;   r   r   r   ©Únodelistr;   N©r   r   r   )ÚnpÚarrayÚtestingÚassert_equalr#   Úlaplacian_matrixr"   Útodenser)   r&   r/   r2   r3   )ÚselfÚNLÚWLÚOLÚDiNLÚDiWLÚDiOLs          r   Útest_laplacianzTestLaplacian.test_laplacian4   sÝ  € ô �X‰XÒ+Ú+Ú+Ú+Ú+ð	-ó .ˆð �2‰XˆØ�2‰Xˆä�x‰xÒ1Ú1Ú1Ú1Ú1Ú1ð3ó 4ˆð �T‰zˆØ�T‰zˆÜ
�
‰
×Ñ¤× 3Ñ 3°D·F±FÓ ;× CÑ CÓ EÀrÔJÜ
�
‰
×Ñ¤× 3Ñ 3°D·G±GÓ <× DÑ DÓ FÈÔKÜ
�
‰
×ÑÜ×Ñ §¡°!°Q°Ô8×@Ñ@ÓBÜ�H‰H�q˜"�g  A˜wÐ'Ó(ô	
ô 	�
‰
×Ñ¤× 3Ñ 3°D·G±GÓ <× DÑ DÓ FÈÔKÜ
�
‰
×Ñ¤× 3Ñ 3°D·G±GÀDÔ I× QÑ QÓ SÐUWÔXÜ
�
‰
×ÑÜ×Ñ §¡°Ô8×@Ñ@ÓBÀBô	
ô 	�
‰
×Ñ¤× 3Ñ 3°D·H±HÓ =× EÑ EÓ GÈÔNÜ
�
‰
×Ñ¤× 3Ñ 3°D·I±IÓ >× FÑ FÓ HÈ$ÔOÜ
�
‰
×ÑÜ×Ñ §¡°A°q°6Ô:×BÑBÓDÜ�H‰H�q˜"�g  1˜vÐ&Ó'ô	
ô 	�
‰
×Ñ¤× 3Ñ 3°D·I±IÓ >× FÑ FÓ HÈ$ÔOÜ
�
‰
×ÑÜ×Ñ §	¡	°$Ô7×?Ñ?ÓAÀ4ô	
ô 	�
‰
×ÑÜ×Ñ §	¡	°'Ô:×BÑBÓDÀdõ	
r9   c           	      ó4	  — t         j                  g d¢g d¢g d¢g d¢g d¢g«      }t         j                  g d¢g d¢g d¢g d¢g d¢g«      }t         j                  g d¢g d¢g d¢g d	¢g d¢g«      }t         j                  g d
¢g d¢g d¢g d¢g d¢g d¢g«      }t         j                  g d
¢g d¢g d¢g d¢g d¢g d¢g«      }t         j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t         j                  j                  t	        j
                  | j                  t        d«      ¬«      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  t        dd«      ¬«      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  d¬«      j                  «       |d¬«       t         j                  j                  t	        j
                  | j                  «      j                  «       |d¬«       y) zGeneralized Graph Laplacian)ç      ð?çé&1¬Ú¿rO   çX9´Èvâ¿ç        )rO   rN   ç      à¿rQ   rQ   )rO   rR   rN   rQ   rQ   )rP   rQ   rQ   rN   rQ   )rQ   rQ   rQ   rQ   rQ   )ç      è?ç™»–�zÒ¿rT   çþe÷äa¡Ö¿rQ   )rT   çKÈ=›Uå?çioð…ÉTÕ¿rQ   rQ   )rT   rW   rV   rQ   rQ   )rU   rQ   rQ   r   rQ   )rN   rQ   çrŠŽäòÚ¿rQ   rQ   rQ   )rQ   rQ   rQ   rQ   rQ   rQ   )rX   rQ   rN   rQ   rX   rQ   )rQ   rQ   rQ   rN   rR   çà-� æ¿)rQ   rQ   rQ   rR   rN   rY   )rQ   rQ   rQ   rY   rQ   rN   )rX   rQ   rN   rX   rQ   rQ   )rQ   rQ   rQ   rQ   rY   rN   )rV   g™»–�zâ¿rT   rQ   rQ   rQ   )rT   rR   rS   rT   rQ   rQ   )rQ   rQ   rQ   rV   rW   rX   )rQ   rQ   rQ   rW   rV   rX   )rQ   rQ   rQ   rQ   rX   r   r   r<   r
   ©Údecimalr   r>   r   é   N)r?   r@   rA   Úassert_almost_equalr#   Únormalized_laplacian_matrixr"   ÚrangerD   r)   r&   r+   r/   r2   r3   r4   )rE   r"   ÚGLÚLslr/   ÚDiGLÚDiLsls          r   Útest_normalized_laplacianz'TestLaplacian.test_normalized_laplacianc   s¬  € ô �H‰HÒ;Ú;Ú;Ú;Ú;ð	=ó >ˆô
 �X‰XÒ?Ú?Ú?Ú?Ú?ð	Aó Bˆô
 �h‰hÒEÚEÚEÚEÚEð	Gó Hˆô �h‰hÒNÚNÚNÚNÚNÚNðPó Qˆô �x‰xÒOÚOÚOÚOÚOÚOðQó Rˆô —‘ÒPÚPÚPÚPÚPÚPðRó Sˆô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯6©6¼EÀ!»HÔE×MÑMÓOØØð 	'ô 	
ô
 	�
‰
×&Ñ&Ü×*Ñ*¨4¯6©6Ó2×:Ñ:Ó<¸bÈ!ð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯7©7Ó3×;Ñ;Ó=¸rÈ1ð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯7©7Ó3×;Ñ;Ó=¸rÈ1ð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯7©7¸7ÔC×KÑKÓMØØð 	'ô 	
ô
 	�
‰
×&Ñ&Ü×*Ñ*¨4¯8©8Ó4×<Ñ<Ó>ÀÈQð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*Ø—‘Ü˜q %›ô÷ ‰g‹iØØð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯8©8Ó4×<Ñ<Ó>ÀÈað 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯9©9Ó5×=Ñ=Ó?ÀÈqð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯9©9Ó5×=Ñ=Ó?ÀÈqð 	'ô 	
ô 	�
‰
×&Ñ&Ü×*Ñ*¨4¯9©9¸WÔE×MÑMÓOØØð 	'ô 	
ô
 	�
‰
×&Ñ&Ü×*Ñ*¨4¯:©:Ó6×>Ñ>Ó@À%ÐQRð 	'õ 	
r9   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr8   rL   rd   r   r9   r   r   r      s!   „ Øñ%+ó ð%+òN-
ó^V
r9   r   c            	      ó  — t        j                  «       } | j                  d«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      ¬	«      }t        j                  j                  ||d
¬«       | j                  d«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      d¬«      }t        j                  j                  ||d
¬«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      d¬«      }t        j                  j                  ||d
¬«       t        j                  «       } | j                  d«       t        j	                  g d¢g d¢g d¢g d ¢g«      }t        j
                  | dt        | «      ¬	«      }t        j                  j                  ||d
¬«       y!)"zDirected Laplacianr   )ç�Å�1wï?çû:pÎˆÒÒ¿ç*©ÐDØØ¿ç\ AñcÌ�¿ç�€&Â†§—¿ç}Ð³Yõ¹š¿)rk   gµ7øÂdªê?ç8gDioðÍ¿çS–!Žuq«¿çGx$(®¿ç¯”eˆc]¬¿)rl   rp   rj   çò°Pkšwœ¿çÇº¸�ð¶¿çÝµ„|Ð³™¿)rm   rq   rt   rj   ç€H¿}8ß¿ç\�Âõ(\å¿)rn   rr   ru   rw   rj   ç)í¾0™Ê¿)ro   rs   rv   rx   ry   rj   çÍÌÌÌÌÌì?©Úalphar=   r
   rZ   ©)r   r   )r    r   )rN   ç¸@‚âÇ˜Ó¿çÏfÕçj+Þ¿rQ   rQ   ç,Ôšæ§Ô¿)r~   rN   çÕ	h"lxÂ¿rQ   ç[±¿ìž<Ô¿rQ   )r   r�   rN   rQ   çåòÒo_·¿rQ   )rQ   rQ   rQ   rN   rR   rR   )rQ   r‚   rƒ   rR   rN   ç      Ð¿)r€   rQ   rQ   rR   r„   rN   Úrandom©r|   r=   Ú	walk_type)r   ç¸@‚âÇ˜Ã¿çÏfÕçj+Î¿rQ   rQ   çð…ÉTÁ¨Ä¿)rˆ   r   ç]mÅþ²{²¿rQ   ç[±¿ìž<Ä¿rQ   )r‰   r‹   r   rQ   çÔ+eâX§¿rQ   )rQ   rQ   rQ   r   r„   r„   )rQ   rŒ   r�   r„   r   ç      À¿)rŠ   rQ   rQ   r„   rŽ   r   Úlazy)r   )r   r   )r   r   r   )r
   r   )r   çºI+‡Æ¿r�   r„   )r�   r   rQ   r�   )r�   rQ   r   r�   )r„   r�   r�   r   N)	r#   r.   r0   r?   r@   Údirected_laplacian_matrixÚsortedrA   r]   )r"   r`   ÚLs      r   Útest_directed_laplacianr”   ¼   s½  € ô
 	�
‰
‹€AØ×Ñð	
ôô 
�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×$Ñ$ Q¨c¼FÀ1»IÔF€AÜ‡J�J×"Ñ" 1 b°!Ð"Ô4ð ×ÑÐ%Ô&ä	�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×$Ñ$Ø	�œv a›y°Hô	€Aô ‡J�J×"Ñ" 1 b°!Ð"Ô4ô 
�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×$Ñ$ Q¨c¼FÀ1»IÐQWÔX€AÜ‡J�J×"Ñ" 1 b°!Ð"Ô4ô 	�
‰
‹€AØ×ÑÐ=Ô>ä	�‰Ò3Ú3Ú3Ú3ð5ó 
6€Bô
 	×$Ñ$ Q¨c¼FÀ1»IÔF€AÜ‡J�J×"Ñ" 1 b°!Ð"Õ4r9   c            	      ó  — t        j                  «       } | j                  d«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      ¬	«      }t        j                  j                  ||d
¬«       | j                  d«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      d¬«      }t        j                  j                  ||d
¬«       t        j	                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        j
                  | dt        | «      d¬«      }t        j                  j                  ||d
¬«       t        j                  t        d«      «      }t        j
                  |«      }t        j	                  g d¢g d¢g d¢g d ¢g«      }t        j                  j                  ||d!¬«       t        j                  t         j                  «      5  t        j
                  | d"d#¬$«       d%d%d%«       t        j                  t         j                  «      5  t        j
                  | d&¬'«       d%d%d%«       y%# 1 sw Y   ŒMxY w# 1 sw Y   y%xY w)(z Directed combinatorial Laplacianr   )g46<½¢?çF%uš‹¿çKÈ=›U�¿ç_ÎQÚk¿çü©ñÒMb`¿ç®Ø_vOf¿)r–   g
×£p=
§?çA‚âÇ˜»†¿çÅ�1w-!¿çaÃÓ+ey¿çlxz¥,C|¿)r—   r›   gˆ…ZÓ¼ã¤?çyé&1¬l¿ç�St$—ÿ€¿rš   )r˜   rœ   rŸ   g|ò°Pkš×?çz6«>W[Á¿ç<NÑ‘\þË¿)r™   r�   r    r¡   gtµûËîÉ?çB`åÐ"Û©¿)rš   rž   rš   r¢   r£   gj¼t“Ò?rz   r{   r
   rZ   r}   )gB`åÐ"ÛÁ?çÊÃB­iÞ¡¿ç+‡ÙÎ§¿rQ   rQ   ç:’ËH¿­¿)r¤   g+‡ÙÎ·?çàœ¥½Á‡¿rQ   r¥   rQ   )r¥   r§   çÊÃB­iÞ±?rQ   r§   rQ   )rQ   rQ   rQ   çKY†8ÖÅÍ?çKY†8ÖÅ½¿rª   )rQ   r¥   r§   rª   r©   r¦   )r¦   rQ   rQ   rª   r¦   r©   r…   r†   )r¨   ç¨5Í;NÑ‘¿ç$¹ü‡ôÛ—¿rQ   rQ   rm   )r«   g+‡ÙÎ§?çàœ¥½Áw¿rQ   r¬   rQ   )r¬   r­   gÊÃB­iÞ¡?rQ   r­   rQ   )rQ   rQ   rQ   çKY†8ÖÅ½?r¦   r¦   )rQ   r¬   r­   r¦   r®   rm   )rm   rQ   rQ   r¦   rm   r®   r�   r   )çKÚ}\UUÅ?çiKGUUµ¿r°   rQ   )r°   r¯   rQ   r°   )r°   rQ   r¯   r°   )rQ   r°   r°   r¯   r    Úpagerankéd   )r‡   r|   NÚsilly)r‡   )r#   r.   r0   r?   r@   Ú'directed_combinatorial_laplacian_matrixr’   rA   r]   r   ÚpytestÚraisesÚNetworkXError)r"   r`   r“   ÚEÚexpecteds        r   Ú%test_directed_combinatorial_laplacianrº     s3  € ô
 	�
‰
‹€AØ×Ñð	
ôô 
�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×2Ñ2°1¸CÌ&ÐQRË)ÔT€AÜ‡J�J×"Ñ" 1 b°!Ð"Ô4ð ×ÑÐ%Ô&ô 
�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×2Ñ2Ø	�œv a›y°Hô	€Aô ‡J�J×"Ñ" 1 b°!Ð"Ô4ô 
�‰ÒIÚIÚIÚIÚIÚIðKó 
L€Bô 	×2Ñ2Ø	�œv a›y°Fô	€Aô ‡J�J×"Ñ" 1 b°!Ð"Ô4ä
�
‰
Ô.¨qÓ1Ó2€AÜ
×2Ñ2°1Ó5€Aä�x‰xÚ	=Ú	=Ú	=Ú	=ð	?ó€Hô ‡J�J×"Ñ" 1 h¸Ð"Ô:ä	�‰”r×'Ñ'Ó	(ñ WÜ
×2Ñ2°1À
ÐRUÕV÷Wä	�‰”r×'Ñ'Ó	(ñ IÜ
×2Ñ2°1ÀÕH÷Ið I÷Wð Wú÷Ið Iús   ÈI5ÉJÉ5I>ÊJ
)rµ   Úimportorskipr?   Únetworkxr#   Únetworkx.generators.degree_seqr   Únetworkx.generators.expandersr   r   r”   rº   r   r9   r   ú<module>r¿      sN   ðÛ à€V×Ñ˜Ó!€Ø €× Ñ �GÔ ã Ý =Ý E÷n
ñ n
òbC5óLNIr9   