code: def test_shapes():
      def spl_interp(x, y, axis):
          return make_interp_spline(x, y, axis=axis)
  
      for ip in [
          KroghInterpolator,
          BarycentricInterpolator,
          CubicHermiteSpline,
          pchip,
          Akima1DInterpolator,
          CubicSpline,
          spl_interp,
      ]:
          for s1 in SHAPES:
              for s2 in SHAPES:
                  for axis in range(-len(s2), len(s2)):
                      if ip != CubicSpline:
                          check_shape(ip, s1, s2, None, axis)
                      else:
                          for bc in ["natural", "clamped"]:
                              extra = {"bc_type": bc}
                              check_shape(ip, s1, s2, None, axis, extra)
  
imports: import warnings
  import io
  import numpy
  from numpy.testing import assert_almost_equal, assert_array_equal, assert_array_almost_equal, assert_allclose, assert_equal, assert_
  from pytest import raises
  from scipy.interpolate import KroghInterpolator, krogh_interpolate, BarycentricInterpolator, barycentric_interpolate, approximate_taylor_polynomial, CubicHermiteSpline, pchip, PchipInterpolator, pchip_interpolate, Akima1DInterpolator, CubicSpline, make_interp_spline
label_desc: Use image node_id 2 for calling a global function with example usage: test_shapes() and returns: make_interp_spline