code: def test_output_shape_merging(self):
      layer = layers.Input(10)
      self.assertShapesEqual(
          layer.get_output_shape((None, 10)), (None, 10)
      )
      self.assertShapesEqual(layer.get_output_shape((5, 10)), (5, 10))
  
      layer = layers.Input((None, None, 3))
      self.assertShapesEqual(
          layer.get_output_shape((None, 28, 28, 3)),
          (None, 28, 28, 3),
      )
      self.assertShapesEqual(
          layer.get_output_shape((None, None, 28, 3)),
          (None, None, 28, 3),
      )
      self.assertShapesEqual(
          layer.get_output_shape((10, 28, 28, None)),
          (10, 28, 28, 3),
      )
  
file_path: neupy/tests/layers/test_input.py
imports: from neupy import layers
  from neupy.exceptions import LayerConnectionError
  from base import BaseTestCase
label_desc: Use image node_id 2 for calling the InputTestCase obj's underlying member method code with example usage: obj.test_output_shape_merging() without return types