o
    ßË·e™	  ã                   @   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J ‚d S ©Né   é   )ÚgenÚcycle_graphÚregÚk_factorÚedges)ÚselfÚgÚf© r   ú]/var/www/ideatree/venv/lib/python3.10/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J ‚q| ¡ D ]
\}}|dks-J ‚q#d S )Nr   r   r   é   )r   Úgrid_2d_graphr   r	   r
   Úhas_edgeÚdegree©r   r   Úg_kfÚedgeÚ_r   r   r   r   Útest_k_factor1   s   ÿzTestKFactor.test_k_factor1c                 C   ó^   t  d¡}t |d¡}| ¡ D ]}| |d |d ¡sJ ‚q| ¡ D ]
\}}|dks,J ‚q"d S )Né   é   r   r   ©r   Úcomplete_graphr   r	   r
   r   r   r   r   r   r   Útest_k_factor2   s   
ÿzTestKFactor.test_k_factor2c                 C   sJ   t  dd¡}t tj¡ t |d¡ W d   ƒ d S 1 sw   Y  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   sL   t j dd¡}t tj¡ t |d¡ W d   ƒ d S 1 sw   Y  d S r   )	r   ÚlatticeÚhexagonal_lattice_graphr    r!   r"   r#   r   r	   r$   r   r   r   Útest_k_factor4$   s   "ÿzTestKFactor.test_k_factor4c                 C   r   )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   ó   t  d¡}t |¡sJ ‚d S )Nr   )r   r   r   Ú
is_regularr$   r   r   r   Útest_is_regular15   ó   
zTestIsRegular.test_is_regular1c                 C   r.   ©Né   )r   r   r   r/   r$   r   r   r   Útest_is_regular29   r1   zTestIsRegular.test_is_regular2c                 C   s   t  dd¡}t |¡rJ ‚d S r2   )r   Úlollipop_graphr   r/   r$   r   r   r   Útest_is_regular3=   s   zTestIsRegular.test_is_regular3c                 C   s(   t  ¡ }| g d¢¡ t |¡sJ ‚d S )N))r   r   )r   r   )r   r   )r"   ÚDiGraphÚadd_edges_fromr   r/   r$   r   r   r   Útest_is_regular4A   s   zTestIsRegular.test_is_regular4N)r*   r+   r,   r0   r4   r6   r9   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J ‚t |d¡rJ ‚d S )Nr   r   r   )r   r   r   Úis_k_regularr$   r   r   r   Útest_is_k_regular1H   s   
z!TestIsKRegular.test_is_k_regular1c                 C   s>   t  d¡}t |d¡sJ ‚t |d¡rJ ‚t |d¡rJ ‚d S )Nr3   r   r   r   )r   r   r   r;   r$   r   r   r   Útest_is_k_regular2M   s   
z!TestIsKRegular.test_is_k_regular2c                 C   s0   t  dd¡}t |d¡rJ ‚t |d¡rJ ‚d S )Nr3   r   )r   r5   r   r;   r$   r   r   r   Útest_is_k_regular3S   s   z!TestIsKRegular.test_is_k_regular3N)r*   r+   r,   r<   r=   r>   r   r   r   r   r:   G   s    r:   )r    Únetworkxr"   Únetworkx.algorithms.regularÚ
algorithmsÚregularr   Únetworkx.generatorsÚ
generatorsr   r   r-   r:   r   r   r   r   Ú<module>   s    +