Ë
    D^(hS  ã                   ó@   — d Z ddlZddlZ G d„ d«      Z G d„ d«      Zy)zAUnit tests for the :mod:`networkx.generators.duplication` module.é    Nc                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestDuplicationDivergenceGraphzoUnit tests for the
    :func:`networkx.generators.duplication.duplication_divergence_graph`
    function.

    c                 ó¢   — t        j                  dd¬«      }t        |«      dk(  sJ ‚t        j                  ddd¬«      }t        |«      dk(  sJ ‚y )Né   é   ©Úpé*   ©r	   Úseed)ÚnxÚduplication_divergence_graphÚlen©ÚselfÚGs     úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/generators/tests/test_duplication.pyÚtest_final_sizez.TestDuplicationDivergenceGraph.test_final_size   sH   € Ü×+Ñ+¨A°Ô3ˆÜ�1‹v˜Š{Ðˆ{Ü×+Ñ+¨A°¸Ô<ˆÜ�1‹v˜Š{Ð‰{ó    c                 ó¢   — t        j                  t        j                  «      5  t        j                  dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   é   r   ©ÚpytestÚraisesr   ÚNetworkXErrorr   ©r   s    r   Útest_probability_too_largez9TestDuplicationDivergenceGraph.test_probability_too_large   s9   € Ü�]‰]œ2×+Ñ+Ó,ñ 	4Ü×+Ñ+¨A°Õ3÷	4÷ 	4ñ 	4úó   ¤AÁAc                 ó¢   — t        j                  t        j                  «      5  t        j                  dd¬«       d d d «       y # 1 sw Y   y xY w)Nr   éÿÿÿÿr   r   r   s    r   Útest_probability_too_smallz9TestDuplicationDivergenceGraph.test_probability_too_small   s9   € Ü�]‰]œ2×+Ñ+Ó,ñ 	5Ü×+Ñ+¨A°Õ4÷	5÷ 	5ñ 	5úr   c                 ó”   — t        j                  ddd¬«      }t        |«      dk(  sJ ‚t        |j	                  «       «      g d¢k(  sJ ‚y )Né   ç333333Ó?r
   r   ))r   r   )r   r   )r   r   )r   r   )é   r   )é   r   )r   r   r   ÚlistÚdegreer   s     r   Ú"test_non_extreme_probability_valuezATestDuplicationDivergenceGraph.test_non_extreme_probability_value   s@   € Ü×+Ñ+¨A°¸2Ô>ˆÜ�1‹v˜Š{Ðˆ{Ü�A—H‘H“JÓÒ#SÒSÐSÑSr   c                 ó¦   — t        j                  t        j                  d¬«      5  t        j                  dd¬«       d d d «       y # 1 sw Y   y xY w)Nz&.*n must be greater than or equal to 2©Úmatchr   r   r   r   s    r   Útest_minimum_desired_nodesz9TestDuplicationDivergenceGraph.test_minimum_desired_nodes"   sA   € Ü�]‰]Ü×ÑÐ$Lô
ñ 	4ô ×+Ñ+¨A°Õ3÷	4÷ 	4ñ 	4ús   ¦AÁAc                 ó\  —  G d„ dt         j                  «      } G d„ dt         j                  «      }t        j                  ddd|¬«      }t	        ||«      sJ ‚t        j                  t         j                  d	¬
«      5  t        j                  ddd|¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)úDTestDuplicationDivergenceGraph.test_create_using.<locals>.DummyGraphN©Ú__name__Ú
__module__Ú__qualname__© r   r   Ú
DummyGraphr0   )   ó   „ Ør   r6   c                   ó   — e Zd Zy)úFTestDuplicationDivergenceGraph.test_create_using.<locals>.DummyDiGraphNr1   r5   r   r   ÚDummyDiGraphr9   ,   r7   r   r:   r#   r$   r
   )r   Úcreate_usingú!create_using must not be directedr+   )r   ÚGraphÚDiGraphr   Ú
isinstancer   r   r   ©r   r6   r:   r   s       r   Útest_create_usingz0TestDuplicationDivergenceGraph.test_create_using(   sŒ   € ô	œŸ™ô 	ô	œ2Ÿ:™:ô 	ô ×+Ñ+¨A¨s¸È*ÔUˆÜ˜!˜ZÔ(Ð(Ð(Ü�]‰]œ2×+Ñ+Ð3VÔWñ 	XÜ×+Ñ+¨A¨s¸È,ÕW÷	X÷ 	Xñ 	Xús   Á?B"Â"B+N)
r2   r3   r4   Ú__doc__r   r   r!   r)   r-   rA   r5   r   r   r   r      s'   „ ñòò4ò5òTò
4ó
Xr   r   c                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestPartialDuplicationGraphzlUnit tests for the
    :func:`networkx.generators.duplication.partial_duplication_graph`
    function.

    c                 ó¸   — d}d}d}d}t        j                  ||||«      }t        |«      |k(  sJ ‚t        j                  ||||d¬«      }t        |«      |k(  sJ ‚y )Né
   r&   ç      à?r
   )r   ©r   Úpartial_duplication_graphr   ©r   ÚNÚnr	   Úqr   s         r   r   z+TestPartialDuplicationGraph.test_final_size<   sd   € ØˆØˆØˆØˆÜ×(Ñ(¨¨A¨q°!Ó4ˆÜ�1‹v˜Š{Ðˆ{Ü×(Ñ(¨¨A¨q°!¸"Ô=ˆÜ�1‹v˜Š{Ð‰{r   c                 ód   — d}d}d}d}t        j                  ||||«      }t        |«      |k(  sJ ‚y )NrF   rG   rH   rJ   s         r   Útest_initial_clique_sizez4TestPartialDuplicationGraph.test_initial_clique_sizeF   s<   € ØˆØˆØˆØˆÜ×(Ñ(¨¨A¨q°!Ó4ˆÜ�1‹v˜Š{Ð‰{r   c                 ó´   — t        j                  t        j                  «      5  d}d}d}d}t        j                  ||||«      }d d d «       y # 1 sw Y   y xY w)Nr&   rF   rG   ©r   r   r   r   rI   rJ   s         r   Útest_invalid_initial_sizez5TestPartialDuplicationGraph.test_invalid_initial_sizeN   sS   € Ü�]‰]œ2×+Ñ+Ó,ñ 	9ØˆAØˆAØˆAØˆAÜ×,Ñ,¨Q°°1°aÓ8ˆA÷	9÷ 	9ñ 	9ús   ¤!AÁAc                 ó’   — d}d}dD ]>  \  }}||||f}t        j                  t        j                  t        j                  g|¢­Ž  Œ@ y )Nr   ))rG   r   )rG   r    )r   rG   )r    rG   rQ   )r   rK   rL   r	   rM   Úargss         r   Útest_invalid_probabilitiesz6TestPartialDuplicationGraph.test_invalid_probabilitiesV   sM   € ØˆØˆØ>ò 	Q‰DˆAˆqØ�q˜!˜Q�<ˆDÜ�M‰Mœ"×*Ñ*¬B×,HÑ,HÐPÈ4ÔPñ	Qr   c                 ó`  —  G d„ dt         j                  «      } G d„ dt         j                  «      }t        j                  dddd|¬«      }t	        ||«      sJ ‚t        j                  t         j                  d	¬
«      5  t        j                  dddd|¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)úATestPartialDuplicationGraph.test_create_using.<locals>.DummyGraphNr1   r5   r   r   r6   rX   ^   r7   r   r6   c                   ó   — e Zd Zy)úCTestPartialDuplicationGraph.test_create_using.<locals>.DummyDiGraphNr1   r5   r   r   r:   rZ   a   r7   r   r:   rF   r&   rG   )r;   r<   r+   )r   r=   r>   rI   r?   r   r   r   r@   s       r   rA   z-TestPartialDuplicationGraph.test_create_using]   s�   € ô	œŸ™ô 	ô	œ2Ÿ:™:ô 	ô ×(Ñ(¨¨Q°°SÀzÔRˆÜ˜!˜ZÔ(Ð(Ð(Ü�]‰]œ2×+Ñ+Ð3VÔWñ 	UÜ×(Ñ(¨¨Q°°SÀ|ÕT÷	U÷ 	Uñ 	Uús   Â B$Â$B-N)	r2   r3   r4   rB   r   rO   rR   rU   rA   r5   r   r   rD   rD   5   s"   „ ñòòò9òQó
Ur   rD   )rB   r   Únetworkxr   r   rD   r5   r   r   ú<module>r\      s'   ðÙ Gã ã ÷*Xñ *X÷Z2Uò 2Ur   