code: def test_proper_backdoor_graph_error(self):
      self.assertRaises(
          ValueError,
          self.infer.get_proper_backdoor_graph,
          X=["x3"],
          Y=["y1", "y2"],
      )
      self.assertRaises(
          ValueError,
          self.infer.get_proper_backdoor_graph,
          X=["x2"],
          Y=["y1", "y3"],
      )
      self.assertRaises(
          ValueError,
          self.infer.get_proper_backdoor_graph,
          X=["x3", "x2"],
          Y=["y1", "y3"],
      )
  
imports: import unittest
  import numpy
  import numpy.testing
  import pandas
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.inference.CausalInference import CausalInference
  from pgmpy.models import BayesianNetwork
label_desc: Use image node_id 2 for calling the TestAdjustmentSet obj's underlying member method code with example usage: obj.test_proper_backdoor_graph_error() without return types