code: def test_state_names2(self):
      m = BayesianNetwork([("Light?", "Color"), ("Fruit", "Color")])
      d = pd.DataFrame(
          data={
              "Fruit": ["Apple", "Apple", "Apple", "Banana", "Banana"],
              "Light?": [True, True, False, False, True],
              "Color": ["red", "green", "black", "black", "yellow"],
          }
      )
      color_cpd = TabularCPD(
          "Color",
          4,
          [[1, 0, 1, 0], [0, 0.5, 0, 0], [0, 0.5, 0, 0], [0, 0, 0, 1]],
          evidence=["Fruit", "Light?"],
          evidence_card=[2, 2],
          state_names={
              "Color": ["black", "green", "red", "yellow"],
              "Light?": [False, True],
              "Fruit": ["Apple", "Banana"],
          },
      )
      mle2 = MaximumLikelihoodEstimator(m, d)
      self.assertEqual(mle2.estimate_cpd("Color"), color_cpd)
  
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 6 for calling the TestMLETorch obj's underlying member method code with example usage: obj.test_state_names2() without return types