code: def test_circulant_graph(self):
      # Ci_n(1) is the cycle graph for all n
      Ci6_1 = nx.circulant_graph(6, [1])
      C6 = nx.cycle_graph(6)
      assert edges_equal(Ci6_1.edges(), C6.edges())
  
      # Ci_n(1, 2, ..., n div 2) is the complete graph for all n
      Ci7 = nx.circulant_graph(7, [1, 2, 3])
      K7 = nx.complete_graph(7)
      assert edges_equal(Ci7.edges(), K7.edges())
  
      # Ci_6(1, 3) is K_3,3 i.e. the utility graph
      Ci6_1_3 = nx.circulant_graph(6, [1, 3])
      K3_3 = nx.complete_bipartite_graph(3, 3)
      assert is_isomorphic(Ci6_1_3, K3_3)
  
imports: import itertools
  import typing
  import pytest
  import networkx
  from networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic
  from networkx.utils import edges_equal, nodes_equal
label_desc: Use image node_id 14 for calling the TestGeneratorClassic obj's underlying member method code with example usage: obj.test_circulant_graph() without return types