code: def setUp(self):
      self.ndim = len(self.dims)
      self.ksize = (3,) * self.ndim
      self.stride = (2,) * self.ndim
      self.pad = (1,) * self.ndim
      x_shape = (2, 3) + self.dims
      self.x = cuda.cupy.arange(
          functools.reduce(operator.mul, x_shape), dtype=self.dtype
      ).reshape(x_shape)
      gy_shape = (2, 3) + tuple(
          conv.get_conv_outsize(d, k, s, p)
          for (d, k, s, p) in six.moves.zip(
              self.dims, self.ksize, self.stride, self.pad
          )
      )
      self.gy = cuda.cupy.random.uniform(-1, 1, gy_shape).astype(
          self.dtype
      )
  
imports: import functools
  import operator
  import unittest
  import numpy
  import pytest
  import six
  import chainer
  from chainer.backends import cuda
  from chainer import functions
  from chainer import testing
  from chainer.testing import attr
  from chainer.utils import conv
  from chainer_tests.functions_tests.pooling_tests import pooling_nd_helper
label_desc: Use image node_id 1 for calling the TestAveragePoolingNDCudnnCall obj's underlying member method code with example usage: obj.setUp() without return types