code: def setUp(self):
      # Create a list of 2-D circles with different locations and rotations
      n_shapes = 4
      n_points = 12
      n_dims = 2
  
      shape_sizes = np.arange(1, n_shapes + 1)
      shape_angle_offsets = 10 * np.arange(n_shapes)
      shape_center_offsets = np.tile(np.arange(n_shapes), (n_dims, 1))
  
      base_angles = np.linspace(
          0, 2 * np.pi, num=n_points, endpoint=False
      )
      # Size (n_shapes, n_points)
      angles = (
          base_angles[np.newaxis, :]
          + shape_angle_offsets[:, np.newaxis]
      )
  
      # Calculate along dimensions
      x = (
          np.cos(angles) * shape_sizes[:, np.newaxis]
          + shape_center_offsets[0][:, np.newaxis]
      )
      y = (
          np.sin(angles) * shape_sizes[:, np.newaxis]
          + shape_center_offsets[1][:, np.newaxis]
      )
  
      self.shapes = np.stack([x, y], axis=-1)
  
file_path: prince/tests/test_gpa.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import pandas
  import prince
label_desc: Use image node_id 1 for calling the TestGPA obj's underlying member method code with example usage: obj.setUp() without return types