docstr: Tests convolution when all vertex features are identical.
docstr_tok: ["Tests","convolution","when","all","vertex","features","are","identical","."]
code: def test_dynamic_graph_convolution_keras_layer_duplicate_features(
      self, num_vertices, in_channels, out_channels
  ):
      """Tests convolution when all vertex features are identical."""
      if not tf.executing_eagerly():
          return
      data = np.random.uniform(size=(1, in_channels))
      data = np.tile(data, (num_vertices, 1))
      # Results should be independent of 'neighbors'.
      neighbors = np.maximum(
          np.random.randint(0, 2, size=(num_vertices, num_vertices)),
          np.eye(num_vertices),
      )
      neighbors = _dense_to_sparse(neighbors)
      layer = gc_layer.DynamicGraphConvolutionKerasLayer(
          num_output_channels=out_channels, reduction="max"
      )
  
      output = layer(inputs=[data, neighbors], sizes=None)
  
      output_tile = tf.tile(output[:1, :], (num_vertices, 1))
  
      self.assertAllEqual(output, output_tile)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import numpy
  from six.moves import range
  from six.moves import zip
  import tensorflow
  import tensorflow_graphics.nn.layer.graph_convolution
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 3 for calling the GraphConvolutionTestDynamicGraphConvolutionKerasLayerTests obj's underlying member method code with example usage: obj.test_dynamic_graph_convolution_keras_layer_duplicate_features(num_vertices, in_channels, out_channels) without return types