docstr: Check that the output of convolution has the correct shape.
code: def test_edge_convolution_template_output_shape(
      self,
      batch_size,
      num_vertices,
      in_channels,
      out_channels,
      reduction,
  ):
      """Check that the output of convolution has the correct shape."""
      data, neighbors = _dummy_data(
          batch_size, num_vertices, in_channels
      )
  
      y = gc.edge_convolution_template(
          data,
          neighbors,
          None,
          self._zeros,
          reduction=reduction,
          edge_function_kwargs={"out_dimensions": out_channels},
      )
      y_shape = y.shape.as_list()
  
      with self.subTest(name="out_channels"):
          self.assertEqual(y_shape[-1], out_channels)
  
      with self.subTest(name="shape"):
          self.assertAllEqual(y_shape[:-1], data.shape[:-1])
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  from absl.testing import parameterized
  import numpy
  from six.moves import range
  import tensorflow
  import tensorflow_graphics.geometry.convolution.graph_convolution
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 9 for calling the EdgeConvolutionTemplateTests obj's underlying member method code with example usage: obj.test_edge_convolution_template_output_shape(batch_size, num_vertices, in_channels, out_channels, reduction) without return types