code: def setUp(self):
      self.m1 = BayesianNetwork([("A", "C"), ("B", "C")])
      self.model_latents = BayesianNetwork(
          [("A", "C"), ("B", "C")], latents=["C"]
      )
      self.data_latents = pd.DataFrame(
          data={"A": [0, 0, 1], "B": [0, 1, 0]}
      )
  
      self.d1 = pd.DataFrame(
          data={"A": [0, 0, 1], "B": [0, 1, 0], "C": [1, 1, 0]}
      )
      self.d2 = pd.DataFrame(
          data={
              "A": [0, np.NaN, 1],
              "B": [0, 1, 0],
              "C": [1, 1, np.NaN],
              "D": [np.NaN, "Y", np.NaN],
          }
      )
      self.cpds = [
          TabularCPD("A", 2, [[2.0 / 3], [1.0 / 3]]),
          TabularCPD("B", 2, [[2.0 / 3], [1.0 / 3]]),
          TabularCPD(
              "C",
              2,
              [[0.0, 0.0, 1.0, 0.5], [1.0, 1.0, 0.0, 0.5]],
              evidence=["A", "B"],
              evidence_card=[2, 2],
          ),
      ]
      self.mle1 = MaximumLikelihoodEstimator(self.m1, self.d1)
  
imports: import unittest
  import numpy
  import pandas
  from joblib.externals.loky import get_reusable_executor
  from pgmpy import config
  from pgmpy.estimators import MaximumLikelihoodEstimator
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.models import BayesianNetwork
label_desc: Use image node_id 1 for calling the TestMLE obj's underlying member method code with example usage: obj.setUp() without return types