U
    ?hS  ã                   @   sn   d Z ddlZddlZddlZdd„ Zej de d¡e d¡g¡dd	„ ƒZ	d
d„ Z
dd„ Zdd„ Zdd„ ZdS )z4
Tests for maximal (not maximum) independent sets.

é    Nc                  C   s.   t  d¡} t j| dddddddgks*t‚d S )Né   é   )Úseedr   é   é   é   )ÚnxZempty_graphÚmaximal_independent_setÚAssertionError©ÚG© r   úT/var/www/html/venv/lib/python3.8/site-packages/networkx/algorithms/tests/test_mis.pyÚtest_random_seed   s    
r   Úgraphr   é7   c                    s   t ‡ fdd„ˆ D ƒƒst‚dS )z+Maximal independent set for complete graphsc                 3   s"   | ]}t  ˆ |g¡|gkV  qd S ©N)r   r	   )Ú.0Ún©r   r   r   Ú	<genexpr>   s     ztest_K5.<locals>.<genexpr>N)Úallr
   r   r   r   r   Útest_K5   s    r   c                  C   sR   t  ¡ } t t jt j| dg¡ t t jt j| ddg¡ t t jt jt  | ¡¡ dS )z!Bad input should raise exception.ZSmithZSalviatiÚPazziN)r   Úflorentine_families_graphÚpytestZraisesZNetworkXUnfeasibler	   ZNetworkXNotImplementedZDiGraphr   r   r   r   Útest_exceptions   s       ÿr   c                  C   s8   t  ¡ } t  | ddg¡}t|ƒddddddhks4t‚d S )NZMediciZBischeriZ
Castellanir   ZGinoriZLamberteschi)r   r   r	   Úsetr
   ©r   Zindepr   r   r   Útest_florentine_family#   s    úr   c                  C   s<   t  dd¡} t  | ddddg¡}t|ƒttdƒƒks8t‚d S )Né   é"   r   r   é	   é
   )r   Zcomplete_bipartite_graphr	   ÚsortedÚlistÚranger
   r   r   r   r   Útest_bipartite0   s    r'   c                     sŽ   t dddƒD ]|} t | d d t ¡ ¡‰ t ˆ ¡}ˆ  |¡ ¡ dksHt‚tj	‡ fdd„|D ƒŽ ‰t
‡fdd„tˆ  ¡ ƒ |¡D ƒƒst‚qdS )	zrGenerate 5 random graphs of different types and sizes and
    make sure that all sets are independent and maximal.r   é2   r#   r   c                 3   s   | ]}t ˆ  |¡ƒV  qd S r   )r   Z	neighbors©r   Úvr   r   r   r   =   s     z%test_random_graphs.<locals>.<genexpr>c                 3   s   | ]}|ˆ kV  qd S r   r   r)   )Úneighbors_of_MISr   r   r   >   s     N)r&   r   Zerdos_renyi_graphÚrandomr	   ZsubgraphZnumber_of_edgesr
   r   Úunionr   ZnodesÚ
difference)ÚiZISr   )r   r+   r   Útest_random_graphs6   s    
r0   )Ú__doc__r,   r   Znetworkxr   r   ÚmarkZparametrizeZcomplete_graphr   r   r   r'   r0   r   r   r   r   Ú<module>   s   
