code: def test_estimate_chow_liu_auto_root_node(self):
      # learn tree structure using auto root node
      est = TreeSearch(self.data12)
  
      # root node selection
      weights = est._get_weights(self.data12)
      sum_weights = weights.sum(axis=0)
      maxw_idx = np.argsort(sum_weights)[::-1]
      root_node = self.data12.columns[maxw_idx[0]]
  
      dag = est.estimate(estimator_type="chow-liu", show_progress=False)
      nodes = list(dag.nodes())
      np.testing.assert_equal(nodes[0], root_node)
      np.testing.assert_array_equal(nodes, ["D", "A", "C", "B", "E"])
  
imports: import unittest
  import networkx
  import numpy
  import pandas
  from joblib.externals.loky import get_reusable_executor
  from pgmpy.estimators import TreeSearch
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.models import BayesianNetwork
  from pgmpy.sampling import BayesianModelSampling
  from pgmpy.utils import get_example_model
label_desc: Use image node_id 4 for calling the TestTreeSearch obj's underlying member method code with example usage: obj.test_estimate_chow_liu_auto_root_node() without return types