code: def test_pooling_output_shape(self):
      otuput_shape = pooling_output_shape(None, None, None, None)
      self.assertEqual(otuput_shape, None)
  
      otuput_shape = pooling_output_shape(
          dimension_size=5, pool_size=2, padding="VALID", stride=2
      )
  
      self.assertEqual(otuput_shape, 2)
  
      otuput_shape = pooling_output_shape(
          dimension_size=5, pool_size=2, padding="VALID", stride=1
      )
  
      self.assertEqual(otuput_shape, 4)
  
      otuput_shape = pooling_output_shape(
          dimension_size=5, pool_size=2, padding="VALID", stride=4
      )
  
      self.assertEqual(otuput_shape, 1)
  
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 2 for calling the PoolingLayersTestCase obj's underlying member method code with example usage: obj.test_pooling_output_shape() without return types