code: def test_get_interface_nodes(self):
      self.network.add_edges_from(
          [
              (("D", 0), ("G", 0)),
              (("I", 0), ("G", 0)),
              (("D", 0), ("D", 1)),
              (("I", 0), ("I", 1)),
          ]
      )
      self.assertListEqual(
          sorted(self.network.get_interface_nodes()),
          [("D", 0), ("I", 0)],
      )
  
      self.assertRaises(
          ValueError, self.network.get_interface_nodes, -1
      )
      self.assertRaises(
          ValueError, self.network.get_interface_nodes, "-"
      )
  
imports: import unittest
  import numpy
  import numpy.testing
  import pandas
  import pgmpy.tests.help_functions
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.inference import CausalInference, DBNInference, VariableElimination
  from pgmpy.models import BayesianNetwork
  from pgmpy.models import DynamicBayesianNetwork
label_desc: Use image node_id 4 for calling the TestDynamicBayesianNetworkMethods obj's underlying member method code with example usage: obj.test_get_interface_nodes() without return types