o
    3ήcj!                     @   s   d dl Z d dlZd dlmZmZ dd Zdd Zdd Ze j	j
d	d
 Ze j	j
dd Ze j	j
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)_consolidatebuild_k_number_dictc            
      C   s~  t jt ddgdd} t | d}dd | D }|d |d f|d |d	 ffD ]w}|  d
 }t  }t | |} | |d
 |d  | ||d
  t 	d}t | |} | |d |d  | |d |d  | |d |d  t | |} | |d  }| 
|d  |D ]
}| |d | q| |d |d  q+|d |d f|d |d ffD ]}|  d
 }t  }t | |} | |d
 |d  | ||d
  t 	d}t | |} | |d |d  | |d |d  | |d |d  t | |} | |d  }| 
|d  |D ]}| |d | q| |d  }	| 
|d  |	D ]}| |d | q0q| S )N   labels)label_attributec                 S   s   i | ]\}}||qS  r   ).0kvr   r   ^/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/connectivity/tests/test_kcomponents.py
<dictcomp>   s    z.torrents_and_ferraro_graph.<locals>.<dictcomp>)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rlabelsr   nodesnew_nodePKnbrsnbrnbrs2r   r   r   torrents_and_ferraro_graph   sX   $
$
r/   c                  C   sN   t tj tjddddd} t|  W d    d S 1 s w   Y  d S )Nr   皙?T*   )directedseed)pytestraisesr   NetworkXNotImplementedgnp_random_graphk_components)r&   r   r   r   test_directedL   s   "r9   c                 C   sJ   |  D ]\}}|dk rq|D ]}| |}t|}||ks!J qqd S )Nr   )r   subgraphr   node_connectivity)r&   r8   r	   
components	componentCr+   r   r   r   _check_connectivityS   s   

r?   c                  C   s   t  } t| }t| | t|d dksJ tdd |d D dks&J tdd |d D dks5J t|d dks?J tdd |d D sLJ d S )	Nr   r   c                 S      g | ]
}t |d kr|qS )   lenr   cr   r   r   
<listcomp>g       z3test_torrents_and_ferraro_graph.<locals>.<listcomp>r   c                 S   r@   )r   rB   rD   r   r   r   rF   h   rG   c                 s   s    | ]	}t |d kV  qdS )r   NrB   rD   r   r   r   	<genexpr>k   s    z2test_torrents_and_ferraro_graph.<locals>.<genexpr>)r/   r   r8   r?   rC   allr&   resultr   r   r   test_torrents_and_ferraro_graph^   s   

rL   c                  C   s(   t jdddd} t | }t| | d S )N2   r0   r1   r3   )r   r7   r8   r?   rJ   r   r   r   test_random_gnpn   s   
rO   c                  C   s.   ddg} t j| dd}t |}t|| d S )N)   P   g?)rQ      g333333?r1   rN   )r   random_shell_graphr8   r?   )constructorr&   rK   r   r   r   
test_shellu   s   
rU   c                  C   sH   t jdddd} t t | }|t | t |}t|| d S )Nd   r   H   )triesr3   )r   random_powerlaw_tree_sequenceGraphconfiguration_modelremove_edges_fromselfloop_edgesr8   r?   )deg_seqr&   rK   r   r   r   test_configuration}   s
   
r_   c                  C       t  } t | }t| | d S N)r   karate_club_graphr8   r?   rJ   r   r   r   test_karate      
rc   c                  C   s   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  }t |}t|}| |ks}J d S )#Nr   r   r   r   r   r         r   r   r   r   r   r      rA   r   r   r      rP                                        !   )r   rb   r8   r   )karate_k_numr&   r8   k_numr   r   r   test_karate_component_number   s   	
 !"$
rx   c                  C   r`   ra   )r   davis_southern_women_graphr8   r?   rJ   r   r   r   test_davis_southern_women   rd   rz   c                  C   sz   h dgh dgd} t  }t |}| D ]"\}}|dk r!qt|t| | ks-J |D ]
}|| | v s9J q/qd S )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   ry   r8   r   rC   )solutionr&   rK   r	   r<   r=   r   r   r   (test_davis_southern_women_detail_3_and_4   s   !=
r   c                  C   s\  d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| d S )Nc                 S   s$   dd | D dd |D ksJ d S )Nc                 S   s   h | ]}t |qS r   )	frozenset)r   sr   r   r   	<setcomp>  s    zQtest_set_consolidation_rosettacode.<locals>.list_of_sets_equal.<locals>.<setcomp>r   )rK   r   r   r   r   list_of_sets_equal  s   $z>test_set_consolidation_rosettacode.<locals>.list_of_sets_equal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   r   r   r   "test_set_consolidation_rosettacode  s>   

"

r   )r4   networkxr   ,networkx.algorithms.connectivity.kcomponentsr   r   r/   r9   r?   markslowrL   rO   rU   r_   rc   rx   rz   r   r   r   r   r   r   <module>   s$   
=


+H