code: def test_propagate(self, huang_darwiche_jt, huang_darwiche_dag):
      jt_cliques = {
          node.name: node for node in huang_darwiche_jt.clique_nodes
      }
      assignments = huang_darwiche_jt.assign_clusters(
          huang_darwiche_dag
      )
      huang_darwiche_jt.initialize_potentials(
          assignments, huang_darwiche_dag
      )
  
      huang_darwiche_jt.propagate(
          starting_clique=jt_cliques["Clique_ACE"]
      )
      tt = jt_cliques["Clique_DEF"].potential_tt
      assert r5(tt[(("d", False), ("e", True), ("f", True))]) == 0.00150
      assert r5(tt[(("d", True), ("e", False), ("f", True))]) == 0.00365
      assert (
          r5(tt[(("d", False), ("e", False), ("f", True))]) == 0.16800
      )
      assert r5(tt[(("d", True), ("e", True), ("f", True))]) == 0.00315
      assert (
          r5(tt[(("d", False), ("e", False), ("f", False))]) == 0.00170
      )
      assert r5(tt[(("d", True), ("e", True), ("f", False))]) == 0.31155
      assert (
          r5(tt[(("d", False), ("e", True), ("f", False))]) == 0.14880
      )
      assert (
          r5(tt[(("d", True), ("e", False), ("f", False))]) == 0.36165
      )
  
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 11 for calling the TestBBN obj's underlying member method code with example usage: obj.test_propagate(huang_darwiche_jt, huang_darwiche_dag) without return types