o
    ßË·eS  ã                   @   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g d¢ksJ ‚d S )Né   é   )Úseed)r   r   é   é   é   )ÚnxÚempty_graphÚmaximal_independent_set©ÚG© r   úY/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/algorithms/tests/test_mis.pyÚtest_random_seed   s   
r   Úgraphr   é7   c                    s   t ‡ fdd„ˆ D ƒƒsJ ‚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   Ú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.ÚSmithÚSalviatiÚPazziN)r   Úflorentine_families_graphÚpytestÚraisesÚNetworkXUnfeasibler
   ÚNetworkXNotImplementedÚDiGraphr   r   r   r   Útest_exceptions   s   ÿr"   c                  C   s0   t  ¡ } t  | ddg¡}t|ƒh d£ksJ ‚d S )NÚMediciÚBischeri>   r   ÚGinorir#   r$   Ú
CastellaniÚLamberteschi)r   r   r
   Úset©r   Úindepr   r   r   Útest_florentine_family#   s   r+   c                  C   s8   t  dd¡} t  | g d¢¡}t|ƒttdƒƒksJ ‚d S )Né   é"   )r   r   é	   é
   )r   Úcomplete_bipartite_graphr
   ÚsortedÚlistÚranger)   r   r   r   Útest_bipartite0   s   r4   c                     sŽ   t dddƒD ]>} t | d d t ¡ ¡‰ t ˆ ¡}ˆ  |¡ ¡ dks$J ‚tj‡ fdd„|D ƒŽ ‰t	‡fdd„tˆ  
¡ ƒ |¡D ƒƒsDJ ‚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(   Ú	neighbors©r   Úvr   r   r   r   =   s   € z%test_random_graphs.<locals>.<genexpr>c                 3   s    | ]}|ˆ v V  qd S r   r   r7   )Úneighbors_of_MISr   r   r   >   s   € N)r3   r   Úerdos_renyi_graphÚrandomr
   ÚsubgraphÚnumber_of_edgesr(   Úunionr   ÚnodesÚ
difference)ÚiÚISr   )r   r9   r   Útest_random_graphs6   s   
*ûrC   )Ú__doc__r;   r   Únetworkxr   r   ÚmarkÚparametrizeÚcomplete_graphr   r"   r+   r4   rC   r   r   r   r   Ú<module>   s    
