code: def test_get_output_shape_for(self, layer):
      assert layer.get_output_shape_for([(3, 2), (3, 2)]) == (3, 2)
      assert layer.get_output_shape_for([(3, 2), (3, None)]) == (3, 2)
      assert layer.get_output_shape_for([(None, 2), (3, 2)]) == (3, 2)
      assert layer.get_output_shape_for([(None, 2), (None, 2)]) == (
          None,
          2,
      )
      with pytest.raises(ValueError):
          layer.get_output_shape_for([(3, None), (4, 2)])
      with pytest.raises(ValueError):
          layer.get_output_shape_for([(3, 2), (4, None)])
      with pytest.raises(ValueError):
          layer.get_output_shape_for([(None, 2), (3, 2), (4, 2)])
  
imports: from mock import Mock
  import numpy
  import pytest
  import theano
label_desc: Use image node_id 3 for calling the TestElemwiseSumLayer obj's underlying member method code with example usage: obj.test_get_output_shape_for(layer) without return types