docstr: Create data for a circle graph.
code: def _circular_2d_data(self, num_vertices, include_normals=False):
      """Create data for a circle graph."""
      # Vertices are points distributed uniformly on a circle, with each point
      # connected to its closest neighbor on either side.
      theta = np.linspace(
          0.0, np.pi * 2.0, num=num_vertices, endpoint=False
      )
      data = np.stack((np.cos(theta), np.sin(theta)), axis=-1)
      if include_normals:
          data = np.concatenate((data, data), axis=-1)
      eye = np.eye(num_vertices)
      neighbors = (
          np.maximum(np.roll(eye, 1, axis=1), np.roll(eye, -1, axis=1))
          * 0.5
      )
      return data, _dense_to_sparse(neighbors)
  
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 3 for calling the EdgeConvolutionTemplateTests obj's underlying member method code with example usage: obj._circular_2d_data(num_vertices, include_normals) and returns: data,  _dense_to_sparse