o
    ßË·e{  ã                   @   sH   d Z ddlZddlmZ ddlmZmZ G dd„ dƒZG dd„ dƒZdS )	zCUnit tests for the :mod:`networkx.generators.duplication` module.

é    N)ÚNetworkXError)Úduplication_divergence_graphÚpartial_duplication_graphc                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTestDuplicationDivergenceGraphzoUnit tests for the
    :func:`networkx.generators.duplication.duplication_divergence_graph`
    function.

    c                 C   s<   t ddƒ}t|ƒdksJ ‚t dddd}t|ƒdksJ ‚d S )Né   é   é*   ©Úseed)r   Úlen)ÚselfÚG© r   úa/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/generators/tests/test_duplication.pyÚtest_final_size   s   
z.TestDuplicationDivergenceGraph.test_final_sizec                 C   ó:   t  t¡ tddƒ W d   ƒ d S 1 sw   Y  d S )Nr   é   ©ÚpytestÚraisesr   r   ©r   r   r   r   Útest_probability_too_large   ó   "ÿz9TestDuplicationDivergenceGraph.test_probability_too_largec                 C   r   )Nr   éÿÿÿÿr   r   r   r   r   Útest_probability_too_small   r   z9TestDuplicationDivergenceGraph.test_probability_too_smallN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s
    r   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚTestPartialDuplicationGraphzlUnit tests for the
    :func:`networkx.generators.duplication.partial_duplication_graph`
    function.

    c                 C   sT   d}d}d}d}t ||||ƒ}t|ƒ|ksJ ‚t ||||dd}t|ƒ|ks(J ‚d S )Né
   é   ç      à?r   r	   ©r   r   ©r   ÚNÚnÚpÚqr   r   r   r   r   *   s   z+TestPartialDuplicationGraph.test_final_sizec                 C   s2   d}d}d}d}t ||||ƒ}t|ƒ|ksJ ‚d S )Nr    r"   r#   r$   r   r   r   Útest_initial_clique_size4   s   z4TestPartialDuplicationGraph.test_initial_clique_sizec                 C   sN   t  t¡ d}d}d}d}t||||ƒ}W d   ƒ d S 1 s w   Y  d S )Nr!   r    r"   ©r   r   r   r   r$   r   r   r   Útest_invalid_initial_size<   s   "ûz5TestPartialDuplicationGraph.test_invalid_initial_sizec                 C   s:   d}d}dD ]\}}||||f}t jttg|¢R Ž  qd S )Nr   ))r"   r   )r"   r   )r   r"   )r   r"   r*   )r   r%   r&   r'   r(   Úargsr   r   r   Útest_invalid_probabilitiesD   s   þz6TestPartialDuplicationGraph.test_invalid_probabilitiesN)r   r   r   r   r   r)   r+   r-   r   r   r   r   r   #   s    
r   )	r   r   Únetworkx.exceptionr   Únetworkx.generators.duplicationr   r   r   r   r   r   r   r   Ú<module>   s    