code: def test_average_pooling(self):
      X = asfloat(
          np.array(
              [
                  [1, 2, 3, -1],
                  [4, -6, 3, 1],
                  [0, 0, 1, 0],
                  [0, -1, 0, 0],
              ]
          )
      ).reshape(1, 4, 4, 1)
      expected_output = asfloat(
          np.array(
              [
                  [1 / 4.0, 6 / 4.0],
                  [-1 / 4.0, 1 / 4.0],
              ]
          )
      ).reshape(1, 2, 2, 1)
  
      network = layers.join(
          layers.Input((4, 4, 1)),
          layers.AveragePooling((2, 2)),
      )
      actual_output = self.eval(network.output(X))
      np.testing.assert_array_almost_equal(
          actual_output, expected_output
      )
  
imports: from collections import namedtuple
  import numpy
  import tensorflow
  from neupy import layers
  from neupy.utils import asfloat
  from neupy.exceptions import LayerConnectionError
  from neupy.layers.pooling import pooling_output_shape
  from base import BaseTestCase
label_desc: Use image node_id 9 for calling the PoolingLayersTestCase obj's underlying member method code with example usage: obj.test_average_pooling() without return types