code: def test_simple_graph(self):
      graph = NeuralGasGraph()
  
      node_a = NeuronNode(1)
      node_b = NeuronNode(2)
      node_c = NeuronNode(3)
  
      graph.add_node(node_a)
      graph.add_node(node_b)
      graph.add_node(node_c)
  
      graph.add_edge(node_a, node_b)
      graph.add_edge(node_b, node_c)
  
      self.assertEqual(graph.n_nodes, 3)
      self.assertEqual(graph.n_edges, 2)
  
      self.assertEqual(
          graph.find_edge_id(node_a, node_b), (node_a, node_b)
      )
      self.assertEqual(
          graph.find_edge_id(node_b, node_a), (node_a, node_b)
      )
  
      error_message = "Edge between specified nodes doesn't exist"
      with self.assertRaisesRegexp(ValueError, error_message):
          graph.find_edge_id(node_a, node_c)
  
      graph.remove_edge(node_c, node_b)
  
      self.assertEqual(graph.n_nodes, 3)
      self.assertEqual(graph.n_edges, 1)
  
      graph.remove_node(node_c)
  
      self.assertEqual(graph.n_nodes, 2)
      self.assertEqual(graph.n_edges, 1)
  
      error_message = (
          "Cannot remove node, because it's "
          "connected to 1 other node\(s\)"
      )
      with self.assertRaisesRegexp(ValueError, error_message):
          graph.remove_node(node_a)
  
file_path: neupy/tests/algorithms/competitive/test_growing_neural_gas.py
imports: import pickle
  import numpy
  import matplotlib.pyplot
  from sklearn.datasets import make_blobs
  from neupy import algorithms
  from neupy.algorithms.competitive.growing_neural_gas import NeuralGasGraph, NeuronNode
  from base import BaseTestCase
label_desc: Use image node_id 1 for calling the NeuralGasGraphTestCase obj's underlying member method code with example usage: obj.test_simple_graph() without return types