ó
    ™“,j,&  ã                   óH   • S SK r S SKrS SKJr   " S S5      r " S S5      rg)é    N)Úconvert_node_labels_to_integersc                   ób   • \ 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g)ÚTestCliquesé   c           	      ó�  • / SQn[        [        R                  R                  U5      SS9U l        [        [        R                  " U R                  5      5      U l        [        R                  " S5      n[        R                  " U[        S5       Vs0 s H  o3US-   _M
     sn5      nUR                  / SQ5        X l        g s  snf )N)é   é   r   r	   é   r	   r
   é   r   r   r   r   )Úfirst_labelé   ))r
   r   )r
   é   )r
   r	   )r   r   )r   r   )ÚcnltiÚnxÚ
generatorsÚhavel_hakimi_graphÚGÚlistÚfind_cliquesÚclÚcomplete_graphÚrelabel_nodesÚrangeÚremove_edges_fromÚH)ÚselfÚzr   Úis       Ú³C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\networkx/algorithms/tests/test_clique.pyÚsetup_methodÚTestCliques.setup_method   s‘   € Ú-ˆÜ”r—}‘}×7Ñ7¸Ó:ÈÑJˆŒÜ”r—’ t§v¡vÓ.Ó/ˆŒÜ×Ò˜aÓ ˆÜ×Ò˜Q´5¸´8Ó <²8¨a A¨¡E¢±8Ñ <Ó=ˆØ	×ÑÒDÔEØ�ùò !=s   ÂC
c                 ó�  • [        [        R                  " U R                  5      5      n[        R                  " U R                  5      n/ SQ/ SQ/ SQSS/SS//n[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        [
        U5      5      [        [        [
        U5      5      :X  d   eg )N©r
   r   r   r   ©r
   r   r	   )r   r	   r   é   é	   é
   é   )r   r   r   r   Úfind_cliques_recursiveÚsortedÚmap©r   r   ÚrclÚexpecteds       r   Útest_find_cliques1ÚTestCliques.test_find_cliques1   s�   € Ü”"—/’/ $§&¡&Ó)Ó*ˆÜ×'Ò'¨¯©Ó/ˆÚ ¢)ªY¸¸A¸ÀÀRÀÐIˆÜ”cœ& "“oÓ&¬&´´V¸SÓ1AÓ*BÓBÐBÐBÜ”cœ& "“oÓ&¬&´´V¸XÓ1FÓ*GÓGÐGÑGó    c                 óÜ  ^• U R                   R                  SS5        [        [        R                  " U R                   5      5      n[        [        R
                  " U R                   5      5      n[        [        [        U5      5      [        [        [        U5      5      :X  d   e1 Sk1 Sk1 SkSS1SS1/m[        T5      [        U5      :X  d   e[        U4S	 jU 5       5      (       d   eg )
Nr   >   r   r
   r   r   >   r
   r	   r   >   r	   r   r   r%   r&   r'   r(   c              3   ó@   >#   • U  H  n[        U5      T;   v •  M     g 7f©N)Úset)Ú.0ÚcÚanswers     €r   Ú	<genexpr>Ú-TestCliques.test_selfloops.<locals>.<genexpr>   s   øé € Ð0ªR¨”3�q“6˜VÖ#ªRùs   ƒ)r   Úadd_edger   r   r   r)   r5   r+   Ú	frozensetÚlenÚall)r   r   r-   r8   s      @r   Útest_selfloopsÚTestCliques.test_selfloops   s°   ø€ Ø�‰�‰˜˜1ÔÜ”"—/’/ $§&¡&Ó)Ó*ˆÜ”2×,Ò,¨T¯V©VÓ4Ó5ˆÜ”3”y "Ó%Ó&¬#¬c´)¸SÓ.AÓ*BÓBÐBÐBÚ¢	ª9°q¸!°f¸rÀ2¸hÐGˆÜ�6‹{œc "›gÓ%Ð%Ð%ÜÔ0©RÓ0×0Ñ0Ð0Ñ0r1   c                 ó¬   • [        [        R                  " U R                  5      5      n[	        [        [        U5      5      SS// SQSS// SQ/:X  d   eg )Nr   r
   )r   r	   r   r   r   )r   r	   r   )r   r   r   r   r*   r+   )r   Úhcls     r   Útest_find_cliques2ÚTestCliques.test_find_cliques2!   sD   € Ü”2—?’? 4§6¡6Ó*Ó+ˆÜ”cœ& #Ó&Ó'¨Q°¨F²LÀ1ÀaÀ&Ê)Ð+TÓTÐTÑTr1   c                 ó†  • [        [        R                  " U R                  S/5      5      n[        R                  " U R                  S/5      n/ SQ/ SQ/n[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        R                  " U R                  SS/5      5      n[        R                  " U R                  SS/5      n/ SQ/n[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        R                  " U R                  / SQ5      5      n[        R                  " U R                  / SQ5      n/ SQ/n[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        R                  " U R                  / SQ5      5      n[        R                  " U R                  / SQ5      n/ SQ/n[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        [        [
        U5      5      [        [        [
        U5      5      :X  d   e[        R                  " [        5         [        [        R                  " U R                  / SQ5      5        S S S 5        [        R                  " [        5         [        [        R                  " U R                  / SQ5      5        S S S 5        g ! , (       d  f       N^= f! , (       d  f       g = f)Nr
   r#   r$   r   )r
   r   r	   r   )
r   r   r   r   r)   r*   r+   ÚpytestÚraisesÚ
ValueErrorr,   s       r   Útest_find_cliques3ÚTestCliques.test_find_cliques3%   s€  € ô ”"—/’/ $§&¡&¨1¨#Ó.Ó/ˆÜ×'Ò'¨¯©°°Ó4ˆÚ ¢)Ð,ˆÜ”cœ& #Ó&Ó'¬6´#´f¸hÓ2GÓ+HÓHÐHÐHÜ”cœ& "“oÓ&¬&´´V¸XÓ1FÓ*GÓGÐGÐGä”"—/’/ $§&¡&¨1¨a¨&Ó1Ó2ˆÜ×'Ò'¨¯©°°A°Ó7ˆÚ �>ˆÜ”cœ& #Ó&Ó'¬6´#´f¸hÓ2GÓ+HÓHÐHÐHÜ”cœ& "“oÓ&¬&´´V¸XÓ1FÓ*GÓGÐGÐGä”"—/’/ $§&¡&ª)Ó4Ó5ˆÜ×'Ò'¨¯©²	Ó:ˆÚ�;ˆÜ”cœ& #Ó&Ó'¬6´#´f¸hÓ2GÓ+HÓHÐHÐHÜ”cœ& "“oÓ&¬&´´V¸XÓ1FÓ*GÓGÐGÐGä”"—/’/ $§&¡&ª)Ó4Ó5ˆÜ×'Ò'¨¯©²	Ó:ˆÚ�;ˆÜ”cœ& #Ó&Ó'¬6´#´f¸hÓ2GÓ+HÓHÐHÐHÜ”cœ& "“oÓ&¬&´´V¸XÓ1FÓ*GÓGÐGÐGä�]Š]œ:Õ&Ü”—’ §¡ªÓ6Ô7÷ 'ô �]Š]œ:Õ&Ü”×*Ò*¨4¯6©6²<Ó@ÔA÷ 'Ð&÷ 'Õ&ú÷ 'Õ&ús   Ì-N!Í+-N2Î!
N/Î2
O c                 ó¾  • [         R                  " S[         R                  S9nSn[        R                  " [         R
                  US9   [        [         R                  " U5      5        S S S 5        [        R                  " [         R
                  US9   [        [         R                  " U5      5        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)Nr	   ©Úcreate_usingznot implemented for directed)Úmatch)	r   Ú
path_graphÚDiGraphrF   rG   ÚNetworkXNotImplementedr   r   r)   )r   r   Úmsgs      r   Útest_find_cliques_directedÚ&TestCliques.test_find_cliques_directedF   sŒ   € Ü�MŠM˜!¬"¯*©*Ñ5ˆØ,ˆÜ�]Š]œ2×4Ñ4¸CÓ@Ü”—’ Ó#Ô$÷ Aô �]Š]œ2×4Ñ4¸CÓ@Ü”×*Ò*¨1Ó-Ô.÷ AÐ@÷ AÕ@ú÷ AÕ@ús   Á	 B=Â CÂ=
CÃ
Cc                 óx  • U R                   n[        R                  " US5      S:X  d   e[        [        R                  " US/5      R	                  5       5      S/:X  d   e[        [        R                  " USS/5      R	                  5       5      SS/:X  d   e[        R                  " USS/5      SSS.:X  d   e[        R                  " US5      S:X  d   e[        R                  " U5      SSSSSSSSSSSS.:X  d   e[        R                  " U[        U5      S9SSSSSSSSSSSS.:X  d   e[        R                  " U/ SQS9SSSS.:X  d   e[        R                  " XR
                  S9SSSSSSSSSSSS.:X  d   e[        R                  " U[        U5      U R
                  S9SSSSSSSSSSSS.:X  d   eg )Nr   r
   ©r   r
   ©r   r
   r   r	   r   r   r   r%   r&   r'   r(   )Únodes)r
   r   r	   ©Úcliques)r   r   Únumber_of_cliquesr   Úvaluesr   ©r   r   s     r   Útest_number_of_cliquesÚ"TestCliques.test_number_of_cliquesO   s  € Ø�F‰FˆÜ×#Ò# A qÓ)¨QÓ.Ð.Ð.Ü”B×(Ò(¨¨Q¨CÓ0×7Ñ7Ó9Ó:¸q¸cÓAÐAÐAÜ”B×(Ò(¨¨Q°¨FÓ3×:Ñ:Ó<Ó=À!ÀQÀÓGÐGÐGÜ×#Ò# A¨¨1 vÓ.°a¸A±,Ó>Ð>Ð>Ü×#Ò# A qÓ)¨QÓ.Ð.Ð.Ü×#Ò# AÓ&ØØØØØØØØØØØñ+
ó 
ð 	
ð 
ô ×#Ò# A¬T°!«WÑ5ØØØØØØØØØØØñ:
ó 
ð 	
ð 
ô ×#Ò# AªYÑ7¸qÀQÈ1Ñ;MÓMÐMÐMÜ×#Ò# A¯w©wÑ7ØØØØØØØØØØØñ<
ó 
ð 	
ð 
ô ×#Ò# A¤t¨A£w¸¿¹Ñ@ØØØØØØØØØØØñE
ó 
ð 	
ñ 
r1   c                 ó  • U R                   n[        R                  " US5      S:X  d   e[        [        R                  " US/5      R	                  5       5      S/:X  d   e[        [        R                  " USS/5      R	                  5       5      SS/:X  d   e[        R                  " USS/5      SSS.:X  d   e[        R                  " US5      S:X  d   e[        R                  " U5      SSSSSSSSSSSS.:X  d   e[        R                  " XR
                  S9SSSSSSSSSSSS.:X  d   e[        R                  " USS/U R
                  S9SSS.:X  d   e[        R                  " USU R
                  S9S:X  d   eg )Nr   r	   r
   rV   r   rW   rY   )r   r   Únode_clique_numberr   r\   r   r]   s     r   Útest_node_clique_numberÚ#TestCliques.test_node_clique_numberŒ   sš  € Ø�F‰FˆÜ×$Ò$ Q¨Ó*¨aÓ/Ð/Ð/Ü”B×)Ò)¨!¨a¨SÓ1×8Ñ8Ó:Ó;À¸sÓBÐBÐBÜ”B×)Ò)¨!¨a°¨VÓ4×;Ñ;Ó=Ó>À1ÀaÀ&ÓHÐHÐHÜ×$Ò$ Q¨¨A¨Ó/°q¸Q±<Ó?Ð?Ð?Ü×$Ò$ Q¨Ó*¨aÓ/Ð/Ð/Ü×$Ò$ QÓ'ØØØØØØØØØØØñ,
ó 
ð 	
ð 
ô ×$Ò$ Q·±Ñ8ØØØØØØØØØØØñ=
ó 
ð 	
ð 
ô ×$Ò$ Q¨¨A¨¸¿¹Ñ@ÈÈaÁLÓPÐPÐPÜ×$Ò$ Q¨°4·7±7Ñ;¸qÓ@Ð@Ñ@r1   c                 óÀ  • U R                   n[        R                  " U5      n[        U5      / SQ:X  d   e[        R                  " U[        SS5      5      nUR                  UR                  :X  d   e[        R                  " U[        SS5      5      n[        R                  " U[        SS5       Vs0 s H  oU* U_M     sn5      n[        U5      / SQ:X  d   eg s  snf )N)éûÿÿÿéüÿÿÿéýÿÿÿéþÿÿÿéÿÿÿÿr   r
   r   r	   r   r   r   r%   r&   r'   r(   r   é   re   r   r   )r   r
   r   r	   r   )r   r   Úmake_clique_bipartiter*   Úprojected_graphr   Úadjr   )r   r   ÚBr   ÚH1Úvs         r   Útest_make_clique_bipartiteÚ&TestCliques.test_make_clique_bipartite°   s´   € Ø�F‰FˆÜ×$Ò$ QÓ'ˆÜ�a‹yÒSÓSÐSÐSä×Ò˜q¤%¨¨2£,Ó/ˆØ�u‰u˜Ÿ™‹~Ðˆ~ä×Ò ¤5¨¨Q£<Ó0ˆä×Ò˜b´%¸¸1´+Ó">²+¨Q 2 q¢5±+Ñ">Ó?ˆÜ�b‹zš_Ó,Ð,Ñ,ùò #?s   Â3C
c           	      ód  • U R                   n[        R                  " U5      n[        R                  " U[	        SS5      5      n[        R
                  " U[	        SS5       Vs0 s H	  oD* US-
  _M     sn5      n[        R                  " U5      nUR                  UR                  :X  d   egs  snf )zŽTests that the maximal clique graph is the same as the bipartite
clique graph after being projected onto the nodes representing the
cliques.

re   r   r   r   N)r   r   rk   rl   r   r   Úmake_max_clique_graphrm   )r   r   rn   ro   rp   ÚH2s         r   Útest_make_max_clique_graphÚ&TestCliques.test_make_max_clique_graph½   s’   € ð �F‰FˆÜ×$Ò$ QÓ'ˆä×Ò ¤5¨¨Q£<Ó0ˆô ×Ò˜b´e¸A¸q´kÓ"B²k° 2 q¨1¡u¢9±kÑ"BÓCˆÜ×%Ò% aÓ(ˆØ�v‰v˜Ÿ™ÓÐÑùò #Cs   Á#B-
c                 óä   • [         R                  " [        R                  5         [	        [        R
                  " [        R                  " 5       5      5        S S S 5        g ! , (       d  f       g = fr4   )rF   rG   r   rQ   Únextr   rP   )r   s    r   Útest_directedÚTestCliques.test_directedÍ   s7   € Ü�]Š]œ2×4Ñ4Õ5Ü”—’¤§¢£Ó.Ô/÷ 6×5Ö5ús   ¥3A!Á!
A/c                 óÂ   • [         R                  " 5       n[        [         R                  " U5      5      / :X  d   e[        [         R                  " U5      5      / :X  d   eg r4   )r   ÚGraphr*   r   r)   r]   s     r   Útest_find_cliques_trivialÚ%TestCliques.test_find_cliques_trivialÑ   sG   € Ü�HŠH‹JˆÜ”b—o’o aÓ(Ó)¨RÓ/Ð/Ð/Ü”b×/Ò/°Ó2Ó3°rÓ9Ð9Ñ9r1   c                 ó  • [         R                  " / SQ5      n[         R                  " / SQ5      nUR                  S5        [         R                  " [         R                  " U[         R                  S9U5      (       d   eg )N)rV   )r   r   )r	   r   )r   r   ))r   r   )r   r
   rV   r   rL   )r   r}   Úadd_nodeÚis_isomorphicrt   )r   r   ÚEs      r   Ú'test_make_max_clique_graph_create_usingÚ3TestCliques.test_make_max_clique_graph_create_usingÖ   sV   € Ü�HŠHÒ5Ó6ˆÜ�HŠHÒ-Ó.ˆØ	�
‰
�1ŒÜ×Ò¤× 8Ò 8¸ÌÏÉÑ RÐTU×VÑVÐVÑVr1   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    r/   r?   rC   rI   rS   r^   rb   rq   rv   rz   r~   r„   Ú__static_attributes__© r1   r   r   r      sK   † òòHò1òUòBòB/ò;
òz"AòH-ò ò 0ò:õ
Wr1   r   c                   ó   • \ rS rSrS rSrg)ÚTestEnumerateAllCliqueséÝ   c                 ó´  • [         R                  " 5       n/ SQnUR                  U5        [        [         R                  " U5      5      n[        [        [        U5      5      n[        U5      U:X  d   e/ S/PS/PS/PS/PS/PS/PS/PSS/P/ S	QP/ S
QP/ SQPSS/P/ SQP/ SQP/ SQPSS/P/ SQPSS/PSS/P/ SQP/ SQP/ SQP/ SQPSS/P/ SQPSS/PSS/PSS/P/ SQP/ SQP/ SQPSS/P/ SQPSS/P/ SQPSS/PSS/P/ SQPSS/PSS/PSS/P/ SQP/ SQP/ SQP/ SQPn[        [        [        U5      5      [        [        [        U5      5      :X  d   eg )N))ÚaÚb)r�   r7   )r�   Úd)r�   Úe)r‘   r7   )r‘   r’   )r‘   r“   )r7   r’   )r7   r“   )r’   r“   )Úfr‘   )r”   r7   )r”   Úg)r•   r”   )r•   r7   )r•   r’   )r•   r“   r�   r‘   r7   r’   r“   r”   r•   )r�   r‘   r’   )r�   r‘   r’   r“   )r�   r‘   r“   )r�   r7   r’   )r�   r7   r’   r“   )r�   r7   r“   )r�   r’   r“   )r‘   r7   r’   )r‘   r7   r’   r“   )r‘   r7   r“   )r‘   r7   r”   )r‘   r’   r“   )r7   r’   r“   )r7   r’   r“   r•   )r7   r’   r•   )r7   r“   r•   )r7   r”   r•   )r’   r“   r•   )r�   r‘   r7   )r�   r‘   r7   r’   )r�   r‘   r7   r’   r“   )r�   r‘   r7   r“   )r   r}   Úadd_edges_fromr   Úenumerate_all_cliquesr+   r=   r*   )r   r   Úedges_fig_4rZ   Úclique_sizesÚexpected_cliquess         r   Útest_paper_figure_4Ú+TestEnumerateAllCliques.test_paper_figure_4Þ   s¹  € ô �HŠH‹Jˆò
ˆð& 	
×Ñ˜Ô%ä”r×/Ò/°Ó2Ó3ˆÜœC¤ WÓ-Ó.ˆÜ�lÓ# |Ó3Ð3Ð3ð.
ØˆEð.
àˆEð.
ð ˆEð.
ð ˆEð	.
ð
 ˆEð.
ð ˆEð.
ð ˆEð.
ð �#ˆJð.
ò ð.
ò !ð.
ò ð.
ð �#ˆJð.
ò ð.
ò !ð.
ò ð.
ð  �#ˆJð!.
ò" ð#.
ð$ �#ˆJð%.
ð& �#ˆJð'.
ò( ð).
ò* !ð+.
ò, ð-.
ò. ð/.
ð0 �#ˆJð1.
ò2 ð3.
ð4 �#ˆJð5.
ð6 �#ˆJð7.
ð8 �#ˆJð9.
ò: ð;.
ò< !ð=.
ò> ð?.
ð@ �#ˆJðA.
òB ðC.
ðD �#ˆJðE.
òF ðG.
ðH �#ˆJðI.
ðJ �#ˆJðK.
òL ðM.
ðN �#ˆJðO.
ðP �#ˆJðQ.
ðR �#ˆJðS.
òT ðU.
òV !ðW.
òX &ðY.
òZ !ð[.
Ðô` ”cœ& 'Ó*Ó+¬v´c¼&ÐBRÓ6SÓ/TÓTÐTÑTr1   r‹   N)r†   r‡   rˆ   r‰   r›   rŠ   r‹   r1   r   r�   r�   Ý   s	   † õNUr1   r�   )rF   Únetworkxr   r   r   r   r�   r‹   r1   r   Ú<module>rž      s+   ðÛ ã Ý =÷SWñ SW÷lOUò OUr1   