code: def test_double_backward(self, backend_config):
      m_data, v_data = backend_config.get_array((self.m, self.v))
      y_grad = backend_config.get_array(self.gy)
      m_grad_grad, v_grad_grad = backend_config.get_array(
          (self.ggm, self.ggv)
      )
      eps = backend_config.get_array(
          numpy.random.uniform(-1, 1, self.shape).astype(self.dtype)
      )
  
      def f(m, v):
          # In case numerical gradient computation is held in more precise
          # dtype than that of backward computation, cast the eps to reuse
          # before the numerical computation.
          eps_ = eps.astype(m.dtype)
          return functions.gaussian(m, v, eps=eps_)
  
      gradient_check.check_double_backward(
          f,
          (m_data, v_data),
          y_grad,
          (m_grad_grad, v_grad_grad),
          **self.check_double_backward_options,
      )
  
file_path: chainer/tests/chainer_tests/functions_tests/noise_tests/test_gaussian.py
imports: import unittest
  import numpy
  import chainer
  from chainer import functions
  from chainer import gradient_check
  from chainer import testing
label_desc: Use image node_id 4 for calling the TestGaussian obj's underlying member method code with example usage: obj.test_double_backward(backend_config) and returns: functions