code: def test_small_model_ivs(self):
      model1 = SEMGraph(
          ebunch=[("X", "Y"), ("I", "X"), ("W", "I")],
          latents=[],
          err_corr=[("W", "Y")],
          err_var={},
      )
      self.assertEqual(
          model1.get_conditional_ivs("X", "Y"), [("I", {"W"})]
      )
  
      model2 = SEMGraph(
          ebunch=[
              ("x", "y"),
              ("z", "x"),
              ("w", "z"),
              ("w", "u"),
              ("u", "x"),
              ("u", "y"),
          ],
          latents=["u"],
      )
      self.assertEqual(
          model2.get_conditional_ivs("x", "y"), [("z", {"w"})]
      )
  
      model3 = SEMGraph(
          ebunch=[("x", "y"), ("u", "x"), ("u", "y"), ("z", "x")],
          latents=["u"],
      )
      self.assertEqual(model3.get_ivs("x", "y"), {"z"})
  
      model4 = SEMGraph(
          ebunch=[("x", "y"), ("z", "x"), ("u", "x"), ("u", "y")]
      )
      self.assertEqual(
          model4.get_conditional_ivs("x", "y"), [("z", {"u"})]
      )
  
imports: import os
  import unittest
  import networkx
  import numpy
  import numpy.testing
  from pgmpy.models import SEM, SEMAlg, SEMGraph
label_desc: Use image node_id 18 for calling the TestSEMGraph obj's underlying member method code with example usage: obj.test_small_model_ivs() without return types