code: def test_signature_lookup(self, sig):
      called = False
  
      def func(x, y):
          nonlocal called
          called = True
          return x + y
  
      def default(x, y):
          return x + y
  
      dtypes = "fdhq"
  
      sigs = (("ii->i", func),)
      gu_func = _GUFunc(default, "(i),(i)->(i)", signatures=sigs)
      for dtype in dtypes:
          x = cupy.array([10], dtype=dtype)
          y = x
          gu_func(x, y, casting="no")
          assert not called
  
      x = cupy.array([10], dtype="d")
      y = x
      z = gu_func(x, y, casting="unsafe", signature=sig)
      assert z.dtype == numpy.int32
      assert called
  
imports: import numpy
  import pytest
  import cupy
  from cupy import testing
  from cupy._core._gufuncs import _GUFunc
label_desc: Use image node_id 2 for calling the TestGUFuncSignatures obj's underlying member method code with example usage: obj.test_signature_lookup(sig) and returns: unknown, unknown