
    hS                     @    S r SSKrSSKr " S S5      r " S S5      rg)zAUnit tests for the :mod:`networkx.generators.duplication` module.    Nc                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestDuplicationDivergenceGraph   zcUnit tests for the
:func:`networkx.generators.duplication.duplication_divergence_graph`
function.

c                     [         R                  " SSS9n[        U5      S:X  d   e[         R                  " SSSS9n[        U5      S:X  d   eg )N      p*   r
   seed)nxduplication_divergence_graphlenselfGs     \/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_duplication.pytest_final_size.TestDuplicationDivergenceGraph.test_final_size   sH    ++A31v{{++A<1v{{    c                     [         R                  " [        R                  5         [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)Nr      r	   pytestraisesr   NetworkXErrorr   r   s    r   test_probability_too_large9TestDuplicationDivergenceGraph.test_probability_too_large   s0    ]]2++,++A3 -,,   A
Ac                     [         R                  " [        R                  5         [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)Nr   r	   r   r   s    r   test_probability_too_small9TestDuplicationDivergenceGraph.test_probability_too_small   s0    ]]2++,++A4 -,,r!   c                     [         R                  " SSSS9n[        U5      S:X  d   e[        UR	                  5       5      / SQ:X  d   eg )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_valueATestDuplicationDivergenceGraph.test_non_extreme_probability_value   s@    ++A2>1v{{AHHJ#SSSSr   c                     [         R                  " [        R                  SS9   [        R                  " SSS9  S S S 5        g ! , (       d  f       g = f)Nz&.*n must be greater than or equal to 2matchr   r	   r   r   s    r   test_minimum_desired_nodes9TestDuplicationDivergenceGraph.test_minimum_desired_nodes"   s<    ]]$L
 ++A3
 
 
s   A
Ac                 b    " S S[         R                  5      n " S S[         R                  5      n[         R                  " SSSUS9n[	        X15      (       d   e[
        R                  " [         R                  S	S
9   [         R                  " SSSUS9  S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)DTestDuplicationDivergenceGraph.test_create_using.<locals>.DummyGraph)    N__name__
__module____qualname____firstlineno____static_attributes__r8   r   r   
DummyGraphr6   )       r   r?   c                       \ rS rSrSrg)FTestDuplicationDivergenceGraph.test_create_using.<locals>.DummyDiGraph,   r8   Nr9   r8   r   r   DummyDiGraphrB   ,   r@   r   rD   r'   r(   r   )r   create_using!create_using must not be directedr0   )r   GraphDiGraphr   
isinstancer   r   r   r   r?   rD   r   s       r   test_create_using0TestDuplicationDivergenceGraph.test_create_using(   s    	 		2:: 	 ++As*U!((((]]2++3VW++As,W XWWs   ?B  
B.r8   N)r:   r;   r<   r=   __doc__r   r   r$   r-   r2   rK   r>   r8   r   r   r   r      s'    45T
4
Xr   r   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TestPartialDuplicationGraph5   z`Unit tests for the
:func:`networkx.generators.duplication.partial_duplication_graph`
function.

c                     SnSnSnSn[         R                  " XX45      n[        U5      U:X  d   e[         R                  " XX4SS9n[        U5      U:X  d   eg )N
   r*         ?r   )r   r   partial_duplication_graphr   r   Nnr
   qr   s         r   r   +TestPartialDuplicationGraph.test_final_size<   s\    ((q41v{{((q"=1v{{r   c                 d    SnSnSnSn[         R                  " XX45      n[        U5      U:X  d   eg )NrR   rS   rT   rV   s         r   test_initial_clique_size4TestPartialDuplicationGraph.test_initial_clique_sizeF   s8    ((q41v{{r   c                     [         R                  " [        R                  5         SnSnSnSn[        R                  " XX45      nS S S 5        g ! , (       d  f       g = f)Nr*   rR   rS   r   r   r   r   rU   rV   s         r   test_invalid_initial_size5TestPartialDuplicationGraph.test_invalid_initial_sizeN   sF    ]]2++,AAAA,,Q18A -,,s    A
Ac                     SnSnS H=  u  p4XX44n[         R                  " [        R                  [        R                  /UQ76   M?     g )Nr   ))rS   r   )rS   r#   )r   rS   )r#   rS   r_   )r   rW   rX   r
   rY   argss         r   test_invalid_probabilities6TestPartialDuplicationGraph.test_invalid_probabilitiesV   s@    >DA!<DMM"**B,H,HP4P ?r   c           	      f    " S S[         R                  5      n " S S[         R                  5      n[         R                  " SSSSUS9n[	        X15      (       d   e[
        R                  " [         R                  S	S
9   [         R                  " SSSSUS9  S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)ATestPartialDuplicationGraph.test_create_using.<locals>.DummyGraph^   r8   Nr9   r8   r   r   r?   rh   ^   r@   r   r?   c                       \ rS rSrSrg)CTestPartialDuplicationGraph.test_create_using.<locals>.DummyDiGrapha   r8   Nr9   r8   r   r   rD   rk   a   r@   r   rD   rR   r*   rS   )rE   rF   r0   )r   rG   rH   rU   rI   r   r   r   rJ   s       r   rK   -TestPartialDuplicationGraph.test_create_using]   s    	 		2:: 	 ((QSzR!((((]]2++3VW((QS|T XWWs    B""
B0r8   N)r:   r;   r<   r=   rM   r   r\   r`   rd   rK   r>   r8   r   r   rO   rO   5   s"    9Q
Ur   rO   )rM   r   networkxr   r   rO   r8   r   r   <module>ro      s'    G  *X *XZ2U 2Ur   