U
    ?h™	  ã                   @   sd   d dl Z d dlZd dlZd dlm  mZ d dlmZ	 G dd„ dƒZ
G dd„ dƒZG dd„ dƒZdS )é    Nc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestKFactorc                 C   s*   t  d¡}t |d¡}|j|jks&t‚d S ©Né   é   )ÚgenÚcycle_graphÚregÚk_factorÚedgesÚAssertionError)ÚselfÚgÚf© r   úX/var/www/html/venv/lib/python3.8/site-packages/networkx/algorithms/tests/test_regular.pyÚtest_k_factor_trivial
   s    
z!TestKFactor.test_k_factor_trivialc                 C   s`   t  dd¡}t |d¡}| ¡ D ]}| |d |d ¡s t‚q | ¡ D ]\}}|dksFt‚qFd S )Nr   r   r   é   )r   Úgrid_2d_graphr   r	   r
   Úhas_edger   Údegree©r   r   Zg_kfÚedgeÚ_r   r   r   r   Útest_k_factor1   s    zTestKFactor.test_k_factor1c                 C   s^   t  d¡}t |d¡}| ¡ D ]}| |d |d ¡st‚q| ¡ D ]\}}|dksDt‚qDd S )Né   é   r   r   ©r   Úcomplete_graphr   r	   r
   r   r   r   r   r   r   r   Útest_k_factor2   s    
zTestKFactor.test_k_factor2c              	   C   s4   t  dd¡}t tj¡ t |d¡ W 5 Q R X d S )Nr   r   )r   r   ÚpytestÚraisesÚnxÚNetworkXUnfeasibler   r	   ©r   r   r   r   r   Útest_k_factor3   s    zTestKFactor.test_k_factor3c              	   C   s6   t j dd¡}t tj¡ t |d¡ W 5 Q R X d S r   )	r   ZlatticeZhexagonal_lattice_graphr   r    r!   r"   r   r	   r#   r   r   r   Útest_k_factor4$   s    zTestKFactor.test_k_factor4c                 C   s^   t  d¡}t |d¡}| ¡ D ]}| |d |d ¡st‚q| ¡ D ]\}}|dksDt‚qDd S )Nr   r   r   r   r   r   r   r   r   Útest_k_factor5*   s    
zTestKFactor.test_k_factor5N)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r$   r%   r&   r   r   r   r   r   	   s   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestIsRegularc                 C   s   t  d¡}t |¡st‚d S )Nr   )r   r   r   Ú
is_regularr   r#   r   r   r   Útest_is_regular15   s    
zTestIsRegular.test_is_regular1c                 C   s   t  d¡}t |¡st‚d S ©Né   )r   r   r   r+   r   r#   r   r   r   Útest_is_regular29   s    
zTestIsRegular.test_is_regular2c                 C   s   t  dd¡}t |¡rt‚d S r-   )r   Úlollipop_graphr   r+   r   r#   r   r   r   Útest_is_regular3=   s    zTestIsRegular.test_is_regular3c                 C   s*   t  ¡ }| dddg¡ t |¡s&t‚d S )N)r   r   )r   r   )r   r   )r!   ZDiGraphZadd_edges_fromr   r+   r   r#   r   r   r   Útest_is_regular4A   s    zTestIsRegular.test_is_regular4N)r'   r(   r)   r,   r/   r1   r2   r   r   r   r   r*   4   s   r*   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestIsKRegularc                 C   s.   t  d¡}t |d¡st‚t |d¡r*t‚d S )Nr   r   r   )r   r   r   Úis_k_regularr   r#   r   r   r   Útest_is_k_regular1H   s    
z!TestIsKRegular.test_is_k_regular1c                 C   s>   t  d¡}t |d¡st‚t |d¡r*t‚t |d¡r:t‚d S )Nr.   r   r   r   )r   r   r   r4   r   r#   r   r   r   Útest_is_k_regular2M   s    
z!TestIsKRegular.test_is_k_regular2c                 C   s0   t  dd¡}t |d¡rt‚t |d¡r,t‚d S )Nr.   r   )r   r0   r   r4   r   r#   r   r   r   Útest_is_k_regular3S   s    z!TestIsKRegular.test_is_k_regular3N)r'   r(   r)   r5   r6   r7   r   r   r   r   r3   G   s   r3   )r   Znetworkxr!   Znetworkx.algorithms.regularZ
algorithmsZregularr   Znetworkx.generatorsÚ
generatorsr   r   r*   r3   r   r   r   r   Ú<module>   s   +