code: def testProxyMethods(self):
      g = Graph.GRG(10, 0.5)
      e = g.es[0]
  
      # - delete() is ignored because it mutates the graph
      ignore = "delete"
      ignore = set(ignore.split())
  
      # Methods not listed here are expected to return an int or a float
      return_types = {}
  
      for name in Edge.__dict__:
          if name in ignore:
              continue
  
          func = getattr(e, name)
          docstr = func.__doc__
  
          if not docstr.startswith("Proxy method"):
              continue
  
          result = func()
          self.assertEqual(
              getattr(g, name)(e.index),
              result,
              msg=("Edge.%s proxy method misbehaved" % name),
          )
  
          return_type = return_types.get(name, (int, float))
          self.assertTrue(
              isinstance(result, return_type),
              msg=(
                  "Edge.%s proxy method did not return %s"
                  % (name, return_type)
              ),
          )
  
imports: import unittest
  from igraph import Graph, Edge, EdgeSeq, VertexSeq
  from .utils import is_pypy
label_desc: Use image node_id 7 for calling the EdgeTests obj's underlying member method code with example usage: obj.testProxyMethods() without return types