code: def test_circle_perimeter_aa_shape():
      img = np.zeros((15, 20), "uint8")
      rr, cc, val = circle_perimeter_aa(7, 10, 9, shape=(15, 20))
      img[rr, cc] = val * 255
  
      shift = 5
      img_ = np.zeros((15 + 2 * shift, 20), "uint8")
      rr, cc, val = circle_perimeter_aa(7 + shift, 10, 9, shape=None)
      img_[rr, cc] = val * 255
      assert_array_equal(img, img_[shift:-shift, :])
  
imports: import numpy
  from numpy.testing import assert_array_equal, assert_equal, assert_almost_equal
  import pytest
  from skimage._shared.testing import run_in_parallel
  from skimage._shared._dependency_checks import has_mpl
  from skimage.draw import set_color, line, line_aa, polygon, polygon_perimeter, disk, circle_perimeter, circle_perimeter_aa, ellipse, ellipse_perimeter, _bezier_segment, bezier_curve, rectangle, rectangle_perimeter
  from skimage.measure import regionprops
label_desc: Use image node_id 21 for calling a global function with example usage: test_circle_perimeter_aa_shape() without return types