
    VhH                     H    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      Z	y)zBUnit tests for the :mod:`networkx.generators.harary_graph` module.    N)is_isomorphic)hkn_harary_graphhnm_harary_graphc                       e Zd ZdZd Z	 d Zy)TestHararyGraphzB
    Suppose n nodes, m >= n-1 edges, d = 2m // n, r = 2m % n
    c                 :   dD ]V  \  }}t        ||      }d|z  |z  }t        j                  |t        t	        d|dz  dz                     }t        ||      rVJ  dD ]  \  }}t        ||      }d|z  |z  }t        j                  |t        t	        d|dz  dz                     }t        |j                        t        |j                        k  sJ |j                         |k(  rJ  dD ]l  \  }}t        ||      }d|z  |z  }t        t	        d|dz   dz              }|j                  |dz         t        j                  ||      }t        ||      rlJ  dD ]  \  }}t        ||      }d|z  |z  }t        t	        d|dz   dz              }|j                  |dz         t        j                  ||      }t        |j                        t        |j                        k  sJ |j                         |k(  rJ  dD ]  \  }}t        ||      }d|z  |z  }t        t	        d|dz   dz              }t        j                  ||      }t        |j                        t        |j                        k  sJ |j                         |k(  rJ  d}d}t        j                  t        j                  t         ||       d	}d
}t        j                  t        j                  t         ||       d	}d}t        j                  t        j                  t         ||       y )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Ls          [/home/dcms/DCMS/lib/python3.12/site-packages/networkx/generators/tests/test_harary_graph.pytest_hnm_harary_graphz%TestHararyGraph.test_hnm_harary_graph   s    / 	)DAq!!Q'BA
A##AtE!Q!VaZ,@'ABB R(((		) / 	-DAq!!Q'BA
A##AtE!Q!VaZ,@'ABBrxx=3rxx=000%%'1,,,	- 0 	)DAq!!Q'BA
AU1q1ul+,AHHQ!V##Aq)B R(((	) 1 	-DAq!!Q'BA
AU1q1ul+,AHHQ!V##Aq)Brxx=3rxx=000%%'1,,,	- / 	-DAq!!Q'BA
AU1q1ul+,A##Aq)Brxx=3rxx=000%%'1,,,	- b&&(8!Q? b&&(8!Q? b&&(8!Q?    c                    dD ]4  \  }}t        ||      }t        j                  |      }t        ||      r4J  dD ]N  \  }}t        ||      }t        j                  |t        t        d|dz  dz                     }t        ||      rNJ  dD ]d  \  }}t        ||      }t        t        d|dz   dz              }|j                  |dz         t        j                  ||      }t        ||      rdJ  dD ]  \  }}t        ||      }t        j                  |t        t        d|dz   dz                    }t        |j                        }t        |j                        }t               }|dz  }	t        |	dz         D ]  }
|j                  |
|
|	z   |z  f        |||z  k(  rJ  d}d}t        j                  t        j                  t         ||       d}d}t        j                  t        j                  t         ||       y )	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is              r*   test_hkn_harary_graphz%TestHararyGraph.test_hkn_harary_graphV   s    % 	)DAq!!Q'Bq!B R(((	) 5 	)DAq!!Q'B##AtE!Q!VaZ,@'ABB R(((	) . 	)DAq!!Q'BU1q1ul+,AHHQ!V##Aq)B R(((	) . 
	*DAq!!Q'B##AtE!a!e\,B'CDBMEMEEE6D4!8_ /		1q4x1n-./ EEM)))
	* b&&(8!Q? b&&(8!Q?r,   N)__name__
__module____qualname____doc__r+   r8    r,   r*   r   r   
   s    A@F/@r,   r   )
r<   r    networkxr   (networkx.algorithms.isomorphism.isomorphr    networkx.generators.harary_graphr   r   r   r=   r,   r*   <module>rA      s"    H   B O{@ {@r,   