code: def setup_class(cls):
      cls.n = 1000
      cls.seed = 42
      cls.G = random_internet_as_graph(cls.n, cls.seed)
      cls.T = []
      cls.M = []
      cls.C = []
      cls.CP = []
      cls.customers = {}
      cls.providers = {}
  
      for i in cls.G.nodes():
          if cls.G.nodes[i]["type"] == "T":
              cls.T.append(i)
          elif cls.G.nodes[i]["type"] == "M":
              cls.M.append(i)
          elif cls.G.nodes[i]["type"] == "C":
              cls.C.append(i)
          elif cls.G.nodes[i]["type"] == "CP":
              cls.CP.append(i)
          else:
              raise ValueError(
                  "Inconsistent data in the graph node attributes"
              )
          cls.set_customers(i)
          cls.set_providers(i)
  
file_path: networkx/networkx/generators/tests/test_internet_as_graphs.py
imports: from pytest import approx
  from networkx import is_connected, neighbors
  from networkx.generators.internet_as_graphs import random_internet_as_graph
label_desc: Use image node_id 1 for calling the TestInternetASTopology obj's underlying member method code with example usage: obj.setup_class(cls) without return types