o
    3ήc
                     @   sx   d Z ddlmZ ddlZddlZddlmZ dd Zdd Z	d	d
 Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )zNUnit tests for the :mod:`networkx.algorithms.community.kernighan_lin`
module.
    )permutationsN)kernighan_lin_bisectionc                 C   s$   t tt| t tt|ksJ d S )N)setmap	frozenset)xy r	   ]/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/community/tests/test_kernighan_lin.pyassert_partition_equal   s   $r   c                  C   s.   t dd} t| }t|h dh dg d S N   r      r            r         nxbarbell_graphr   r   GCr	   r	   r
   test_partition   s   r   c                  C   s4   t dd} h dh dg}t| |}t|| d S r   r   r   	partitionr   r	   r	   r
   test_partition_argument   s   
r   c                  C   s6   t g d} ddhddhf}t| |}t|| d S )N))AB)r   r   )r   r   )r   Dr   r   r   r    r   Graphr   r   r   r	   r	   r
   )test_partition_argument_non_integer_nodes   s   
r#   c                  C   s2   t dd} t| dd}t|h dh dg d S )Nr   r   r   seedr   r   r   r   r	   r	   r
   test_seed_argument$   s   r&   c                  C   sX   t tj tdd} h dh df}t| | W d    d S 1 s%w   Y  d S )Nr   r   r   >   r   r   r   r   pytestraisesr   NetworkXErrorr   r   r   r   r	   r	   r
   test_non_disjoint_partition*   s
   "r,   c                  C   s\   t tj tdd} ddhdhh df}t| | W d    d S 1 s'w   Y  d S )Nr   r   r   r   r   r'   r+   r	   r	   r
   test_too_many_blocks1   s
   "r-   c                  C   s   t d} t |  }||   |dd ttdD ]*}tt	||}t
t ||dd\}}t||g|d |d h|d |d hg qd S )Nr   r   r   r   r$   r   )r   cycle_graph
MultiGraphedgesadd_edges_fromremove_edger   rangedictzipr   relabel_nodesr   )r   Mlabelsmappingr   r   r	   r	   r
   test_multigraph8   s   
$r:   c                  C   s   t ddddifddddifddddifdd	ddifdd
ddifddddifddddifdd	ddifdd
ddifddddifdd	ddifdd
ddifdd	ddifdd
ddifd	d
ddifg} h dh df}t| |dd}t|h dh df d S )Nr   r   weightr   r   r   r    r   EFr   >   r   r   r   >   r    r<   r=   )max_iter>   r   r   r=   >   r   r    r<   r!   r   r	   r	   r
   test_max_iter_argumentE   s*   r?   )__doc__	itertoolsr   r(   networkxr   networkx.algorithms.communityr   r   r   r   r#   r&   r,   r-   r:   r?   r	   r	   r	   r
   <module>   s    