
    h
                     <    S SK r S SKr " S S5      r " S S5      rg)    Nc                   H    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)TestMinEdgeCover   z4Tests for :func:`networkx.algorithms.min_edge_cover`c                 v    [         R                  " 5       n[         R                  " U5      [        5       :X  d   eg N)nxGraphmin_edge_coversetselfGs     Y/var/www/html/env/lib/python3.13/site-packages/networkx/algorithms/tests/test_covering.pytest_empty_graph!TestMinEdgeCover.test_empty_graph	   s(    HHJ  #su,,,    c                     [         R                  " 5       nUR                  SS5        [         R                  " U5      S1:X  d   eg )Nr   r   r   )r   r	   add_edger
   r   s     r   test_graph_with_loop%TestMinEdgeCover.test_graph_with_loop   s6    HHJ	

1a  #x///r   c                     [         R                  " 5       nUR                  S5        [        R                  " [         R
                  SS9   [         R                  " U5        S S S 5        g ! , (       d  f       g = f)N   zFGraph has a node with no edge incident on it, so no edge cover exists.)match)r   r	   add_nodepytestraisesNetworkXExceptionr
   r   s     r   test_graph_with_isolated_v+TestMinEdgeCover.test_graph_with_isolated_v   sP    HHJ	

1]]  Z
 a 	
 
 
s   
A**
A8c                 r    [         R                  " S/5      n[         R                  " U5      S1S14;   d   eg )Nr   r   r   r   )r   r	   r
   r   s     r   test_graph_single_edge'TestMinEdgeCover.test_graph_single_edge   s4    HHfX  #6(';;;;r   c                     [         R                  " S5      n[         R                  " U5      n[        U5      S:X  d   eUR                   H  u  p4X44U;   a  M  XC4U;   a  M   e   g )N      )r   
path_graphr
   lenedges)r   r   	min_coveruvs        r   test_graph_two_edge_path)TestMinEdgeCover.test_graph_two_edge_path   s[    MM!%%a(	9~"""GGDA6Y&1&I*=== r   c                    [         R                  " 5       nUR                  / SQSS9  UR                  / SQSS9  UR                  / SQ5        [         R                  " U[         R
                  R                  R                  R                  5      n[         R                  " X5      (       d   e[        U5      S:X  d   e[         R                  " U5      n[         R                  " X5      (       d   e[        U5      S:X  d   eg )	N)r   r(   r'      r   )	bipartite)abcr   ))r   r4   )r   r5   )r(   r5   )r(   r6   )r'   r6   )r2   r4      r2   )r   r	   add_nodes_fromadd_edges_fromr
   
algorithmsr3   matchingeppstein_matchingis_edge_coverr*   )r   r   r,   
min_cover2s       r   test_bipartite_explicit(TestMinEdgeCover.test_bipartite_explicit&   s    HHJ	3	A6	UV%%r}}&&//AA
	 ----9~"""&&q)
....:!###r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " X5      (       d   e[	        U5      S:X  d   eg )N
      r   complete_graphr
   r=   r*   r   r   r,   s      r   test_complete_graph_even)TestMinEdgeCover.test_complete_graph_even6   K    b!%%a(	----9~"""r   c                     [         R                  " S5      n[         R                  " U5      n[         R                  " X5      (       d   e[	        U5      S:X  d   eg )N   r   rD   rF   s      r   test_complete_graph_odd(TestMinEdgeCover.test_complete_graph_odd<   rI   r    N)__name__
__module____qualname____firstlineno____doc__r   r   r   r$   r/   r?   rG   rL   __static_attributes__rN   r   r   r   r      s-    >-0
!<>$ ##r   r   c                   *    \ rS rSrSrS rS rS rSrg)TestIsEdgeCoverC   z3Tests for :func:`networkx.algorithms.is_edge_cover`c                 z    [         R                  " 5       n[         R                  " U[        5       5      (       d   eg r   )r   r	   r=   r   r   s     r   r    TestIsEdgeCover.test_empty_graphF   s(    HHJ35))))r   c                     [         R                  " 5       nUR                  SS5        [         R                  " US15      (       d   eg )Nr   r   r   r   r	   r   r=   r   s     r   r   $TestIsEdgeCover.test_graph_with_loopJ   s6    HHJ	

1aF8,,,,r   c                 N   [         R                  " 5       nUR                  SS5        [         R                  " USS15      (       d   e[         R                  " USS15      (       d   e[         R                  " US15      (       d   e[         R                  " US15      (       a   eg )Nr   r   r   r[   r"   r#   r\   r   s     r   r$   &TestIsEdgeCover.test_graph_single_edgeO   s    HHJ	

1aFF#34444FF#34444F8,,,,##Ax00000r   rN   N)	rO   rP   rQ   rR   rS   r   r   r$   rT   rN   r   r   rV   rV   C   s    =*-
1r   rV   )r   networkxr   r   rV   rN   r   r   <module>ra      s      :# :#z1 1r   