
    fi(                         d dl Z d dlZd Zd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Ze j                            dg d          e j                            dg d          d                         ZdS )    Nc                      t          j        dd          } t          j        |           }t          j        | |          sJ t          j        | d          }t          j        | |          sJ d S )Nd   g?r   
start_with)nxgnp_random_graphdominating_setis_dominating_setGDs     /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/algorithms/tests/test_dominating.pytest_dominating_setr      sq    
C%%A
!A1%%%%%
!***A1%%%%%%%    c                      t          j        d          } t          t          j        |                     dk    sJ t          j        d          }t          t          j        |                    dk    sJ dS )znIn complete graphs each node is a dominating set.
    Thus the dominating set has to be of cardinality 1.
             N)r   complete_graphlenr	   )K4K5s     r   test_completer      sr     
	1		Br $$%%****		1		Br $$%%******r   c                      t          j        t          j                  5  t          j        d          } t          j        | d          }d d d            d S # 1 swxY w Y   d S )Nr   
   r   )pytestraisesr   NetworkXError
path_graphr	   r   s     r   test_raise_dominating_setr       s    	r'	(	( 0 0M!aB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   +AAAc                      t          j        d          } ddh}t          j        | |          sJ ddh}t          j        | |          sJ dh}t          j        | |          rJ d S )Nr   r      r      )r   r   r
   )r   ds     r   test_is_dominating_setr%      s{    
aA	
AA1%%%%%	
AA1%%%%%	
A#Aq)))))))r   c                      t          j        d          } |                     g d           t          j        | h d          sJ t          j        | ddh          sJ t          j        | ddh          sJ dS )z9Example from https://en.wikipedia.org/wiki/Dominating_setr   ))r   r   r   r   )r#   r   >   r"   r   r   r   r#   r   N)r   cycle_graphadd_edges_fromr
   r   s    r    test_wikipedia_is_dominating_setr+   (   s    
qA---...999-----Aq6*****Aq6*******r   c                  "   t          j        d          } ddh}t          j        | |          sJ ddh}t          j        | |          rJ ddh}t          j        t          j        | |                    sJ t          j        | |          rJ d S )Nr   r   r#   r"   )r   r   is_connected_dominating_setis_connectedsubgraphr   s     r    test_is_connected_dominating_setr0   1   s    
aA	
AA)!Q/////	
AA-a33333	
AA?2;q!,,------a3333333r   c                  z    t          j                    } dt          t          j        |                     k    sJ d S )Nr   )r   Graphr   connected_dominating_setr*   s    r   (test_null_graph_connected_dominating_setr4   <   s7    


AB/2233333333r   c                      t          j                    } |                     d           t          j        |           }t          j        | |          sJ d S )Nr   )r   r2   add_noder3   r-   )r   CDs     r   /test_single_node_graph_connected_dominating_setr8   A   sK    


AJJqMMM		$Q	'	'B)!R0000000r   c                     t          j        t          j                  5  t          j                    } |                     d           |                     d           t          j        |            d d d            d S # 1 swxY w Y   d S )Nr   r#   )r   r   r   r   r2   r6   r3   r*   s    r   6test_raise_disconnected_graph_connected_dominating_setr:   H   s    	r'	(	( ' 'HJJ	

1	

1
#A&&&	' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AA>>BBc                      t          j        d          } dt          t          j        |                     k    sJ t          j        d          }dt          t          j        |                    k    sJ d S )Nr   r      )r   r   r   r3   )r   K7s     r   ,test_complete_graph_connected_dominating_setr>   P   sp    		1		BB/33444444		1		BB/3344444444r   c                  j    t          j        g d          } h dt          j        |           k    sJ d S )N))r   r#   )r   r"   r'   )r   r   )r      )r#   r<   )r"      )r   	   )r   r   )r@      )r<      )rA   rD   )rB   rD   )r   rD   )rC   rD   >   r   r#   r"   r   r   r@   r<   )r   r2   r3   r*   s    r   /test_docstring_example_connected_dominating_setrE   W   sL    
	
 	
 	
	 	A& !  B$?$B$BBBBBBBr   seed)r         zn,k,p))r   r"   g?)r   r   gffffff?)i  2   g      ?c                     t          j        | |||          }t          j        |          }t          j        ||          sJ d S )N)rF   )r   connected_watts_strogatz_graphr3   r-   )nkprF   r   r   s         r   <test_connected_watts_strogatz_graph_connected_dominating_setrO   n   sL     	)!Q===A
#A&&A)!Q///////r   )r   networkxr   r   r   r    r%   r+   r0   r4   r8   r:   r>   rE   markparametrizerO    r   r   <module>rT      s#       & & &+ + +0 0 0* * *+ + +4 4 44 4 4
1 1 1' ' '5 5 5C C C. --"Q"Q"QRR0 0 SR .-0 0 0r   