Ë
    ©Ó^jxK  ã                   óˆ  — d dl Z d dlZd„ Zd„ Zd„ Z G d„ d«      Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Ze j                  j                  dej                   ej"                  g«      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                  óx   — t        j                  g d¢«      } dddddddœ}t        j                  | «      |k(  sJ ‚y )N)©é   é   ©r   é   ©r   é   ©r   r
   ©r   é   )r
   é   )r   r   ç      à?çUUUUUUÕ?©r   r   r   r
   r   r   ©ÚnxÚGraphÚsquare_clustering©ÚGÚexpecteds     úq/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cluster.pyÚ'test_square_clustering_adjacent_squaresr      s<   € Ü
�‰ÒIÓJ€Aà˜3 5¨U°s¸sÑC€HÜ×Ñ Ó" hÒ.Ð.Ñ.ó    c            
      ó|   — t        j                  dd«      } ddddddddddœ	}t        j                  | «      |k(  sJ ‚y )Nr   r   g      Ð?çš™™™™™É?)	©r   r   ©r   r   ©r   r   )r   r   ©r   r   r   ©r   r   )r   r   ©r   r   )r   Úgrid_2d_graphr   r   s     r   Útest_square_clustering_2d_gridr%      sS   € Ü
×Ñ˜˜AÓ€Að ØØØØØØØØñ
€Hô ×Ñ Ó" hÒ.Ð.Ñ.r   c                  ó�   — t        j                  g d¢«      } | D �ci c]  }|d“Œ }}t        j                  | «      |k(  sJ ‚yc c}w )zgAn example where all nodes are part of all squares, but not every node
    is connected to every other.)r   r    r   ©r   r   ©r   r
   r	   )r   r   ©r   r   r   Nr   )r   Únr   s      r   Ú4test_square_clustering_multiple_squares_non_completer+      sH   € ô 	�‰ÒQÓR€AØÖ ˜��1‘Ð €HÐ Ü×Ñ Ó" hÒ.Ð.Ñ.ùò !s   œ
Ac                   ó$   — 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)r   r   ÚlistÚ	trianglesÚvalues©Úselfr   s     r   Ú
test_emptyzTestTriangles.test_empty'   s1   € Ü�H‰H‹JˆÜ”B—L‘L “O×*Ñ*Ó,Ó-°Ò3Ð3Ñ3r   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   r   r   r
   r   r   é   é   é	   )r   Ú
path_graphr0   r1   r2   r3   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   Úcubical_graphr0   r1   r2   r3   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   r8   r   r   r   )r   r   r   r   r   )r   Úcomplete_graphr0   r1   r2   ÚsumÚremove_edgeÚadd_edger3   s     r   Útest_k5zTestTriangles.test_k5C   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__r5   r?   rD   rJ   © r   r   r-   r-   &   s   „ ò4ò
ò 7ó
'r   r-   c                  óÚ   — t        j                  «       } | j                  g d¢«       t        h d£«      h}t        j                  | «      D �ch c]  }t        |«      ’Œ c}|k(  sJ ‚y c c}w )N))ÚaÚb)rQ   Úc)rR   rP   >   rP   rQ   rR   ©r   r   Úadd_edges_fromÚ	frozensetÚall_triangles©r   r   Úts      r   Ú$test_all_triangles_non_integer_nodesrY   P   sZ   € Ü
�‰‹
€AØ×Ñò	
ôô š/Ó*Ð+€HÜ"$×"2Ñ"2°1Ó"5Ö6˜QŒI�a�LÒ6¸(ÒBÐBÑBùÒ6s   ÁA(c                  óò   — t        j                  «       } | j                  g d¢«       t        h d£«      t        h d£«      h}t        j                  | «      D �ch c]  }t        |«      ’Œ c}|k(  sJ ‚y c c}w )N)r   r   r"   r    r'   )r   r   ¾   r   r   r   ¾   r   r   r   rS   rW   s      r   Útest_all_triangles_overlappingr]   ]   sa   € Ü
�‰‹
€AØ×Ñò	
ô	ô š)Ó$¤i²	Ó&:Ð;€HÜ"$×"2Ñ"2°1Ó"5Ö6˜QŒI�a�LÒ6¸(ÒBÐBÑBùÒ6s   ÁA4c                  óÞ   — t        j                  «       } | j                  g d¢«       t        j                  | ddg¬«      D �ch c]  }t	        |«      ’Œ c}t	        h d£«      hk(  sJ ‚y c c}w )N)r   r   r"   r'   r   ©r
   r   r   r   ©Únbunchr[   )r   r   rT   rV   rU   )r   rX   s     r   Útest_all_triangles_subsetrb   m   se   € Ü
�‰‹
€AØ×Ñò	
ô	ô #%×"2Ñ"2°1¸aÀ¸VÔ"DÖE˜QŒI�a�LÒEÜ’)ÓðJò ð ñ ùÒEs   ÁA*c                  óž   — t        j                  «       } | j                  g d¢«       t        t        j                  | dg¬«      «      g k(  sJ ‚y )N)r   r   r"   r'   r   r_   )r   r   r   r`   )r   r   rT   r0   rV   ©r   s    r   Útest_all_triangles_subset_emptyre   ~   sD   € Ü
�‰‹
€AØ×Ñò	
ô
ô ”× Ñ  ¨A¨3Ô/Ó0°BÒ6Ð6Ñ6r   c                  ót   — t        j                  d«      } t        t        j                  | «      «      g k(  sJ ‚y )Nr
   )r   r>   r0   rV   rd   s    r   Útest_all_triangles_no_trianglesrg   Ž   s.   € Ü
�‰�aÓ€AÜ”× Ñ  Ó#Ó$¨Ò*Ð*Ñ*r   c                  óþ   — t        j                  d«      } t        h d£«      t        h d£«      t        h d£«      t        h d£«      h}t        j                  | «      D �ch c]  }t        |«      ’Œ c}|k(  sJ ‚y c c}w )Nr
   r[   >   r   r   r   r\   >   r   r   r   )r   rF   rU   rV   rW   s      r   Ú'test_all_triangles_complete_graph_exactri   “   sh   € Ü
×Ñ˜!Ó€Aô 	’)ÓÜ’)ÓÜ’)ÓÜ’)Óð	€Hô #%×"2Ñ"2°1Ó"5Ö6˜QŒI�a�LÒ6¸(ÒBÐBÑBùÒ6s   ÁA:c                  óþ   — t        j                  «       } | j                  g d¢«       t        j                  t         j
                  «      5  t        t        j                  | «      «       d d d «       y # 1 sw Y   y xY w)N)r   r   r"   )r   ÚDiGraphrT   ÚpytestÚraisesÚNetworkXNotImplementedr0   rV   rd   s    r   Ú!test_all_triangles_directed_graphro       sV   € Ü
�
‰
‹€AØ×ÑÒ-Ô.Ü	�‰”r×0Ñ0Ó	1ñ "ÜŒR×Ñ˜aÓ Ô!÷"÷ "ñ "ús   ÁA3Á3A<Ú
graph_typec                 ó¼   —  | «       }|j                  g d¢«       t        j                  |«      D �ch c]  }t        |«      ’Œ c}t        h d£«      hk(  sJ ‚y c c}w )N)r   r    r   r   r[   )rT   r   rV   rU   )rp   r   rX   s      r   Útest_all_triangles_multiedgesrr   §   sK   € á‹€AØ×ÑÒ5Ô6Ü"$×"2Ñ"2°1Ó"5Ö6˜QŒI�a�LÒ6¼9ÂYÓ;OÐ:PÒPÐPÑPùÒ6s   ²A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   rk   r0   Ú
clusteringr2   r3   s     r   Útest_clusteringz&TestDirectedClustering.test_clustering¯   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 )Nr8   ©Úcreate_usingr9   r   r:   ©r   r>   rk   r0   rw   r2   r3   s     r   r?   z TestDirectedClustering.test_path´   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   rz   ©r   r   r   r   r   r   r   ©çUUUUUUí?r   r   r€   r€   r
   r€   r(   ©ç«ªªªªªê?r   r   r‚   r‚   r‚   ©r   rF   rk   r0   rw   r2   Úaverage_clusteringrH   r3   s     r   rJ   zTestDirectedClustering.test_k5Ð   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   rz   r   r
   çUUUUUUÅ?)r   Úcycle_graphrk   rI   rw   r3   s     r   Útest_triangle_and_edgez-TestDirectedClustering.test_triangle_and_edgeè   sB   € Ü�N‰N˜1¬2¯:©:«<Ô8ˆØ	�
‰
�1�aÔÜ�}‰}˜QÓ Ñ" eÒ+Ð+Ñ+r   N)rK   rL   rM   rx   r?   rJ   rˆ   rN   r   r   rt   rt   ®   s   „ ò&ò
(ò8,ó0,r   rt   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©rl   ÚimportorskipÚnp©Úclss    r   Úsetup_classz*TestDirectedWeightedClustering.setup_classï   ó   € ô × Ñ  Ó)‰r   c                 óÆ   — t        j                  «       }t        t        j                  |d¬«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y ©NÚweight©r—   rv   r3   s     r   rx   z.TestDirectedWeightedClustering.test_clusteringô   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 )Nr8   rz   r—   r˜   r9   r   r:   r|   r3   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   rz   r—   r˜   r~   r   r   r   r
   r€   r(   r�   r‚   rƒ   r3   s     r   rJ   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   rz   r   r
   r   r˜   r†   r—   gUUUUUUµ?)r   r‡   rk   rI   rw   r�   ÚtestingÚassert_allcloser3   s     r   rˆ   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)	rK   rL   rM   Úclassmethodr“   rx   r?   rJ   rˆ   rN   r   r   rŠ   rŠ   î   s)   „ Øñ*ó ð*ò&ò

ò6
ó4Qr   rŠ   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 rŒ   rŽ   r‘   s    r   r“   z"TestWeightedClustering.setup_class8  r”   r   c                 óÆ   — t        j                  «       }t        t        j                  |d¬«      j	                  «       «      g k(  sJ ‚t        j                  |«      i k(  sJ ‚y r–   ©r   r   r0   rw   r2   r3   s     r   rx   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 )Nr8   r—   r˜   r9   r   r:   ©r   r>   r0   rw   r2   r3   s     r   r?   z TestWeightedClustering.test_pathB  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 )Nr—   r˜   rB   r   r   r   r   ©r   rC   r0   rw   r2   r3   s     r   rD   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   r—   r˜   r~   r   r   r�   r
   r‚   r(   ©r   rF   r0   rw   r2   r„   rH   r3   s     r   rJ   zTestWeightedClustering.test_k5n  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   r˜   r   r—   r†   )r   r‡   rI   rw   r�   rœ   r�   r3   s     r   rˆ   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   éÿÿÿÿr˜   r   r—   çUUUUUUÕ¿)r   r‡   rI   rw   r3   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)rK   rL   rM   rž   r“   rx   r?   rD   rJ   rˆ   r®   rN   r   r   r    r    7  s4   „ Øñ*ó ð*ò&ò

ò6Iò"
ò"Pó>r   r    c                   ó:   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)ÚTestClusteringc                 ó.   — t        j                  d«       y rŒ   ©rl   r�   r‘   s    r   r“   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/   r£   r3   s     r   rx   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 r7   r¥   r3   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 rA   r§   r3   s     r   rD   zTestClustering.test_cubical³  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   r�   r
   r‚   r(   r©   r3   s     r   rJ   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   r¬   r˜   r—   )r†   r­   r   r   r   )r   rF   r0   rw   r2   r„   rH   rI   r3   s     r   Útest_k5_signedzTestClustering.test_k5_signedÉ  s¡   € Ü×Ñ˜aÓ ˆÜ”B—M‘M !Ó$×+Ñ+Ó-Ó.²/ÒAÐAÐAÜ×$Ñ$ QÓ'¨1Ò,Ð,Ð,Ø	�‰�a˜ÔØ	�
‰
�1�a ˆ
Ô#Ü”B—M‘M !¨HÔ5×<Ñ<Ó>Ó?ò D
ò 
ð 	
ñ 
r   N)
rK   rL   rM   rž   r“   rx   r?   rD   rJ   r¹   rN   r   r   r°   r°   Ž  s.   „ Øñ%ó ð%ò&ò

ò68òJó
r   r°   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   Útransitivityr3   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 )Nr8   r   )r   r>   r¾   r3   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   rC   r¾   r3   s     r   rD   zTestTransitivity.test_cubicalá  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   rF   r¾   rH   r3   s     r   rJ   zTestTransitivity.test_k5å  sN   € Ü×Ñ˜aÓ ˆÜ�‰˜qÓ! QÒ&Ð&Ð&Ø	�‰�a˜ÔÜ�‰˜qÓ! UÒ*Ð*Ñ*r   N)rK   rL   rM   r¿   r?   rD   rJ   rN   r   r   r»   r»   Ø  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   r0   r   r2   r3   s     r   rx   z$TestSquareClustering.test_clusteringí  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 r7   )r   r>   r0   r   r2   r3   s     r   r?   zTestSquareClustering.test_pathò  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)r   r   r   r   r   r   r   r   r   r   r   r   )r   rC   r0   r   r2   r3   s     r   rD   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   rF   r0   r   r2   r3   s     r   rJ   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_graphr0   r   r2   r3   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;   r8   )r   é   )r   é   )r   é   )r   é   )r   é   )r   é   )	r   r   r   r
   r   rÏ   rÐ   rÑ   rÒ   )r   r   r;   r<   r=   r8   rÍ   rÎ   r   gwÄqGÜ±?r   r   N)r   r   Úsubgraphr   )r4   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                 óx   — t        j                  g d¢«      }dddddddœ}t        j                  |«      |k(  sJ ‚y)z'Test eq2 for figure 1 Peng et al (2008))r   r   r	   r   r   )r   r   r   r   r   r   r   Nr   )r4   r   r   s      r   Útest_peng_square_clusteringz0TestSquareClustering.test_peng_square_clusteringE  s>   € ô �H‰HÒEÓFˆà  s¨u¸¸qÑAˆÜ×#Ñ# AÓ&¨(Ò2Ð2Ñ2r   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   ©r   r   r   r   r
   )r   r!   r#   )r   r>   r   rT   r3   s     r   Ú!test_self_loops_square_clusteringz6TestSquareClustering.test_self_loops_square_clusteringM  sg   € Ü�M‰M˜!ÓˆÜ×#Ñ# AÓ&¨a°A¸!ÀÀaÑ*HÒHÐHÐHØ	×ÑÒ1Ô2Ü×#Ñ# AÓ&¨a°A¸!ÀÀaÑ*HÒHÐHÑHr   N)rK   rL   rM   rx   r?   rD   rJ   rË   rÖ   rØ   rÛ   rN   r   r   rÄ   rÄ   ì  s.   „ ò-ò

ò6Gò"IòXò9ò>3óIr   rÄ   c                   ó.   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zy)ÚTestAverageClusteringc                 ó.   — t        j                  d«       y rŒ   r²   r‘   s    r   r“   z!TestAverageClustering.setup_classU  r³   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   rl   rm   ÚZeroDivisionErrorr„   r3   s     r   r5   z TestAverageClustering.test_emptyY  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   r‡   rI   r„   r3   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   r¬   r˜   r—   g«ªªªªªâ¿T)r—   rä   Fg9Žã8Žãè¿ræ   r3   s     r   Útest_average_clustering_signedz4TestAverageClustering.test_average_clustering_signedh  s–   € Ü�N‰N˜1ÓˆØ	�
‰
�1�aÔØ	�
‰
�1�a ˆ
Ô#Ü×$Ñ$ Q¨xÔ8Ð<PÒPÐPÐPä×!Ñ! !¨HÀ$ÔGØ#ò$ð	
ð$ô ×!Ñ! !¨HÀ%ÔHØ#ò$ð	
ñ$r   N)rK   rL   rM   rž   r“   r5   rç   ré   rN   r   r   rÝ   rÝ   T  s$   „ Øñ%ó ð%ò%ò
Yó
r   rÝ   c                   ó(   — e Zd Zed„ «       Zd„ Zd„ Zy)ÚTestDirectedAverageClusteringc                 ó.   — t        j                  d«       y rŒ   r²   r‘   s    r   r“   z)TestDirectedAverageClustering.setup_classx  r³   r   c                 ó²   — t        j                  «       }t        j                  t        «      5  t        j
                  |«       d d d «       y # 1 sw Y   y xY wr/   )r   rk   rl   rm   rà   r„   r3   s     r   r5   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   rz   r   g«ªªªªªÒ?Trã   Fg9Žã8ŽãØ?rå   gÇqÇqÌ?r   )r   r‡   rk   rI   r„   r3   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)rK   rL   rM   rž   r“   r5   rç   rN   r   r   rë   rë   w  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_degreer3   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ò   r3   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   rC   rò   r3   s     r   rD   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   rF   rò   rH   r3   s     r   rJ   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)rK   rL   rM   ró   r?   rD   rJ   rN   r   r   rð   rð   Œ  s   „ ò.ò5ò
5ó
r   rð   )rl   Únetworkxr   r   r%   r+   r-   rY   r]   rb   re   rg   ri   ro   ÚmarkÚparametrizer   Ú
MultiGraphrr   rt   rŠ   r    r°   r»   rÄ   rÝ   rë   rð   rN   r   r   ú<module>rû      sî   ðÛ ã ò/ò/ò"/÷''ñ ''òT
CòCò ò"7ò +ò

Cò"ð ‡�×Ñ˜¨¯©°"·-±-Ð'@ÓAñQó BðQ÷=,ñ =,÷@FQñ FQ÷RT>ñ T>÷nG
ñ G
÷T+ñ +÷(eIñ eI÷P 
ñ  
÷FYñ Y÷*
ò 
r   