
    fi/,                         d dl Z d dlZd Zd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    Nc                     t          j        g dddd          } | j        d         }|h dh dh d	gk    sJ t          |           d
k    sJ t          t	          |                                                     d
k    sJ t          j        g ddd          } | j        d         }|h dh dh d	gk    sJ t          |           d
k    sJ t          t	          |                                                     dk    sJ t          j        g dddd          } | j        d         }|h dh dh d	gk    sJ t          |           d
k    sJ t          t	          |                                                     dk    sJ t          j        g dddd          } | j        d         }|h dh dh d	gk    sJ t          |           d
k    sJ t          t	          |                                                     dk    sJ t          j        g ddd          } | j        d         }|dhddhh dh dh dgk    sJ t          |           dk    sJ t           j        }t          j        t           j        |g ddd           t          j        t           j        |g ddd           t          j        t           j        |g ddd           t          j        t           j        |g ddd           d S )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      /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/generators/tests/test_community.pytest_random_partition_graphr-      s   
!)))Q;;;A	AIIIyyy11111q66Q;;;;tAGGII1$$$$
!)))Q22A	AIIIyyy11111q66Q;;;;tAGGII2%%%%
!)))QDAAAA	AIIIyyy11111q66Q;;;;tAGGII2%%%%
!)))QDAAAA	AIIIyyy11111q66Q;;;;tAGGII2%%%%
!///3<<A	A!q!fiii7K7K7KLLLLLq66R<<<<

#C
M""CC===
M""CD#>>>
M""CC===
M""CC>>>>>    c                     t          j        ddddd          } | j        d         }t          |          dk    sJ t          |           dk    sJ t          t	          |                                                     dk    sJ t          j        dddd          } | j        d         }t          |          dk    sJ t          |           dk    sJ t          t	          |                                                     d	k    sJ t          j        d
dddd          } | j        d         }t          |          d
k    sJ t          |           dk    sJ t          j        ddddd          } | j        d         }t          |          dk    sJ t          |           dk    sJ t          t	          |                                                     dk    sJ t          j        ddddd          } | j        d         }t          |          dk    sJ t          |           dk    sJ t          t	          |                                                     dk    sJ t          j        d
ddddd          } | j        d         }t          |          d
k    sJ t          |           dk    sJ t           j        }t          j        t           j        |dddd           t          j        t           j        |dddd           t          j        t           j        |dddd           t          j        t           j        |dddd           d S )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777A	Aq66Q;;;;q66R<<<<tAGGII2%%%%
"1aA..A	Aq66Q;;;;q66R<<<<tAGGII2%%%%
"2q#s<<<A	Aq66R<<<<q66R<<<<
"1aA===A	Aq66Q;;;;q66R<<<<tAGGII2%%%%
"1aA===A	Aq66Q;;;;q66R<<<<tAGGII3&&&&
"2q#sdKKKA	Aq66R<<<<q66R<<<<

$C
M""CAsC888
M""CAtS999
M""CAsC888
M""CAsD99999r.   c                  b   t          j        ddd          } t          |           dk    sJ t          j        ddd          } t          |           dk    sJ t          j        ddd          } t          |           dk    sJ t          j        dddd          } t          |           dk    sJ d S )	Nr   r   r   r   r   r   r   r   )r    relaxed_caveman_graphr#   r)   s    r,   test_relaxed_caveman_graphr9   U   s    
 Aq))Aq66R<<<<
 Aq))Aq66R<<<<
 As++Aq66R<<<<
 As444Aq66R<<<<<<r.   c                  \   t          j        dd          } t          |           dk    sJ t          j        dd          } t          j        d          }|                    dd           t          j        | |          sJ t          j        t           j        t           j        dd           d S )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q66R<<<<
"1a((A		1		BNN1aAr""""" M""B$>1EEEEEr.   c                  Z   t          j        dd          } t          |           dk    sJ t          j        dd          } t          j        d          }t          j        | |          sJ t          j        dd          } t          j        d          }t          j        | |          sJ d S )Nr   r   r   r   r   )r    caveman_graphr#   empty_graphr>   r<   )r)   E5r?   s      r,   test_caveman_graphrE   m   s    
AAq66R<<<<
AA			BAr"""""
AA		1		BAr"""""""r.   c            	         t          j        ddddd          } t          |           dk    sJ t          j        dddddd          } t          |           dk    sJ t          j        ddddddd	          } t          |           dk    sJ t          | t           j                  rJ t          j        ddddddd	          } t          |           dk    sJ t          | t           j                  sJ t          j        t           j        t           j        dd
ddd           t          j        dddddd          } t          |           dk    sJ d S )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   sb   
*3BTBBAq66S====
*3BTDQQQAq66S====
*RS$R	 	 	A q66S====!RZ(((((
*RS$B	 	 	A q66S====a$$$$$
M
"<c3Aq   	*2sCcJJJAq66R<<<<<<r.   c                     t          ddd          D ]} t          ddd          D ]}t          j        | |          }|                                | |z  k    sJ | dk    s|dk    r| ||dz
  z  dz  dz   z  }n| ||dz
  z  dz  dz   z  dz
  }|                                |k    sJ t          j        t          j        d          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          j        d          5  t          j        dd	           d d d            d S # 1 swxY w Y   d S )
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"1a((A$$&&!a%////Avva%&AQKA+=*B%C"" &'AQKA+=*B%Ca%G"$$&&*<<<<<<	= 

 R
 
 
 ! ! 	1a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 

 J
 
 
 ! ! 	1a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s$   C))C-0C-D77D;>D;c                  .   t          ddd          D ]} t          ddd          D ]}t          j        | |          }|                                |dz
  | z  dz   k    sJ |                                | |z  |dz
  z  dz  k    sJ |                    d          |                                dz
  k    sJ t          d|                                          D ] }|                    |          |dz
  k    sJ !Ԍt          j        t          j        d          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          j        d          5  t          j        dd           d d d            d S # 1 swxY w Y   d S )	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`      sA   1b!__ , ,q"a 	, 	,A!!Q''A$$&&1q5A+/9999$$&&!a%1q5/A*=====88A;;!"3"3"5"5"999991a//1122 , ,xx{{a!e+++++,	, 

 Q
 
 
     	!Q                              

 J
 
 
     	!Q                                   s$   D<<E E 'F

FFc                  4   g d} g dg dg dg}t          j        | |d          }|j        d         }t          |          dk    sJ t          |          d	k    sJ |                                d
k    sJ t          j        | |t          d	          d          }|j        |j        k    sJ t           j        }t          t          d                    }g dg dg dg}g dg dg dg}g dg dg}	ddgddgddgg}
g dg dg dg}t          j	        t           j
        || |           t          j	        t           j
        || |           t          j	        t           j
        || |	d           t          j	        t           j
        || |
d           t          j	        t           j
        || |d           t          j	        t           j
        || ||           dgt          t          d                    z   }t          j	        t           j
        || ||           t          j        | |dd          }|j        |j        k    sJ t          j        | |dd          }|j        |j        k    sJ t          j        | |dd          }|j        |j        k    sJ d S )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      s   MME!3!3!35G5G5GHE
!%Q777A	Aq66Q;;;;q66S====6688u		"5%s!	D	D	DB7bh 
#CuSzz""K###%7%7%79K9K9KLI###%8%8%8:L:L:LMI%%%':':':;K$<$t=K###%8%8%8:L:L:LMI
M"&UI>>>
M"&UI>>>
M"&UK$OOOO
M"&UK$OOOO
M"&UINNNN
M"&UE;GGGsT%**%%%H
M"&UE8DDD 
	"5%a4	H	H	HB7bh		"5%4$	O	O	OB7bh		"5%a	F	F	FB7bhr.   c            	          d} d}d}d}t          j        | |||ddd          t                    dk    sJ fd	D             }t           j                                                            |          sJ d S )
N   r         ?r   r   rO   r   )average_degreemin_communityr   c                 P    h | ]"}t          j        |         d                    #S 	community	frozensetrl   .0vr)   s     r,   	<setcomp>z!test_generator.<locals>.<setcomp>   ,    777171:k*	+	+777r.   r    LFR_benchmark_graphr#   r   is_partitionrl   r^   tau1tau2mur*   r)   s        @r,   test_generatorr      s    ADD	B
	4r!2B	 	 	A q66S====7777Q777A<$$QWWYY2222222r.   c                      t          j        t          j        d          5  d} d}d}d}t          j        | |||d           d d d            d S # 1 swxY w Y   d S )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          	r'/N	O	O	O @ @
q$bQ????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @   "AAAc                      t          j        t          j        d          5  d} d}d}d}t          j        | |||d           d d d            d S # 1 swxY w Y   d S )Nztau1 must be greater than onerP   rG   r   r
   r   r   r   r   s       r,   test_invalid_tau2r      r   r   c                      t          j        t          j        d          5  d} d}d}d}t          j        | |||d           d d d            d S # 1 swxY w Y   d S )N#mu must be in the interval \[0, 1\]rP   rG   r
   r   r   r   r   s       r,   test_mu_too_larger      s    	r'/V	W	W	W @ @
q$bQ????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @r   c                      t          j        t          j        d          5  d} d}d}d}t          j        | |||d           d d d            d S # 1 swxY w Y   d S )Nr   rP   rG   r
   r   r   r   s       r,   test_mu_too_smallr     s    	r'/V	W	W	W @ @
q$bQ????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @r   c                      t          j        t          j        d          5  d} d}d}d}t          j        | |||           d d d            d S # 1 swxY w Y   d S )N8Must assign exactly one of min_degree and average_degreerP   rG   r
   r   r   r   s       r,   test_both_degrees_noner     s    	
H
 
 
 2 2 
q$b1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s    AAAc            	          t          j        t          j        d          5  d} d}d}d}t          j        | |||dd           d d d            d S # 1 swxY w Y   d S )Nr   rP   rG   r
   r   r   )r   r}   r   r   s       r,   test_neither_degrees_noner     s    	
H
 
 
 R R 
q$bQqQQQQR R R R R R R R R R R R R R R R R R   #AAAc            
          t          j        t          j        d          5  d} d}d}d}t          j        | |||ddd           d d d            d S # 1 swxY w Y   d S )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   (  s    	
 J
 
 
 V V 
q$bQ"STUUUUV V V V V V V V V V V V V V V V V Vs   $AAAc            
          t          j        t          j        d          5  d} d}d}d}t          j        | |||| dz   dd           d d d            d S # 1 swxY w Y   d S )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
 
 
 	
 	
 
tT2!a%2A	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
s   'AAAc                      d} d}d}d}t          j        | |||ddddd	
	  	        t                    dk    sJ fdD             }t           j                                                            |          sJ d S )Nr{   r   r|   r   r   rG   2      r   )r}   r   r~   max_communityr   c                 P    h | ]"}t          j        |         d                    #S r   r   r   s     r,   r   z%test_max_community.<locals>.<setcomp>R  r   r.   r   r   s        @r,   test_max_communityr   A  s    ADD	B
	

	 
	 
	A q66S====7777Q777A<$$QWWYY2222222r.   c            	          t          j        t          j        d          5  d} d}d}d}t          j        | |||dd           d d d            d S # 1 swxY w Y   d S )Nz#Could not create power law sequencerP   rG   r
   r   r   )r   r   r   r   s       r,   !test_powerlaw_iterations_exceededr   V  s    	
 (M
 
 
 M M 
q$bQ!LLLLM M M M M M M M M M M M M M M M M Mr   c                      d} t          | t          j        j                            ddd          z
            dk     sJ d S )NgSbQ?r
   r   g-C6?rH   )absr    
generatorsr   _hurwitz_zeta)zeta2s    r,   test_no_scipy_zetar   a  sB    Eur}.<<Q6JJJKKdRRRRRRr.   c                      t          j        t          j        d          5  t          j        j                            ddddd           d d d            d S # 1 swxY w Y   d S )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  s    	
 (H
 
 
 G G 	44Q1dAFFFG G G G G G G G G G G G G G G G G Gs   )A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 
F 
F
# 
# 
#  .! ! !*     &# # #L
3 
3 
3@ @ @@ @ @@ @ @@ @ @	2 	2 	2	R 	R 	R	V 	V 	V

 

 

3 3 3*M M MS S S
G G G G Gr.   