code: def test_build_graph(self, huang_darwiche_nodes):
      bbn = build_bbn(huang_darwiche_nodes)
      nodes = {node.name: node for node in bbn.nodes}
      assert nodes["f_a"].parents == []
      assert nodes["f_b"].parents == [nodes["f_a"]]
      assert nodes["f_c"].parents == [nodes["f_a"]]
      assert nodes["f_d"].parents == [nodes["f_b"]]
      assert nodes["f_e"].parents == [nodes["f_c"]]
      assert nodes["f_f"].parents == [nodes["f_d"], nodes["f_e"]]
      assert nodes["f_g"].parents == [nodes["f_c"]]
      assert nodes["f_h"].parents == [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 3 for calling the TestBBN obj's underlying member method code with example usage: obj.test_build_graph(huang_darwiche_nodes) without return types