o
    3ήc{                     @   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   Q/tmp/pip-target-vg8gfxp4/lib/python/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    