code: def setUp(self):
      self.custom = SEMGraph(
          ebunch=[("a", "b"), ("b", "c")],
          latents=[],
          err_corr=[],
          err_var={},
      )
      a = np.random.randn(10**3)
      b = a + np.random.normal(loc=0, scale=0.1, size=10**3)
      c = b + np.random.normal(loc=0, scale=0.2, size=10**3)
      self.custom_data = pd.DataFrame({"a": a, "b": b, "c": c})
      self.custom_data -= self.custom_data.mean(axis=0)
      self.custom_lisrel = self.custom.to_lisrel()
  
      self.demo = SEMGraph(
          ebunch=[
              ("xi1", "x1"),
              ("xi1", "x2"),
              ("xi1", "x3"),
              ("xi1", "eta1"),
              ("eta1", "y1"),
              ("eta1", "y2"),
              ("eta1", "y3"),
              ("eta1", "y4"),
              ("eta1", "eta2"),
              ("xi1", "eta2"),
              ("eta2", "y5"),
              ("eta2", "y6"),
              ("eta2", "y7"),
              ("eta2", "y8"),
          ],
          latents=["xi1", "eta1", "eta2"],
          err_corr=[
              ("y1", "y5"),
              ("y2", "y6"),
              ("y3", "y7"),
              ("y4", "y8"),
              ("y2", "y4"),
              ("y6", "y8"),
          ],
          err_var={},
      )
      self.demo_lisrel = self.demo.to_lisrel()
  
      self.demo_data = pd.read_csv(
          "pgmpy/tests/test_estimators/testdata/democracy1989a.csv",
          index_col=0,
          header=0,
      )
  
      self.union = SEMGraph(
          ebunch=[
              ("yrsmill", "unionsen"),
              ("age", "laboract"),
              ("age", "deferenc"),
              ("deferenc", "laboract"),
              ("deferenc", "unionsen"),
              ("laboract", "unionsen"),
          ],
          latents=[],
          err_corr=[("yrsmill", "age")],
          err_var={},
      )
      self.union_lisrel = self.union.to_lisrel()
  
      self.union_data = pd.read_csv(
          "pgmpy/tests/test_estimators/testdata/union1989b.csv",
          index_col=0,
          header=0,
      )
  
file_path: pgmpy/pgmpy/tests/test_estimators/test_SEMEstimator.py
imports: import unittest
  import numpy
  import pandas
  import torch
  from pgmpy import config
  from pgmpy.estimators import IVEstimator, SEMEstimator
  from pgmpy.models import SEM, SEMGraph
label_desc: Use image node_id 1 for calling the TestSEMEstimator obj's underlying member method code with example usage: obj.setUp() without return types