code: def test_estimate_rand(self):
      est = self.est_rand.estimate()
      self.assertSetEqual(set(est.nodes()), set(["A", "B", "C"]))
      self.assertEqual(
          set(est.edges()), {("B", "A"), ("B", "C"), ("C", "A")}
      )
  
      est_bdeu = self.est_rand.estimate()
      self.assertEqual(
          set(est.edges()), {("B", "A"), ("B", "C"), ("C", "A")}
      )
  
      est_bic = self.est_rand.estimate()
      self.assertEqual(
          set(est_bic.edges()), {("B", "A"), ("B", "C"), ("C", "A")}
      )
  
file_path: pgmpy/pgmpy/tests/test_estimators/test_ExhaustiveSearch.py
imports: import unittest
  import numpy
  import pandas
  from pgmpy.estimators import BDeuScore, BicScore, ExhaustiveSearch
label_desc: Use image node_id 3 for calling the TestBaseEstimator obj's underlying member method code with example usage: obj.test_estimate_rand() without return types