
    Vhj!                        d dl Z d dlZd dlmZmZ d Zd Zd Ze j                  j                  d        Ze j                  j                  d        Ze j                  j                  d        Zd	 Zd
 Zd Zd Zd Zd Zy)    N)_consolidatebuild_k_number_dictc                     t        j                  t        j                  ddg      d      } t        j                  | d      }|j	                         D ci c]  \  }}||
 }}}|d   |d   f|d   |d   ffD ]F  }| j                         dz   }t        j                         }t        j                  | |      } | j                  |dz   |d	          | j                  ||d          t        j                  d      }t        j                  | |      } | j                  |d
z   |dz          | j                  |dz   |dz          | j                  |dz   |dz          t        j                  | |      } | |dz      }	| j                  |dz          |	D ]  }
| j                  |dz   |
        | j                  |dz   |dz          I |d   |d   f|d   |d   ffD ]f  }| j                         dz   }t        j                         }t        j                  | |      } | j                  |dz   |d	          | j                  ||d          t        j                  d      }t        j                  | |      } | j                  |d
z   |dz          | j                  |dz   |dz          | j                  |dz   |dz          t        j                  | |      } | |dz      }	| j                  |dz          |	D ]  }
| j                  |dz   |
        | |dz      }| j                  |dz          |D ]  }
| j                  |dz   |
        i | S c c}}w )N   labels)label_attribute)r      )   r	      r	   )r	   r	   r
   r         r      r	      
            )r   r   )r
   r   )r   r   )r	   r   	      )nxconvert_node_labels_to_integers
grid_graphget_node_attributesitemsorderpetersen_graphdisjoint_unionadd_edgecomplete_graphremove_node)Grlabelskvr   nodesnew_nodePKnbrsnbrnbrs2s               g/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcomponents.pytorrents_and_ferraro_graphr.      s2   
**
q!fx	A $$Q1G&}}/tq!ad/F/&>6&>2VF^VF^4TU 0779q=a#	

8a<q*	

8U1X&a a#	

8a<B/	

8a<B/	

8a<B/a#B	hm$ 	+CJJx"}c*	+ 	


8b=(Q,//02 &>6&>2VF^VF^4TU +779q=a#	

8a<q*	

8U1X&a a#	

8a<B/	

8a<B/	

8a<B/a#B	hm$ 	+CJJx"}c*	+(Q,	hl# 	+CJJx"}c*	+/+2 Hi 0s   Mc                      t        j                  t        j                        5  t        j                  dddd      } t        j
                  |        d d d        y # 1 sw Y   y xY w)Nr   皙?T*   )directedseed)pytestraisesr   NetworkXNotImplementedgnp_random_graphk_components)r"   s    r-   test_directedr9   L   sK    	r00	1 C$R@
  s   /AA%c                     |j                         D ]?  \  }}|dk  r|D ]/  }| j                  |      }t        j                  |      }||k\  r/J  A y )Nr   )r   subgraphr   node_connectivity)r"   r8   r$   
components	componentCr)   s          r-   _check_connectivityr@   S   s`    %++- :q5# 	I

9%A$$Q'A6M6		    c                     t               } t        j                  |       }t        | |       t	        |d         dk(  sJ t	        |d   D cg c]  }t	        |      dk(  s| c}      dk(  sJ t	        |d   D cg c]  }t	        |      dk(  s| c}      dk(  sJ t	        |d         dk(  sJ t        d |d   D              sJ y c c}w c c}w )Nr   r      r	   r   c              3   8   K   | ]  }t        |      d k(    yw)r   N)len).0cs     r-   	<genexpr>z2test_torrents_and_ferraro_graph.<locals>.<genexpr>k   s     .qs1v{.s   )r.   r   r8   r@   rE   all)r"   resultrG   s      r-   test_torrents_and_ferraro_graphrK   ^   s    "$A__QF6" vay>Q6!95aA"56!;;;6!94aA!45:::vay>Q.F1I....	 64s   C
C
;CCc                  v    t        j                  ddd      } t        j                  |       }t        | |       y )N2   r0   r1   r3   )r   r7   r8   r@   r"   rJ   s     r-   test_random_gnprP   n   s.    
B"-A__QF6"rA   c                  |    ddg} t        j                  | d      }t        j                  |      }t        ||       y )N)   P   g?)rS      g333333?r1   rN   )r   random_shell_graphr8   r@   )constructorr"   rJ   s      r-   
test_shellrW   u   s6     .1K
k3A__QF6"rA   c                     t        j                  ddd      } t        j                  t        j                  |             }|j	                  t        j
                  |             t        j                  |      }t        ||       y )Nd   r   H   )triesr3   )r   random_powerlaw_tree_sequenceGraphconfiguration_modelremove_edges_fromselfloop_edgesr8   r@   )deg_seqr"   rJ   s      r-   test_configurationrb   }   s`    ..s!"EG
''01A))!,-__QF6"rA   c                  n    t        j                         } t        j                  |       }t        | |       y N)r   karate_club_graphr8   r@   rO   s     r-   test_karaterf      s(    
A__QF6"rA   c                  N   i ddddddddddddddddd	dd
dddddddddddddddi ddddddddddddddddddddddddddddd dd!dd"d} t        j                         }t        j                  |      }t        |      }| |k(  sJ y )#Nr   r	   r
   r   r   r         r   r   r   r   r   r      rC   r   r   r      rR                                        !   )r   re   r8   r   )karate_k_numr"   r8   k_nums       r-   test_karate_component_numberr{      s   #	1#	1# 	
1# 	
1	#
 	
1# 	
1# 	
1# 	
1# 	
1# 	
1# 	A# 	A# 	A# 	A# 	A#  	A!#" 	A##$ 	A%#& 	A'#( 	A)#* 	A+#, 	A-#. 	A/#0 	A1#2 	A3#4 	A5#6 	A7#8 	A9#: 	A;#< 	A=#> 	A?#@ 	AA#B 	AC#D 	AE#LH 	A??1%L-E5   rA   c                  n    t        j                         } t        j                  |       }t        | |       y rd   )r   davis_southern_women_graphr8   r@   rO   s     r-   test_davis_southern_womenr~      s(    
%%'A__QF6"rA   c                      h dgh dgd} t        j                         }t        j                  |      }|j                         D ]7  \  }}|dk  rt	        |      t	        | |         k(  sJ |D ]  }|| |   v rJ  9 y )N>   Pearl OglethorpeE1E2E3E4E5E6E7E8E9E10E12E13E14Eleanor NyeHelen LloydMyra LiddelRuth DeSandNora FayetteBrenda RogersSylvia AvondaleVerne SandersonCharlotte McDowdEvelyn JeffersonFrances AndersonKatherina RogersLaura MandevilleTheresa Anderson>   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r}   r8   r   rE   )solutionr"   rJ   r$   r=   r>   s         r-   (test_davis_southern_women_detail_3_and_4r      s    
B
C<Hz 	%%'A__QF ,:q5:#hqk"2222# 	,I+++	,	,rA   c                     d } ddhddhg}ddhddhg} | t        |d      |       ddhddhg}h dg} | t        |d      |       ddhddhddhg}h dg} | t        |d      |       h d	ddhddhddhh d
g}h dh dg} | t        |d      |       ddhh d	ddhddhddhh d
g}h dg} | t        |d      |       h d	ddhddhddhh d
ddhg}h dg} | t        |d      |       y )Nc                     | D ch c]  }t        |       c}|D ch c]  }t        |       c}k(  sJ y c c}w c c}w rd   )	frozenset)rJ   r   ss      r-   list_of_sets_equalz>test_set_consolidation_rosettacode.<locals>.list_of_sets_equal  s4    &,-	!-1Q1)A,1QQQQ-1Qs   7<ABr?   Dr
   >   r   r   r?   >   r   r   r?   r   >   HIr)   >   Fr"   r   >   r   r"   r   r   r)   r   >	   r   r   r?   r   r   r"   r   r   r)   )r   )r   questionr   s      r-   "test_set_consolidation_rosettacoder     s[   R c
S#J'Hc
S#J'H|Ha0(;c
S#J'H H|Ha0(;c
S#Jc
3H$%H|Ha0(;#sc3Z#s_UH$&?@H|Ha0(;	c
	c
	c
	c
H >>H|Ha0(;	c
	c
	c
	c
H >>H|Ha0(;rA   )r4   networkxr   ,networkx.algorithms.connectivity.kcomponentsr   r   r.   r9   r@   markslowrK   rP   rW   rb   rf   r{   r~   r   r    rA   r-   <module>r      s     :z / / # # # ###(!V#E,P$<rA   