code: def test_build_join_tree(self, huang_darwiche_dag):
      def priority_func_override(node):
          introduced_arcs = 0
          cluster = [node] + node.neighbours
          for node_a, node_b in combinations(cluster, 2):
              if node_a not in node_b.neighbours:
                  assert node_b not in node_a.neighbours
                  introduced_arcs += 1
          introduced_arcs_dict = {
              "f_h": [introduced_arcs, 0],
              "f_g": [introduced_arcs, 1],
              "f_c": [introduced_arcs, 2],
              "f_b": [introduced_arcs, 3],
              "f_d": [introduced_arcs, 4],
              "f_e": [introduced_arcs, 5],
              "others": [introduced_arcs, 10],
          }
          if node.name in introduced_arcs_dict:
              return introduced_arcs_dict[node.name]
  
          return introduced_arcs_dict["others"]
  
      jt = build_join_tree(huang_darwiche_dag, priority_func_override)
      for node in jt.sepset_nodes:
          assert {n.clique for n in node.neighbours} == {
              node.sepset.X,
              node.sepset.Y,
          }
  
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 8 for calling the TestBBN obj's underlying member method code with example usage: obj.test_build_join_tree(huang_darwiche_dag) and returns: introduced_arcs_dict, introduced_arcs_dict