
    Vh(                         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                  j                  dg d      e j                  j                  dg d      d               Zy)    Nc                      t        j                  dd      } t        j                  |       }t        j                  | |      sJ t        j                  | d      }t        j                  | |      sJ y )Nd   g?r   
start_with)nxgnp_random_graphdominating_setis_dominating_setGDs     Y/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominating.pytest_dominating_setr      sb    
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 y)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      s`     
		1	Br  $%***			1	Br  $%***r   c                      t        j                  t        j                        5  t        j                  d      } t        j
                  | d      }d d d        y # 1 sw Y   y xY w)Nr   
   r   )pytestraisesr   NetworkXError
path_graphr	   r   s     r   test_raise_dominating_setr       sI    	r''	( 0MM!aB/0 0 0s   -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 y )Nr   r      r      )r   r   r
   )r   ds     r   test_is_dominating_setr%      sn    
aA	
AA1%%%	
AA1%%%	
A##Aq))))r   c                      t        j                  d      } | j                  g d       t        j                  | h d      sJ t        j                  | ddh      sJ t        j                  | ddh      sJ y)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+   (   si    
qA-.9---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 y )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	
AA??2;;q!,-----a3333r   c                  r    t        j                         } dt        t        j                  |             k(  sJ y )Nr   )r   Graphr   connected_dominating_setr*   s    r   (test_null_graph_connected_dominating_setr4   <   s+    

AB//23333r   c                      t        j                         } | j                  d       t        j                  |       }t        j                  | |      sJ y )Nr   )r   r2   add_noder3   r-   )r   CDs     r   /test_single_node_graph_connected_dominating_setr8   A   s>    

AJJqM		$	$Q	'B))!R000r   c                  
   t        j                  t        j                        5  t        j                         } | j                  d       | j                  d       t        j                  |        d d d        y # 1 sw Y   y xY w)Nr   r#   )r   r   r   r   r2   r6   r3   r*   s    r   6test_raise_disconnected_graph_connected_dominating_setr:   H   sX    	r''	( 'HHJ	

1	

1
##A&	' ' 's   AA99Bc                      t        j                  d      } dt        t        j                  |             k(  sJ t        j                  d      }dt        t        j                  |            k(  sJ y )Nr   r      )r   r   r   r3   )r   K7s     r   ,test_complete_graph_connected_dominating_setr>   P   s^    			1	BB//34444			1	BB//34444r   c                  j    t        j                  g d      } h dt        j                  |       k(  sJ y )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   s0    
	
	A& !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 y )N)rF   )r   connected_watts_strogatz_graphr3   r-   )nkprF   r   r   s         r   <test_connected_watts_strogatz_graph_connected_dominating_setrO   n   s@     	))!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*+44
1'5C. -"QR0 S .0r   