
    h                          S r SSKr " S S5      r " S S5      r " S S5      r " S	 S
5      r " S S5      r " S S5      r " S S5      r	 " S S5      r
g)z:Unit tests for the :mod:`networkx.algorithms.cuts` module.    Nc                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TestCutSize   z7Unit tests for the :func:`~networkx.cut_size` function.c                     [         R                  " SS5      n1 Skn1 Skn[         R                  " XU5      S:X  d   e[         R                  " XU5      S:X  d   eg)z%Tests that the cut size is symmetric.   r      r               r      r
   Nnxbarbell_graphcut_sizeselfGSTs       U/var/www/html/env/lib/python3.13/site-packages/networkx/algorithms/tests/test_cuts.pytest_symmetricTestCutSize.test_symmetric	   P    Q"{{1#q((({{1#q(((    c                     [         R                  " SS5      n1 Skn1 Skn[         R                  " XU5      S:X  d   e[         R                  " XU5      S:X  d   eg)z!Tests for a cut of a single edge.r   r      r   r	   r      r   r
   r   r	   Nr   r   s       r   test_single_edgeTestCutSize.test_single_edge   r   r   c                     [         R                  " SS5      R                  5       n1 Skn1 Skn[         R                  " XU5      S:X  d   e[         R                  " XU5      S:X  d   eg)z9Tests that each directed edge is counted once in the cut.r   r   r   r   r   Nr   r   to_directedr   r   s       r   test_directedTestCutSize.test_directed   Y    Q"..0{{1#q((({{1#q(((r   c                     [         R                  " SS5      R                  5       n1 Skn1 Skn[         R                  " XU5      S:X  d   e[         R                  " XU5      S:X  d   eg)z2Tests that a cut in a directed graph is symmetric.r   r   r   r      Nr"   r   s       r   test_directed_symmetric#TestCutSize.test_directed_symmetric!   r&   r   c                 t    [         R                  " SS/5      n[         R                  " US1S15      S:X  d   eg)z5Tests that parallel edges are each counted for a cut.ababr   N)r   
MultiGraphr   r   r   s     r   test_multigraphTestCutSize.test_multigraph)   s3    MM4,'{{1secU+q000r    N)__name__
__module____qualname____firstlineno____doc__r   r   r$   r)   r1   __static_attributes__r3   r   r   r   r      s    A))))1r   r   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)

TestVolume/   z5Unit tests for the :func:`~networkx.volume` function.c                 n    [         R                  " S5      n[         R                  " USS15      S:X  d   eg )Nr
   r   r	   )r   cycle_graphvolumer0   s     r   
test_graphTestVolume.test_graph2   s-    NN1yyQF#q(((r   c                 r    [         R                  " / SQ5      n[         R                  " USS15      S:X  d   eg )Nr   r	   r	   r   r   r   )r   r   r   r	   r   )r   DiGraphr?   r0   s     r   test_digraphTestVolume.test_digraph6   s.    JJ78yyQF#q(((r   c                     [        [        R                  " S5      R                  5       5      n[        R                  " US-  5      n[        R
                  " USS15      S:X  d   eg )Nr
   r   r   r	   r(   )listr   r>   edgesr/   r?   r   rL   r   s      r   r1   TestVolume.test_multigraph:   sM    R^^A&,,./MM%!)$yyQF#q(((r   c                 |    / SQn[         R                  " US-  5      n[         R                  " USS15      S:X  d   eg )NrC   r   r   r	   r
   )r   MultiDiGraphr?   rM   s      r   test_multidigraphTestVolume.test_multidigraph?   s6    0OOEAI&yyQF#q(((r   c                     [         R                  " SS5      n[         R                  " U1 Sk5      S:X  d   e[         R                  " U1 Sk5      S:X  d   eg )Nr   r   r      r   )r   r   r?   r0   s     r   test_barbellTestVolume.test_barbellD   sF    Q"yyI&!+++yyI&!+++r   r3   N)r4   r5   r6   r7   r8   r@   rH   r1   rQ   rU   r9   r3   r   r   r;   r;   /   s    ?)))
)
,r   r;   c                   $    \ rS rSrSrS rS rSrg)TestNormalizedCutSizeJ   zBUnit tests for the :func:`~networkx.normalized_cut_size` function.c                     [         R                  " S5      nSS1n[        U5      U-
  n[         R                  " XU5      nSnXT:X  d   eU[         R                  " X5      :X  d   eg )Nr
   r	   r         ?)r   
path_graphsetnormalized_cut_sizer   r   r   r   sizeexpecteds         r   r@    TestNormalizedCutSize.test_graphM   sb    MM!FFQJ%%aA.*211!7777r   c                     [         R                  " / SQ5      nSS1n[        U5      U-
  n[         R                  " XU5      nSnXT:X  d   eU[         R                  " X5      :X  d   eg )N)rD   rE   rF   r	   r   g      @)r   rG   r]   r^   r_   s         r   r$   #TestNormalizedCutSize.test_directedX   sc    JJ/0FFQJ%%aA.*211!7777r   r3   N)r4   r5   r6   r7   r8   r@   r$   r9   r3   r   r   rX   rX   J   s    L	8	8r   rX   c                       \ rS rSrSrS rSrg)TestConductanced   z:Unit tests for the :func:`~networkx.conductance` function.c                     [         R                  " SS5      nS1nS1n[         R                  " XU5      nSnXT:X  d   e[         R                  " SS5      n1 Skn[         R                  " Xg5      S:X  d   eg )Nr   r   r
   皙?r   r   g$I$I?)r   r   conductance)r   r   r   r   rj   ra   G2S2s           r   r@   TestConductance.test_graphg   ss    Q" CCnnQ1-&&&a#~~b%...r   r3   Nr4   r5   r6   r7   r8   r@   r9   r3   r   r   rf   rf   d   s
    D/r   rf   c                       \ rS rSrSrS rSrg)TestEdgeExpansionw   z=Unit tests for the :func:`~networkx.edge_expansion` function.c                     [         R                  " SS5      n[        [        S5      5      n[        U5      U-
  n[         R                  " XU5      nSnXT:X  d   eU[         R                  " X5      :X  d   eg )Nr   r   ri   )r   r   r]   rangeedge_expansionr   r   r   r   	expansionra   s         r   r@   TestEdgeExpansion.test_graphz   sj    Q"aMFQJ%%aA.	$$$2,,Q2222r   r3   Nrn   r3   r   r   rp   rp   w   s
    G3r   rp   c                       \ rS rSrSrS rSrg)TestNodeExpansion   z=Unit tests for the :func:`~networkx.node_expansion` function.c                 v    [         R                  " S5      n1 Skn[         R                  " X5      nSnXC:X  d   eg )Nr(   r   g?)r   r\   node_expansionr   r   r   rv   ra   s        r   r@   TestNodeExpansion.test_graph   s8    MM!%%a+	 $$$r   r3   Nrn   r3   r   r   ry   ry      s
    G%r   ry   c                       \ rS rSrSrS rSrg)TestBoundaryExpansion   zAUnit tests for the :func:`~networkx.boundary_expansion` function.c                     [         R                  " S5      n[        [        S5      5      n[         R                  " X5      nSnXC:X  d   eg )N
   r
   r[   )r   complete_graphr]   rs   boundary_expansionr}   s        r   r@    TestBoundaryExpansion.test_graph   sB    b!aM))!/	 $$$r   r3   Nrn   r3   r   r   r   r      s
    K%r   r   c                       \ rS rSrSrS rSrg)TestMixingExpansion   z?Unit tests for the :func:`~networkx.mixing_expansion` function.c                     [         R                  " SS5      n[        [        S5      5      n[        U5      U-
  n[         R                  " XU5      nSnXT:X  d   eg )Nr   r   gaa?)r   r   r]   rs   mixing_expansionru   s         r   r@   TestMixingExpansion.test_graph   sS    Q"aMFQJ''a0	 )$$$r   r3   Nrn   r3   r   r   r   r      s
    I	%r   r   )r8   networkxr   r   r;   rX   rf   rp   ry   r   r   r3   r   r   <module>r      s\    @ &1 &1R, ,68 84/ /&3 3
% 
%
% 
%% %r   