
    sh                     ~   S r SSKrSSKrSSKrSSKJr   " S S5      r " S S\5      r\R                  R                  S\R                  \R                  45      \R                  R                  S	SS/45      S
 5       5       r\R                  R                  S\R                  \R                  45      \R                  R                  S	SS/45      S 5       5       r\R                  R                  S\R                  \R                  45      S 5       r\R                  R                  S\R                  \R                  45      S 5       r\R                  R                  S\R                  \R                  45      S 5       r\R                  R                  S\R                  \R                  45      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)TestStructuralHolesNoScipy   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        [        U R                  5      U l	        [        U R                  5      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listDnodesGnodes)selfs    ڂ/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/networkx/algorithms/tests/test_structuralholes.pysetup_method'TestStructuralHolesNoScipy.setup_method   s    >?"#Q1E	
 
 466l466l    c                 
   [         R                  " U R                  U R                  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nodesr   g?5^I?MbP?absr   r	   gMbX9?)r   
constraintr   r   pytestapproxr   r*   s     r    test_constraint_directed3TestStructuralHolesNoScipy.test_constraint_directed:   sq    ]]466=
!}e >>>>!}e >>>>!}e >>>>r#   c                 
   [         R                  " U R                  U R                  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%   r   gy&1?r'   r(   r   r	   )r   effective_sizer   r   r+   r,   r   r1   s     r    test_effective_size_directed7TestStructuralHolesNoScipy.test_effective_size_directed@   sv    **466Ea FMM%T$BBBBa FMM%T$BBBBa FMM!$>>>>r#   c                 n   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USU R                  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r6   r&   r   gzG?r'   r(   r   g}?5^I?r	   g?5^I?)	r   copyr   set_edge_attributesr   r*   r   r+   r,   )r   r   r*   s      r    !test_constraint_weighted_directed<TestStructuralHolesNoScipy.test_constraint_weighted_directedF   s    FFKKM
q..(;]]1XT[[I
!}e >>>>!}e >>>>!}e >>>>r#   c                 n   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USU R                  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 )
Nr6   r7   r   gOn?r'   r(   r   gS?r	   )	r   r8   r   r9   r   r1   r   r+   r,   )r   r   r1   s      r    %test_effective_size_weighted_directed@TestStructuralHolesNoScipy.test_effective_size_weighted_directedN   s    FFKKM
q..(;**1XT[[Qa FMM%T$BBBBa FMM%T$BBBBa FMM!$>>>>r#   c                 
   [         R                  " U R                  U R                  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%   r   g?r'   r(   r
   g
ףp=
?r   r   )r   r*   r   r   r+   r,   r-   s     r    test_constraint_undirected5TestStructuralHolesNoScipy.test_constraint_undirectedV   sq    ]]466=
#&--4"@@@@#&--4"@@@@#&--t"<<<<r#   c                 
   [         R                  " U R                  U R                  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%   r   Gz@{Gz?r(   r
         @r   r   )r   r1   r   r   r+   r,   r2   s     r    'test_effective_size_undirected_borgattiBTestStructuralHolesNoScipy.test_effective_size_undirected_borgatti\   sv    **466Ec"fmmDd&CCCCc"fmmDd&CCCCc"fmmA4&@@@@r#   c                 \   U R                   R                  5       n[        R                  " USS5        [        R                  " USU R
                  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   r6   r7   r   rC   rD   r(   r
   rE   r   )r   r8   r   r9   r1   r   r+   r,   r   r   r1   s      r    test_effective_size_undirected9TestStructuralHolesNoScipy.test_effective_size_undirectedb   s    FFKKM
q!X.**1XT[[Qc"fmmDd&CCCCc"fmmDd&CCCCc"fmmA4&@@@@r#   c                 n   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USU R                  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 )Nr6   r7   r   gA`"?r'   r(   r
   gq=
ףp?r   r   )	r   r8   r   r9   r   r*   r   r+   r,   r   r   r*   s      r    #test_constraint_weighted_undirected>TestStructuralHolesNoScipy.test_constraint_weighted_undirectedj   s    FFKKM
q..(;]]1XT[[I
#&--4"@@@@#&--4"@@@@#&--t"<<<<r#   c                 n   U R                   R                  5       n[        R                  " XR                  S5        [        R
                  " USU R                  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 )Nr6   r7   r   gzG@rD   r(   r
   g(\@r   r   )	r   r8   r   r9   r   r1   r   r+   r,   rI   s      r    'test_effective_size_weighted_undirectedBTestStructuralHolesNoScipy.test_effective_size_weighted_undirectedr   s    FFKKM
q..(;**1XT[[Q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                  " XR
                  S/-   S9n[        R                  " US   5      (       d   eg Nr   r%   )r   r8   add_noder   r*   r   mathisnanrM   s      r    test_constraint_isolated3TestStructuralHolesNoScipy.test_constraint_isolatedz   sN    FFKKM	

1]]1KK1#,=>
zz*Q-((((r#   c                 $   U R                   R                  5       nUR                  S5        [        R                  " XR
                  S5        [        R                  " USU R                  S/-   S9n[        R                  " US   5      (       d   eg )Nr   r6   r7   )
r   r8   rU   r   r9   r   r1   r   rV   rW   rI   s      r    test_effective_size_isolated7TestStructuralHolesNoScipy.test_effective_size_isolated   sk    FFKKM	

1
q..(;**1XT[[TUSVEVWzz.+,,,,r#   c                     U R                   R                  5       nUR                  S5        [        R                  " XR
                  S/-   S9n[        R                  " US   5      (       d   eg rT   )r   r8   rU   r   r1   r   rV   rW   rI   s      r    %test_effective_size_borgatti_isolated@TestStructuralHolesNoScipy.test_effective_size_borgatti_isolated   sQ    FFKKM	

1**1KK1#4EFzz.+,,,,r#   )r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__r!   r.   r3   r:   r=   r@   rF   rJ   rN   rQ   rX   r[   r^   __static_attributes__ r#   r    r   r      sL    	!#F????=AA=A)--r#   r   c                   @    \ rS rSr\R
                  " S5        SrSrSrg)TestStructuralHoles   scipyNrf   )	r`   ra   rb   rc   r+   importorskipr   r   re   rf   r#   r    rh   rh      s    
 FFr#   rh   graphr&   c                 z    U " S/5      n[         R                  " [        R                  " X!S9S   5      (       d   eg)EBehavior consistent with isolated node without self-loop. See gh-6916r   r   r%   r   N)rV   rW   r   r1   rl   r&   r   s      r    /test_effective_size_isolated_node_with_selflooprq      s4     	vhA::b''7:;;;;r#   c                     U " 5       nUR                  S/5        [        R                  " [        R                  " X!S9S   5      (       d   eg)Weighted self-loop. See gh-6916r   r   r   r%   r   N)add_weighted_edges_fromrV   rW   r   r1   rp   s      r    8test_effective_size_isolated_node_with_selfloop_weightedrv      s@     	Azl+::b''7:;;;;r#   c                 ~    U " S/5      n[         R                  " [        R                  " U5      S   5      (       d   eg)rn   ro   r   N)rV   rW   r   r*   rl   r   s     r    +test_constraint_isolated_node_with_selfloopry      s2     	vhA::bmmA&q)****r#   c                 T    U " S/5      n[         R                  " US/S9S   S:X  d   eg)rn   ro   r   r%   r   N)r   r*   rx   s     r    =test_constraint_isolated_node_with_selfloop_using_nodes_kwargr{      s/     	vhA==1#&q)Q...r#   c                     U " 5       nUR                  S/5        [        R                  " [        R                  " U5      S   5      (       d   eg)rs   rt   r   N)ru   rV   rW   r   r*   rx   s     r    4test_constraint_isolated_node_with_selfloop_weightedr}      s>     	Azl+::bmmA&q)****r#   c                 t    U " 5       nUR                  S/5        [        R                  " US/S9S   S:X  d   eg )Nrt   r   r%   r   )ru   r   r*   rx   s     r    Ftest_constraint_isolated_node_with_selfloop_weighted_using_nodes_kwargr      s9    Azl+==1#&q)Q...r#   )rd   rV   r+   networkxr   networkx.classes.testsr   r   rh   markparametrizer   r   rq   rv   ry   r{   r}   r   rf   r#   r    <module>r      s   K    5@- @-F4  288RZZ"894!+.< / :< 288RZZ"894!+.< / :< 288RZZ"89+ :+ 288RZZ"89/ :/ 288RZZ"89+ :+ 288RZZ"89/ :/r#   