code: def test_add_edge_string(self):
      self.graph.add_edge("d", "e")
      self.assertListEqual(sorted(self.graph.nodes()), ["d", "e"])
      self.assertListEqual(
          hf.recursive_sorted(self.graph.edges()), [["d", "e"]]
      )
      self.graph.add_nodes_from(["a", "b", "c"])
      self.graph.add_edge("a", "b")
      self.assertListEqual(
          hf.recursive_sorted(self.graph.edges()),
          [["a", "b"], ["d", "e"]],
      )
  
imports: from pgmpy.base import UndirectedGraph
  from pgmpy.tests import help_functions
  import unittest
label_desc: Use image node_id 10 for calling the TestUndirectedGraphCreation obj's underlying member method code with example usage: obj.test_add_edge_string() without return types