o
    3ήc^                     @   sB   d Z ddlZddlZddlmZ ddlmZmZ G dd dZ	dS )zCUnit tests for the :mod:`networkx.generators.harary_graph` module.
    N)is_isomorphic)hkn_harary_graphhnm_harary_graphc                   @   s"   e Zd ZdZdd Z	 dd ZdS )TestHararyGraphzB
    Suppose n nodes, m >= n-1 edges, d = 2m // n, r = 2m % n
    c              	   C   sZ  dD ]%\}}t ||}d| | }t|ttd|d d }t||s'J qdD ]2\}}t ||}d| | }t|ttd|d d }t|jt|jk sTJ | |ks\J q*dD ].\}}t ||}d| | }ttd|d d }|	|d  t||}t||sJ q_dD ];\}}t ||}d| | }ttd|d d }|	|d  t||}t|jt|jk sJ | |ksJ qdD ]5\}}t ||}d| | }ttd|d d }t||}t|jt|jk sJ | |ksJ qd}d}t
tjt || d	}d
}t
tjt || d	}d}t
tjt || d S )N))   r   )      )            ))r   r	   )r      )r	      ))r   	   )   r   )
      ))r   r   )r   r   )r      ))r      )r	   r   )r   r
   r   r   r   r   )r   nxcirculant_graphlistranger   setedgesnumber_of_edgesappendpytestraisesNetworkXError)selfnmG1dG2L r'   R/tmp/pip-target-vg8gfxp4/lib/python/networkx/generators/tests/test_harary_graph.pytest_hnm_harary_graph   sT   




z%TestHararyGraph.test_hnm_harary_graphc              	   C   s  dD ]\}}t ||}t|}t||sJ qdD ]\}}t ||}t|ttd|d d }t||s9J qdD ](\}}t ||}ttd|d d }||d  t||}t||sdJ q<dD ]F\}}t ||}t|ttd|d d }t|j	}t|j	}t }|d }	td|	d D ]}
|
|
|
|	 | f q|||B ksJ qgd}d}ttjt || d}d}ttjt || d S )	N))r   r   )r   r	   ))r   r   )r   r	   )r   r   )r   r	   r   r   ))   r   )r   r   )r	   r   ))r*   r   )r   r   )r	      r   r   )r   r   
path_graphr   r   r   r   r   r   r   addr   r   r   )r    kr!   r#   r%   r&   eSet1eSet2eSet3halfir'   r'   r(   test_hkn_harary_graphW   s<   






z%TestHararyGraph.test_hkn_harary_graphN)__name__
__module____qualname____doc__r)   r4   r'   r'   r'   r(   r      s
    Cr   )
r8   r   networkxr   (networkx.algorithms.isomorphism.isomorphr    networkx.generators.harary_graphr   r   r   r'   r'   r'   r(   <module>   s    