
    fiI                         d Z ddlZddlZddlZd Zej                            d ej        d           ej        d          g          d             Z	d Z
d	 Zd
 Zd ZdS )z4
Tests for maximal (not maximum) independent sets.

    Nc                  j    t          j        d          } t          j        | d          g dk    sJ d S )N      )seed)r   r            )nxempty_graphmaximal_independent_setGs    z/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/algorithms/tests/test_mis.pytest_random_seedr      s<    
qA%aa000OOOCCCCCC    graphr   7   c                 B     t           fd D                       sJ dS )z+Maximal independent set for complete graphsc              3   N   K   | ]}t          j        |g          |gk    V   d S N)r
   r   ).0nr   s     r   	<genexpr>ztest_K5.<locals>.<genexpr>   s9      LLr)%!55!<LLLLLLr   N)all)r   s   `r   test_K5r      s4     LLLLeLLLLLLLLLLr   c                  V   t          j                    } t          j        t           j        t           j        | dg           t          j        t           j        t           j        | ddg           t          j        t           j        t           j        t          j        |                      dS )z!Bad input should raise exception.SmithSalviatiPazziN)r
   florentine_families_graphpytestraisesNetworkXUnfeasibler   NetworkXNotImplementedDiGraphr   s    r   test_exceptionsr&      s    
$&&A
M"')CQ	RRR
M
r91z7>S   M"+R-GTUWWWWWr   c                      t          j                    } t          j        | ddg          }t          |          h dk    sJ d S )NMediciBischeri>   r   Ginorir(   r)   
CastellaniLamberteschi)r
   r    r   setr   indeps     r   test_florentine_familyr0   #   s]    
$&&A&q8Z*@AAEu::         r   c                      t          j        dd          } t          j        | g d          }t          |          t	          t          d                    k    sJ d S )N   "   )r	   r   	   
   )r
   complete_bipartite_graphr   sortedlistranger.   s     r   test_bipartiter:   0   sS    
#B++A&q---88E%==DrOO++++++r   c                     t          ddd          D ]} t          j        | dz  dz   t          j                              t          j                  }                    |                                          dk    sJ t          j        fd|D              t          fdt          
                                                              |          D                       sJ dS )zrGenerate 5 random graphs of different types and sizes and
    make sure that all sets are independent and maximal.r   2   r5   r   c              3   \   K   | ]&}t                              |                    V  'd S r   )r-   	neighbors)r   vr   s     r   r   z%test_random_graphs.<locals>.<genexpr>=   s5      !B!B!#akk!nn"5"5!B!B!B!B!B!Br   c              3       K   | ]}|v V  	d S r    )r   r?   nbrs_of_MISs     r   r   z%test_random_graphs.<locals>.<genexpr>>   s(      KK1#KKKKKKr   N)r9   r
   erdos_renyi_graphrandomr   subgraphnumber_of_edgesr-   unionr   nodes
difference)iISr   rB   s     @@r   test_random_graphsrL   6   s     1b" L L R!V]__=='**zz"~~--//14444i!B!B!B!Br!B!B!BCKKKKS^^-F-Fr-J-JKKKKKKKKKL Lr   )__doc__rD   r!   networkxr
   r   markparametrizecomplete_graphr   r&   r0   r:   rL   rA   r   r   <module>rR      s    
      D D D
 #42#4Q#7#79J9J29N9N"OPPM M QPM
X X X
 
 
, , ,L L L L Lr   