code: def test_call_cudnn_backward(self):
      with chainer.using_config("use_cudnn", self.use_cudnn):
          expect = chainer.should_use_cudnn(">=auto")
          y = self.forward()
      y.grad = self.gy
      # should be consistent to forward regardless of use_cudnn config
      with testing.patch("cupy.cudnn.pooling_backward") as func:
          y.backward()
          self.assertEqual(func.called, expect)
  
imports: import unittest
  import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import functions
  from chainer import gradient_check
  from chainer import testing
  from chainer.testing import attr
  from chainer.testing import condition
  from chainer.utils import type_check
  from chainer_tests.functions_tests.pooling_tests import pooling_nd_helper
label_desc: Use image node_id 4 for calling the TestMaxPooling2DCudnnCall obj's underlying member method code with example usage: obj.test_call_cudnn_backward() without return types