
    h                     @    S r SSKrSSKrSSKrSSKJr   " S S5      rg)zEUnit tests for the :mod:`networkx.algorithms.structuralholes` module.    N)dispatch_interfacec                   f    \ 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S rS rS rS rSrg)TestStructuralHoles   ah  Unit tests for computing measures of structural holes.

The expected values for these functions were originally computed using the
proprietary software `UCINET`_ and the free software `IGraph`_ , and then
computed by hand to make sure that the results are correct.

.. _UCINET: https://sites.google.com/site/ucinetsoftware/home
.. _IGraph: http://igraph.org/

c                    [         R                  " 5       U l        U R                  R                  / SQ5        SSSSS.U l        [         R
                  " 5       U l        U R                  R                  / SQ5        SSSSSSSSSS	S.
U l        g )
N))r      )r      )r   r   )r	   r   r	   r   )
)AB)r
   F)r
   G)r
   E)r   r   )r   r   )r   r   )r   D)r   r   )r   C            
   )nxDiGraphr   add_edges_from	D_weightsGraphr   	G_weights)selfs    `/var/www/html/env/lib/python3.13/site-packages/networkx/algorithms/tests/test_structuralholes.pysetup_method TestStructuralHoles.setup_method   s    >?"#Q1E	
 
    c                     [         R                  " U R                  5      nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eg )Nr   g?5^I?MbP?absr   r	   gMbX9?)r   
constraintr   pytestapproxr   r%   s     r   test_constraint_directed,TestStructuralHoles.test_constraint_directed8   sk    ]]466*
!}e >>>>!}e >>>>!}e >>>>r    c                     [         R                  " U R                  5      nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eg )Nr   gy&1?r"   r#   r   r	   )r   effective_sizer   r&   r'   r   r,   s     r   test_effective_size_directed0TestStructuralHoles.test_effective_size_directed>   sp    **4662a FMM%T$BBBBa FMM%T$BBBBa FMM!$>>>>r    c                 X   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USS9nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS	   [        R                  " S
SS9:X  d   eg )Nweightr1   r   gzG?r"   r#   r   g}?5^I?r	   g?5^I?)r   copyr   set_edge_attributesr   r%   r&   r'   )r   r   r%   s      r   !test_constraint_weighted_directed5TestStructuralHoles.test_constraint_weighted_directedD   s    FFKKM
q..(;]]1X6
!}e >>>>!}e >>>>!}e >>>>r    c                 X   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USS9nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS	   [        R                  " SSS9:X  d   eg )
Nr1   r2   r   gOn?r"   r#   r   gS?r	   )r   r3   r   r4   r   r,   r&   r'   )r   r   r,   s      r   %test_effective_size_weighted_directed9TestStructuralHoles.test_effective_size_weighted_directedL   s    FFKKM
q..(;**1X>a FMM%T$BBBBa FMM%T$BBBBa FMM!$>>>>r    c                     [         R                  " U R                  5      nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eg )	Nr   g?r"   r#   r
   g
ףp=
?r   r   )r   r%   r   r&   r'   r(   s     r   test_constraint_undirected.TestStructuralHoles.test_constraint_undirectedT   sk    ]]466*
#&--4"@@@@#&--4"@@@@#&--t"<<<<r    c                     [         R                  " U R                  5      nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eg )	Nr   Gz@{Gz?r#   r
         @r   r   )r   r,   r   r&   r'   r-   s     r   'test_effective_size_undirected_borgatti;TestStructuralHoles.test_effective_size_undirected_borgattiZ   sp    **4662c"fmmDd&CCCCc"fmmDd&CCCCc"fmmA4&@@@@r    c                 F   U R                   R                  5       n[        R                  " USS5        [        R                  " USS9nUS   [
        R                  " SSS9:X  d   eUS   [
        R                  " S	SS9:X  d   eUS
   [
        R                  " SSS9:X  d   eg )Nr   r1   r2   r   r>   r?   r#   r
   r@   r   )r   r3   r   r4   r,   r&   r'   r   r   r,   s      r   test_effective_size_undirected2TestStructuralHoles.test_effective_size_undirected`   s    FFKKM
q!X.**1X>c"fmmDd&CCCCc"fmmDd&CCCCc"fmmA4&@@@@r    c                 X   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USS9nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS	   [        R                  " S
SS9:X  d   eg )Nr1   r2   r   gA`"?r"   r#   r
   gq=
ףp?r   r   )r   r3   r   r4   r   r%   r&   r'   r   r   r%   s      r   #test_constraint_weighted_undirected7TestStructuralHoles.test_constraint_weighted_undirectedh   s    FFKKM
q..(;]]1X6
#&--4"@@@@#&--4"@@@@#&--t"<<<<r    c                 X   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USS9nUS   [        R                  " SSS9:X  d   eUS   [        R                  " SSS9:X  d   eUS	   [        R                  " S
SS9:X  d   eg )Nr1   r2   r   gzG@r?   r#   r
   g(\@r   r   )r   r3   r   r4   r   r,   r&   r'   rD   s      r   'test_effective_size_weighted_undirected;TestStructuralHoles.test_effective_size_weighted_undirectedp   s    FFKKM
q..(;**1X>c"fmmDd&CCCCc"fmmDd&CCCCc"fmmA4&@@@@r    c                     U R                   R                  5       nUR                  S5        [        R                  " U5      n[
        R                  " US   5      (       d   eg Nr   )r   r3   add_noder   r%   mathisnanrH   s      r   test_constraint_isolated,TestStructuralHoles.test_constraint_isolatedx   sC    FFKKM	

1]]1%
zz*Q-((((r    c                    U R                   R                  5       nUR                  S5        [        R                  " XR
                  S5        [        R                  " USS9n[        R                  " US   5      (       d   eg )Nr   r1   r2   )	r   r3   rP   r   r4   r   r,   rQ   rR   rD   s      r   test_effective_size_isolated0TestStructuralHoles.test_effective_size_isolated~   s\    FFKKM	

1
q..(;**1X>zz.+,,,,r    c                     U R                   R                  5       nUR                  S5        [        R                  " U5      n[
        R                  " US   5      (       d   eg rO   )r   r3   rP   r   r,   rQ   rR   rD   s      r   %test_effective_size_borgatti_isolated9TestStructuralHoles.test_effective_size_borgatti_isolated   sF    FFKKM	

1**1-zz.+,,,,r    )r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   r)   r.   r5   r8   r;   rA   rE   rI   rL   rS   rV   rY   __static_attributes__ r    r   r   r      sL    	
B????=AA=A)--r    r   )r_   rQ   r&   networkxr   networkx.classes.testsr   r   ra   r    r   <module>rd      s     K    5~- ~-r    