code: def test_estimate_cpd_improper_prior(self):
      cpd_C = self.est1.estimate_cpd(
          "C",
          prior_type="dirichlet",
          pseudo_counts=[[0, 0, 0, 0], [0, 0, 0, 0]],
      )
      cpd_C_correct = TabularCPD(
          "C",
          2,
          [[0.0, 0.0, 1.0, np.NaN], [1.0, 1.0, 0.0, np.NaN]],
          evidence=["A", "B"],
          evidence_card=[2, 2],
          state_names={"A": [0, 1], "B": [0, 1], "C": [0, 1]},
      )
      # manual comparison because np.NaN != np.NaN
      self.assertTrue(
          (
              (cpd_C.values == cpd_C_correct.values)
              | np.isnan(cpd_C.values) & np.isnan(cpd_C_correct.values)
          ).all()
      )
  
imports: import unittest
  import numpy
  import pandas
  from joblib.externals.loky import get_reusable_executor
  from pgmpy import config
  from pgmpy.estimators import BayesianEstimator
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.models import BayesianNetwork
label_desc: Use image node_id 4 for calling the TestBayesianEstimator obj's underlying member method code with example usage: obj.test_estimate_cpd_improper_prior() without return types