Ë
    D^(hª  ã                   ó@   — d Z ddlZddlZddlZddlmZ  G d„ d«      Zy)zEUnit tests for the :mod:`networkx.algorithms.structuralholes` module.é    N)Údispatch_interfacec                   ó^   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestStructuralHolesa€  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                 ó  — t        j                  «       | _        | j                  j                  g d¢«       dddddœ| _        t        j
                  «       | _        | j                  j                  g d¢«       dddddddddd	dœ
| _        y )
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    úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_structuralholes.pyÚsetup_methodz TestStructuralHoles.setup_method   s   € Ü—‘“ˆŒØ�‰×ÑÒ>Ô?Ø"#¨Q¸À1ÑEˆŒä—‘“ˆŒØ�‰×Ñòô	
ð ØØØØØØØØØñ
ˆ�ó    c                 óü   — t        j                  | j                  «      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚y )Nr   g?5^ºIð?çü©ñÒMbP?©Úabsr   r   gÓMbX9ö?)r   Ú
constraintr   ÚpytestÚapprox©r   r#   s     r   Útest_constraint_directedz,TestStructuralHoles.test_constraint_directed8   sk   € Ü—]‘] 4§6¡6Ó*ˆ
Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ð>Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ð>Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ñ>r   c                 óü   — t        j                  | j                  «      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚y )Nr   gyé&1¬ò?r    r!   r   r   )r   Úeffective_sizer   r$   r%   ©r   r)   s     r   Útest_effective_size_directedz0TestStructuralHoles.test_effective_size_directed>   sp   € Ü×*Ñ*¨4¯6©6Ó2ˆØ˜aÑ ¤F§M¡M°%¸TÔ$BÒBÐBÐBØ˜aÑ ¤F§M¡M°%¸TÔ$BÒBÐBÐBØ˜aÑ ¤F§M¡M°!¸Ô$>Ò>Ð>Ñ>r   c                 ób  — | j                   j                  «       }t        j                  || j                  d«       t        j
                  |d¬«      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d	   t        j                  d
d¬«      k(  sJ ‚y )NÚweight©r-   r   gáz®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_directedz5TestStructuralHoles.test_constraint_weighted_directedD   sŽ   € Ø�F‰F�K‰K‹MˆÜ
×Ñ˜q $§.¡.°(Ô;Ü—]‘] 1¨XÔ6ˆ
Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ð>Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ð>Ø˜!‰}¤§¡¨e¸Ô >Ò>Ð>Ñ>r   c                 ób  — | j                   j                  «       }t        j                  || j                  d«       t        j
                  |d¬«      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d	   t        j                  dd¬«      k(  sJ ‚y )
Nr-   r.   r   gßO�—nù?r    r!   r   g‡ÙÎ÷Sñ?r   )r   r/   r   r0   r   r)   r$   r%   )r   r   r)   s      r   Ú%test_effective_size_weighted_directedz9TestStructuralHoles.test_effective_size_weighted_directedL   s“   € Ø�F‰F�K‰K‹MˆÜ
×Ñ˜q $§.¡.°(Ô;Ü×*Ñ*¨1°XÔ>ˆØ˜aÑ ¤F§M¡M°%¸TÔ$BÒBÐBÐBØ˜aÑ ¤F§M¡M°%¸TÔ$BÒBÐBÐBØ˜aÑ ¤F§M¡M°!¸Ô$>Ò>Ð>Ñ>r   c                 óü   — t        j                  | j                  «      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚y )	Nr   gš™™™™™Ù?r    r!   r	   g
×£p=
ã?r   r   )r   r#   r   r$   r%   r&   s     r   Útest_constraint_undirectedz.TestStructuralHoles.test_constraint_undirectedT   sk   € Ü—]‘] 4§6¡6Ó*ˆ
Ø˜#‰¤&§-¡-°¸4Ô"@Ò@Ð@Ð@Ø˜#‰¤&§-¡-°¸4Ô"@Ò@Ð@Ð@Ø˜#‰¤&§-¡-°°tÔ"<Ò<Ð<Ñ<r   c                 óü   — t        j                  | j                  «      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚y )	Nr   ç®Gáz®@ç{®Gáz„?r!   r	   ç      @r   r   )r   r)   r   r$   r%   r*   s     r   Ú'test_effective_size_undirected_borgattiz;TestStructuralHoles.test_effective_size_undirected_borgattiZ   sp   € Ü×*Ñ*¨4¯6©6Ó2ˆØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°A¸4Ô&@Ò@Ð@Ñ@r   c                 óN  — | j                   j                  «       }t        j                  |dd«       t        j                  |d¬«      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  d	d¬«      k(  sJ ‚|d
   t        j                  dd¬«      k(  sJ ‚y )Nr   r-   r.   r   r7   r8   r!   r	   r9   r   )r   r/   r   r0   r)   r$   r%   ©r   r   r)   s      r   Útest_effective_size_undirectedz2TestStructuralHoles.test_effective_size_undirected`   s�   € Ø�F‰F�K‰K‹MˆÜ
×Ñ˜q ! XÔ.Ü×*Ñ*¨1°XÔ>ˆØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°A¸4Ô&@Ò@Ð@Ñ@r   c                 ób  — | j                   j                  «       }t        j                  || j                  d«       t        j
                  |d¬«      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d	   t        j                  d
d¬«      k(  sJ ‚y )Nr-   r.   r   g‰A`åÐ"Ó?r    r!   r	   gq=
×£pé?r   r   )r   r/   r   r0   r   r#   r$   r%   ©r   r   r#   s      r   Ú#test_constraint_weighted_undirectedz7TestStructuralHoles.test_constraint_weighted_undirectedh   sŽ   € Ø�F‰F�K‰K‹MˆÜ
×Ñ˜q $§.¡.°(Ô;Ü—]‘] 1¨XÔ6ˆ
Ø˜#‰¤&§-¡-°¸4Ô"@Ò@Ð@Ð@Ø˜#‰¤&§-¡-°¸4Ô"@Ò@Ð@Ð@Ø˜#‰¤&§-¡-°°tÔ"<Ò<Ð<Ñ<r   c                 ób  — | j                   j                  «       }t        j                  || j                  d«       t        j
                  |d¬«      }|d   t        j                  dd¬«      k(  sJ ‚|d   t        j                  dd¬«      k(  sJ ‚|d	   t        j                  d
d¬«      k(  sJ ‚y )Nr-   r.   r   gáz®Gá@r8   r!   r	   gÃõ(\�Â@r   r   )r   r/   r   r0   r   r)   r$   r%   r<   s      r   Ú'test_effective_size_weighted_undirectedz;TestStructuralHoles.test_effective_size_weighted_undirectedp   s“   € Ø�F‰F�K‰K‹MˆÜ
×Ñ˜q $§.¡.°(Ô;Ü×*Ñ*¨1°XÔ>ˆØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°D¸dÔ&CÒCÐCÐCØ˜cÑ"¤f§m¡m°A¸4Ô&@Ò@Ð@Ñ@r   c                 ó¸   — | j                   j                  «       }|j                  d«       t        j                  |«      }t        j                  |d   «      sJ ‚y ©Nr   )r   r/   Úadd_noder   r#   ÚmathÚisnanr?   s      r   Útest_constraint_isolatedz,TestStructuralHoles.test_constraint_isolatedx   s@   € Ø�F‰F�K‰K‹MˆØ	�
‰
�1ŒÜ—]‘] 1Ó%ˆ
Ü�z‰z˜* Q™-Ô(Ð(Ñ(r   c                 óþ   — | j                   j                  «       }|j                  d«       t        j                  || j
                  d«       t        j                  |d¬«      }t        j                  |d   «      sJ ‚y )Nr   r-   r.   )	r   r/   rE   r   r0   r   r)   rF   rG   r<   s      r   Útest_effective_size_isolatedz0TestStructuralHoles.test_effective_size_isolated~   s[   € Ø�F‰F�K‰K‹MˆØ	�
‰
�1ŒÜ
×Ñ˜q $§.¡.°(Ô;Ü×*Ñ*¨1°XÔ>ˆÜ�z‰z˜.¨Ñ+Ô,Ð,Ñ,r   c                 ó¸   — | j                   j                  «       }|j                  d«       t        j                  |«      }t        j                  |d   «      sJ ‚y rD   )r   r/   rE   r   r)   rF   rG   r<   s      r   Ú%test_effective_size_borgatti_isolatedz9TestStructuralHoles.test_effective_size_borgatti_isolated…   sC   € Ø�F‰F�K‰K‹MˆØ	�
‰
�1ŒÜ×*Ñ*¨1Ó-ˆÜ�z‰z˜.¨Ñ+Ô,Ð,Ñ,r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r'   r+   r1   r3   r5   r:   r=   r@   rB   rH   rJ   rL   © r   r   r   r      sL   „ ñ	ò
òB?ò?ò?ò?ò=òAòAò=òAò)ò-ó-r   r   )rP   rF   r$   Únetworkxr   Únetworkx.classes.testsr   r   rQ   r   r   ú<module>rT      s    ðÙ Kã ã ã Ý 5÷~-ò ~-r   