code: def test_make_undirecred_copy(self, huang_darwiche_dag):
      ug = make_undirected_copy(huang_darwiche_dag)
      nodes = {node.name: node for node in ug.nodes}
      assert set(nodes["f_a"].neighbours) == set(
          [nodes["f_b"], nodes["f_c"]]
      )
      assert set(nodes["f_b"].neighbours) == set(
          [nodes["f_a"], nodes["f_d"]]
      )
      assert set(nodes["f_c"].neighbours) == set(
          [nodes["f_a"], nodes["f_e"], nodes["f_g"]]
      )
      assert set(nodes["f_d"].neighbours) == set(
          [nodes["f_b"], nodes["f_f"]]
      )
      assert set(nodes["f_e"].neighbours) == set(
          [nodes["f_c"], nodes["f_f"], nodes["f_h"]]
      )
      assert set(nodes["f_f"].neighbours) == set(
          [nodes["f_d"], nodes["f_e"]]
      )
      assert set(nodes["f_g"].neighbours) == set(
          [nodes["f_c"], nodes["f_h"]]
      )
      assert set(nodes["f_h"].neighbours) == set(
          [nodes["f_e"], nodes["f_g"]]
      )
  
imports: from __future__ import division
  import copy
  from collections import Counter
  import pytest
  from causalnex.ebaybbn import BBNNode, JoinTree, JoinTreeCliqueNode, SepSet, build_bbn, build_bbn_from_conditionals, build_join_tree, combinations, make_moralized_copy, make_node_func, make_undirected_copy, priority_func, triangulate
  from causalnex.ebaybbn.exceptions import VariableNotInGraphError, VariableValueNotInDomainError
  from causalnex.ebaybbn.graph import Node, UndirectedNode
  from causalnex.ebaybbn.utils import get_args, get_original_factors, make_key
label_desc: Use image node_id 4 for calling the TestBBN obj's underlying member method code with example usage: obj.test_make_undirecred_copy(huang_darwiche_dag) without return types