
    PixK                        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                            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dS )"    Nc                  x    t          j        g d          } ddddddd}t          j        |           |k    sJ d S )N)      r      r      r   r
   r      )r
      )r   r         ?UUUUUU?r   r   r   r
   r   r   nxGraphsquare_clusteringGexpecteds     z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/networkx/algorithms/tests/test_cluster.py'test_square_clustering_adjacent_squaresr      sO    
IIIJJA35UssCCH""h......    c            
      |    t          j        dd          } dddddddddd	}t          j        |           |k    sJ d S )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%      sa    
AA 
 
H ""h......r   c                  ~    t          j        g d          } d | D             }t          j        |           |k    sJ dS )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   c                     i | ]}|d S )r    ).0ns     r   
<dictcomp>zHtest_square_clustering_multiple_squares_non_complete.<locals>.<dictcomp>"   s       1   r   Nr   r   s     r   4test_square_clustering_multiple_squares_non_completer/      sO     	QQQRRA  a   H""h......r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestTrianglesc                     t          j                    }t          t          j        |                                                    g k    sJ d S N)r   r   list	trianglesvaluesselfr   s     r   
test_emptyzTestTriangles.test_empty'   s@    HJJBLOO**,,--333333r   c                     t          j        d          }t          t          j        |                                                    g dk    sJ t          j        |          ddddddddddd
k    sJ d S N
   
r   r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r
   r   r         	   )r   
path_graphr4   r5   r6   r7   s     r   	test_pathzTestTriangles.test_path+   s    M"BLOO**,,--1O1O1OOOOO|A#
 #
 
 
 
 
 
 
r   c                    t          j                    }t          t          j        |                                                    g dk    sJ t          j        |d          dk    sJ t          t          j        |ddg                                                    ddgk    sJ t          j        |d          dk    sJ t          j        |ddg          dddk    sJ d S Nr   r   r   r   r   r   r   r   r   r   r   r   )r   cubical_graphr4   r5   r6   r7   s     r   test_cubicalzTestTriangles.test_cubical;   s    BLOO**,,--1I1I1IIIII|Aq!!Q&&&&BLQF++224455!Q????|Aq!!Q&&&&|A1v&&aA,,666666r   c                    t          j        d          }t          t          j        |                                                    g dk    sJ t          t          j        |                                                    dz  dk    sJ t          j        |d          dk    sJ |                    dd           t          t          j        |                                                    g dk    sJ t          j        |d          dk    sJ |                    dd           t          t          j        |                                                    g dk    sJ t          j        |d          dk    sJ d S )	Nr   )r   r   r   r   r   r   r<   r   r   r   )r   r   r   r   r   )r   complete_graphr4   r5   r6   sumremove_edgeadd_edger7   s     r   test_k5zTestTriangles.test_k5C   s\   a  BLOO**,,--@@@@2<??))++,,q0B6666|Aq!!Q&&&&	aBLOO**,,--@@@@|Aq!!Q&&&&	

1aBLOO**,,--@@@@|Aq!!Q&&&&&&r   N)__name__
__module____qualname__r9   rC   rH   rN   r+   r   r   r1   r1   &   sP        4 4 4
 
 
 7 7 7
' 
' 
' 
' 
'r   r1   c                      t          j                    } |                     g d           t          h d          h}d t          j        |           D             |k    sJ d S )N))ab)rT   c)rU   rS   >   rS   rT   rU   c                 ,    h | ]}t          |          S r+   	frozensetr,   ts     r   	<setcomp>z7test_all_triangles_non_integer_nodes.<locals>.<setcomp>Z       666QIaLL666r   r   r   add_edges_fromrX   all_trianglesr   s     r   $test_all_triangles_non_integer_nodesr`   P   sz    


A	
 	
 	
   ///**+H66""21"5"5666(BBBBBBr   c                      t          j                    } |                     g d           t          h d          t          h d          h}d t          j        |           D             |k    sJ d S )N)r   r   r"   r    r'   )r   r      r   r   r      r   r   r   c                 ,    h | ]}t          |          S r+   rW   rY   s     r   r[   z1test_all_triangles_overlapping.<locals>.<setcomp>j   r\   r   r]   r   s     r   test_all_triangles_overlappingre   ]   s    


A	
 	
 	
	 	 	 )))$$i			&:&:;H66""21"5"5666(BBBBBBr   c                      t          j                    } |                     g d           d t          j        | ddg          D             t	          h d          hk    sJ d S )N)r   r   r"   r'   r   r
   r   c                 ,    h | ]}t          |          S r+   rW   rY   s     r   r[   z,test_all_triangles_subset.<locals>.<setcomp>y   s    EEEQIaLLEEEr   r   r   nbunchrb   )r   r   r^   r_   rX   r   s    r   test_all_triangles_subsetrl   m   s    


A	
 	
 	
	 	 	 FE""21aV"D"D"DEEE)))J      r   c                      t          j                    } |                     g d           t          t          j        | dg                    g k    sJ d S )N)r   r   r"   r'   r   rg   )r   r   r   ri   )r   r   r^   r4   r_   rk   s    r   test_all_triangles_subset_emptyrn   ~   sg    


A	
 	
 	

 
 
  A3///00B666666r   c                  |    t          j        d          } t          t          j        |                     g k    sJ d S )Nr
   )r   rB   r4   r_   rk   s    r   test_all_triangles_no_trianglesrp      s;    
aA ##$$******r   c                      t          j        d          } t          h d          t          h d          t          h d          t          h d          h}d t          j        |           D             |k    sJ d S )Nr
   rb   >   r   r   r   rc   >   r   r   r   c                 ,    h | ]}t          |          S r+   rW   rY   s     r   r[   z:test_all_triangles_complete_graph_exact.<locals>.<setcomp>   r\   r   )r   rJ   rX   r_   r   s     r   'test_all_triangles_complete_graph_exactrs      s    
!A 	))))))))))))	H 76""21"5"5666(BBBBBBr   c                  
   t          j                    } |                     g d           t          j        t           j                  5  t          t          j        |                      d d d            d S # 1 swxY w Y   d S )N)r   r   r"   )r   DiGraphr^   pytestraisesNetworkXNotImplementedr4   r_   rk   s    r   !test_all_triangles_directed_graphry      s    

A---...	r0	1	1 " "Ra  !!!" " " " " " " " " " " " " " " " " "s   	"A88A<?A<
graph_typec                      |             }|                     g d           d t          j        |          D             t          h d          hk    sJ d S )N)r   r    r   r   c                 ,    h | ]}t          |          S r+   rW   rY   s     r   r[   z0test_all_triangles_multiedges.<locals>.<setcomp>   r\   r   rb   )r^   r   r_   rX   )rz   r   s     r   test_all_triangles_multiedgesr}      sg    
A55566666""21"5"56669YYY;O;O:PPPPPPPr   c                   &    e Zd Zd Zd Zd Zd ZdS )TestDirectedClusteringc                     t          j                    }t          t          j        |                                                    g k    sJ t          j        |          i k    sJ d S r3   r   ru   r4   
clusteringr6   r7   s     r   test_clusteringz&TestDirectedClustering.test_clustering   s]    JLLBM!$$++--.."4444}Q2%%%%%%r   c                 J   t          j        dt          j                              }t          t          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 d S )Nr<   create_usingr=   r   r>   r   rB   ru   r4   r   r6   r7   s     r   rC   z TestDirectedClustering.test_path   s    M"2:<<888BM!$$++--.. 3
 3
 3
 
 
 
 
 }Q$
 $
 
 
 
 
 }Q""a''''''r   c                    t          j        dt          j                              }t          t          j        |                                                    g dk    sJ t          j        |          dk    sJ |                    dd           t          t          j        |                                                    g dk    sJ t          j        |ddg          ddd	k    sJ |                    dd           t          t          j        |                                                    g d
k    sJ t          j        |ddg          ddd	k    sJ t          j        |d          dk    sJ d S )Nr   r   r   r   r   r   r   r   r   UUUUUU?r   r   r   r   r
   r   r(   竪?r   r   r   r   r   r   rJ   ru   r4   r   r6   average_clusteringrL   r7   s     r   rN   zTestDirectedClustering.test_k5   s   abjll;;;BM!$$++--..///AAAA$Q''1,,,,	aBM!$$++--.. 3
 3
 3
 
 
 
 
 }QA''qW+=+=====	aBM!$$++--.. 3
 3
 3
 
 
 
 
 }QA''q5H+I+IIIII}Q""e++++++r   c                     t          j        dt          j                              }|                    dd           t          j        |          d         dk    sJ d S )Nr   r   r   r
   UUUUUU?)r   cycle_graphru   rM   r   r7   s     r   test_triangle_and_edgez-TestDirectedClustering.test_triangle_and_edge   sV    N12:<<888	

1a}Q"e++++++r   N)rO   rP   rQ   r   rC   rN   r   r+   r   r   r   r      sP        & & &
( ( (8, , ,0, , , , ,r   r   c                   <    e Zd Zed             Zd Zd Zd Zd ZdS )TestDirectedWeightedClusteringc                 .    t          j        d          ad S Nnumpyrv   importorskipnpclss    r   setup_classz*TestDirectedWeightedClustering.setup_class         ))r   c                     t          j                    }t          t          j        |d                                                    g k    sJ t          j        |          i k    sJ d S Nweightr   r   r7   s     r   r   z.TestDirectedWeightedClustering.test_clustering   sb    JLLBM!H555<<>>??2EEEE}Q2%%%%%%r   c                    t          j        dt          j                              }t          t          j        |d                                                    g dk    sJ t          j        |d          ddddddddddd
k    sJ d S )Nr<   r   r   r   r=   r   r>   r   r7   s     r   rC   z(TestDirectedWeightedClustering.test_path   s    M"2:<<888BM!H555<<>>?? D
 D
 D
 
 
 
 
 }Qx0005
 5
 
 
 
 
 
 
r   c                    t          j        dt          j                              }t          t          j        |d                                                    g dk    sJ t          j        |d          dk    sJ |                    dd           t          t          j        |d                                                    g dk    sJ t          j        |dd	gd          dd
dk    sJ |                    dd           t          t          j        |d                                                    g dk    sJ t          j        |dd	gd          dddk    sJ d S )Nr   r   r   r   r   r   r   r   r
   r   r(   r   r   r   r7   s     r   rN   z&TestDirectedWeightedClustering.test_k5  s   abjll;;;BM!H555<<>>?????RRRR$Qx888A====	aBM!H555<<>>?? D
 D
 D
 
 
 
 
 }QAx888g<N<NNNNN	aBM!H555<<>>?? D
 D
 D
 
 
 
 
 }QAx888"=
 =
 
 
 
 
 
 
r   c                    t          j        dt          j                              }|                    ddd           t          j        |          d         dk    sJ t
          j                            t          j        |d          d         d	           t
          j                            t          j        |dd          d	           d S )
Nr   r   r   r
   r   r   r   r   gUUUUUU?)r   r   ru   rM   r   r   testingassert_allcloser7   s     r   r   z5TestDirectedWeightedClustering.test_triangle_and_edge.  s    N12:<<888	

1a
"""}Q"e++++

""2=8#D#D#DQ#GPPP

""2=Ah#G#G#GPPPPPr   N)	rO   rP   rQ   classmethodr   r   rC   rN   r   r+   r   r   r   r      sn        * * [*& & &

 
 
6
 
 
4Q Q Q Q Qr   r   c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	TestWeightedClusteringc                 .    t          j        d          ad S r   r   r   s    r   r   z"TestWeightedClustering.setup_class8  r   r   c                     t          j                    }t          t          j        |d                                                    g k    sJ t          j        |          i k    sJ d S r   r   r   r4   r   r6   r7   s     r   r   z&TestWeightedClustering.test_clustering=  sb    HJJBM!H555<<>>??2EEEE}Q2%%%%%%r   c                     t          j        d          }t          t          j        |d                                                    g dk    sJ t          j        |d          ddddddddddd
k    sJ d S )Nr<   r   r   r=   r   r>   r   rB   r4   r   r6   r7   s     r   rC   z TestWeightedClustering.test_pathB  s    M"BM!H555<<>>?? D
 D
 D
 
 
 
 
 }Qx0005
 5
 
 
 
 
 
 
r   c                    t          j                    }t          t          j        |d                                                    g dk    sJ t          j        |d          dk    sJ t          t          j        |ddgd                                                    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 d S )Nr   r   rF   r   r   r   r   r   rG   r4   r   r6   r7   s     r   rH   z#TestWeightedClustering.test_cubical]  s   BM!H555<<>>?? 	D
 	D
 	D
 	
 	
 	
 	
 }Q""a''''BM!aVH===DDFFGGAq6QQQQ}Q(333q8888}QAx888aLLHHHHHHr   c                    t          j        d          }t          t          j        |d                                                    g dk    sJ t          j        |d          dk    sJ |                    dd           t          t          j        |d                                                    g dk    sJ t          j        |ddgd          dd	d
k    sJ d S )Nr   r   r   r   r   r   r   r
   r   r(   r   rJ   r4   r   r6   r   rL   r7   s     r   rN   zTestWeightedClustering.test_k5n  s   a  BM!H555<<>>?????RRRR$Qx888A====	aBM!H555<<>>?? D
 D
 D
 
 
 
 
 }QAx888"=
 =
 
 
 
 
 
 
r   c                 |   t          j        d          }|                    ddd           t          j        |          d         dk    sJ t          j                            t          j        |d          d         d           t          j                            t          j        |dd          d           d S )	Nr   r   r
   r   r   r   r   r   )r   r   rM   r   r   r   r   r7   s     r   r   z-TestWeightedClustering.test_triangle_and_edge  s    N1	

1a
"""}Q"e++++

""2=8#D#D#DQ#GOOO

""2=Ah#G#G#GOOOOOr   c                    t          j        d          }|                    ddd           |                    ddd           t          j        |          d         dk    sJ t          j        |d          d         dk    sJ d S )	Nr   r   r   r   r   r   UUUUUUտ)r   r   rM   r   r7   s     r   test_triangle_and_signed_edgez4TestWeightedClustering.test_triangle_and_signed_edge  s    N1	

1a
###	

1a
"""}Q"e++++}Qx0003v======r   N)rO   rP   rQ   r   r   r   rC   rH   rN   r   r   r+   r   r   r   r   7  s        * * [*& & &

 
 
6I I I"
 
 
"P P P> > > > >r   r   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestClusteringc                 .    t          j        d           d S r   rv   r   r   s    r   r   zTestClustering.setup_class      G$$$$$r   c                     t          j                    }t          t          j        |                                                    g k    sJ t          j        |          i k    sJ d S r3   r   r7   s     r   r   zTestClustering.test_clustering  s]    HJJBM!$$++--.."4444}Q2%%%%%%r   c                     t          j        d          }t          t          j        |                                                    g dk    sJ t          j        |          ddddddddddd
k    sJ d S r;   r   r7   s     r   rC   zTestClustering.test_path  s    M"BM!$$++--.. 3
 3
 3
 
 
 
 
 }Q$
 $
 
 
 
 
 
 
r   c                    t          j                    }t          t          j        |                                                    g dk    sJ t          j        |d          dk    sJ t          t          j        |ddg                                                    ddgk    sJ t          j        |d          dk    sJ t          j        |ddg          dddk    sJ d S rE   r   r7   s     r   rH   zTestClustering.test_cubical  s    BM!$$++--..2J2J2JJJJJ}Q""a''''BM!aV,,3355661a&@@@@}Q""a''''}QA''qQ<<777777r   c                    t          j        d          }t          t          j        |                                                    g dk    sJ t          j        |          dk    sJ |                    dd           t          t          j        |                                                    g dk    sJ t          j        |ddg          dddk    sJ d S )	Nr   r   r   r   r   r
   r   r(   r   r7   s     r   rN   zTestClustering.test_k5  s    a  BM!$$++--..///AAAA$Q''1,,,,	aBM!$$++--.. 3
 3
 3
 
 
 
 
 }QA''q5H+I+IIIIIIIr   c                    t          j        d          }t          t          j        |                                                    g dk    sJ t          j        |          dk    sJ |                    dd           |                    ddd           t          t          j        |d                                                    g d	k    sJ d S )
Nr   r   r   r   r   r   r   r   )r   r   r   r   r   )r   rJ   r4   r   r6   r   rL   rM   r7   s     r   test_k5_signedzTestClustering.test_k5_signed  s    a  BM!$$++--..///AAAA$Q''1,,,,	a	

1a
###BM!H555<<>>?? D
 D
 D
 
 
 
 
 
 
r   N)
rO   rP   rQ   r   r   r   rC   rH   rN   r   r+   r   r   r   r     s{        % % [%& & &

 
 
68 8 8J J J
 
 
 
 
r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestTransitivityc                 `    t          j                    }t          j        |          dk    sJ d S Nr   )r   r   transitivityr7   s     r   test_transitivityz"TestTransitivity.test_transitivity  s.    HJJq!!Q&&&&&&r   c                 b    t          j        d          }t          j        |          dk    sJ d S )Nr<   r   )r   rB   r   r7   s     r   rC   zTestTransitivity.test_path  s2    M"q!!Q&&&&&&r   c                 `    t          j                    }t          j        |          dk    sJ d S r   )r   rG   r   r7   s     r   rH   zTestTransitivity.test_cubical  s1    q!!Q&&&&&&r   c                     t          j        d          }t          j        |          dk    sJ |                    dd           t          j        |          dk    sJ d S )Nr   r   r   g      ?)r   rJ   r   rL   r7   s     r   rN   zTestTransitivity.test_k5  sb    a  q!!Q&&&&	aq!!U******r   N)rO   rP   rQ   r   rC   rH   rN   r+   r   r   r   r     sP        ' ' '' ' '' ' '+ + + + +r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestSquareClusteringc                     t          j                    }t          t          j        |                                                    g k    sJ t          j        |          i k    sJ d S r3   )r   r   r4   r   r6   r7   s     r   r   z$TestSquareClustering.test_clustering  s_    HJJB(++224455;;;;#A&&",,,,,,r   c                     t          j        d          }t          t          j        |                                                    g dk    sJ t          j        |          ddddddddddd
k    sJ d S r;   )r   rB   r4   r   r6   r7   s     r   rC   zTestSquareClustering.test_path  s    M"B(++224455 :
 :
 :
 
 
 
 
 #A&&+
 +
 
 
 
 
 
 
r   c                    t          j                    }t          t          j        |                                                    g dk    sJ t          t          j        |ddg                                                    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 d S )N)r   r   r   r   r   r   r   r   r   r   r   r   )r   rG   r4   r   r6   r7   s     r   rH   z!TestSquareClustering.test_cubical  s   B(++224455 	:
 	:
 	:
 	
 	
 	
 	
 B(QF33::<<==%OOOO#As++A.%7777#Aq))U2222#A1v..e2F2FFFFFFFr   c                     t          j        d          }t          t          j        |                                                    g dk    sJ d S )Nr   r   )r   rJ   r4   r   r6   r7   s     r   rN   zTestSquareClustering.test_k5  sL    a  B(++224455HHHHHHr   c                     t          j        dd          }t          t          j        |                                                    g dk    sJ d S )Nr   )
r   r   r   r   r   r   r   r   r   r   )r   complete_bipartite_graphr4   r   r6   r7   s     r   test_bipartite_k5z&TestSquareClustering.test_bipartite_k5"  sQ    '1--B(++2244559W9W9WWWWWWWr   c                 Z   t          j        g d          }|                    g d          }|                    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 dS )	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?   rA   )r?   r<   )r      )r      )r      )r      )r      )r      )	r   r   r   r
   r   r   r   r   r   )r   r   r?   r@   rA   r<   r   r   r   gwqGܱ?r   r   N)r   r   subgraphr   )r8   r   G1G2s       r   test_lind_square_clusteringz0TestSquareClustering.test_lind_square_clustering&  s    H  
 
. ZZ77788ZZ33344#As++A.&8888#B,,Q/58888#B,,Q/5888888r   c                 x    t          j        g d          }ddddddd}t          j        |          |k    sJ dS )z'Test eq2 for figure 1 Peng et al (2008))r   r   r	   r   r   )r   r   r   r   r   r   r   Nr   )r8   r   r   s      r   test_peng_square_clusteringz0TestSquareClustering.test_peng_square_clusteringE  sQ     HEEEFFsuqAA#A&&(222222r   c                     t          j        d          }t          j        |          ddddddk    sJ |                    g d           t          j        |          ddddddk    sJ d S )Nr   r   r   r   r   r   r
   )r   r!   r#   )r   rB   r   r^   r7   s     r   !test_self_loops_square_clusteringz6TestSquareClustering.test_self_loops_square_clusteringM  s    M!#A&&aA!a*H*HHHHH	111222#A&&aA!a*H*HHHHHHHr   N)rO   rP   rQ   r   rC   rH   rN   r   r   r   r   r+   r   r   r   r     s        - - -

 
 
6G G G"I I IX X X9 9 9>3 3 3I I I I Ir   r   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestAverageClusteringc                 .    t          j        d           d S r   r   r   s    r   r   z!TestAverageClustering.setup_classU  r   r   c                     t          j                    }t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S r3   )r   r   rv   rw   ZeroDivisionErrorr   r7   s     r   r9   z TestAverageClustering.test_emptyY  s    HJJ],-- 	% 	%!!$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%   AAAc                    t          j        d          }|                    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 d S )Nr   r   g?Tcount_zerosFg98?r   r   r   gqq?gUUUUUU?r   r   rM   r   r7   s     r   test_average_clusteringz-TestAverageClustering.test_average_clustering^  s    N1	

1a$Q''+>>>>>$QD999=PPPPP$QE:::>QQQQQ$Q			22oEEEE$Q			tDDDWWWW$Q			uEEEXXXXXXr   c                 6   t          j        d          }|                    dd           |                    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 d S )Nr   r   r   r   r   r   r   gT)r   r   Fg98r   r7   s     r   test_average_clustering_signedz4TestAverageClustering.test_average_clustering_signedh  s    N1	

1a	

1a
###$Qx888<PPPPP!!H$GGG#$ $ $ $ !!H%HHH#$ $ $ $ $ $r   N)rO   rP   rQ   r   r   r9   r   r   r+   r   r   r   r   T  s]        % % [%% % %
Y Y Y
 
 
 
 
r   r   c                   0    e Zd Zed             Zd Zd ZdS )TestDirectedAverageClusteringc                 .    t          j        d           d S r   r   r   s    r   r   z)TestDirectedAverageClustering.setup_classx  r   r   c                     t          j                    }t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S r3   )r   ru   rv   rw   r   r   r7   s     r   r9   z(TestDirectedAverageClustering.test_empty|  s    JLL],-- 	% 	%!!$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r   c                    t          j        dt          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 d S )Nr   r   r   g?Tr   Fg98?r   gqq?r   )r   r   ru   rM   r   r7   s     r   r   z5TestDirectedAverageClustering.test_average_clustering  s   N12:<<888	

1a$Q''+>>>>>$QD999=PPPPP$QE:::>QQQQQ$Q			22oEEEE$Q			tDDDWWWW$Q			uEEEXXXXXXr   N)rO   rP   rQ   r   r   r9   r   r+   r   r   r   r   w  sP        % % [%% % %
Y Y Y Y Yr   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestGeneralizedDegreec                 `    t          j                    }t          j        |          i k    sJ d S r3   )r   r   generalized_degreer7   s     r   test_generalized_degreez-TestGeneralizedDegree.test_generalized_degree  s/    HJJ$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 d S )Nr   r   r   r   )r   rB   r   r7   s     r   rC   zTestGeneralizedDegree.test_path  s[    M!$Q**q!f4444$Q**q!f444444r   c                 f    t          j                    }t          j        |d          ddik    sJ d S )Nr   r   )r   rG   r   r7   s     r   rH   z"TestGeneralizedDegree.test_cubical  s8    $Q**q!f444444r   c                 r   t          j        d          }t          j        |d          ddik    s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 d S )
Nr   r   r   r
   r   r   r'   r   r   )r   rJ   r   rL   r7   s     r   rN   zTestGeneralizedDegree.test_k5  s    a  $Q**q!f4444	a$Q**q!f4444$QA//1vaA,,3O3OOOOO$Q''1v1v||||||,
 ,
 
 
 
 
 
 
r   N)rO   rP   rQ   r   rC   rH   rN   r+   r   r   r   r     sP        . . .5 5 5
5 5 5
 
 
 
 
r   r   )rv   networkxr   r   r%   r/   r1   r`   re   rl   rn   rp   rs   ry   markparametrizer   
MultiGraphr}   r   r   r   r   r   r   r   r   r   r+   r   r   <module>r     s       / / // / /"/ / /'' '' '' '' '' '' '' ''T
C 
C 
CC C C   "7 7 7 + + +

C 
C 
C" " " "-'@AAQ Q BAQ=, =, =, =, =, =, =, =,@FQ FQ FQ FQ FQ FQ FQ FQRT> T> T> T> T> T> T> T>nG
 G
 G
 G
 G
 G
 G
 G
T+ + + + + + + +(eI eI eI eI eI eI eI eIP 
  
  
  
  
  
  
  
FY Y Y Y Y Y Y Y*
 
 
 
 
 
 
 
 
 
r   