o
    ]ZŽhB
  ã                   @   sl   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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   úU/var/www/auris/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   Z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   ZlatticeZ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   r.   zTestIsRegular.test_is_regular2c                 C   s   t  dd¡}t |¡rJ ‚d S r/   )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!   ZDiGraphZadd_edges_fromr   r,   r#   r   r   r   Útest_is_regular4A   s   zTestIsRegular.test_is_regular4N)r'   r(   r)   r-   r1   r3   r4   r   r   r   r   r*   4   s
    r*   c                  C   sH   t  ¡ } tjt jdd t  | ¡ W d   ƒ d S 1 sw   Y  d S )NzGraph has no nodes)Úmatch)r!   ZGraphr   r    ZNetworkXPointlessConceptr,   )ÚGr   r   r   Ú"test_is_regular_empty_graph_raisesG   s   "ÿr7   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_regular1N   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 )Nr0   r   r   r   )r   r   r   r9   r#   r   r   r   Útest_is_k_regular2S   s   
z!TestIsKRegular.test_is_k_regular2c                 C   s0   t  dd¡}t |d¡rJ ‚t |d¡rJ ‚d S )Nr0   r   )r   r2   r   r9   r#   r   r   r   Útest_is_k_regular3Y   s   z!TestIsKRegular.test_is_k_regular3N)r'   r(   r)   r:   r;   r<   r   r   r   r   r8   M   s    r8   )r   Znetworkxr!   Znetworkx.algorithms.regularZ
algorithmsZregularr   Znetworkx.generatorsÚ
generatorsr   r   r*   r7   r8   r   r   r   r   Ú<module>   s    +