Ë
    D^(h>  ã                   óÜ   — d dl Z d dlZ G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z	 G d„ d«      Z
 G d„ d«      Z G d„ d«      Zy)é    Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTrianglesc                 óŽ   — t        j                  «       }t        t        j                  |«      j	                  «       «      g k(  sJ ‚y ©N)ÚnxÚGraphÚlistÚ	trianglesÚvalues©ÚselfÚGs     úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cluster.pyÚ
test_emptyzTestTriangles.test_empty   s1   € Ü�H‰H‹JˆÜ”B—L‘L “O×*Ñ*Ó,Ó-°Ò3Ð3Ñ3ó    c                 óÞ   — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |«      dddddddddddœ
k(  sJ ‚y ©Né
   ©
r   r   r   r   r   r   r   r   r   r   r   ©
r   é   é   é   é   é   é   é   é   é	   )r   Ú
path_graphr	   r
   r   r   s     r   Ú	test_pathzTestTriangles.test_path   sr   € Ü�M‰M˜"ÓˆÜ”B—L‘L “O×*Ñ*Ó,Ó-Ò1OÒOÐOÐOÜ�|‰|˜A‹ØØØØØØØØØØñ#
ò 
ð 	
ñ 
r   c                 óª  — t        j                  «       }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d«      dk(  sJ ‚t        t        j                  |ddg«      j	                  «       «      ddgk(  sJ ‚t        j                  |d«      dk(  sJ ‚t        j                  |ddg«      dddœk(  sJ ‚y ©N©r   r   r   r   r   r   r   r   r   r   r   ©r   r   )r   Úcubical_graphr	   r
   r   r   s     r   Útest_cubicalzTestTriangles.test_cubical   s·   € Ü×ÑÓˆÜ”B—L‘L “O×*Ñ*Ó,Ó-Ò1IÒIÐIÐIÜ�|‰|˜A˜qÓ! QÒ&Ð&Ð&Ü”B—L‘L  Q¨ FÓ+×2Ñ2Ó4Ó5¸!¸Q¸Ò?Ð?Ð?Ü�|‰|˜A˜qÓ! QÒ&Ð&Ð&Ü�|‰|˜A  1˜vÓ&¨a°A©,Ò6Ð6Ñ6r   c                 ó²  — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        t        j                  |«      j	                  «       «      dz  dk(  sJ ‚t        j                  |d«      dk(  sJ ‚|j                  dd«       t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d«      dk(  sJ ‚|j                  dd«       t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d«      dk(  sJ ‚y )	Nr   )r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   Úcomplete_graphr	   r
   r   ÚsumÚremove_edgeÚadd_edger   s     r   Útest_k5zTestTriangles.test_k5#   s  € Ü×Ñ˜aÓ ˆÜ”B—L‘L “O×*Ñ*Ó,Ó-²Ò@Ð@Ð@Ü”2—<‘< “?×)Ñ)Ó+Ó,¨qÑ0°BÒ6Ð6Ð6Ü�|‰|˜A˜qÓ! QÒ&Ð&Ð&Ø	�‰�a˜ÔÜ”B—L‘L “O×*Ñ*Ó,Ó-²Ò@Ð@Ð@Ü�|‰|˜A˜qÓ! QÒ&Ð&Ð&Ø	�
‰
�1�aÔÜ”B—L‘L “O×*Ñ*Ó,Ó-²Ò@Ð@Ð@Ü�|‰|˜A˜qÓ! QÒ&Ð&Ñ&r   N)Ú__name__Ú
__module__Ú__qualname__r   r!   r'   r-   © r   r   r   r      s   „ ò4ò
ò 7ó
'r   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDirectedClusteringc                 óÂ   — t        j                  «       }t        t        j                  |«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y r   ©r   ÚDiGraphr	   Ú
clusteringr   r   s     r   Útest_clusteringz&TestDirectedClustering.test_clustering1   sI   € Ü�J‰J‹LˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.°"Ò4Ð4Ð4Ü�}‰}˜QÓ 2Ò%Ð%Ñ%r   c                 ó<  — t        j                  dt        j                  «       ¬«      }t        t        j                  |«      j                  «       «      g d¢k(  sJ ‚t        j                  |«      dddddddddddœ
k(  sJ ‚t        j                  |d«      dk(  sJ ‚y )Nr   ©Úcreate_usingr   r   r   ©r   r    r6   r	   r7   r   r   s     r   r!   z TestDirectedClustering.test_path6   s¡   € Ü�M‰M˜"¬2¯:©:«<Ô8ˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.ò 3
ò 
ð 	
ð 
ô �}‰}˜QÓØØØØØØØØØØñ$
ò 
ð 	
ð 
ô �}‰}˜Q Ó" aÒ'Ð'Ñ'r   c                 óº  — t        j                  dt        j                  «       ¬«      }t        t        j                  |«      j                  «       «      g d¢k(  sJ ‚t        j                  |«      dk(  sJ ‚|j                  dd«       t        t        j                  |«      j                  «       «      g d¢k(  sJ ‚t        j                  |ddg«      ddd	œk(  sJ ‚|j                  dd«       t        t        j                  |«      j                  «       «      g d
¢k(  sJ ‚t        j                  |ddg«      ddd	œk(  sJ ‚t        j                  |d«      dk(  sJ ‚y )Nr   r:   ©r   r   r   r   r   r   r   ©çUUUUUUí?r   r   r@   r@   r   r@   ©r   r   ©ç«ªªªªªê?r   r   rC   rC   rC   ©r   r)   r6   r	   r7   r   Úaverage_clusteringr+   r   s     r   r-   zTestDirectedClustering.test_k5R   s2  € Ü×Ñ˜a¬b¯j©j«lÔ;ˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.²/ÒAÐAÐAÜ×$Ñ$ QÓ'¨1Ò,Ð,Ð,Ø	�‰�a˜ÔÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.ò 3
ò 
ð 	
ð 
ô �}‰}˜Q  A Ó'¨q°WÑ+=Ò=Ð=Ð=Ø	�‰�a˜ÔÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.ò 3
ò 
ð 	
ð 
ô �}‰}˜Q  A Ó'¨qÐ5HÑ+IÒIÐIÐIÜ�}‰}˜Q Ó" eÒ+Ð+Ñ+r   c                 ó´   — t        j                  dt        j                  «       ¬«      }|j                  dd«       t        j                  |«      d   dk(  sJ ‚y )Nr   r:   r   r   çUUUUUUÅ?)r   Úcycle_graphr6   r,   r7   r   s     r   Útest_triangle_and_edgez-TestDirectedClustering.test_triangle_and_edgej   sB   € Ü�N‰N˜1¬2¯:©:«<Ô8ˆØ	�
‰
�1�aÔÜ�}‰}˜QÓ Ñ" eÒ+Ð+Ñ+r   N)r.   r/   r0   r8   r!   r-   rI   r1   r   r   r3   r3   0   s   „ ò&ò
(ò8,ó0,r   r3   c                   ó4   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDirectedWeightedClusteringc                 ó.   — t        j                  d«      ay ©NÚnumpy©ÚpytestÚimportorskipÚnp©Úclss    r   Úsetup_classz*TestDirectedWeightedClustering.setup_classq   ó   € ô × Ñ  Ó)‰r   c                 óÆ   — t        j                  «       }t        t        j                  |d¬«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y ©NÚweight©rY   r5   r   s     r   r8   z.TestDirectedWeightedClustering.test_clusteringv   sK   € Ü�J‰J‹LˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?À2ÒEÐEÐEÜ�}‰}˜QÓ 2Ò%Ð%Ñ%r   c                 ó  — t        j                  dt        j                  «       ¬«      }t        t        j                  |d¬«      j                  «       «      g d¢k(  sJ ‚t        j                  |d¬«      dddddddddddœ
k(  sJ ‚y )Nr   r:   rY   rZ   r   r   r   r<   r   s     r   r!   z(TestDirectedWeightedClustering.test_path{   s‹   € Ü�M‰M˜"¬2¯:©:«<Ô8ˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ð 
ô �}‰}˜Q xÔ0ØØØØØØØØØØñ5
ò 
ð 	
ñ 
r   c                 óœ  — t        j                  dt        j                  «       ¬«      }t        t        j                  |d¬«      j                  «       «      g d¢k(  sJ ‚t        j                  |d¬«      dk(  sJ ‚|j                  dd«       t        t        j                  |d¬«      j                  «       «      g d¢k(  sJ ‚t        j                  |dd	gd¬«      dd
dœk(  sJ ‚|j                  dd«       t        t        j                  |d¬«      j                  «       «      g d¢k(  sJ ‚t        j                  |dd	gd¬«      dddœk(  sJ ‚y )Nr   r:   rY   rZ   r>   r   r   r?   r   r@   rA   rB   rC   rD   r   s     r   r-   z&TestDirectedWeightedClustering.test_k5–   s0  € Ü×Ñ˜a¬b¯j©j«lÔ;ˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?Â?ÒRÐRÐRÜ×$Ñ$ Q¨xÔ8¸AÒ=Ð=Ð=Ø	�‰�a˜ÔÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ð 
ô �}‰}˜Q  A ¨xÔ8ÀÀgÑ<NÒNÐNÐNØ	�‰�a˜ÔÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ð 
ô �}‰}˜Q  A ¨xÔ8ØØ"ñ=
ò 
ð 	
ñ 
r   c                 ó”  — t        j                  dt        j                  «       ¬«      }|j                  ddd¬«       t        j                  |«      d   dk(  sJ ‚t
        j                  j                  t        j                  |d¬«      d   d	«       t
        j                  j                  t        j                  |dd¬«      d	«       y )
Nr   r:   r   r   r   rZ   rG   rY   gUUUUUUµ?)r   rH   r6   r,   r7   rR   ÚtestingÚassert_allcloser   s     r   rI   z5TestDirectedWeightedClustering.test_triangle_and_edge°   s‹   € Ü�N‰N˜1¬2¯:©:«<Ô8ˆØ	�
‰
�1�a ˆ
Ô"Ü�}‰}˜QÓ Ñ" eÒ+Ð+Ð+ä
�
‰
×"Ñ"¤2§=¡=°¸8Ô#DÀQÑ#GÈÔPÜ
�
‰
×"Ñ"¤2§=¡=°°A¸hÔ#GÈÕPr   N)	r.   r/   r0   ÚclassmethodrU   r8   r!   r-   rI   r1   r   r   rK   rK   p   s)   „ Øñ*ó ð*ò&ò

ò6
ó4Qr   rK   c                   ó@   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y)	ÚTestWeightedClusteringc                 ó.   — t        j                  d«      ay rM   rO   rS   s    r   rU   z"TestWeightedClustering.setup_classº   rV   r   c                 óÆ   — t        j                  «       }t        t        j                  |d¬«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y rX   ©r   r   r	   r7   r   r   s     r   r8   z&TestWeightedClustering.test_clustering¿   sK   € Ü�H‰H‹JˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?À2ÒEÐEÐEÜ�}‰}˜QÓ 2Ò%Ð%Ñ%r   c                 óæ   — t        j                  d«      }t        t        j                  |d¬«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d¬«      dddddddddddœ
k(  sJ ‚y )Nr   rY   rZ   r   r   r   ©r   r    r	   r7   r   r   s     r   r!   z TestWeightedClustering.test_pathÄ   sƒ   € Ü�M‰M˜"ÓˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ð 
ô �}‰}˜Q xÔ0ØØØØØØØØØØñ5
ò 
ð 	
ñ 
r   c                 óº  — t        j                  «       }t        t        j                  |d¬«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d«      dk(  sJ ‚t        t        j                  |ddgd¬«      j	                  «       «      ddgk(  sJ ‚t        j                  |dd¬«      dk(  sJ ‚t        j                  |ddgd¬«      dddœk(  sJ ‚y )NrY   rZ   r$   r   r   r   r%   ©r   r&   r	   r7   r   r   s     r   r'   z#TestWeightedClustering.test_cubicalß   sË   € Ü×ÑÓˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò 	D
ò 	
ð 		
ð 	
ô �}‰}˜Q Ó" aÒ'Ð'Ð'Ü”B—M‘M ! a¨ V°HÔ=×DÑDÓFÓGÈAÈqÈ6ÒQÐQÐQÜ�}‰}˜Q ¨(Ô3°qÒ8Ð8Ð8Ü�}‰}˜Q  A ¨xÔ8ÀÀa¹LÒHÐHÑHr   c                 ó¢  — t        j                  d«      }t        t        j                  |d¬«      j	                  «       «      g d¢k(  sJ ‚t        j
                  |d¬«      dk(  sJ ‚|j                  dd«       t        t        j                  |d¬«      j	                  «       «      g d¢k(  sJ ‚t        j                  |ddgd¬«      dd	d
œk(  sJ ‚y )Nr   rY   rZ   r>   r   r   rB   r   rC   rA   ©r   r)   r	   r7   r   rE   r+   r   s     r   r-   zTestWeightedClustering.test_k5ð   sÃ   € Ü×Ñ˜aÓ ˆÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?Â?ÒRÐRÐRÜ×$Ñ$ Q¨xÔ8¸AÒ=Ð=Ð=Ø	�‰�a˜ÔÜ”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ð 
ô �}‰}˜Q  A ¨xÔ8ØØ"ñ=
ò 
ð 	
ñ 
r   c                 ól  — t        j                  d«      }|j                  ddd¬«       t        j                  |«      d   dk(  sJ ‚t        j
                  j                  t        j                  |d¬«      d   d«       t        j
                  j                  t        j                  |dd¬«      d«       y )	Nr   r   r   r   rZ   çUUUUUUÕ?rY   rG   )r   rH   r,   r7   rR   r^   r_   r   s     r   rI   z-TestWeightedClustering.test_triangle_and_edge  sƒ   € Ü�N‰N˜1ÓˆØ	�
‰
�1�a ˆ
Ô"Ü�}‰}˜QÓ Ñ" eÒ+Ð+Ð+Ü
�
‰
×"Ñ"¤2§=¡=°¸8Ô#DÀQÑ#GÈÔOÜ
�
‰
×"Ñ"¤2§=¡=°°A¸hÔ#GÈÕOr   c                 óö   — t        j                  d«      }|j                  ddd¬«       |j                  ddd¬«       t        j                  |«      d   dk(  sJ ‚t        j                  |d¬«      d   dk(  sJ ‚y )	Nr   r   r   éÿÿÿÿrZ   rm   rY   çUUUUUUÕ¿)r   rH   r,   r7   r   s     r   Útest_triangle_and_signed_edgez4TestWeightedClustering.test_triangle_and_signed_edge  sn   € Ü�N‰N˜1ÓˆØ	�
‰
�1�a ˆ
Ô#Ø	�
‰
�1�a ˆ
Ô"Ü�}‰}˜QÓ Ñ" eÒ+Ð+Ð+Ü�}‰}˜Q xÔ0°Ñ3°vÒ=Ð=Ñ=r   N)r.   r/   r0   r`   rU   r8   r!   r'   r-   rI   rq   r1   r   r   rb   rb   ¹   s4   „ Øñ*ó ð*ò&ò

ò6Iò"
ò"Pó>r   rb   c                   ó:   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)ÚTestClusteringc                 ó.   — t        j                  d«       y rM   ©rP   rQ   rS   s    r   rU   zTestClustering.setup_class  ó   € ä×Ñ˜GÕ$r   c                 óÂ   — t        j                  «       }t        t        j                  |«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y r   re   r   s     r   r8   zTestClustering.test_clustering  sI   € Ü�H‰H‹JˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.°"Ò4Ð4Ð4Ü�}‰}˜QÓ 2Ò%Ð%Ñ%r   c                 óÞ   — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |«      dddddddddddœ
k(  sJ ‚y r   rg   r   s     r   r!   zTestClustering.test_path  s~   € Ü�M‰M˜"ÓˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.ò 3
ò 
ð 	
ð 
ô �}‰}˜QÓØØØØØØØØØØñ$
ò 
ð 	
ñ 
r   c                 óª  — t        j                  «       }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |d«      dk(  sJ ‚t        t        j                  |ddg«      j	                  «       «      ddgk(  sJ ‚t        j                  |d«      dk(  sJ ‚t        j                  |ddg«      dddœk(  sJ ‚y r#   ri   r   s     r   r'   zTestClustering.test_cubical5  s¸   € Ü×ÑÓˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.Ò2JÒJÐJÐJÜ�}‰}˜Q Ó" aÒ'Ð'Ð'Ü”B—M‘M ! a¨ VÓ,×3Ñ3Ó5Ó6¸1¸a¸&Ò@Ð@Ð@Ü�}‰}˜Q Ó" aÒ'Ð'Ð'Ü�}‰}˜Q  A Ó'¨q°Q©<Ò7Ð7Ñ7r   c                 ó’  — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j
                  |«      dk(  sJ ‚|j                  dd«       t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |ddg«      dddœk(  sJ ‚y )	Nr   r>   r   r   rB   r   rC   rA   rk   r   s     r   r-   zTestClustering.test_k5=  s±   € Ü×Ñ˜aÓ ˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.²/ÒAÐAÐAÜ×$Ñ$ QÓ'¨1Ò,Ð,Ð,Ø	�‰�a˜ÔÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.ò 3
ò 
ð 	
ð 
ô �}‰}˜Q  A Ó'¨qÐ5HÑ+IÒIÐIÑIr   c                 ó~  — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j
                  |«      dk(  sJ ‚|j                  dd«       |j                  ddd¬«       t        t        j                  |d¬«      j	                  «       «      g d	¢k(  sJ ‚y )
Nr   r>   r   r   r   ro   rZ   rY   )rG   rp   r   ç      à?r|   )r   r)   r	   r7   r   rE   r+   r,   r   s     r   Útest_k5_signedzTestClustering.test_k5_signedK  s¡   € Ü×Ñ˜aÓ ˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.²/ÒAÐAÐAÜ×$Ñ$ QÓ'¨1Ò,Ð,Ð,Ø	�‰�a˜ÔØ	�
‰
�1�a ˆ
Ô#Ü”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ñ 
r   N)
r.   r/   r0   r`   rU   r8   r!   r'   r-   r}   r1   r   r   rs   rs     s.   „ Øñ%ó ð%ò&ò

ò68òJó
r   rs   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTransitivityc                 ó`   — t        j                  «       }t        j                  |«      dk(  sJ ‚y ©Nr   )r   r   Útransitivityr   s     r   Útest_transitivityz"TestTransitivity.test_transitivity[  s$   € Ü�H‰H‹JˆÜ�‰˜qÓ! QÒ&Ð&Ñ&r   c                 ób   — t        j                  d«      }t        j                  |«      dk(  sJ ‚y )Nr   r   )r   r    r‚   r   s     r   r!   zTestTransitivity.test_path_  s'   € Ü�M‰M˜"ÓˆÜ�‰˜qÓ! QÒ&Ð&Ñ&r   c                 ó`   — t        j                  «       }t        j                  |«      dk(  sJ ‚y r�   )r   r&   r‚   r   s     r   r'   zTestTransitivity.test_cubicalc  s'   € Ü×ÑÓˆÜ�‰˜qÓ! QÒ&Ð&Ñ&r   c                 óº   — t        j                  d«      }t        j                  |«      dk(  sJ ‚|j                  dd«       t        j                  |«      dk(  sJ ‚y )Nr   r   r   g      ì?)r   r)   r‚   r+   r   s     r   r-   zTestTransitivity.test_k5g  sN   € Ü×Ñ˜aÓ ˆÜ�‰˜qÓ! QÒ&Ð&Ð&Ø	�‰�a˜ÔÜ�‰˜qÓ! UÒ*Ð*Ñ*r   N)r.   r/   r0   rƒ   r!   r'   r-   r1   r   r   r   r   Z  s   „ ò'ò'ò'ó+r   r   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestSquareClusteringc                 óÂ   — t        j                  «       }t        t        j                  |«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y r   )r   r   r	   Úsquare_clusteringr   r   s     r   r8   z$TestSquareClustering.test_clusteringo  sM   € Ü�H‰H‹JˆÜ”B×(Ñ(¨Ó+×2Ñ2Ó4Ó5¸Ò;Ð;Ð;Ü×#Ñ# AÓ&¨"Ò,Ð,Ñ,r   c                 óÞ   — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        j                  |«      dddddddddddœ
k(  sJ ‚y r   )r   r    r	   rŠ   r   r   s     r   r!   zTestSquareClustering.test_patht  s‚   € Ü�M‰M˜"ÓˆÜ”B×(Ñ(¨Ó+×2Ñ2Ó4Ó5ò :
ò 
ð 	
ð 
ô ×#Ñ# AÓ&ØØØØØØØØØØñ+
ò 
ð 	
ñ 
r   c                 ó²  — t        j                  «       }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚t        t        j                  |ddg«      j	                  «       «      ddgk(  sJ ‚t        j                  |dg«      d   dk(  sJ ‚t        j                  |d«      dk(  sJ ‚t        j                  |ddg«      dddœk(  sJ ‚y )N)rm   rm   rm   rm   rm   rm   rm   rm   r   r   rm   r%   )r   r&   r	   rŠ   r   r   s     r   r'   z!TestSquareClustering.test_cubical�  sÔ   € Ü×ÑÓˆÜ”B×(Ñ(¨Ó+×2Ñ2Ó4Ó5ò 	:
ò 	
ð 		
ð 	
ô ”B×(Ñ(¨¨Q°¨FÓ3×:Ñ:Ó<Ó=À%ÈÀÒOÐOÐOÜ×#Ñ# A¨ sÓ+¨AÑ.°%Ò7Ð7Ð7Ü×#Ñ# A qÓ)¨UÒ2Ð2Ð2Ü×#Ñ# A¨¨1 vÓ.°eÀÑ2FÒFÐFÑFr   c                 ó”   — t        j                  d«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚y )Nr   r>   )r   r)   r	   rŠ   r   r   s     r   r-   zTestSquareClustering.test_k5   s9   € Ü×Ñ˜aÓ ˆÜ”B×(Ñ(¨Ó+×2Ñ2Ó4Ó5ºÒHÐHÑHr   c                 ó–   — t        j                  dd«      }t        t        j                  |«      j	                  «       «      g d¢k(  sJ ‚y )Nr   )
r   r   r   r   r   r   r   r   r   r   )r   Úcomplete_bipartite_graphr	   rŠ   r   r   s     r   Útest_bipartite_k5z&TestSquareClustering.test_bipartite_k5¤  s<   € Ü×'Ñ'¨¨1Ó-ˆÜ”B×(Ñ(¨Ó+×2Ñ2Ó4Ó5Ò9WÒWÐWÑWr   c                 ó8  — t        j                  g d¢«      }|j                  g d¢«      }|j                  g d¢«      }t        j                  |dg«      d   dk(  sJ ‚t        j                  |dg«      d   dk(  sJ ‚t        j                  |dg«      d   dk(  sJ ‚y)	z&Test C4 for figure 1 Lind et al (2005))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   gwÄqGÜ±?rm   çš™™™™™É?N)r   r   ÚsubgraphrŠ   )r   r   ÚG1ÚG2s       r   Útest_lind_square_clusteringz0TestSquareClustering.test_lind_square_clustering¨  s›   € ä�H‰Hòó
ˆð. �Z‰ZÒ7Ó8ˆØ�Z‰ZÒ3Ó4ˆÜ×#Ñ# A¨ sÓ+¨AÑ.°&Ò8Ð8Ð8Ü×#Ñ# B¨¨Ó,¨QÑ/°5Ò8Ð8Ð8Ü×#Ñ# B¨¨Ó,¨QÑ/°5Ò8Ð8Ñ8r   c                 óp   — t        j                  g d¢«      }t        j                  |dg«      d   dk(  sJ ‚y)z'Test eq2 for figure 1 Peng et al (2008))r%   r’   r“   r”   r•   )r   r   r   rm   N)r   r   rŠ   r   s     r   Útest_peng_square_clusteringz0TestSquareClustering.test_peng_square_clusteringÇ  s3   € ä�H‰HÒEÓFˆÜ×#Ñ# A¨ sÓ+¨AÑ.°%Ò7Ð7Ñ7r   c                 óÔ   — t        j                  d«      }t        j                  |«      ddddddœk(  sJ ‚|j                  g d¢«       t        j                  |«      ddddddœk(  sJ ‚y )	Nr   r   g        ©r   r   r   r   r   ))r   r   )r   r   )r   r   r   r|   rœ   )r   r    rŠ   Úadd_edges_fromr   s     r   Ú!test_self_loops_square_clusteringz6TestSquareClustering.test_self_loops_square_clusteringÌ  sg   € Ü�M‰M˜!ÓˆÜ×#Ñ# AÓ&¨a°C¸CÀCÈAÑ*NÒNÐNÐNØ	×ÑÒ1Ô2Ü×#Ñ# AÓ&¨a°C¸CÀCÈAÑ*NÒNÐNÑNr   N)r.   r/   r0   r8   r!   r'   r-   r�   r    r¢   r¦   r1   r   r   rˆ   rˆ   n  s.   „ ò-ò

ò6Gò"IòXò9ò>8ó
Or   rˆ   c                   ó.   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zy)ÚTestAverageClusteringc                 ó.   — t        j                  d«       y rM   ru   rS   s    r   rU   z!TestAverageClustering.setup_classÔ  rv   r   c                 ó²   — t        j                  «       }t        j                  t        «      5  t        j
                  |«       d d d «       y # 1 sw Y   y xY wr   )r   r   rP   ÚraisesÚZeroDivisionErrorrE   r   s     r   r   z TestAverageClustering.test_emptyØ  s=   € Ü�H‰H‹JˆÜ�]‰]Ô,Ó-ñ 	%Ü×!Ñ! !Ô$÷	%÷ 	%ñ 	%úó   ®AÁAc                 ó¬  — t        j                  d«      }|j                  dd«       t        j                  |«      dk(  sJ ‚t        j                  |d¬«      dk(  sJ ‚t        j                  |d¬«      dk(  sJ ‚t        j                  |g d¢«      d	k(  sJ ‚t        j                  |g d¢d¬«      d	k(  sJ ‚t        j                  |g d¢d¬«      d
k(  sJ ‚y )Nr   r   g«ªªªªªâ?T©Úcount_zerosFg9Žã8Žãè?©r   r   r   gÇqÇqÜ?gUUUUUUå?©r   rH   r,   rE   r   s     r   Útest_average_clusteringz-TestAverageClustering.test_average_clusteringÝ  sÅ   € Ü�N‰N˜1ÓˆØ	�
‰
�1�aÔÜ×$Ñ$ QÓ'Ð+>Ò>Ð>Ð>Ü×$Ñ$ Q°DÔ9Ð=PÒPÐPÐPÜ×$Ñ$ Q°EÔ:Ð>QÒQÐQÐQÜ×$Ñ$ Qª	Ó2°oÒEÐEÐEÜ×$Ñ$ Qª	¸tÔDÈÒWÐWÐWÜ×$Ñ$ Qª	¸uÔEÈÒXÐXÑXr   c                 ó&  — t        j                  d«      }|j                  dd«       |j                  ddd¬«       t        j                  |d¬«      dk(  sJ ‚t        j                  |dd	¬
«      dk(  sJ ‚t        j                  |dd¬
«      dk(  sJ ‚y )Nr   r   r   r   ro   rZ   rY   g«ªªªªªâ¿T)rY   r°   Fg9Žã8Žãè¿r²   r   s     r   Útest_average_clustering_signedz4TestAverageClustering.test_average_clustering_signedç  s–   € Ü�N‰N˜1ÓˆØ	�
‰
�1�aÔØ	�
‰
�1�a ˆ
Ô#Ü×$Ñ$ Q¨xÔ8Ð<PÒPÐPÐPä×!Ñ! !¨HÀ$ÔGØ#ò$ð	
ð$ô ×!Ñ! !¨HÀ%ÔHØ#ò$ð	
ñ$r   N)r.   r/   r0   r`   rU   r   r³   rµ   r1   r   r   r¨   r¨   Ó  s$   „ Øñ%ó ð%ò%ò
Yó
r   r¨   c                   ó(   — e Zd Zed„ «       Zd„ Zd„ Zy)ÚTestDirectedAverageClusteringc                 ó.   — t        j                  d«       y rM   ru   rS   s    r   rU   z)TestDirectedAverageClustering.setup_class÷  rv   r   c                 ó²   — t        j                  «       }t        j                  t        «      5  t        j
                  |«       d d d «       y # 1 sw Y   y xY wr   )r   r6   rP   r«   r¬   rE   r   s     r   r   z(TestDirectedAverageClustering.test_emptyû  s=   € Ü�J‰J‹LˆÜ�]‰]Ô,Ó-ñ 	%Ü×!Ñ! !Ô$÷	%÷ 	%ñ 	%úr­   c                 óÔ  — t        j                  dt        j                  «       ¬«      }|j                  dd«       t        j                  |«      dk(  sJ ‚t        j                  |d¬«      dk(  sJ ‚t        j                  |d¬«      dk(  sJ ‚t        j                  |g d	¢«      d
k(  sJ ‚t        j                  |g d	¢d¬«      d
k(  sJ ‚t        j                  |g d	¢d¬«      dk(  sJ ‚y )Nr   r:   r   g«ªªªªªÒ?Tr¯   Fg9Žã8ŽãØ?r±   gÇqÇqÌ?rm   )r   rH   r6   r,   rE   r   s     r   r³   z5TestDirectedAverageClustering.test_average_clustering   sÍ   € Ü�N‰N˜1¬2¯:©:«<Ô8ˆØ	�
‰
�1�aÔÜ×$Ñ$ QÓ'Ð+>Ò>Ð>Ð>Ü×$Ñ$ Q°DÔ9Ð=PÒPÐPÐPÜ×$Ñ$ Q°EÔ:Ð>QÒQÐQÐQÜ×$Ñ$ Qª	Ó2°oÒEÐEÐEÜ×$Ñ$ Qª	¸tÔDÈÒWÐWÐWÜ×$Ñ$ Qª	¸uÔEÈÒXÐXÑXr   N)r.   r/   r0   r`   rU   r   r³   r1   r   r   r·   r·   ö  s   „ Øñ%ó ð%ò%ó
Yr   r·   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestGeneralizedDegreec                 ó`   — t        j                  «       }t        j                  |«      i k(  sJ ‚y r   )r   r   Úgeneralized_degreer   s     r   Útest_generalized_degreez-TestGeneralizedDegree.test_generalized_degree  s&   € Ü�H‰H‹JˆÜ×$Ñ$ QÓ'¨2Ò-Ð-Ñ-r   c                 ó¢   — t        j                  d«      }t        j                  |d«      ddik(  sJ ‚t        j                  |d«      ddik(  sJ ‚y )Nr   r   r   r   )r   r    r¾   r   s     r   r!   zTestGeneralizedDegree.test_path  sN   € Ü�M‰M˜!ÓˆÜ×$Ñ$ Q¨Ó*¨q°!¨fÒ4Ð4Ð4Ü×$Ñ$ Q¨Ó*¨q°!¨fÒ4Ð4Ñ4r   c                 óf   — t        j                  «       }t        j                  |d«      ddik(  sJ ‚y )Nr   r   )r   r&   r¾   r   s     r   r'   z"TestGeneralizedDegree.test_cubical  s/   € Ü×ÑÓˆÜ×$Ñ$ Q¨Ó*¨q°!¨fÒ4Ð4Ñ4r   c                 ój  — t        j                  d«      }t        j                  |d«      ddik(  sJ ‚|j                  dd«       t        j                  |d«      ddik(  sJ ‚t        j                  |ddg«      ddidddœdœk(  sJ ‚t        j                  |«      ddiddidddœdddœdddœd	œk(  sJ ‚y )
Nr   r   r   r   r   r   )r   r   r%   r¤   )r   r)   r¾   r+   r   s     r   r-   zTestGeneralizedDegree.test_k5  sÏ   € Ü×Ñ˜aÓ ˆÜ×$Ñ$ Q¨Ó*¨q°!¨fÒ4Ð4Ð4Ø	�‰�a˜ÔÜ×$Ñ$ Q¨Ó*¨q°!¨fÒ4Ð4Ð4Ü×$Ñ$ Q¨¨A¨Ó/¸¸1°vÀaÈAÁ,Ñ3OÒOÐOÐOÜ×$Ñ$ QÓ'Ø�1ˆvØ�1ˆvØ˜‰|Ø˜‰|Ø˜‰|ñ,
ò 
ð 	
ñ 
r   N)r.   r/   r0   r¿   r!   r'   r-   r1   r   r   r¼   r¼     s   „ ò.ò5ò
5ó
r   r¼   )rP   Únetworkxr   r   r3   rK   rb   rs   r   rˆ   r¨   r·   r¼   r1   r   r   ú<module>rÄ      s„   ðÛ ã ÷''ñ ''÷T=,ñ =,÷@FQñ FQ÷RT>ñ T>÷nG
ñ G
÷T+ñ +÷(bOñ bO÷J 
ñ  
÷FYñ Y÷*
ò 
r   