code: def call_func_function_node(self, backend_config, x2):
      forward_xp, backward_xp = _get_expected_xp(backend_config, False)
  
      class Func(chainer.FunctionNode):
          def forward(self, inputs):
              # Inputs
              x1, x2, x3 = inputs
              assert x1 is None
              assert isinstance(x2, forward_xp.ndarray)
              assert x3 is None
  
              y1 = x2 * 3
              self.retain_inputs((1, 2))
              self.retain_outputs(())
              return (y1,)
  
          def backward(self, input_indexes, grad_outputs):
              # Input indexes
              assert isinstance(input_indexes, tuple)
              assert input_indexes == (1,)
  
              # Retained inputs
              retained_inputs = self.get_retained_inputs()
              assert isinstance(retained_inputs, tuple)
              x2, x3 = retained_inputs
              assert isinstance(x2.array, backward_xp.ndarray)
              assert x3 is None
  
              # Output grads
              assert isinstance(grad_outputs, tuple)
              (gy1,) = grad_outputs
              assert isinstance(gy1.array, backward_xp.ndarray)
  
              # Retained outputs
              retained_outputs = self.get_retained_outputs()
              assert retained_outputs is ()
  
              gx2 = 3 * gy1
              return None, gx2, None
  
      return Func().apply((None, x2, None))
  
imports: import unittest
  import numpy
  import chainer
  from chainer import testing
  import chainer.testing.backend
  import chainerx
label_desc: Use image node_id 2 for calling the TestFunctionInputNone obj's underlying member method code with example usage: obj.call_func_function_node(backend_config, x2) and returns: Func, y1, None,  gx2,  None