code: def test_backprop(self, backend_config):
      x1_arr = numpy.array([2, 3], numpy.float32)
      x2_arr = numpy.array([3, 1], numpy.int32)
      x3_arr = numpy.array([5, 2], numpy.float32)
      gy2_arr = numpy.array([2, 4], numpy.float32)
      x1_arr, x2_arr, x3_arr, gy2_arr = backend_config.get_array(
          (x1_arr, x2_arr, x3_arr, gy2_arr)
      )
  
      x1 = chainer.Variable(x1_arr)
      x2 = chainer.Variable(x2_arr, requires_grad=False)
      x3 = chainer.Variable(x3_arr)
  
      # Forward
      y1, y2, y3 = self.call_func(backend_config, x1, x2, x3)
  
      assert isinstance(y1.array, backend_config.xp.ndarray)
      assert isinstance(y2.array, backend_config.xp.ndarray)
      assert isinstance(y3.array, backend_config.xp.ndarray)
  
      # Backward
      y2.grad = gy2_arr
      y2.backward()
  
      assert isinstance(x1.grad, backend_config.xp.ndarray)
      assert x2.grad is None
      assert isinstance(x3.grad, backend_config.xp.ndarray)
  
imports: import unittest
  import numpy
  import chainer
  from chainer import testing
  import chainer.testing.backend
  import chainerx
label_desc: Use image node_id 4 for calling the TestFunctionBackprop obj's underlying member method code with example usage: obj.test_backprop(backend_config) without return types