Ë
    D^(h+  ã                   ó|   — d dl Z  e j                  d«      Z e j                  d«       d dlZd dlmZ  G d„ d«      Zy)é    NÚnumpyÚscipy)Úhavel_hakimi_graphc                   ó.   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zy)ÚTestModularityc                 ó”   — g d¢}t        |«      | _        t        j                  «       | _        | j                  j                  d«       y )N)é   é   r
   é   r   )
)r   r
   )r   r	   )r	   r   )r	   r
   )r	   é   )é   r   )r   é   )r   r   )r   r   )r   r   )r   ÚGÚnxÚDiGraphÚDGÚadd_edges_from)ÚclsÚdegs     úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/linalg/tests/test_modularity.pyÚsetup_classzTestModularity.setup_class   s9   € âˆÜ" 3Ó'ˆŒô —‘“ˆŒØ�‰×Ñðõ	
ó    c                 óz  — t         j                  g d¢g d¢g d¢g d¢g d¢g«      }g d¢}t         j                  j                  t	        j
                  | j                  «      |«       t         j                  j                  t	        j
                  | j                  |¬«      |t         j                  ||«         «       y)	zModularity matrix©g      ò¿ç      Ð?r   ç      ä?ç        ©r   ç      à¿ç      à?ç      Ð¿r   ©r   r    r   r!   r   ©r   r!   r!   g      À¿r   ©r   r   r   r   r   )r   r   r   r
   r	   ©ÚnodelistN)ÚnpÚarrayÚtestingÚassert_equalr   Úmodularity_matrixr   Úix_)ÚselfÚBÚpermutations      r   Útest_modularityzTestModularity.test_modularity!   s‰   € ô �H‰HÒ9Ú4Ú4Ú8Ú.ð	0ó 1ˆò &ˆÜ
�
‰
×Ñ¤× 4Ñ 4°T·V±VÓ <¸aÔ@Ü
�
‰
×ÑÜ× Ñ  §¡°+Ô>ØŒb�f‰f�[ +Ó.Ñ/õ	
r   c                 ó®  — t         j                  g d¢g d¢g d¢g d¢g d¢g«      }| j                  j                  «       }|j	                  «       D ]  \  }}d|j                  ||f   d<   Œ t         j
                  j                  t        j                  |«      |«       t         j
                  j                  t        j                  |d¬«      d|z  «       y	)
zModularity matrix with weightsr   r   r"   r#   r$   r    Úweight)r2   N)	r'   r(   r   ÚcopyÚedgesr)   r*   r   r+   )r-   r.   Ú
G_weightedÚn1Ún2s        r   Útest_modularity_weightz%TestModularity.test_modularity_weight2   sµ   € ô �H‰HÒ9Ú4Ú4Ú8Ú.ð	0ó 1ˆð —V‘V—[‘[“]ˆ
Ø ×&Ñ&Ó(ò 	5‰FˆB�Ø14ˆJ×Ñ˜R ˜VÑ$ XÒ.ð	5ô 	�
‰
×Ñ¤× 4Ñ 4°ZÓ @À!ÔDä
�
‰
×ÑÜ× Ñ  °HÔ=¸sÀQ¹wõ	
r   c           	      ó¶  — t         j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      }g d¢}g d¢}t        j                  | j                  t        | j                  «      ¬	«      }t         j                  j                  ||«       t         j                  j                  t        j                  | j                  |¬	«      |t         j                  ||«         «       y
)zDirected Modularity matrix)çš™™™™™É¿ç333333ã?çš™™™™™é?çš™™™™™Ù¿r=   r=   )r   r   r   r   r   r   )gffffffæ?çš™™™™™Ù?g333333Ó¿ç333333ã¿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%   N)	r'   r(   r   Údirected_modularity_matrixr   Úsortedr)   r*   r,   )r-   r.   Únode_permutationÚidx_permutationÚmms        r   Útest_directed_modularityz'TestModularity.test_directed_modularityF   s¢   € ô �H‰HÒ:Ú3Ú9Ú:Ú:Ú:ð<ó =ˆò .ÐÚ,ˆÜ×*Ñ*¨4¯7©7¼VÀDÇGÁG»_ÔMˆÜ
�
‰
×Ñ  AÔ&Ü
�
‰
×ÑÜ×)Ñ)¨$¯'©'Ð<LÔMØŒb�f‰f�_ oÓ6Ñ7õ	
r   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r0   r8   rF   © r   r   r   r   
   s#   „ Øñ
ó ð
ò*
ò"
ó(
r   r   )ÚpytestÚimportorskipr'   Únetworkxr   Únetworkx.generators.degree_seqr   r   rK   r   r   ú<module>rP      s<   ðÛ à€V×Ñ˜Ó!€Ø €× Ñ �GÔ ã Ý =÷M
ò M
r   