code: def test_complete_graph(self):
      # complete_graph(m) is a connected graph with
      # m nodes and  m*(m+1)/2 edges
      for m in [0, 1, 3, 5]:
          g = nx.complete_graph(m)
          assert nx.number_of_nodes(g) == m
          assert nx.number_of_edges(g) == m * (m - 1) // 2
  
      mg = nx.complete_graph(m, create_using=nx.MultiGraph)
      assert edges_equal(mg.edges(), g.edges())
  
      g = nx.complete_graph("abc")
      assert nodes_equal(g.nodes(), ["a", "b", "c"])
      assert g.size() == 3
  
      # creates a self-loop... should it? <backward compatible says yes>
      g = nx.complete_graph("abcb")
      assert nodes_equal(g.nodes(), ["a", "b", "c"])
      assert g.size() == 4
  
      g = nx.complete_graph("abcb", create_using=nx.MultiGraph)
      assert nodes_equal(g.nodes(), ["a", "b", "c"])
      assert g.size() == 6
  
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 11 for calling the TestGeneratorClassic obj's underlying member method code with example usage: obj.test_complete_graph() without return types