
    h/,                         S SK r S SKrS rS rS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rg)    Nc                     [         R                  " / SQSSSS9n U R                  S   nU1 Sk1 Sk1 S	k/:X  d   e[        U 5      S
:X  d   e[        [	        U R                  5       5      5      S
:X  d   e[         R                  " / SQSS5      n U R                  S   nU1 Sk1 Sk1 S	k/:X  d   e[        U 5      S
:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " / SQSSSS9n U R                  S   nU1 Sk1 Sk1 S	k/:X  d   e[        U 5      S
:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " / SQSSSS9n U R                  S   nU1 Sk1 Sk1 S	k/:X  d   e[        U 5      S
:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " / SQSS5      n U R                  S   nUS1SS11 Sk1 Sk1 Sk/:X  d   e[        U 5      S:X  d   e[         R                  n[        R                  " [         R                  U/ SQSS5        [        R                  " [         R                  U/ SQSS5        [        R                  " [         R                  U/ SQSS5        [        R                  " [         R                  U/ SQSS5        g )N)   r   r      r   *   seed	partition>   r   r      >   r         >            	      Tdirected   6   )r   r
   r   r   r         ?皙?r
   >   r   r   r   r   >   
                  )r   r
   r   皙?皙)	nxrandom_partition_graphgraphlenlistedgespytestraisesNetworkXError)GCrpgs      Z/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_community.pytest_random_partition_graphr-      s]   
!!)Q;A	AIy1111q6Q;;tAGGI1$$$
!!)Q2A	AIy1111q6Q;;tAGGI2%%%
!!)QDAA	AIy1111q6Q;;tAGGI2%%%
!!)QDAA	AIy1111q6Q;;tAGGI2%%%
!!/3<A	A!q!fi7KLLLLq6R<<

#
#C
MM"""CC=
MM"""CD#>
MM"""CC=
MM"""CC>    c            	         [         R                  " SSSSSS9n U R                  S   n[        U5      S:X  d   e[        U 5      S:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " SSSS5      n U R                  S   n[        U5      S:X  d   e[        U 5      S:X  d   e[        [	        U R                  5       5      5      S	:X  d   e[         R                  " S
SSSSS9n U R                  S   n[        U5      S
:X  d   e[        U 5      S:X  d   e[         R                  " SSSSSS9n U R                  S   n[        U5      S:X  d   e[        U 5      S:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " SSSSSS9n U R                  S   n[        U5      S:X  d   e[        U 5      S:X  d   e[        [	        U R                  5       5      5      S:X  d   e[         R                  " S
SSSSSS9n U R                  S   n[        U5      S
:X  d   e[        U 5      S:X  d   e[         R                  n[        R                  " [         R                  USSSS5        [        R                  " [         R                  USSSS5        [        R                  " [         R                  USSSS5        [        R                  " [         R                  USSSS5        g )Nr   r   r   r   r   r   r	   r   r   r   r   r   (   Tr      l   )r   r   r   r   )	r    planted_partition_graphr"   r#   r$   r%   r&   r'   r(   )r)   r*   ppgs      r,   test_planted_partition_graphr5   +   s   
""1aAB7A	Aq6Q;;q6R<<tAGGI2%%%
""1aA.A	Aq6Q;;q6R<<tAGGI2%%%
""2q#s<A	Aq6R<<q6R<<
""1aA=A	Aq6Q;;q6R<<tAGGI2%%%
""1aA=A	Aq6Q;;q6R<<tAGGI3&&&
""2q#sdKA	Aq6R<<q6R<<

$
$C
MM"""CAsC8
MM"""CAtS9
MM"""CAsC8
MM"""CAsD9r.   c                  J   [         R                  " SSS5      n [        U 5      S:X  d   e[         R                  " SSS5      n [        U 5      S:X  d   e[         R                  " SSS5      n [        U 5      S:X  d   e[         R                  " SSSSS9n [        U 5      S:X  d   eg )	Nr   r   r   r   r   r   r   r   )r    relaxed_caveman_graphr#   r)   s    r,   test_relaxed_caveman_graphr9   U   s    
  Aq)Aq6R<<
  Aq)Aq6R<<
  As+Aq6R<<
  As4Aq6R<<r.   c                  v   [         R                  " SS5      n [        U 5      S:X  d   e[         R                  " SS5      n [         R                  " S5      nUR	                  SS5        [         R
                  " X5      (       d   e[        R                  " [         R                  [         R                  SS5        g )Nr   r   r   r   r   )	r    connected_caveman_graphr#   complete_graphremove_edgeis_isomorphicr&   r'   r(   )r)   K5s     r,   test_connected_caveman_graphr@   `   s    
""1a(Aq6R<<
""1a(A			1	BNN1aA"""" MM"""B$>$>1Er.   c                  |   [         R                  " SS5      n [        U 5      S:X  d   e[         R                  " SS5      n [         R                  " S5      n[         R                  " X5      (       d   e[         R                  " SS5      n [         R
                  " S5      n[         R                  " X5      (       d   eg )Nr   r   r   r   r   )r    caveman_graphr#   empty_graphr>   r<   )r)   E5r?   s      r,   test_caveman_graphrE   m   s    
AAq6R<<
AA		BA""""
AA			1	BA""""r.   c            
         [         R                  " SSSSS5      n [        U 5      S:X  d   e[         R                  " SSSSSSS9n [        U 5      S:X  d   e[         R                  " SSSSSSSS	9n [        U 5      S:X  d   e[        U [         R                  5      (       a   e[         R                  " SSSSSSSS	9n [        U 5      S:X  d   e[        U [         R                  5      (       d   e[
        R                  " [         R                  [         R                  SS
SSS5        [         R                  " SSSSSSS9n [        U 5      S:X  d   eg )Nd   r   g333333?{Gz?Tr   Fr   )r   r   e   r   r   r   r   )r    gaussian_random_partition_graphr#   
isinstanceDiGraphr&   r'   r(   r8   s    r,   $test_gaussian_random_partition_graphrM   z   s7   
**3BTBAq6S==
**3BTDQAq6S==
**RS$R	A q6S==!RZZ((((
**RS$B	A q6S==a$$$$
MM
"<<c3Aq 	**2sCcJAq6R<<r.   c                     [        SSS5       H  n [        SSS5       Hw  n[        R                  " X5      nUR                  5       X-  :X  d   eU S:w  d  US:w  a  XUS-
  -  S-  S-   -  nOXUS-
  -  S-  S-   -  S-
  nUR	                  5       U:X  a  Mw   e   M     [
        R                  " [        R                  SS9   [        R                  " SS5        S S S 5        [
        R                  " [        R                  SS9   [        R                  " SS	5        S S S 5        g ! , (       d  f       NR= f! , (       d  f       g = f)
Nr
      r   r   z0A ring of cliques must have at least two cliquesmatchr   (The cliques must have at least two nodesr   )ranger    ring_of_cliquesnumber_of_nodesnumber_of_edgesr&   r'   r(   )ijr)   expected_num_edgess       r,   test_ring_of_cliquesrZ      s.   1b!_q"aA""1(A$$&!%///Ava%&QKA+=*B%C" &'QKA+=*B%Ca%G"$$&*<<<< !  

 R
 	1a 
 

 J
 	1a 
 
	
 

 
s    D$D5$
D25
Ec                     [        SSS5       H  n [        SSS5       H  n[        R                  " X5      nUR                  5       US-
  U -  S-   :X  d   eUR	                  5       X-  US-
  -  S-  :X  d   eUR                  S5      UR                  5       S-
  :X  d   e[        SUR                  5       5       H  nUR                  U5      US-
  :X  a  M   e   M     M     [        R                  " [        R                  SS9   [        R                  " SS5        S S S 5        [        R                  " [        R                  SS9   [        R                  " SS5        S S S 5        g ! , (       d  f       NR= f! , (       d  f       g = f)	Nr
   rO   r   r   r   z/A windmill graph must have at least two cliquesrP   rR   )	rS   r    windmill_graphrU   rV   degreer&   r'   r(   )nkr)   rW   s       r,   test_windmill_graphr`      sT   1b!_q"aA!!!'A$$&1q5A+/999$$&!%1q5/A*====88A;!"3"3"5"99991a//12xx{a!e+++ 3 !  

 Q
 	!Q
 

 J
 	!Q
 
	
 

 
s   E)E:)
E7:
Fc                  j   / SQn / SQ/ SQ/ SQ/n[         R                  " XSS9nUR                  S   n[        U5      S:X  d   e[        U5      S	:X  d   eUR	                  5       S
:X  d   e[         R                  " X[        S	5      SS9nUR                  UR                  :X  d   e[         R                  n[        [        S5      5      n/ SQ/ SQ/ SQ/n/ SQ/ SQ/ SQ/n/ SQ/ SQ/n	SS/SS/SS//n
/ SQ/ SQ/ SQ/n[        R                  " [         R                  XPU5        [        R                  " [         R                  XPU5        [        R                  " [         R                  XPU	SS9  [        R                  " [         R                  XPU
SS9  [        R                  " [         R                  XPUSS9  [        R                  " [         R                  XPX5        S/[        [        S5      5      -   n[        R                  " [         R                  XPX5        [         R                  " XSSS9nUR                  UR                  :X  d   e[         R                  " XSSS9nUR                  UR                  :X  d   e[         R                  " XSSS9nUR                  UR                  :X  d   eg )N)K   rb   i,  )      ?皙?{Gz?)rd   gffffff?Q?)re   rf   g?r   r   r	   r   i  iV  i  )rc   rd   gRQ?)rd   ffffffֿrf   rc   rd   rg   re   rf   )rc   rd   rH   Tr   Fi  )r   	selfloops)rh   r   )r   sparse)r    stochastic_block_modelr"   r#   sizerS   nodesr$   r&   r'   NetworkXException)sizesprobsr)   r*   GGsbmbadnodelist	badprobs1	badprobs2probs_rect1probs_rect2	asymprobsnodelists                r,   test_stochastic_block_modelry      s4   E!35GHE
!!%Q7A	Aq6Q;;q6S==668u		"	"5s!	DB77bhh 
#
#CuSz"K#%79KLI#%8:LMI%':;K$<$t=K#%8:LMI
MM"&&I>
MM"&&I>
MM"&&K$O
MM"&&K$O
MM"&&IN
MM"&&EGsT%*%%H
MM"&&ED 
	"	"5a4	HB77bhh		"	"54$	OB77bhh		"	"5a	FB77bhhr.   c            
      0   Sn SnSnSn[         R                  " XX#SSSS9n[        U5      S:X  d   eU Vs1 s H  n[        UR                  U   S	   5      iM      nn[         R
                  R                  UR	                  5       U5      (       d   eg s  snf )
N   r         ?r   r   rO   r   )average_degreemin_communityr   	communityr    LFR_benchmark_graphr#   	frozensetrl   r   is_partitionr^   tau1tau2mur)   vr*   s          r,   test_generatorr      s    ADD	B
	!2B	A q6S==567Q1771:k*	+QA7<<$$QWWY2222 	8s   %Bc            	          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SS9  S S S 5        g ! , (       d  f       g = f)Nztau2 must be greater than onerP   rG   r
   r   r   
min_degreer&   r'   r    r(   r   r^   r   r   r   s       r,   test_invalid_tau1r      J    	r''/N	O
qQ? 
P	O	O   A
Ac            	          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SS9  S S S 5        g ! , (       d  f       g = f)Nztau1 must be greater than onerP   rG   r   r
   r   r   r   r   s       r,   test_invalid_tau2r      r   r   c            	          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SS9  S S S 5        g ! , (       d  f       g = f)N#mu must be in the interval \[0, 1\]rP   rG   r
   r   r   r   r   s       r,   test_mu_too_larger      sJ    	r''/V	W
qQ? 
X	W	Wr   c            	          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SS9  S S S 5        g ! , (       d  f       g = f)Nr   rP   rG   r
   r   r   r   s       r,   test_mu_too_smallr     sJ    	r''/V	W
qQ? 
X	W	Wr   c                      [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#5        S S S 5        g ! , (       d  f       g = f)N8Must assign exactly one of min_degree and average_degreerP   rG   r
   r   r   r   s       r,   test_both_degrees_noner     sP    	
H
 
q1
 
 
    A
Ac            
          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SSS9  S S S 5        g ! , (       d  f       g = f)Nr   rP   rG   r
   r   r   )r   r}   r   r   s       r,   test_neither_degrees_noner     sT    	
H
 
qQqQ
 
 
r   c                      [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SSSS9  S S S 5        g ! , (       d  f       g = f)Nz:Could not assign communities; try increasing min_communityrP   r   r
   r   r   )r   	max_itersr   r&   r'   r    ExceededMaxIterationsr   r   s       r,   test_max_iters_exceededr   (  sW    	
  J
 
qQ"STU
 
 
s   !A
Ac                      [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#U S-   SSS9  S S S 5        g ! , (       d  f       g = f)Nz+max_degree must be in the interval \(0, n\]rP   r   r
   r   r   )
max_degreer   r   r   r   s       r,   test_max_deg_out_of_ranger   4  s]    	
 O
 
T!a%2A	

 
 
s   $A
Ac                  8   Sn SnSnSn[         R                  " U UUUSSSSS	S
9	n[        U5      S:X  d   eU Vs1 s H  n[        UR                  U   S   5      iM      nn[         R
                  R                  UR	                  5       U5      (       d   eg s  snf )Nr{   r   r|   r   r   rG   2      r   )r}   r   r~   max_communityr   r   r   r   s          r,   test_max_communityr   A  s    ADD	B
	

	A q6S==567Q1771:k*	+QA7<<$$QWWY2222 	8s   %Bc            
          [         R                  " [        R                  SS9   Sn SnSnSn[        R                  " XX#SSS9  S S S 5        g ! , (       d  f       g = f)Nz#Could not create power law sequencerP   rG   r
   r   r   )r   r   r   r   s       r,   !test_powerlaw_iterations_exceededr   V  sT    	
  (M
 
qQ!L
 
 
r   c                      Sn [        U [        R                  R                  R	                  SSS5      -
  5      S:  d   eg )NgSbQ?r
   r   g-C6?rH   )absr    
generatorsr   _hurwitz_zeta)zeta2s    r,   test_no_scipy_zetar   a  s8    Eur}}..<<Q6JJKdRRRr.   c                      [         R                  " [        R                  SS9   [        R                  R
                  R                  SSSSS5        S S S 5        g ! , (       d  f       g = f)NzCould not match average_degreerP   r
   r   rH   r   )r&   r'   r    r   r   r   _generate_min_degree r.   r,   test_generate_min_degree_itrr   f  sL    	
  (H
 	44Q1dAF
 
 
s   .A
A))r&   networkxr    r-   r5   r9   r@   rE   rM   rZ   r`   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r,   <module>r      s     "?J':T
F
#.!* &#L
3@@@@	2	R	V

3*MS
Gr.   