code: def forward_expected(self, inputs):
      (x,) = inputs
      expect = numpy.empty(self.output_shape, dtype=self.dtype)
      for i in six.moves.range(2):
          for c in six.moves.range(3):
              xx = x[i, c]
              if self.cover_all:
                  expect[i, c] = numpy.array(
                      [
                          [xx[0:2, 0:2].max(), xx[0:2, 1:3].max()],
                          [xx[1:4, 0:2].max(), xx[1:4, 1:3].max()],
                          [xx[3:4, 0:2].max(), xx[3:4, 1:3].max()],
                      ]
                  )
              else:
                  expect[i, c] = numpy.array(
                      [
                          [xx[0:2, 0:2].max(), xx[0:2, 1:3].max()],
                          [xx[1:4, 0:2].max(), xx[1:4, 1:3].max()],
                      ]
                  )
      return (expect,)
  
imports: import unittest
  import numpy
  import six
  import chainer
  from chainer.backends import cuda
  from chainer import functions
  from chainer import testing
  from chainer.testing import attr
  from chainer.testing import backend
  from chainer_tests.functions_tests.pooling_tests import pooling_nd_helper
label_desc: Use image node_id 3 for calling the TestMaxPooling2D obj's underlying member method code with example usage: obj.forward_expected(inputs) and returns: expect